GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: Live - 2013. március 01. - 19:08:27

Cím: Szavazás Rendszer (Javítva)
Írta: Live - 2013. március 01. - 19:08:27
Helló :)
Készítettem egy kisebb szavazás rendszert úgy az unalom kedvéért :D
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;
}
Cím: Szavazás Rendszer (Javítva)
Írta: Cappsy - 2013. március 01. - 19:19:49
Ügyes :)
Cím: Szavazás Rendszer (Javítva)
Írta: ZyZu. - 2013. március 01. - 19:34:59
Nagyon jó lett! Nekem tetszik! :)
Cím: Szavazás Rendszer (Javítva)
Írta: Live - 2013. március 01. - 19:46:06
Köszönöm
Cím: Szavazás Rendszer (Javítva)
Írta: Beckham - 2013. március 01. - 20:08:57
Ügyes vagy :)
Cím: Szavazás Rendszer (Javítva)
Írta: citromhun - 2013. március 03. - 21:53:24
Grat!!
Ezt fel használom, ha nem baj. :)
Cím: Szavazás Rendszer (Javítva)
Írta: !Shakur - 2013. március 03. - 22:06:07
Ezt szépen megírtad. GRT!  :thumbsup:
Cím: Szavazás Rendszer (Javítva)
Írta: Raidon - 2013. március 03. - 23:03:18
Szép lett tuti hogy dobom a +-t  :thumbsup:

Nekem tetszik, még csinálhatnál hasonló dolgokat :)
Cím: Szavazás Rendszer (Javítva)
Írta: Bali - 2013. március 05. - 13:50:55
Tetszik  ;D
Lehet hogy felhasználom
Cím: Szavazás Rendszer (Javítva)
Írta: Norby - 2013. március 15. - 01:21:56
Nem lett rossz bár gondold át..
Elindít valaki egy szavazatot 3 perc még folyamatban van és már szavaztak van jó pár szavazat, de eközben feljön egy játékos vagy akár kilép. Mi történik? A szavazatok nullázódnak.
Cím: Szavazás Rendszer (Javítva)
Írta: Dante Sanders - 2013. március 17. - 10:14:36
Szep munka!
Cím: Szavazás Rendszer (Javítva)
Írta: scripter01 - 2013. március 23. - 06:30:06
Hát nem tudom mi értelme van de biztos van maximum DM,TDM,Freeroman szerverekre :)
Cím: Szavazás Rendszer (Javítva)
Írta: Rexii - 2013. március 24. - 00:06:12
Szép munka, ment a +!  :thumbsup:
Cím: Szavazás Rendszer (Javítva)
Írta: Norby - 2013. március 26. - 17:45:18
Hát.. Nem tudom mi van, de még mindig nem javítottad.
Így lenne a jó szerintem:
 
public OnGameModeInit() { //Vagy OnFilterScriptInit
YesVotes = 0;
NoVotes = 0;
return 1;
}
public OnGameModeExit() { //Vagy OnFilterScriptExit
YesVotes = 0;
NoVotes = 0;
return 1;
}
Cím: Szavazás Rendszer (Javítva)
Írta: Live - 2013. március 26. - 21:25:42
Idézetet írta: Norby date=1364316318\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34316\" data-ipsquote-contentclass=\"forums_Topic
Hát.. Nem tudom mi van, de még mindig nem javítottad.
Így lenne a jó szerintem:
 
public OnGameModeInit() { //Vagy OnFilterScriptInit
YesVotes = 0;
NoVotes = 0;
return 1;
}
public OnGameModeExit() { //Vagy OnFilterScriptExit
YesVotes = 0;
NoVotes = 0;
return 1;
}

 

Ezeket is?
 
Vote = false; 
Voted[playerid] = 0;
Cím: Szavazás Rendszer (Javítva)
Írta: Norby - 2013. március 27. - 10:13:51
Ez maradhat a helyén, mert csak annak a játékosnak nullázza aki épp feljön szóval nem mindenkinek.
Voted[playerid] = 0;
Amúgy is Voted[playerid] ezt nem is tudnád az OnGameModeInit alá rakni. :)
Ez pedig megint rossz helyen van, ezt is helyezd át.
Vote = false;
Megoldás:
 
public OnGameModeInit() { //Vagy OnFilterScriptInit
Vote = false;
YesVotes = 0;
NoVotes = 0;
return 1;
}
public OnGameModeExit() { //Vagy OnFilterScriptExit
Vote = false;
YesVotes = 0;
NoVotes = 0;
return 1;
}

 
VoteTimer(playerid) ez alá megint csak felesleges a Voted[playerid] = 0;
Megoldás:
 

forward VoteTimer();
public VoteTimer() {
        new string[255];
        format(string, 128, \"{FFA600}* A szavazás lezárult! {dddddd}(%d igen, %d nem)\", YesVotes, NoVotes);
        SCMToAll(-1, string);
        Vote = false;
        NoVotes = 0;
        YesVotes = 0;
        for(new i = 0; i < MAX_PLAYERS; i++) {
              if(!IsPlayerConnected(i)) continue;
              Voted = 0;
        }
        return 1;
}

 
És az hogy ha már szavazott szerintem felesleges úgy ellenõrizni, hogy ha igen akkor 1 ha nem akkor 2 elé lenne egy értéket adni neki.

Igenre szavazott:


if(Voted[playerid] == 1) return SendClientMessage(playerid, -1, \"Már szavaztál\");


Voted[playerid] = 1;


Nemre szavazott:


if(Voted[playerid] == 1) return SendClientMessage(playerid, -1, \"Már szavaztál\");


Voted[playerid] = 1;


És ha lezárult a szavazás minenkinek visszaállítani 0-ra ami már fentebb leírtam :).

Vagy Voted[playerid] is mehetne bool változóban.
Cím: Szavazás Rendszer (Javítva)
Írta: Live - 2013. március 27. - 11:14:38
JAVÍTVA
Cím: Szavazás Rendszer (Javítva)
Írta: Narancs - 2013. március 27. - 11:53:46
Ezt biztos hogy te csináltad?  :facepalm: :facepalm:

Különleges módon ugyan ilyet találtam...


http://forum.sa-mp.com/showthread.php?t=305344

Ha te csináltad akkor bocsi, csak nagyon zavar  :(
Cím: Szavazás Rendszer (Javítva)
Írta: Live - 2013. március 27. - 12:40:11
Idézetet írta: Narancs date=1364381626\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34316\" data-ipsquote-contentclass=\"forums_Topic
Ezt biztos hogy te csináltad?  :facepalm: :facepalm:

Különleges módon ugyan ilyet találtam...


http://forum.sa-mp.com/showthread.php?t=305344

Ha te csináltad akkor bocsi, csak nagyon zavar  :(



Bocs, de teljesen más amit belinkeltél.


Én nem szoktam lopni dolgokat, magam írok mindent.
Cím: Szavazás Rendszer (Javítva)
Írta: Scripter,mapper [Aldo] - 2013. március 27. - 12:49:29
Szèp ment a +.Lehet felhasználom.Am narancs amit te találtál az Dialògos ez meg nem...  :facepalm: legalább nem csak a nevet hanem a kódot is megnèzted volna....
Cím: Szavazás Rendszer (Javítva)
Írta: Narancs - 2013. március 27. - 13:09:56
\" post=\"407232\" timestamp=\"1364384969\"]
Szèp ment a +.Lehet felhasználom.Am narancs amit te találtál az Dialògos ez meg nem...  :facepalm: legalább nem csak a nevet hanem a kódot is megnèzted volna....
 
[/quote]
Szép bummp gratulálok.
Cím: Szavazás Rendszer (Javítva)
Írta: Scripter,mapper [Aldo] - 2013. március 27. - 13:13:54
Idézetet írta: Narancs date=1364386196\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34316\" data-ipsquote-contentclass=\"forums_Topic

link=topic=38824.msg407232#msg407232 date=1364384969]
Szèp ment a +.Lehet felhasználom.Am narancs amit te találtál az Dialògos ez meg nem...  :facepalm: legalább nem csak a nevet hanem a kódot is megnèzted volna....
 
Szép bummp gratulálok.
 
[/quote]


Mi bajod van :O ?
Cím: Szavazás Rendszer (Javítva)
Írta: Norby - 2013. március 27. - 13:20:40
forward VoteTimer(playerid);
Benne hagytad a playerid.
Amúgy most már tökéletes :DD
Cím: Szavazás Rendszer (Javítva)
Írta: Live - 2013. március 27. - 13:28:19
Kösz, hogy szóltál :D
Javítva.
Cím: Szavazás Rendszer (Javítva)
Írta: ][Fo[R]cE][ - 2013. április 05. - 11:20:01
nagyon vagány lett! :D tetszenek a munkáid, így tovább! :P