Senior Member
|
10-31-2020
, 22:33
Not Saving and Model Isn't Sized
|
#1
|
Hey everybody that reads this thread
There's a list of the problems i have:
1. My code does't save candies and the levels or just not loading them from nvault.
2. I tried to get a code for spawning objects from a killing rewards plugin for zpa and tried to change the size mins and maxs with the model's mins and maxs but didn t work in my tests , and in the past codes i wanted to make that entity be spawned somewhere on the map randomaly but didn't work.
if anybody has time for me i'm waiting, if anyone has any other advices for me in engine entity scripting just comment so i will make myself next time.
this code may be a mess, if it is don't hesitate to tell me so i can maybe optimize it.
Also idk why i put Save(id) in think
Code:
PHP Code:
#include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <fakemeta_util> #include <engine> #include <nvault>
#define PLUGIN "Candy System" #define VERSION "1.0" #define AUTHOR "DeclineD"
#define maxlevels 10 #define skills 2
new const item_class_name[] = "candy"
new g_model[] = "models/candy.mdl"
new Candies[33]
new Level[33][skills]
new SCosts[maxlevels+1] = { 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 }
new GCosts[maxlevels+1] = { 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 }
new Float:GFloats[maxlevels+1] = { 1.0, 0.950, 0.900, 0.850, 0.800, 0.750, 0.700, 0.650, 0.600, 0.550, 0.500 }
new Float:SFloats[maxlevels+1] = { 250.0, 300.0, 325.0, 350.0, 375.0, 400.0, 425.0, 450.0, 475.0, 500.0, 600.0 }
new g_vault
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_forward(FM_Touch, "fwd_Touch")
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled") register_logevent("log_RStart", 2, "1=Round_Start") register_forward(FM_PlayerPreThink, "Think") register_clcmd("say /skill", "mSkills") register_clcmd("lalala", "lalala") g_vault = nvault_open("candysave") }
public lalala(id) { Candies[id] = 99999 }
public plugin_end() { nvault_close(g_vault) }
public plugin_precache() { precache_model(g_model) }
public client_putinserver(id) { set_task(1.0, "hud", id, _, _, "b") Load(id) }
public client_disconnected(id) { remove_task(id) Save(id) }
public Think(id) { Save(id)
set_pev(id, pev_maxspeed, SFloats[ Level[id][0] ]) set_pev(id, pev_gravity, GFloats[ Level[id][1] ]) set_pev(id, pev_nextthink, 0.01) }
public log_RStart() { deleteAllItems() }
public fwd_Touch(toucher, touched) { if (!is_user_alive(toucher) || !pev_valid(touched)) return FMRES_IGNORED new classname[32] pev(touched, pev_classname, classname, 31) remove_entity(touched) Candies[toucher] += 1 set_dhudmessage(240, 10, 160, random_float(0.1, 1.0), random_float(0.5, 1.0), 0, 2.0, 3.0, 1.0, 1.0) show_dhudmessage(toucher, "[+1 Candy]")
if (!equal(classname, item_class_name)) return FMRES_IGNORED
return FMRES_IGNORED }
public fw_PlayerKilled(victim, attacker, shouldgib) { new origin[3] get_user_origin(victim , origin)
addItem(origin) }
public addItem(origin[3]) { new ent = fm_create_entity("info_target")
set_pev(ent, pev_classname, item_class_name) engfunc(EngFunc_SetModel,ent, g_model)
set_pev(ent,pev_mins,Float:{-19.40,1.17,-33.11}) set_pev(ent,pev_maxs,Float:{21.99,87.77,39.06}) set_pev(ent,pev_size,Float:{-19.40,1.17,-33.11,21.99,87.77,39.06}) engfunc(EngFunc_SetSize,ent,Float:{-19.40,1.17,-33.11},Float:{21.99,87.77,39.06})
set_pev(ent,pev_solid,SOLID_BBOX) set_pev(ent,pev_movetype,MOVETYPE_TOSS) new Float:fOrigin[3] IVecFVec(origin, fOrigin) set_pev(ent, pev_origin, fOrigin) set_pev(ent,pev_renderfx,kRenderFxGlowShell)
new Float:velocity[3]; pev(ent,pev_velocity,velocity); velocity[2] = random_float(265.0,285.0); set_pev(ent,pev_velocity,velocity)
switch(random_num(1,4)) { case 1: set_pev(ent,pev_rendercolor,Float:{0.0,0.0,255.0}) case 2: set_pev(ent,pev_rendercolor,Float:{0.0,255.0,0.0}) case 3: set_pev(ent,pev_rendercolor,Float:{255.0,0.0,0.0}) case 4: set_pev(ent,pev_rendercolor,Float:{255.0,255.0,255.0}) } }
public deleteAllItems() { new ent = FM_NULLENT static string_class[] = "classname" while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, item_class_name))) set_pev(ent, pev_flags, FL_KILLME) }
public mSkills(id) { new menu = menu_create("\ySkills \rMenu \r[\yLIMITED\r]", "mHand") new text[128] if(Level[id][0] == maxlevels) { formatex(text, charsmax(text), "Speed \yLv. \r%d") } else if(Level[id][0] < maxlevels) formatex(text, charsmax(text), "Speed \yLv. %d \r(%d Candy)", Level[id][0], SCosts[ Level[id][0] ]) menu_additem(menu, text) if(Level[id][1] == maxlevels) { formatex(text, charsmax(text), "Gravity \yLv. \r%d") } else if(Level[id][1] < maxlevels) formatex(text, charsmax(text), "Gravity \yLv. %d \r(%d Candy)",Level[id][1], GCosts[ Level[id][1] ]) menu_additem(menu, text) menu_setprop(menu, MPROP_EXITNAME, "Exit") menu_display(id, menu) }
public mHand(id, menu, item) { switch(item) { case 0: { if(Candies[id] < SCosts[ Level[id][0] ]) return; if(Level[id][0] > charsmax(SCosts)) return; if(Level[id][0] == maxlevels) return;
Candies[id] = Candies[id] - SCosts[ Level[id][0] ] Level[id][0] += 1 menu_display(id, menu)
client_print_color(id, id, "You just brought speed ^4level %d", Level[id][0]) } case 1: { if(Candies[id] < GCosts[ Level[id][1] ]) return; if(Level[id][1] > charsmax(GCosts)) return; if(Level[id][1] == maxlevels) return;
Candies[id] = Candies[id] - GCosts[ Level[id][1] ] Level[id][1] += 1 menu_display(id, menu)
client_print_color(id, id, "You just brought gravity ^4level %d", Level[id][1])
} } }
public hud(id) { set_dhudmessage(120, 10, 255, 0.0, 0.3, 0, 0.1, 0.1, 0.5, 0.5) if(Level[id][0] + Level[id][1] == 20) show_dhudmessage(id, "[(-Candy-)] - %d^n^n[(-Level-)] - MAXED", Candies[id]) else show_dhudmessage(id, "[(-Candy-)] - %d^n^n[(-Level-)] - %d", Candies[id], Level[id][0] + Level[id][1]) }
public Save(id) { new text[128], szIP[10]
get_user_ip(id, szIP, charsmax(szIP), 1)
formatex(text, charsmax(text), "%i#%i#%i#", Candies[id], Level[id][0], Level[id][1]) nvault_set(g_vault, szIP, text) }
public Load(id) { new text[128], szIP[10] get_user_ip(id, szIP, charsmax(szIP), 1) formatex(text, charsmax(text), "%i#%i#%i#", Candies[id], Level[id][0], Level[id][1]) nvault_get(g_vault, szIP, text) replace_all(text, charsmax(text), "#", " ") new szCandies[10], szLevelS[10], szLevelG[10] parse(text, szCandies, charsmax(szCandies), szLevelS, charsmax(szLevelS), szLevelG, charsmax(szLevelG)) Candies[id] = str_to_num(szCandies) Level[id][0] = str_to_num(szLevelS) Level[id][1] = str_to_num(szLevelG)
}
Last edited by AnimalMonster; 10-31-2020 at 23:43.
|
|