Model in SQL Help!
OK heres the situation....I am trying my best to add new things to the original carmod by Steven|af|. Now I am not a complete idiot I have done many changes to it for example I have added sirens,reving,car radios, passangers, engines, indivual speeds etc.... But the thing that is killing em the most is making the car as an item. HarbuRP uses MySql for items and such. Example would be : Corolla Keys - Would spawn the car.
Heres what I have for my item command I don't know if it's correct because I have no clue what to put in SQL to make it work.
Code:
public item_car(id)
{
new arg[32], arg2[32], arg3[32], id, itemname, save
read_argv(1,arg,31)
read_argv(2,arg2,31)
read_argv(3,arg3,31)
id = str_to_num(arg)
itemname = str_to_num(arg2)
save = str_to_num(arg3)
if(itemname == 0) {
return PLUGIN_HANDLED
}
server_cmd("amx_createcar %i %i %i",id,itemname,save);
return PLUGIN_HANDLED
}
Heres the orginal code by Steven|af|
Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#define MAX_SPAWNS 20
new carout[33]
new incar[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 lock(id) {
if(incar[id] || !carout[id]) {
client_print(id,print_chat,"[CarMod] You must be outside your car to lock")
return PLUGIN_HANDLED
}
new origin[3]
get_user_origin(id,origin)
new authid[33]
get_user_authid(id,authid,32)
entity_set_string(carout[id],EV_SZ_target,authid)
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], 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)
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_TRIGGER)
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)
return PLUGIN_HANDLED
}
public plugin_precache()
{
precache_model("models/player/pietrekcar/pietrekcar.mdl")
precache_sound("phone/1.wav")
precache_sound("ambience/rd_warehouse.wav")
}
public plugin_init()
{
register_touch("item_car","player","setcar")
register_touch("player","player","crash")
register_clcmd("say /getout","uncar")
register_clcmd("say /honk","honk")
register_clcmd("say /lock","lock")
register_srvcmd("amx_makecar","makecar")
register_cvar("rp_carsfile", "carsfile.ini")
register_concmd("amx_createcar","purposedrop")
register_event("DeathMsg","death_msg","a")
set_task(5.0,"loadSettings")
}
new Float:oldspeed[33]
new Float:oldfric[33]
new oldmodel[33][33]
new carmodel[33][33]
new allow[33]
public crash(entid, id) {
if(allow[entid] == 1 || allow[id] == 1) return PLUGIN_HANDLED
if(incar[id] && incar[entid]) {
set_user_health(entid,0)
set_user_health(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(entid)
new hp2 = get_user_health(id)
set_user_health(entid,(hp - 50))
set_user_health(id,(hp2 - 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)
allow[id] = 1
set_task(10.0,"allowhim",id)
return PLUGIN_HANDLED
}
if(incar[entid]) {
new hp = get_user_health(id)
new hp2 = get_user_health(entid)
set_user_health(id,(hp - 50))
set_user_health(entid,(hp2 - 10))
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)
allow[entid] = 1
set_task(10.0,"allowhim",entid)
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public honk(id) {
if(incar[id] != 1) return PLUGIN_HANDLED
emit_sound(id, CHAN_ITEM, "phone/1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
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,"") || equal(locked,authid)) {}
else 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)
set_user_maxspeed(id, 1000.0)
entity_set_float(id,EV_FL_friction,0.3)
incar[id] = 1
carout[id] = 0
emit_sound(id, CHAN_ITEM, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_entity(entid)
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]
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 purposedrop(id)
{
if(!is_user_alive(id)) return PLUGIN_HANDLED
if(!access(id,ADMIN_RESERVATION)) return PLUGIN_HANDLED
new itemname[64], save1[6], szFilename[64]
read_argv(1, itemname, 31)
read_argv(2, save1, 5)
if(!access(id,ADMIN_RESERVATION)) {
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>")
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", itemname, origin[0], origin[1], origin[2])
write_file(szFilename,message,-1)
}
allow[id] = 1
set_task(10.0,"allowhim",id)
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])
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
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]) {
entity_set_string(carout[id],EV_SZ_target,"")
carout[id] = 0
}
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
}
return PLUGIN_CONTINUE
}
|