Helló
Készítettem egy kisebb szavazás rendszert úgy az unalom kedvéért
Teszt megvolt 3 emberrel.
Parancsok:/addvote - Indíthatsz új szavazást (3 perc míg lezárul, addig nem indíthat senki újat)
/yes - Igennel szavazol
/no - Nemmel szavazol
Kód:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define SCM SendClientMessage
#define SCMToAll SendClientMessageToAll
#define MINUTE 60000
new bool:Vote,
Voted[MAX_PLAYERS],
YesVotes,
NoVotes,
VoteTimeTimer;
forward VoteTimer();
public OnPlayerConnect(playerid) { Voted[playerid] = 0; return 1; }
public OnPlayerDisconnect(playerid) { Voted[playerid] = 0; return 1; }
public OnFilterScriptInit() { Vote = false; YesVotes = 0; NoVotes = 0; return 1; }
public OnFilterScriptExit() { Vote = false; YesVotes = 0; NoVotes = 0; return 1; }
CMD:addvote(playerid, params[]) {
new question[128], name[24+1], string[255];
if(Vote == true) return SCM(playerid, -1, \"{FF4646}* Jelenleg már fut egy szavazás!\");
if(sscanf(params, \"s[128]\", question)) return SCM(playerid, -1, \"{ffff99}Használat: /addvote [{dddddd}Kérdés{ffff99}]\");
Vote = true;
GetPlayerName(playerid, name, 24);
format(string, 255, \"{DDDDDD}- Vote - {FFA600}%s elindított egy szavazást!\", name);
SCM(playerid, -1, string);
format(string, 255, \"{DDDDDD}- Vote - {FFA600}Kérdés: %s\", question);
SCM(playerid, -1, string);
VoteTimeTimer = SetTimer(\"VoteTimer\",3*MINUTE,true);
return 1;
}
CMD:yes(playerid, params[]) {
new name[24+1], string[255];
if(Vote == false) return SCM(playerid, -1, \"{FF4646}* Nem fut szavazás!\");
if(Voted[playerid] == 1) return SCM(playerid, -1, \"{FF4646}* Te már szavaztál!\");
GetPlayerName(playerid, name, 24);
Voted[playerid] = 1;
YesVotes++;
SCM(playerid, -1, \"{33AA33}* Te igennel szavaztál!\");
format(string, 128, \"{DDDDDD}- Vote - {FFA600}%s igennel szavazott!\", name);
SCMToAll(-1, string);
format(string, 128, \"{DDDDDD}- Vote - {FFA600}Jelenleg {DDDDDD}%d {FFA600}igen szavazat van!\", YesVotes);
SCMToAll(-1, string);
return 1;
}
CMD:no(playerid, params[]) {
new name[24+1], string[255];
if(Vote == false) return SCM(playerid, -1, \"{FF4646}* Nem fut szavazás!\");
if(Voted[playerid] == 1) return SCM(playerid, -1, \"{FF4646}* Te már szavaztál!\");
GetPlayerName(playerid, name, 24);
Voted[playerid] = 1;
NoVotes++;
SCM(playerid, -1, \"{33AA33}* Te nemmel szavaztál!\");
format(string, 128, \"{DDDDDD}- Vote - {FFA600}%s nemmel szavazott!\", name);
SCMToAll(-1, string);
format(string, 128, \"{DDDDDD]- Vote - {FFA600}Jelenleg {DDDDDD}%d {FFA600}nem szavazat van!\", NoVotes);
SCMToAll(-1, string);
return 1;
}
public VoteTimer() {
new string[255];
format(string, 128, \"{DDDDDD}- Vote - {FFA600}A szavazás lezárult! (%d igen, %d nem)\", YesVotes, NoVotes);
SCMToAll(-1, string);
Vote = false;
NoVotes = 0;
YesVotes = 0;
KillTimer(VoteTimeTimer);
for(new i = 0; i < MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
Voted = 0;
}
return 1;
}