make xp start all over
i have this code and whenever i switch to a diff animal,
the lvl and xp still stays the same as the old animal that i switched from.
How can i make it so that when i switch to a diff animal it will start all over or i can continue training the animal
Like
"im a lvl 6 dog with 23 xp.
Im gonna switch to my lvl 3 Cat with 16xp so i can lvl him up"
thx
PHP Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <vault> #define HUD_INTERVAL 1.0 #define CLASS_NOTHING 0 #define CLASS_DOG 1 #define CLASS_CAT 2 #define CLASS_HORSE 3 #define CLASS_COW 4 #define MAXCLASSES 5 new PlayerClass[33] new PlayerXP[33] new PlayerLevel[33] new const CLASSES[MAXCLASSES][] = { "None", "Dog", "Cat", "Horse", "Cow" } new msgtext new const LEVELS[6] = { 100, 200, 400, 800, 1600, 3200 } public client_putinserver(id) { set_task(HUD_INTERVAL, "ShowHUD", id) return PLUGIN_HANDLED } public plugin_init() { register_plugin("Animal Mod", "1.0", "XunTric") register_cvar("sv_animalmod", "1") register_event("DeathMsg", "DeathMsg", "a") register_cvar("XP_per_kill", "20") register_menucmd(register_menuid("menu_ChooseAnimal"),1023,"DoChooseAnimal"); register_event("ResetHUD", "ResetHud", "b") msgtext = get_user_msgid("StatusText") register_clcmd( "say /menu","ChooseAnimal", -1, "Shows The menu" ) } public SaveXP(id) { new authid[32]; get_user_authid(id,authid,31); new vaultkey[64], vaultdata[64]; format(vaultkey,63,"ANIMAL-%s-class",authid); format(vaultdata,63,"%d",PlayerClass[id]); set_vaultdata(vaultkey,vaultdata); format(vaultkey,63,"ANIMAL-%s-xp",authid); format(vaultdata,63,"%d",PlayerXP[id]); set_vaultdata(vaultkey,vaultdata); format(vaultkey,63,"ANIMAL-%s-level",authid); format(vaultdata,63,"%d",PlayerLevel[id]); set_vaultdata(vaultkey,vaultdata); } public LoadXP(id) { new authid[32]; get_user_authid(id,authid,31); new vaultkey[64], vaultdata[64]; format(vaultkey,63,"ANIMAL-%s-class",authid); get_vaultdata(vaultkey,vaultdata,63); PlayerClass[id] = str_to_num(vaultdata); format(vaultkey,63,"ANIMAL-%s-xp",authid); get_vaultdata(vaultkey,vaultdata,63); PlayerXP[id] = str_to_num(vaultdata); format(vaultkey,63,"ANIMAL-%s-level",authid); get_vaultdata(vaultkey,vaultdata,63); PlayerLevel[id] = str_to_num(vaultdata); } public client_connect(id) { if(get_cvar_num("SaveXP") == 1) { LoadXP(id) client_print(id, print_chat, "[Animal Mod] XP Loaded!") client_print(id, print_chat, "[Animal Mod] You are a %s with level %s and %s XP", PlayerClass[id], PlayerLevel[id], PlayerXP[id]) } } public client_disconnect(id) { if(get_cvar_num("SaveXP") == 1) { SaveXP(id) } } public ChooseAnimal(id) { new szMenuBody[256] new keys new nLen = format( szMenuBody, 255, "\yChoose Animal:^n" ) nLen += format( szMenuBody[nLen], 255-nLen, "^n\w1. dog" ) nLen += format( szMenuBody[nLen], 255-nLen, "^n\w2. cat" ) nLen += format( szMenuBody[nLen], 255-nLen, "^n\w3. Horse" ) nLen += format( szMenuBody[nLen], 255-nLen, "^n\w4. Cow" ) nLen += format( szMenuBody[nLen], 255-nLen, "^n^n\w0. Exit" ) keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<9) show_menu( id, keys, szMenuBody, -1 , "menu_ChooseAnimal") return PLUGIN_CONTINUE } public DoChooseAnimal(id, key) { switch( key ) { case 0: { if(PlayerClass[id] == CLASS_DOG) { client_print(id, print_chat, "[Animal Mod] You are allready a Dog! Choose something else!") ChooseAnimal(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_DOG client_print(id, print_chat, "[Animal Mod] You are now a Dog!") } case 1: { if(PlayerClass[id] == CLASS_CAT) { client_print(id, print_chat, "[Animal Mod] You are allready a Cat! Choose something else!") ChooseAnimal(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_CAT client_print(id, print_chat, "[Animal Mod] You are now a Cat!") } case 3: { if(PlayerClass[id] == CLASS_HORSE) { client_print(id, print_chat, "[Animal Mod] You are allready a Horse! Choose something else!") ChooseAnimal(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_HORSE client_print(id, print_chat, "[Animal Mod] You are now a Horse!") } case 4: { if(PlayerClass[id] == CLASS_COW) { client_print(id, print_chat, "[Animal Mod] You are allready a Cow! Choose something else!") ChooseAnimal(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_COW client_print(id, print_chat, "[Animal Mod] You are now a Cow!") } } ShowHUD(id) return PLUGIN_HANDLED } public ResetHud(id) { if(PlayerClass[id] == CLASS_NOTHING) { ChooseAnimal(id) return PLUGIN_HANDLED } return PLUGIN_HANDLED } public DeathMsg() { if(get_cvar_num("sv_animalmod") == 0) { return PLUGIN_HANDLED } new attacker = read_data(1) if(PlayerClass[attacker] == CLASS_NOTHING) { return PLUGIN_HANDLED } if(PlayerLevel[attacker] == 6) { return PLUGIN_HANDLED } PlayerXP[attacker] += get_cvar_num("XP_per_kill") if(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) { PlayerLevel[attacker] += 1 client_print(attacker, print_chat, "[Animal Mod] Congratulations! You are now level %i!", PlayerLevel[attacker]) if(get_cvar_num("SaveXP") == 1) { SaveXP(attacker) } ShowHUD(attacker) } ShowHUD(attacker) return PLUGIN_CONTINUE } public ShowHUD(id) { new HUD[51] format(HUD, 50, "[%s]Level: %i XP: %i", CLASSES[PlayerClass[id]], PlayerLevel[id], PlayerXP[id]) message_begin(MSG_ONE, msgtext, {0,0,0}, id) write_byte(0) write_string(HUD) message_end() set_task(HUD_INTERVAL, "ShowHUD", id) return }
|