Offline |
|
|
Csatlakozott: 2016.03.05. 20:56 Hozzászólások: 663
Megköszönt másnak: 27 alkalommal Megköszönték neki: 124 alkalommal
|
Üdv mindenkinek. Olyan problémával fordulok hozzátok, hogy 6almasok fragverseny pluginját kicsit át szeretném alakítani. Nos a probléma az lenne, hogy a fragverseny végeztével 6x vagy 9x írja ki chatbe amit 3x adtam csak meg. Valamint a beállított 500 dollár helyett 5000-et ad (Első helyezetnél) Maga a fragverseny végén lefutó parancsok: if(!SwitchFrag) { set_hudmessage(0, 255, 0, -1.0, 0.10, 0, 6.0, 30.0); if(Num == 1) show_hudmessage(0, view_hud[0], TopName1); { Dollar[id] += 500; ColorChat(0, GREEN, "%s^3 1. Helyezet ^1jutalma: ^4+500 Dollár", Chat_Prefix); } if(Num == 2) show_hudmessage(0, view_hud[1], TopName1, TopName2) { Dollar[id] += 500; ColorChat(0, GREEN, "%s^3 2. Helyezet ^1jutalma: ^4+500 Dollár", Chat_Prefix); } if(Num >= 3) show_hudmessage(0, view_hud[2], TopName1, TopName2, TopName3) { Dollar[id] += 500; ColorChat(0, GREEN, "%s^3 3. Helyezet ^1jutalma: ^4+500 Dollár", Chat_Prefix); } }
Teljes forráskód: /* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <colorchat> #define PLUGIN "Frag Verseny" #define VERSION "1.0" #define AUTHOR "6almasok" #define PREFIX "[Frag-V]" new const Chat_Prefix[] = "[Információ]"; new g_StartTime[33], g_EndTime[32], kill[33], Dollar[33], bool:SwitchFrag, bool:FirstTask, x_tempid new const view_hud[][] = { "A Fragverseny véget ért!^nElső: %s", "A Fragverseny véget ért!^nElső: %s | Második: %s", "A Fragverseny véget ért!^nElső: %s | Második: %s | Harmadik: %s", "Jelenleg Fragverseny van (%s-%s)^n1. %s - Ölés: %i", "Jelenleg Fragverseny van (%s-%s)^n1. %s - Ölés: %i | 2. %s - Ölés: %i", "Jelenleg Fragverseny van (%s-%s)^n1. %s - Ölés: %i | 2. %s - Ölés: %i | 3. %s - Ölés: %i", "A Fragverseny elkezdődik %s-kor..." }; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /fragmenu", "openMain") register_clcmd("say /kills", "openKillViewer") register_clcmd("START_TIME", "loadStart") register_clcmd("END_TIME", "loadEnd") register_clcmd("INDOK", "reset_kuld") } public halal() { new attacker = read_data(1) new victim = read_data(2) if(!SwitchFrag) return PLUGIN_HANDLED if(attacker == victim || attacker == 0) return PLUGIN_HANDLED kill[attacker]++ return PLUGIN_CONTINUE; } public loadStart(id) { g_StartTime[id] = EOS; read_args(g_StartTime, charsmax(g_StartTime)); remove_quotes(g_StartTime); if(contain(g_StartTime, ":") != -1) { if((strlen(g_StartTime) != 5)) { ColorChat(id, GREEN, "^4%s^1 Hibás idő formátum!", Chat_Prefix); g_StartTime[id] = EOS; return PLUGIN_HANDLED; } } else { ColorChat(id, GREEN, "^4%s^1 Hibás idő formátum!", Chat_Prefix); g_StartTime[id] = EOS; return PLUGIN_HANDLED; } openMain(id); return PLUGIN_HANDLED; } public loadEnd(id) { g_EndTime[id] = EOS; read_args(g_EndTime, charsmax(g_EndTime)); remove_quotes(g_EndTime); if(contain(g_EndTime, ":") != -1) { if((strlen(g_EndTime) != 5)) { ColorChat(id, GREEN, "^4%s^1 Hibás idő formátum!", Chat_Prefix); g_EndTime[id] = EOS; return PLUGIN_HANDLED; } } else { ColorChat(id, GREEN, "^4%s^1 Hibás idő formátum!", Chat_Prefix); g_EndTime[id] = EOS; return PLUGIN_HANDLED; } openMain(id); return PLUGIN_HANDLED; } public openMain(id) { if(!(get_user_flags(id) & ADMIN_CFG)) return PLUGIN_HANDLED new szMenu[121],Time[10]; get_time("%H:%M:%S", Time, charsmax(Time)); format(szMenu, charsmax(szMenu), "\r%s \wVezérlőpult^n\dIdő: %s", PREFIX, Time); new menu = menu_create(szMenu, "main_handler"); if(!SwitchFrag) formatex(szMenu, charsmax(szMenu), "Kezdési Idő: \y[%s]", g_StartTime[id] == EOS ? "pl. 10:00" : g_StartTime); else formatex(szMenu, charsmax(szMenu), "A fragverseny elindúlt \y[%s-%s]^n", g_StartTime, g_EndTime); menu_additem(menu, szMenu, "0", 0); if(!SwitchFrag) formatex(szMenu, charsmax(szMenu), "Végetérési Idő: \y[%s]^n", g_EndTime[id] == EOS ? "pl. 10:30" : g_EndTime); else formatex(szMenu, charsmax(szMenu), "\rBeállitások"); menu_additem(menu, szMenu, "1", 0); if(g_EndTime[id] != EOS && g_StartTime[id] != EOS && !SwitchFrag) menu_additem(menu, "\rVerseny elindítása!", "2", 0); menu_display(id, menu, 0); return PLUGIN_CONTINUE; } public main_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { if(!SwitchFrag) client_cmd(id, "messagemode START_TIME"); openMain(id); } case 1: { if(!SwitchFrag) { client_cmd(id, "messagemode END_TIME"); openMain(id); } else openSettings(id); } case 2: { FirstTask = true; openTimeChecker(id); FragVerseny[id] = 1; ColorChat(id, GREEN, "^4%s^1 A számláló elindúlt!", Chat_Prefix); } } menu_destroy(menu); return PLUGIN_HANDLED; } public openSettings(id) { new szMenu[121]; format(szMenu, charsmax(szMenu), "\r%s \wBeállítások", PREFIX); new menu = menu_create(szMenu, "settings_handler");; menu_additem(menu, "Verseny Leállítása", "0",0); menu_additem(menu, "Ölés Nullázása", "1",0); menu_additem(menu, "Játékosok Ölései", "2",0); menu_display(id, menu, 0); } public settings_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: openSelect(id); case 1: openReseter(id); case 2: openKillViewer(id); } menu_destroy(menu); return PLUGIN_HANDLED; } public openKillViewer(id) { new szMenu[121], players[32], szTemp[10], pnum, Name[32]; get_players(players, pnum); format(szMenu, charsmax(szMenu), "\r%s \wJátékosok Ölései", PREFIX); new menu = menu_create(szMenu, "viewer_handler"); for(new i; i < pnum; i++) { get_user_name(players[i], Name, charsmax(Name)); formatex(szMenu, charsmax(szMenu),"%s \d[\yÖlés:\r %i\d]", Name, kill[players[i]]); num_to_str(players[i], szTemp, charsmax(szTemp)); menu_additem(menu, szMenu, szTemp); } menu_display(id, menu); } public viewer_handler(id,menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } openKillViewer(id); return PLUGIN_CONTINUE; } public openSelect(id) { new menu = menu_create("\rBiztosan leakarod állítani a fragversenyt?", "select_handler"); menu_additem(menu, "Igen!", "0",0); menu_additem(menu, "Nem!", "1",0); menu_display(id, menu, 0); } public select_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } switch(item) { case 0: { FirstTask = false; SwitchFrag = false; ColorChat(0, GREEN, "^4%s ^1Egy ^3ADMIN ^1leállította a fragversenyt!", Chat_Prefix); } case 1: openMain(id); } menu_destroy(menu); return PLUGIN_HANDLED; } public openReseter(id) { new cim[121], players[32], pnum, Name[32], szTempid[10]; get_players(players, pnum); format(cim, charsmax(cim), "\yJátékos Ölésének nullázása!"); new menu = menu_create(cim, "reset_handler" ); for( new i; i<pnum; i++ ) { get_user_name(players[i], Name, charsmax(Name)); num_to_str(players[i], szTempid, charsmax(szTempid)); menu_additem(menu, Name, szTempid, 0); } menu_display(id, menu, 0); } public reset_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], szName[64], access, callback; menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); x_tempid = str_to_num(data); client_cmd(id, "messagemode INDOK"); menu_destroy(menu); return PLUGIN_HANDLED; } public reset_kuld(id) { new Msg[121], Name[32]; read_args(Msg, charsmax(Msg)); remove_quotes(Msg); get_user_name(x_tempid, Name, charsmax(Name)); kill[x_tempid] = 0; ColorChat(0, GREEN, "^4%s^3 %s^1 Ölései nullázva lettek! Indok: ^4%s", Chat_Prefix, Name, Msg); return PLUGIN_HANDLED; } public openTimeChecker(id) { if(FirstTask) set_task(0.5, "openTimeChecker",id); new Time[10], SecSReset[10], SecEReset[10]; get_time("%H:%M:%S", Time, charsmax(Time)); formatex(SecSReset, charsmax(SecSReset), "%s:00", g_StartTime); formatex(SecEReset, charsmax(SecEReset), "%s:00", g_EndTime); if(!SwitchFrag) { set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 0.5); show_hudmessage(0, view_hud[6], g_StartTime); } else SeeBestPlayers(id) if(equal(Time, SecSReset)) { server_cmd("sv_restart 1"); SwitchFrag = true; } if(equal(Time, SecEReset)) { FirstTask = false; SwitchFrag = false; SeeBestPlayers(id); } return PLUGIN_CONTINUE; } public SeeBestPlayers(id) { new Players[32], Num; get_players(Players, Num); SortCustom1D(Players, Num, "sort_bestthree"); new Top1 = Players[0]; new Top2 = Players[1]; new Top3 = Players[2]; new TopName1[32], TopName2[32], TopName3[32]; get_user_name(Top1, TopName1, charsmax(TopName1)); get_user_name(Top2, TopName2, charsmax(TopName2)); get_user_name(Top3, TopName3, charsmax(TopName3)); if(!SwitchFrag) { set_hudmessage(0, 255, 0, -1.0, 0.10, 0, 6.0, 30.0); if(Num == 1) show_hudmessage(0, view_hud[0], TopName1); { Dollar[id] += 500; ColorChat(0, GREEN, "%s^3 1. Helyezet ^1jutalma: ^4+500 Dollár", Chat_Prefix); } if(Num == 2) show_hudmessage(0, view_hud[1], TopName1, TopName2) { Dollar[id] += 500; ColorChat(0, GREEN, "%s^3 2. Helyezet ^1jutalma: ^4+500 Dollár", Chat_Prefix); } if(Num >= 3) show_hudmessage(0, view_hud[2], TopName1, TopName2, TopName3) { Dollar[id] += 500; ColorChat(0, GREEN, "%s^3 3. Helyezet ^1jutalma: ^4+500 Dollár", Chat_Prefix); } } else { set_hudmessage(0, 127, 255, -1.0, 0.10, 0, 6.0, 0.5); if(Num == 1) show_hudmessage(0, view_hud[3], g_StartTime, g_EndTime, TopName1, kill[Top1]); if(Num == 2) show_hudmessage(0, view_hud[4], g_StartTime, g_EndTime, TopName1, kill[Top1], TopName2, kill[Top2]); if(Num >= 3) show_hudmessage(0, view_hud[5], g_StartTime, g_EndTime, TopName1, kill[Top1], TopName2, kill[Top2], TopName3, kill[Top3]); } } public sort_bestthree(id1, id2) { if(kill[id1] > kill[id2]) return -1 else if(kill[id1] < kill[id2]) return 1 return 0 }
|
|