Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugin generated by AMXX-Studio */
- #include <amxmodx>
- #include <amxmisc>
- #include <nvault>
- #include <nvault_util>
- #include <fakemeta>
- #include <colorchat>
- #include <hamsandwich>
- #define PLUGIN "Rangi CS:GO"
- #define VERSION "1.4"
- #define AUTHOR "Lukensky"
- #define MAX_RANGI 19 //Maksymalna ilosc rang
- #define DATA "Rangi_csgo" //Nazwa pliku z danymi
- #define INFORMACJE_GRACZA 865
- //www
- new const LINK_LOGO[] = "https://img.pogrywamy.pl/dzialy/dd2.png";
- new Ranga_Gracza[33],
- Fragi_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"
- }
- new Fragi_Rangi_CSGO[MAX_RANGI]=
- {
- 0,
- 20,
- 40,
- 100,
- 180,
- 280,
- 420,
- 560,
- 730,
- 1000,
- 1400,
- 1900,
- 2500,
- 3100,
- 4499,
- 5499,
- 6700,
- 8000,
- 9500
- }
- 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(DATA);
- 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 client_authorized(id)
- {
- get_user_name(id, Nick_Gracza[id], 63);
- Ranga_Gracza[id] = 0;
- Fragi_Gracza[id] = 0;
- WczytajDane(id);
- }
- public client_disconnectd(id)
- {
- ZapiszDane(id);
- Ranga_Gracza[id] = 0;
- Fragi_Gracza[id] = 0;
- }
- public Odrodzenie(id)
- {
- if(!task_exists(id+INFORMACJE_GRACZA))
- set_task(0.1, "InformacjeHUD", id+INFORMACJE_GRACZA, _, _, "b");
- 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
- format(sz_status, sizeof(sz_status), "FREE");
- new Float:fProcent = 0.0;
- 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, -1);
- ShowSyncHudMsg(id, SyncHudObj, "%L", LANG_PLAYER, "RANGI_CSGO_HUD_TXT", sz_status, Nick_Gracza[target], Nazwa_Rangi_CSGO[Ranga_Gracza[target]], Fragi_Gracza[target], fProcent);
- return PLUGIN_CONTINUE;
- }
- new sz_status[15];
- if(get_user_flags(id) & ADMIN_LEVEL_H)
- format(sz_status, charsmax(sz_status), "VIP");
- else
- format(sz_status, charsmax(sz_status), "FREE");
- new Float:fProcent = 0.0;
- 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, -1);
- ShowSyncHudMsg(id, SyncHudObj, "%L", LANG_PLAYER, "RANGI_CSGO_HUD_TXT", sz_status, Nick_Gracza[id], Nazwa_Rangi_CSGO[Ranga_Gracza[id]], Fragi_Gracza[id], fProcent);
- return PLUGIN_CONTINUE;
- }
- public DeathMsg()
- {
- new killer = read_data(1);
- new vid = read_data(2);
- if(is_user_connected(killer) && is_user_connected(vid) && get_user_team(killer) != get_user_team(vid))
- {
- Fragi_Gracza[killer]+=1;
- ZapiszDane(killer);
- SprawdzRange(killer);
- }
- }
- 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)
- {
- 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))
- return PLUGIN_CONTINUE;
- new szTmp[192], szTmp2[192];
- get_msg_arg_string(2, szTmp, charsmax(szTmp));
- new szPrefix[64];
- format(szPrefix, 63, "^x01*^x03[%s]^x01*",Nazwa_Rangi_CSGO[Ranga_Gracza[id]]);
- if(!equal(szTmp,"#Cstrike_Chat_All"))
- {
- add(szTmp2, charsmax(szTmp2), "^x01");
- 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), "^x01");
- 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(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",Ranga_Gracza[id], Fragi_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[2][33];
- parse(vault2, dat[0], 32, dat[1], 32);
- Ranga_Gracza[id] = str_to_num(dat[0])>0?str_to_num(dat[0]):1;
- Fragi_Gracza[id] = str_to_num(dat[1]);
- }
- 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 }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement