Witam, mógłby ktoś poprawić zapis? Aktualnie po zmianie mapy wszystko się zeruje.
#include <amxmodx> #include <hamsandwich> #include <nvault> new PLUGIN[] = "Rangi" new VERSION[] = "1.1" new AUTHOR[] = "Petpat" new TASK = 666 new poziom[33]; new ranga[][] = { "Silver I", "Silver II", "Silver III", "Silver Elite", "Silver Elite Master", "Gold Nova I", "Gold Nova II", "Gold Nova III", "Gold Nova Master", "Master Guardian I", "Master Guardian II", "Master Guardian Elite", "Distinguished Master Guardian", "Legendary Eagle", "Legendaty Eagle Maste", "Supreme Master First CLass", "The Global Elite" } new const wymaganezabojstwa[33] = { 29, 59, 119, 209, 324, 499, 729, 999, 1399, 1849, 2299, 2899, 3549, 4999, 5899, 6899, 7999, 9299 } new g_msgHudSync1, zapis_sprawdz, zabojstwa[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "respawn"); register_event("DeathMsg", "DeathMsg", "a"); register_message(get_user_msgid("SayText"), "Prefix"); g_msgHudSync1 = CreateHudSyncObj() zapis_sprawdz = nvault_open("ranga") if(zapis_sprawdz == INVALID_HANDLE) set_fail_state("[BLAD] Nie moge otworzyc pliku"); } public DeathMsg(){ new zabil = read_data(1) if(is_user_alive(zabil) && is_user_connected(zabil)){ zabojstwa[zabil]++ } } public client_connect(id){ wczytaj(id) Wczytaj_Dane(id) } public client_disconnect(id){ Zapisz_Dane(id) } public respawn(id){ if(!task_exists(id+TASK)) set_task(1.0, "Hud", id+TASK, .flags = "b"); } public Hud(id){ id -= TASK; if(!is_user_connected(id)){ remove_task(id+TASK) return PLUGIN_CONTINUE } if(zabojstwa[id] == 0){ poziom[id] = 0; } else if(zabojstwa[id] >= 1) { while(zabojstwa[id] >= wymaganezabojstwa[poziom[id]]) poziom[id]++ } set_hudmessage(0, 255, 255, 0.06, 0.23, 0, 6.0, 12.0) ShowSyncHudMsg(id, g_msgHudSync1, "|/|Poziom : %d^n|/|Zabicia: %d/%d^n|/|Ranga : %s^n|/|/sklepsms", poziom[id], zabojstwa[id], wymaganezabojstwa[poziom[id]], ranga[poziom[id]]) return PLUGIN_CONTINUE; } public Zapisz_Dane(id) { new name[64]; get_user_name(id, name, 63) Zapisz_DaneNick(id, name) } public Zapisz_DaneNick(id, name[]){ new vaultkey[128],vaultdata[256] formatex(vaultkey, 127 ,"%s-RNG", name); formatex(vaultdata, 255, " ^"%d^" ^"%d^"", zabojstwa[id], poziom[id]) nvault_set(zapis_sprawdz, vaultkey, vaultdata); } public Wczytaj_Dane(id){ new name[32] get_user_name(id, name, 31) Wczytaj_DaneNick(id, name) } public Wczytaj_DaneNick(id, name[]) { new vaultkey[128],vaultdata[256] formatex(vaultkey, 127, "%s-RNG", name); nvault_get(zapis_sprawdz, vaultkey, vaultdata, 255); if(nvault_get(zapis_sprawdz, vaultkey, vaultdata, 127)) { new zabojstwatemp[16], poziomtemp[16]; parse(vaultdata, zabojstwatemp, 15, poziomtemp, 15) zabojstwa[id] = str_to_num(zabojstwatemp) poziom[id] = str_to_num(poziomtemp) } } public wczytaj(id){ zabojstwa[id] = 0; poziom[id] = 0; } public client_infochanged(id){ new NowyNick[32], StaryNick[32]; get_user_info(id, "name", NowyNick, 31); get_user_name(id, StaryNick, 31); if(!equal(StaryNick, NowyNick)){ Zapisz_DaneNick(id, StaryNick); wczytaj(id); Wczytaj_DaneNick(id, NowyNick); } } public Prefix(msgId,msgDest,msgEnt) { new id = get_msg_arg_int(1); if(!is_user_connected(id)) return PLUGIN_CONTINUE; new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax( szTmp ) ) new szPrefix[64]; formatex(szPrefix,charsmax( szPrefix ),"^x04[^x01%s^x04]^x03", ranga[poziom[id]]); if(!equal(szTmp,"#Cstrike_Chat_All")) { add(szTmp2,charsmax(szTmp2),szPrefix); add(szTmp2,charsmax(szTmp2)," "); add(szTmp2,charsmax(szTmp2),szTmp); }else{ add(szTmp2,charsmax(szTmp2),szPrefix); add(szTmp2,charsmax(szTmp2),"^x03%s1^x01 : %s2"); } set_msg_arg_string(2,szTmp2); return PLUGIN_CONTINUE; }