View Single Post
Author Message
SweatyBanana
BANNED
Join Date: Sep 2005
Location: LOL
Old 06-04-2006 , 22:41   Carmod make cars solid..
Reply With Quote #1

I need this plugin to have solid cars..Please and +karma if u help.

Code:
/* -----888888----------88888------888888---- ----888----88-------888-888-----88---88--- ----888----88------888---888----88----88-- ----888------------888---888----88---88--- ----888------------888888888----888888---- ----888------------888---888----88---88--- ----888----88------888---888----88----88-- -----8888888-------888---888----88-----88- ------------------------------------------ ------------------------------------------ ---888------888-----8888888-----8888888--- ---8888----8888----88-----88----88----88-- ---88-88--88-88----88-----88----88-----88- ---88--8888--88----88-----88----88------8- ---88---88---88----88-----88----88------8- ---88--------88----88-----88----88-----88- ---88--------88----88-----88----88----88-- ---88--------88-----8888888-----8888888--- ------------------------------------------ ****************************************** By Stephen|AF| - Base carmod (one speed, foot steps, no engine sound, honk, siren, crashes, car model effect, car spawning command, temporary locks) Fred Dawes  - Added more models, sounds, different speed classes, permanent locks, item_keys for car spawning Wonsae      - Added passenger mod (Not working) ****************************************** */ #include <amxmodx> #include <amxmisc> #include <engine> #include <fun> #define MAX_SPAWNS 20 new carout[33] new incar[33] //new carpool[33] //new carpooled[33] //new torigin[33][3] new Float:oldspeed[33] new Float:oldfric[33] new oldmodel[33][33] new carmodel[33][33] new allow[33] new usedcar[33] new sirenon[33] public loadSettings() {    new szFilename[64]    get_cvar_string("rp_carsfile",szFilename,63)    if (!file_exists(szFilename)) {       write_file(szFilename,"; CAR SPAWNS HERE",-1)       server_print("[AMXX] No ^"%s^" was found, so it has been created.", szFilename)       return PLUGIN_HANDLED    }    new szText[256]    new a, g_aNum, pos = 0    while ( g_aNum < MAX_SPAWNS && read_file(szFilename,pos++,szText,255,a) )    {       if ( szText[0] == ';' ) continue       server_cmd(szText)       ++g_aNum    }    server_print("[AMXX] Loaded %i spawns", g_aNum )    return PLUGIN_HANDLED } public overhear(a,distance,Speech[]) {    new OriginA[3], OriginB[3]    get_user_origin(a,OriginA)    new players[32], num    get_players(players,num,"ac")    for(new b = 0; b < num;b++)    {       if(a!=players[b])       {          get_user_origin(players[b],OriginB)          if(distance == -1) {             client_print(players[b],print_chat,Speech)          }          else          {             if(get_distance(OriginA,OriginB) <= distance) {                client_print(players[b],print_chat,Speech)             }          }       }    }    return PLUGIN_HANDLED } public makecar(id) {    new item[32], orig1[6], orig2[6], orig3[6], angles1[6], authid[31], Float:origin[3]    read_argv(1, item, 31)    read_argv(2, orig1, 5)    read_argv(3, orig2, 5)    read_argv(4, orig3, 5)    read_argv(5, angles1, 5)    read_argv(6, authid, 31)    origin[0] = float(str_to_num(orig1))    origin[1] = float(str_to_num(orig2))    origin[2] = float(str_to_num(orig3))    new Float:angles2 = float(str_to_num(angles1))    new car = create_entity("info_target")    if(!car) {       client_print(id,print_chat,"CAR WAS not created. Error.^n")       return PLUGIN_HANDLED    }    new Float:minbox[3] = { -2.5, -2.5, -2.5 }    new Float:maxbox[3] = { 2.5, 2.5, -2.5 }    new Float:angles[3] = { 0.0, 0.0, 0.0 }    angles[1] = angles2    entity_set_vector(car,EV_VEC_mins,minbox)    entity_set_vector(car,EV_VEC_maxs,maxbox)    entity_set_vector(car,EV_VEC_angles,angles)    entity_set_float(car,EV_FL_dmg,0.0)    entity_set_float(car,EV_FL_dmg_take,0.0)    entity_set_float(car,EV_FL_max_health,99999.0)    entity_set_float(car,EV_FL_health,99999.0)    entity_set_int(car,EV_INT_solid,SOLID_BBOX)    entity_set_int(car,EV_INT_movetype,MOVETYPE_NONE)    entity_set_string(car,EV_SZ_targetname,item)    entity_set_string(car,EV_SZ_classname,"item_car")    new damodel[64]    format(damodel,63,"models/player/%s/%s.mdl", item, item)    entity_set_model(car,damodel)    entity_set_origin(car,origin)    carout[id] = car    entity_set_string(carout[id],EV_SZ_target,authid)    return PLUGIN_HANDLED } /* public getin(id){     new blah2     if(get_user_aiming(id,carpool[id],blah2,200)) {         if(carpooled[id] == 1)             {             getout(id)             return PLUGIN_HANDLED;         }         if(incar[id] == 1){             if(carpooled[carpool[id]] == 1){                 client_print(carpool[id],print_chat,"[CarMod] You got kicked out of the car!")                 getout(carpool[id])             }else{                 client_print(id,print_chat,"[CarMod] Get out of your car first!")             }         }         if(!is_user_connected(carpool[id]))             {             client_print(id,print_chat,"[CarMod] Invalid target.")             return PLUGIN_HANDLED;         }         if(incar[carpool[id]] == 0)             {             client_print(id,print_chat,"[CarMod] Player not in car.")             return PLUGIN_HANDLED;         }         client_print(id,print_chat,"[CarMod] You are now riding with the player!")         set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,0)         set_user_noclip(id, 1)         get_user_origin(carpool[id], torigin[id])         torigin[id][2] += 80         carpooled[id] = 1         set_user_origin(id,torigin[id])         set_task(0.1, "originchange", id+45, "", 0, "b")         return PLUGIN_HANDLED     } else {         client_print(id,print_chat,"[CarMod] Too far away to ride the player's car.")         return PLUGIN_HANDLED     }     return PLUGIN_HANDLED; } public originchange(id){     id -= 45     get_user_origin(carpool[id], torigin[id])     torigin[id][2] += 80     set_user_origin(id,torigin[id])     return PLUGIN_HANDLED; } public client_PostThink(id) {     if(carpooled[id] == 1){         set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,0);     }else{         set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255);     }     return PLUGIN_HANDLED } public getout(id) {     carpool[id] = 0     client_print(id,print_chat,"[CarMod] You are no longer incar with the player!")     set_user_noclip(id,0)     set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255)     get_user_origin(carpool[id], torigin[id])     torigin[id][2] += 80     set_user_origin(id,torigin[id])     remove_task(id+45)     set_task(3.0,"leavecar",id)     return PLUGIN_HANDLED; } public leavecar(id) {     carpooled[id] = 0;     return PLUGIN_HANDLED } */ public plugin_init() {    register_touch("item_car","player","setcar")    register_touch("player","player","crash") // register_clcmd("passenger","getin")    register_clcmd("getout","uncar")    register_clcmd("honk","honk")    register_clcmd("siren","siren")    register_srvcmd("amx_makecar","makecar")    register_srvcmd("item_keys","item_keys")    register_cvar("rp_carsfile", "carsfile.ini")    register_concmd("amx_createcar","purposedrop")    register_event("DeathMsg","death_msg","a") // set_task(10.0,"loadSettings") } /* --------------------- !!!!PRECACHE HERE!!!! --------------------- If you want to add a car, add the line precache_model("<path to player model from TS>") It will be classified as a class C car */ public plugin_precache() {    precache_model("models/player/car_corolla/car_corolla.mdl")    precache_model("models/player/car_viper/car_viper.mdl")    precache_model("models/player/car_astra/car_astra.mdl")    precache_model("models/player/car_police/car_police.mdl")    precache_model("models/player/car_evo/car_evo.mdl")    precache_model("models/player/car_gto/car_gto.mdl")    precache_sound("carmod/car_horn.wav")    precache_sound("carmod/siren2.wav")    precache_sound("carmod/start.wav")    precache_sound("carmod/engine2.wav")    precache_sound("ambience/rd_warehouse.wav")    register_plugin("Carmod","2.0","Steven|AF| - Dawes") } public crash(entid, id) {    if(allow[entid] == 1 || allow[id] == 1) return PLUGIN_HANDLED    if(incar[id] && incar[entid]) {       new hp = get_user_health(entid)       new hp2 = get_user_health(id)       set_user_health(entid,(hp - 75))       set_user_health(id,(hp2 - 75)) //    set_user_maxspeed(id,oldspeed[id]) //    entity_set_float(id,EV_FL_friction,oldfric[id]) //    car_drop(id)       set_user_info(id,"model",oldmodel[id])       incar[id] = 0       emit_sound(id, CHAN_ITEM, "ambience/rd_warehouse.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)       //drop_car(id)       //drop_car(entid)       return PLUGIN_HANDLED    }    if(incar[id]) {       new hp = get_user_health(id)       set_user_health(id,(hp - 10))       emit_sound(id, CHAN_ITEM, "ambience/rd_warehouse.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)       //if(get_user_health(id) <= 0) drop_car(id)       return PLUGIN_HANDLED    }    if(incar[entid]) {       set_user_health(id,0)       emit_sound(entid, CHAN_ITEM, "ambience/rd_warehouse.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)       //if(get_user_health(entid) <= 0) drop_car(entid)       return PLUGIN_HANDLED    }    return PLUGIN_HANDLED } public honk(id) {    if(incar[id] != 1) return PLUGIN_HANDLED    emit_sound(id, CHAN_ITEM, "carmod/car_horn.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)    return PLUGIN_HANDLED } public siren(id) {    if(incar[id] != 1) return PLUGIN_HANDLED    if(sirenon[id] == 1) {       sirenon[id] = 0       return PLUGIN_HANDLED    }    new popo[33]    popo = "car_police"    if(equal(carmodel[id],popo)){       sirenon[id] = 1       return PLUGIN_HANDLED    }    client_print(id,print_chat,"[CarMod] You must be driving a police car!")    return PLUGIN_HANDLED } public client_PreThink(id) {    if(incar[id] != 0)    {       new bufferstop = entity_get_int(id,EV_INT_button)       if(bufferstop != 0) {          entity_set_int(id,EV_INT_button,bufferstop & ~IN_ATTACK & ~IN_ATTACK2 & ~IN_ALT1 & ~IN_USE)       }       if((bufferstop & IN_JUMP) && (entity_get_int(id,EV_INT_flags) & ~FL_ONGROUND & ~FL_DUCKING)) {          entity_set_int(id,EV_INT_button,entity_get_int(id,EV_INT_button) & ~IN_JUMP)       }       return PLUGIN_CONTINUE    }    return PLUGIN_CONTINUE } public setcar(entid,id) {    if(allow[id] != 0) return PLUGIN_HANDLED    if(incar[id] != 0) return PLUGIN_HANDLED    new locked[33], authid[33]    entity_get_string(entid,EV_SZ_target,locked,32)    get_user_authid(id,authid,32)    if(equal(locked,authid)) {}    else{       client_print(id,print_chat,"This car is reserved for %s, you are %s",locked,authid)       allow[id] = 1       set_task(5.0,"allowhim",id)       return PLUGIN_HANDLED    }    new name[64]    get_user_name(id,name,63)    new message[300]    format(message,299,"[CarMod] %s has gotten into his car and started the engine.",name)    overhear(id,300,message)    client_print(id,print_chat,"[CarMod] You have gotten into your car and started the engine.")    get_user_info(id,"model",oldmodel[id], 32)    new itemstr[33]    entity_get_string(entid,EV_SZ_targetname,itemstr,31)    carmodel[id] = itemstr    set_user_info(id,"model",itemstr)    oldspeed[id] = get_user_maxspeed(id)    oldfric[id] = entity_get_float(id,EV_FL_friction)    if(equal(carmodel[id],"car_gto") || equal(carmodel[id],"car_viper")) {       set_user_maxspeed(id, 1750.0)       client_cmd(id,"cl_forwardspeed 1750.0")       client_cmd(id,"cl_sidespeed 1750.0")       client_cmd(id,"cl_backspeed 1750.0")    }else{       if(equal(carmodel[id],"car_evo")){          set_user_maxspeed(id, 1000.0)          client_cmd(id,"cl_forwardspeed 1000.0")          client_cmd(id,"cl_sidespeed 1000.0")          client_cmd(id,"cl_backspeed 1000.0")       }else{          if(equal(carmodel[id],"car_police") || equal(carmodel[id],"car_corolla")){             set_user_maxspeed(id, 750.0)             client_cmd(id,"cl_forwardspeed 750.0")             client_cmd(id,"cl_sidespeed 750.0")             client_cmd(id,"cl_backspeed 750.0")          }else{             set_user_maxspeed(id, 500.0)             client_cmd(id,"cl_forwardspeed 500.0")             client_cmd(id,"cl_sidespeed 500.0")             client_cmd(id,"cl_backspeed 500.0")          }       }    }    entity_set_float(id,EV_FL_friction,0.3)    incar[id] = 1    carout[id] = 0    emit_sound(id, CHAN_ITEM, "carmod/start.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)    ///Replace footsteps with engine sound    set_user_footsteps(id, 1)    set_task(3.0,"engine",id)    remove_entity(entid)    return PLUGIN_HANDLED } public engine(id) {    if(incar[id] != 1) return PLUGIN_HANDLED    if(sirenon[id] == 1){       emit_sound(id, CHAN_ITEM, "carmod/siren2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)       set_task(11.0,"engine",id)    }else{       emit_sound(id, CHAN_ITEM, "carmod/engine2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)       set_task(1.0,"engine",id)    }    return PLUGIN_HANDLED } public uncar(id) {    if(incar[id] != 1) return PLUGIN_HANDLED    new name[64]    get_user_name(id,name,63)    new message[300]    set_user_footsteps(id, 0)    format(message,299,"[CarMod] %s has turned off his engine and got out of the car.",name)    overhear(id,300,message)    client_print(id,print_chat,"[CarMod] You have turned off your engine and got out of the car.")    set_user_maxspeed(id,oldspeed[id])    entity_set_float(id,EV_FL_friction,oldfric[id])    car_drop(id)    set_user_info(id,"model",oldmodel[id])    incar[id] = 0    return PLUGIN_HANDLED } public item_keys() {    new authid[32], itemname[64], arg[32], id    read_argv(1,arg,31)    read_argv(2,itemname,31)    id = str_to_num(arg)    get_user_authid(id,authid,31)    new origin[3], Float:originF[3]    get_user_origin(id,origin)    if( usedcar[id] == 1 ){     client_print(id,print_chat,"[CarMod] You already have a car!!")     return PLUGIN_HANDLED    }    originF[0] = float(origin[0])    originF[1] = float(origin[1])    originF[2] = float(origin[2])    new car = create_entity("info_target")    if(!car) {       client_print(id,print_chat,"CAR WAS not created. Error.^n")       return PLUGIN_HANDLED    }    new Float:minbox[3] = { -2.5, -2.5, -2.5 }    new Float:maxbox[3] = { 2.5, 2.5, -2.5 }    new Float:angles[3] = { 0.0, 0.0, 0.0 }    new Float:pangles[3]    entity_get_vector(id,EV_VEC_angles,pangles)    angles[1] = pangles[1]    entity_set_vector(car,EV_VEC_mins,minbox)    entity_set_vector(car,EV_VEC_maxs,maxbox)    entity_set_vector(car,EV_VEC_angles,angles)    entity_set_float(car,EV_FL_dmg,0.0)    entity_set_float(car,EV_FL_dmg_take,0.0)    entity_set_float(car,EV_FL_max_health,99999.0)    entity_set_float(car,EV_FL_health,99999.0)    entity_set_int(car,EV_INT_solid,SOLID_TRIGGER)    entity_set_int(car,EV_INT_movetype,MOVETYPE_NONE)    entity_set_string(car,EV_SZ_targetname,itemname)    entity_set_string(car,EV_SZ_classname,"item_car")    new damodel[64]    format(damodel,63,"models/player/%s/%s.mdl", itemname, itemname)    entity_set_model(car,damodel)    entity_set_origin(car,originF)    allow[id] = 1    set_task(2.0,"allowhim",id)    carout[id] = car    usedcar[id] = 1    entity_set_string(carout[id],EV_SZ_target,authid)    return PLUGIN_HANDLED } public purposedrop(id) {    if(!is_user_alive(id)) return PLUGIN_HANDLED    new itemname[64], save1[6], authid[31], szFilename[64]    read_argv(1, itemname, 31)    read_argv(2, save1, 5)    read_argv(3, authid, 31)    if(!(get_user_flags(id) & ADMIN_LEVEL_A)){       client_print(id,print_console,"You do not have access to this command.")       return PLUGIN_HANDLED    }    if(equal(itemname, "") || equal(save1, "")) {       client_print(id,print_console,"Usage: amx_createcar <model> <save 1/0> <Steamid>")       return PLUGIN_HANDLED    }    new save = str_to_num(save1)    new origin[3], Float:originF[3]    get_user_origin(id,origin)    originF[0] = float(origin[0])    originF[1] = float(origin[1])    originF[2] = float(origin[2])    new car = create_entity("info_target")    if(!car) {       client_print(id,print_chat,"CAR WAS not created. Error.^n")       return PLUGIN_HANDLED    }    new Float:minbox[3] = { -2.5, -2.5, -2.5 }    new Float:maxbox[3] = { 2.5, 2.5, -2.5 }    new Float:angles[3] = { 0.0, 0.0, 0.0 }    new Float:pangles[3]    entity_get_vector(id,EV_VEC_angles,pangles)    angles[1] = pangles[1]    entity_set_vector(car,EV_VEC_mins,minbox)    entity_set_vector(car,EV_VEC_maxs,maxbox)    entity_set_vector(car,EV_VEC_angles,angles)    entity_set_float(car,EV_FL_dmg,0.0)    entity_set_float(car,EV_FL_dmg_take,0.0)    entity_set_float(car,EV_FL_max_health,99999.0)    entity_set_float(car,EV_FL_health,99999.0)    entity_set_int(car,EV_INT_solid,SOLID_TRIGGER)    entity_set_int(car,EV_INT_movetype,MOVETYPE_NONE)    entity_set_string(car,EV_SZ_targetname,itemname)    entity_set_string(car,EV_SZ_classname,"item_car")    new damodel[64]    format(damodel,63,"models/player/%s/%s.mdl", itemname, itemname)    entity_set_model(car,damodel)    entity_set_origin(car,originF)    if(save == 1 || equal(save1, "1")) {       get_cvar_string("rp_carsfile",szFilename,63)       if (!file_exists(szFilename)) return PLUGIN_HANDLED       new message[64]       format(message, 63, "amx_makecar %s %i %i %i 0 ^"%s^"", itemname, origin[0], origin[1], origin[2], authid)       write_file(szFilename,message,-1)    }    allow[id] = 1    set_task(10.0,"allowhim",id)    carout[id] = car    entity_set_string(carout[id],EV_SZ_target,authid)    return PLUGIN_HANDLED } public car_drop(id) {    //if(!is_user_alive(id)) return PLUGIN_HANDLED    if(incar[id] != 1) return PLUGIN_HANDLED    new origin[3],Float:pangles[3],Float:originF[3]    get_user_origin(id,origin)    originF[0] = float(origin[0])    originF[1] = float(origin[1])    originF[2] = float(origin[2])    set_user_footsteps(id,0)    client_cmd(id,"cl_forwardspeed 350")    client_cmd(id,"cl_sidespeed 350")    client_cmd(id,"cl_backspeed 350")    new car = create_entity("info_target")    if(!car) {       client_print(id,print_chat,"CAR WAS not created. Error.^n")       return PLUGIN_HANDLED    }    new Float:minbox[3] = { -2.5, -2.5, -2.5 }    new Float:maxbox[3] = { 2.5, 2.5, -2.5 }    new Float:angles[3] = { 0.0, 0.0, 0.0 }    entity_get_vector(id,EV_VEC_angles,pangles)    angles[1] = pangles[1]    entity_set_vector(car,EV_VEC_mins,minbox)    entity_set_vector(car,EV_VEC_maxs,maxbox)    entity_set_vector(car,EV_VEC_angles,angles)    entity_set_float(car,EV_FL_dmg,0.0)    entity_set_float(car,EV_FL_dmg_take,0.0)    entity_set_float(car,EV_FL_max_health,99999.0)    entity_set_float(car,EV_FL_health,99999.0)    entity_set_int(car,EV_INT_solid,SOLID_TRIGGER)    entity_set_int(car,EV_INT_movetype,MOVETYPE_NONE)    entity_set_string(car,EV_SZ_targetname,carmodel[id])    entity_set_string(car,EV_SZ_classname,"item_car")    new damodel[64]    format(damodel,63,"models/player/%s/%s.mdl", carmodel[id], carmodel[id])    entity_set_model(car,damodel)    entity_set_origin(car,originF)    carout[id] = car    allow[id] = 1    new authid[32]    get_user_authid(id,authid,32)    entity_set_string(carout[id],EV_SZ_target,authid)    set_task(10.0,"allowhim",id)    return PLUGIN_HANDLED } public allowhim(id) {    allow[id] = 0 } public client_infochanged(id) {    if(incar[id] == 1) {       set_user_info(id,"model",carmodel[id])       return PLUGIN_HANDLED    }    return PLUGIN_HANDLED } public client_disconnect(id) {    if(incar[id] == 1) {       car_drop(id)       incar[id] = 0    }    if(carout[id]) {       carout[id] = 0    } //   if(task_exists(id+45)) remove_task(id+45)    return PLUGIN_CONTINUE } public death_msg() {    new id = read_data(2)    if(incar[id] == 1) {       set_user_maxspeed(id,oldspeed[id])       entity_set_float(id,EV_FL_friction,oldfric[id])       set_user_info(id,"model",oldmodel[id])       car_drop(id)       incar[id] = 0    } /*    if(carpooled[id] == 1){       getout(id)       return PLUGIN_HANDLED;    } */    return PLUGIN_CONTINUE }
SweatyBanana is offline
Send a message via AIM to SweatyBanana Send a message via Yahoo to SweatyBanana