Znalazlem ostatnio plugin na AlliedMods, ktory po rozegraniu x rund daje vota na przedluzenie mapy o kolejne x rund. Problem tkwi w tym, ze plugin ten zlicza wszystkie rundy (nawet te przed restartem - np. gdy czas rundy mija, badz gdy jest jedna osoba i podklada paki, a pozniej laczy sie druga i nastepuje restart). W tym momencie po restarcie vot nastepuje np. przy 10 rundzie, a mam ustawiona na 19 runde. Dzieje sie tak, poniewaz w pluginie mozna ustawic vot na dana runde (pobieranie cvaru maxrounds + wybor danej rundy), a chcialbym, zeby wyskakiwal w ostatniej i sam pobieral dane kiedy jest ta ostatnia runda. Dodatkowo jakims dziwnym sposobem plugin dolicza mi rundy do kolejnych map, wieczorem na mapie mialem mr20, wchodzac rano bylo juz mr45. Chcialbym rowniez, zeby vot wyskakiwal tylko raz, czyli mozliwosc jednorazowego przedluzenia mapy o x rund.
Jezeli znajdzie sie ktos chetny, to bardzo bym prosil o pomoc, oczywiscie bedzie +.
sma:
#include <amxmodx> new g_iRoundCount = 1 new g_iVoteCount[2] public plugin_init() { register_plugin("More Rounds?", "0.1", "Fysiks") register_event("HLTV", "hookNewRound", "a", "1=0", "2=0") } public hookNewRound() { g_iRoundCount++ if( g_iRoundCount == 19 ) { // Start Vote for extra rounds startVote() } } startVote() { new menu = menu_create("\yPrzedluzyc mape o 5 rund?", "handleVotes") menu_additem(menu, "Tak", "y") menu_additem(menu, "\rNie", "n") new iPlayers[32], iNumPlayers get_players(iPlayers, iNumPlayers) for(new i = 0; i < iNumPlayers; i++) { menu_display(iPlayers[i], menu, 0) } set_task(10.0, "endVote") } public handleVotes(id, menu, item) { g_iVoteCount[item]++ // not 100% sure this works correctly client_print(0, print_chat, "Gracz glosowal na : %s", item ? "NIE" : "TAK") // Check to see if this prints correctly when you vote. } public endVote() { if( g_iVoteCount[0] > g_iVoteCount[1] ) { set_cvar_num("mp_maxrounds", get_cvar_num("mp_maxrounds") + 5) client_print(0, print_chat, "Votowanie udane. Gramy 5 rund wiecej...") set_hudmessage(0, 255, 0, 0.01, 0.40, 0, 0, 5.0) show_hudmessage(0, "Votowanie udane. Gramy 5 rund wiecej...") } else { client_print(0, print_chat, "Votowanie nieudane. Mapa zmieni sie po tej rundzie...") set_hudmessage(0, 255, 0, 0.01, 0.40, 0, 0, 5.0) show_hudmessage(0, "Votowanie nieudane. Mapa zmieni sie po tej rundzie...") } }
Z góry dziekuje za pomoc. Pozdrawiam