Dėl vote neišnykimo
Posted: 2011 Sep 03 14:56
Sveiki, kaip padaryti jog žaidėjam kai atsiranda votas jis neišnyktų, nu kad žmogus prabalsavęs galėtų matyti dar procentus balsų. ir nuolat atsinaujintų. bet eitų balsuoti tik vieną kartą.
Code: Select all
#include <amxmodx> new gVoteMenu;new gVotes[2];new gVoting; public plugin_init(){ register_clcmd( "say ","CmdSay");} public CmdSay(id){ if(!(get_user_flags(id) & ADMIN_MAP)) return PLUGIN_CONTINUE; new szArg[192] read_args(szArg, charsmax(szArg)) remove_quotes(szArg) new szCmd[12], szRest[30]; strbreak(szArg, szCmd, charsmax(szCmd), szArg, charsmax(szArg)) if(equali(szCmd, "!votemap")) { strbreak(szArg, szRest, charsmax(szRest), szArg, charsmax(szArg)) if(!is_map_valid(szRest)) { client_print(id, print_chat, "[ INFO ] The map <%s> is not valid", szRest) return PLUGIN_HANDLED_MAIN; } StartVoteMap(id, szRest) return PLUGIN_HANDLED_MAIN; } return PLUGIN_CONTINUE;} public StartVoteMap(id, szMap[]){ if( gVoting ) { client_print(id, print_chat, "[ INFO ] There is already a vote going."); return PLUGIN_HANDLED; } new MenuTitle[255], MenuYes[255], MenuNo[255]; formatex(MenuTitle, 254, "Change map to <\r%s\w> ?", szMap) formatex(MenuYes, 254, "Yes ! <\y%d\w>", ( gVotes[0] * 100 ) / (gVotes[0] + gVotes[1])) formatex(MenuYes, 254, "No ! <\y%d\w>", ( gVotes[1] * 100 ) / (gVotes[0] + gVotes[1])) gVoteMenu = menu_create(MenuTitle, "menu_handler"); menu_additem(gVoteMenu, MenuYes, "0", 0); menu_additem(gVoteMenu, MenuNo, "1", 0); new players[32], pnum, tempid; get_players(players, pnum); for( new i; i<pnum; i++ ) { tempid = players[i]; menu_display(tempid, gVoteMenu, 0); gVoting++; } set_task(10.0, "EndVote", 555, szMap, 29); return PLUGIN_HANDLED;}public menu_handler(id, menu, item){ if( item == MENU_EXIT || !gVoting ) { return PLUGIN_HANDLED; } new data[6], szName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); new voteid = str_to_num(data); gVotes[voteid]++; return PLUGIN_HANDLED;}public EndVote(szMap){ if( gVotes[0] > gVotes[1] ) { client_print(0, print_chat, "Vote accepted <%d>", gVotes[0], szMap ); client_print(0, print_chat, "Changing map to <%s>", szMap ); } else if( gVotes[0] < gVotes[1] ) client_print(0, print_chat, "Vote refused <%d>", gVotes[1] ); else client_print(0, print_chat, "Vote tied at <%d> votes each.", gVotes[0] ); menu_destroy(gVoteMenu); gVoting = 0;}