Wyświetla mi się HUD po śmierci gracza ale z moim statusem konta np. VIP/SVIP/FREE nie z jego. W czym problem?
Spoiler
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <nvault> #include <nvault_util> #include <fakemeta> #include <colorchat> #include <hamsandwich> #include <csx> #define PLUGIN "Rangi CS:GO" #define VERSION "1.4" #define AUTHOR "Lukovsky" #define MAX_RANGI 21 //Maksymalna ilosc rang #define PLIK_DATA "Rangi_csgo" //Nazwa pliku z danymi #define INFORMACJE_GRACZA 865 //www new const LINK_LOGO[] = "https://i.imgur.com/lti4tFr.png"; new Ranga_Gracza[33], Fragi_Gracza[33], Smierci_Gracza[33], Nick_Gracza[33][64]; new Nazwa_Rangi_CSGO[MAX_RANGI+1][]= { "Brak", "UnRanked", "Silver I", "Silver II", "Silver III", "Silver IV", "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", "Legendary Eagle Master", "Supreme Master First Class", "The Global Elite", "Master FFA", "Najwiekszy Bog FFA" } new Fragi_Rangi_CSGO[MAX_RANGI]= { 0, 50, 100, 200, 400, 700, 1000, 1500, 2100, 2800, 3700, 4700, 5900, 7400, 9000, 11000, 14000, 18000, 24000, 30000, 450001 } new SyncHudObj; new data; //Top 15 Ranks CS:GO #define MAX_TOP 15 new top_string[1512], top_name[MAX_TOP+1][64], top_ranga[MAX_TOP+1], top_fragi[MAX_TOP+1]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_dictionary("rangi_csgo.txt"); data = nvault_open(PLIK_DATA); register_clcmd("rangi","info", ADMIN_IMMUNITY, "rangi <nick gracza> <poziom rangi>"); register_clcmd("say /csgo", "Ranks_CS_GO"); register_clcmd("say /rangi", "ShowMotd"); RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); register_event("DeathMsg", "DeathMsg", "a"); register_message(get_user_msgid("SayText"),"handleSayText"); SyncHudObj = CreateHudSyncObj(); LoadTop(); } public info(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new dane[2][48]; read_argv(1, dane[0], 47); read_argv(2, dane[1], 47); new id2=0; id2 = get_user_index(dane[0]); if(equal(dane[0], "") || equal(dane[1], "")) { return client_print(id, print_console, "Nie wszystkie dane zostaly podane !"); } if(id2 > 0 && is_user_connected(id2)) { Ranga_Gracza[id2] = str_to_num(dane[1]); } else { new vaultkey[48],vaultdata[128]; format(vaultkey, charsmax(vaultkey), "%s ", dane[0]); nvault_get(data,vaultkey,vaultdata,127); replace_all(vaultdata, charsmax(vaultdata), "#", " "); new datas[3][33]; parse(vaultdata, datas[0], 32, datas[1], 32, datas[2], 32); new vaultkey2[48],vaultdata2[128]; format(vaultkey2, charsmax(vaultkey2), "%s ",dane[0]); format(vaultdata2, charsmax(vaultdata2), "#%d#%s#%s", str_to_num(dane[1]), datas[1], datas[2]); nvault_set(data,vaultkey2,vaultdata2); } return PLUGIN_CONTINUE; } public plugin_precache() precache_generic("sound/zbl/yay.mp3"); public client_authorized(id) { get_user_name(id, Nick_Gracza[id], 63); Ranga_Gracza[id] = 0; Fragi_Gracza[id] = 0; Smierci_Gracza[id] = 0; WczytajDane(id); } public client_disconnected(id) { ZapiszDane(id); Ranga_Gracza[id] = 0; Fragi_Gracza[id] = 0; Smierci_Gracza[id] = 0; } public Odrodzenie(id) { if(!task_exists(id+INFORMACJE_GRACZA)) set_task(0.1, "InformacjeHUD", id+INFORMACJE_GRACZA, _, _, "b"); if(is_user_alive(id) && !Smierci_Gracza[id]) { new iStaty[8], iTrafienia[8]; get_user_stats(id, iStaty, iTrafienia); Smierci_Gracza[id] = iStaty[1]; } return PLUGIN_CONTINUE; } public InformacjeHUD(id) { id -= INFORMACJE_GRACZA; if(!is_user_connected(id)) { remove_task(id+INFORMACJE_GRACZA); return PLUGIN_CONTINUE; } if(!is_user_alive(id)) { new target = pev(id, pev_iuser2); if(!target) return PLUGIN_CONTINUE; new sz_status[15]; if(get_user_flags(target) & ADMIN_LEVEL_H) format(sz_status, sizeof(sz_status), "VIP"); else if(get_user_flags(id) & ADMIN_LEVEL_G) format(sz_status, sizeof(sz_status), "SVIP"); else format(sz_status, sizeof(sz_status), "FREE"); new Float:fProcent = 0.0, Float:fRatio = 0.0; if(Smierci_Gracza[target]) { fRatio = float(Fragi_Gracza[target]) / float(Smierci_Gracza[target]); } if(Ranga_Gracza[target] == MAX_RANGI || Ranga_Gracza[target] == 0) fProcent = 0.0; else if(Ranga_Gracza[target] < MAX_RANGI) { new ileMa = Fragi_Gracza[target],ilePotrzeba = Fragi_Rangi_CSGO[Ranga_Gracza[target]],ilePotrzebaBylo = Fragi_Rangi_CSGO[Ranga_Gracza[target]-1]; fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0; } set_hudmessage(255, 255, 255, 0.01, 0.18, 0, 0.0, 0.3, 0.0, 0.0, 3); ShowSyncHudMsg(id, SyncHudObj, "%L", LANG_PLAYER, "RANGI_CSGO_HUD_TXT", sz_status, Nick_Gracza[target], Nazwa_Rangi_CSGO[Ranga_Gracza[target]], Fragi_Gracza[target]); return PLUGIN_CONTINUE; } new sz_status[15]; if(get_user_flags(id) & ADMIN_LEVEL_H) format(sz_status, sizeof(sz_status), "VIP"); else if(get_user_flags(id) & ADMIN_LEVEL_G) format(sz_status, sizeof(sz_status), "SVIP"); else format(sz_status, sizeof(sz_status), "FREE"); new Float:fProcent = 0.0, Float:fRatio = 0.0; if(Smierci_Gracza[id]) { fRatio = float(Fragi_Gracza[id]) / float(Smierci_Gracza[id]); } if(Ranga_Gracza[id] == MAX_RANGI || Ranga_Gracza[id] == 0) fProcent = 0.0; else if(Ranga_Gracza[id]>0) { new ileMa = Fragi_Gracza[id],ilePotrzeba = Fragi_Rangi_CSGO[Ranga_Gracza[id]],ilePotrzebaBylo = Fragi_Rangi_CSGO[Ranga_Gracza[id]-1]; fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0; } set_hudmessage(255, 255, 255, 0.01, 0.18, 0, 0.0, 0.3, 0.0, 0.0, 3); ShowSyncHudMsg(id, SyncHudObj, "%L", LANG_PLAYER, "RANGI_CSGO_HUD_TXT", sz_status, Nick_Gracza[id], Nazwa_Rangi_CSGO[Ranga_Gracza[id]], Fragi_Gracza[id], fRatio, fProcent); return PLUGIN_CONTINUE; } public DeathMsg() { new killer = read_data(1); new vid = read_data(2); if(is_user_connected(vid)) { if(is_user_connected(killer) && get_user_team(killer) != get_user_team(vid)) { Fragi_Gracza[killer]+=1; ZapiszDane(killer); SprawdzRange(killer); } Smierci_Gracza[vid] ++; } } public SprawdzRange(id) { if(Ranga_Gracza[id] == MAX_RANGI) return PLUGIN_HANDLED; new poziom_zdobyty=false; while(Fragi_Gracza[id] >= Fragi_Rangi_CSGO[Ranga_Gracza[id]]) { Ranga_Gracza[id]+=1; poziom_zdobyty=true; } if(poziom_zdobyty) { client_cmd(id, "mp3 play sound/zbl/yay.mp3"); ColorChat(id,GREEN, "[CS:GO]^x03 Gratulujemy!.^x01 Wlasnie awansowales na range^x04 %s ", Nazwa_Rangi_CSGO[Ranga_Gracza[id]]); } return PLUGIN_CONTINUE; } public handleSayText(msgId,msgDest,msgEnt) { new id = get_msg_arg_int(1); if(is_user_connected(id)) { new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax( szTmp ) ); new szPrefix[64]; formatex(szPrefix,charsmax( szPrefix ),"^x01*^x03[%s]^x01*",Nazwa_Rangi_CSGO[Ranga_Gracza[id]]); if(!equal(szTmp,"#Cstrike_Chat_All")){ add(szTmp2, charsmax(szTmp2), szPrefix); add(szTmp2, charsmax(szTmp2), " "); add(szTmp2, charsmax(szTmp2), szTmp); } else{ new szPlayerName[64]; get_user_name(id, szPlayerName, charsmax(szPlayerName)); get_msg_arg_string(4, szTmp, charsmax(szTmp)); set_msg_arg_string(4, ""); add(szTmp2, charsmax(szTmp2), szPrefix); add(szTmp2, charsmax(szTmp2), "^x03 "); add(szTmp2, charsmax(szTmp2), szPlayerName); add(szTmp2, charsmax(szTmp2), "^x01 : "); add(szTmp2, charsmax(szTmp2), szTmp) } set_msg_arg_string(2,szTmp2); } return PLUGIN_CONTINUE; } public Ranks_CS_GO(id){ show_motd(id, top_string, "Ranks CS:GO"); } LoadTop() { new key[64], data[33], timestamp, pos, vault = nvault_util_open(PLIK_DATA); new num = nvault_util_count(vault); new dane[6][32], name[64], ranga, fragi; for(new i = 1; i <= num; i ++) { pos = nvault_util_read(vault, pos, key, 63, data, 31, timestamp) replace_all(data, 255, "#", " "); parse(data, dane[0], 32, dane[1], 32); copy(name, 63, key); ranga = max(1, str_to_num(dane[0])); fragi = str_to_num(dane[1]); for(new j = 0; j < MAX_TOP; j ++) { if(fragi>= top_fragi[j]) { for(new k = MAX_TOP; k > j; k --) { copy(top_name[k], 31, top_name[k-1]); top_ranga[k] = top_ranga[k-1]; top_fragi[k] = top_fragi[k-1]; } copy(top_name[j], 63, name); top_ranga[j] = ranga; top_fragi[j] = fragi; break; } } } new len = format(top_string, 1511, "<body bgcolor=#121212><center><img src=^"%s^" height=^"110^" width=^"470^"><hr size=2 color=#3399FF><table style=^"color:white;width:750%^";>", LINK_LOGO); len += format(top_string[len], 1511 - len, "<thead><tr style=^"color:orange;^"><td>Miejsce<td>Gracz<td>Ranga<td>Fragi</tr>"); for(new l = 0; l < MAX_TOP; l ++){ if(equal(top_name[l], "")) break; len += format(top_string[len], 1511 - len, "<tr><td><font color=red>%i.<td>%s<td>%s<td>%i", l+1, top_name[l], Nazwa_Rangi_CSGO[top_ranga[l]], top_fragi[l]); } len += format(top_string[len], 1511 - len, "</table><hr size=2 color=#3399FF></center></body>"); return PLUGIN_CONTINUE; } public ZapiszDane(id) { new vault1[64], vault2[128]; format(vault1, charsmax(vault1), "%s ",Nick_Gracza[id]); format(vault2, charsmax(vault2), "#%d#%d#%d",Ranga_Gracza[id], Fragi_Gracza[id], Smierci_Gracza[id]); nvault_set(data, vault1, vault2); } public WczytajDane(id) { new vault1[64], vault2[128]; format(vault1, charsmax(vault1), "%s ",Nick_Gracza[id]); nvault_get(data, vault1, vault2, 127); replace_all(vault2, 127, "#", " "); new dat[3][33]; parse(vault2, dat[0], 32, dat[1], 32, dat[2], 32); Ranga_Gracza[id] = str_to_num(dat[0])>0?str_to_num(dat[0]):1; Fragi_Gracza[id] = str_to_num(dat[1]); Smierci_Gracza[id] = str_to_num(dat[2]); } public ShowMotd(id) show_motd(id, "rangi.txt", "Informacje o rangach"); /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Użytkownik Dabster edytował ten post 08.01.2020 22:21