|
Junior Member
Join Date: Apr 2011
Location: Finland
|

02-10-2013
, 10:12
Re: I need on retrieveing individual data.
|
#5
|
Quote:
Originally Posted by nnajko
Yeah use a variable
PHP Code:
#include <amxmodx>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author"
new g_iPlayerClass[33];
enum _:Class { Dog = 0, Bear, Cat }
enum Data { Level, EXP }
new pInfo[33][Class][Data];
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /test", "CmdTest"); }
public CmdTest(id) { g_iPlayerClass[id] = Dog; pInfo[id][g_iPlayerClass[id]][Level]++; }
|
Hmm i think that woudlnt work on my case... Lemme show u what I've done. (Btw im unsure how to save individual xp too.)
PHP Code:
#include <amxmodx> #include <amxmisc> #include <nvault> #define MAXCLASSES 5 new const CLASSES[MAXCLASSES][] = { "None", "Dog", "Cat", "Horse", "Cow" } enum Class { None, Dog, Cat, Horse, Cow } new const LEVELS[6] = { 100, 200, 400, 800, 1600, 3200 } enum Data { Level, EXP } new pInfo[33][Class][Data] new PlayerXP[33],PlayerLevel[33],PlayerClass[33] new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault public plugin_init() { register_plugin("XpMod", "1.0", "Fxfighter") register_event("DeathMsg", "eDeath", "a") SaveXP = register_cvar("SaveXP","1") XP_Kill = register_cvar("XP_per_kill", "20") XP_Hs = register_cvar("XP_hs_bonus","20") XP_Knife = register_cvar("XP_knife_bonus","20") g_vault = nvault_open("animod") register_clcmd("say /class", "ChangeClass") register_clcmd("say_team /class", "ChangeClass") register_clcmd("say /xp", "ShowHud") register_clcmd("say_team /xp", "ShowHud") } public eDeath( ) { new attacker = read_data( 1 ) new iVictim = read_data( 2 ) if(attacker == iVictim || !is_user_connected(attacker) || get_user_team(attacker) == get_user_team(iVictim)) return; new headshot = read_data( 3 ) new weapon[7] read_data( 4, weapon, charsmax( weapon ) ) PlayerXP[attacker] += get_pcvar_num(XP_Kill) if(headshot) PlayerXP[attacker] += get_pcvar_num(XP_Hs) if(equal(weapon, "knife")) PlayerXP[attacker] += get_pcvar_num(XP_Knife) while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) { PlayerLevel[attacker] += 1 client_print(attacker, print_chat, "[Animal Mod] Congratulations! You are a level %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]]) } ShowHud(attacker) SaveData(attacker) } public ShowHud(id) { set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0) show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]]) } public ChangeClass(id) { new menu = menu_create("Class Menu" , "Class_Handle"); menu_additem(menu ,"Dog", "1" , 0); menu_additem(menu ,"Cat", "2" , 0); menu_additem(menu ,"Horse", "3" , 0); menu_additem(menu ,"Cow", "4" , 0); menu_setprop(menu , MPROP_EXIT , MEXIT_ALL); menu_display(id , menu , 0); return PLUGIN_CONTINUE; } public Class_Handle(id , menu , item) { if(item == MENU_EXIT) { menu_destroy(menu); } new szCommand[6] , szName[64]; new access , callback; menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback); new i = str_to_num(szCommand) if(PlayerClass[id] != i) { PlayerClass[id] = i client_print(id,print_chat,"You are now a %s",CLASSES[i]) } else { client_print(id,print_chat,"You are alredy a %s",CLASSES[i]) } menu_destroy(menu); return PLUGIN_CONTINUE } public client_connect(id) { if(get_pcvar_num(SaveXP) == 1) { LoadData(id) } } public client_disconnect(id) { if(get_pcvar_num(SaveXP) == 1) { SaveData(id) } PlayerXP[id] = 0 PlayerLevel[id] = 0 PlayerClass[id] = 0 } public SaveData(id) { new AuthID[35] get_user_authid(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-Mod",AuthID) format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) nvault_set(g_vault,vaultkey,vaultdata) return PLUGIN_CONTINUE } public LoadData(id) { new AuthID[35] get_user_authid(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-Mod",AuthID) format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) nvault_get(g_vault,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new playerxp[32], playerlevel[32] parse(vaultdata, playerxp, 31, playerlevel, 31) PlayerXP[id] = str_to_num(playerxp) PlayerLevel[id] = str_to_num(playerlevel) return PLUGIN_CONTINUE }
Some of this what u might see messy is my own trying
__________________

Replace it.
Last edited by KoNz; 02-10-2013 at 10:13.
|
|