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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: BoSS - 2014. június 06. - 16:03:15

Cím: Pálya választás
Írta: BoSS - 2014. június 06. - 16:03:15
Sziasztok!
Egy olyan scriptet szeretnék kérni,ami lehetõvé teszi azt,hogy egy rCon admin elõ hívjon egy dialogot és elõ jöjjön azokban a meglévõ mappok neve,és amelyikre több szavazás jön arra a mappra dobja el a playerokat!
Ez a script egy TDM szerverre kéne! Esetleg ha megoldható még úgy kéne,hogy õõõ hogy ha nincs rCon admin akkor is elõjöjjön csak mondjuk 60 percenként automatikusan!
Elõre is köszönöm szépen!
Cím: Pálya választás
Írta: kamionos - 2014. június 09. - 12:24:49
Jobban megfogalmazva le tudnád írni?
Cím: Pálya választás
Írta: BoSS - 2014. június 06. - 16:03:15
Sziasztok!
Egy olyan scriptet szeretnék kérni,ami lehetõvé teszi azt,hogy egy rCon admin elõ hívjon egy dialogot és elõ jöjjön azokban a meglévõ mappok neve,és amelyikre több szavazás jön arra a mappra dobja el a playerokat!
Ez a script egy TDM szerverre kéne! Esetleg ha megoldható még úgy kéne,hogy õõõ hogy ha nincs rCon admin akkor is elõjöjjön csak mondjuk 60 percenként automatikusan!
Elõre is köszönöm szépen!
Cím: Pálya választás
Írta: kamionos - 2014. június 09. - 12:24:49
Jobban megfogalmazva le tudnád írni?
Cím: Pálya választás
Írta: BackUP - 2014. június 09. - 16:50:10
Szerintem érthetõen megfogalmazta.. Bocsi de késõbb talán megírom, most nincs rá idõm.
Egyszavazást akar amit rcon admin tud létrehozni(ha nincs rcon admin bizonyos idõközönként jöjjön elõ), és ott lehet szavazni pályákra. Pl.: melyik DM-be dobjon.
Nemtudom pontosan, hogy mivel pályát írál úgy akarod e, hogy az objecteket cserélje ugyanazon a helyen, vagy csak más helyre tpzzen?
Cím: Pálya választás
Írta: BoSS - 2014. június 15. - 11:51:56
Idézetet írta: BackUP date=1402325410\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"48589\" data-ipsquote-contentclass=\"forums_Topic
Szerintem érthetõen megfogalmazta.. Bocsi de késõbb talán megírom, most nincs rá idõm.
Egyszavazást akar amit rcon admin tud létrehozni(ha nincs rcon admin bizonyos idõközönként jöjjön elõ), és ott lehet szavazni pályákra. Pl.: melyik DM-be dobjon.
Nemtudom pontosan, hogy mivel pályát írál úgy akarod e, hogy az objecteket cserélje ugyanazon a helyen, vagy csak más helyre tpzzen?
 
Szia!
Különbözõ pályákra dobna át,szóval minden pálya máshol helyezkedne el,nem az objectek cserélõdnének. Igazából ezzel a szavazós rendszerrel vagyok gondba a kisebb munkálatokat meg tudom már csinálni benne,ha maga a rendszer ,azaz a nehezebb része meg van írva már. Elõre is köszönöm segítséged!
Cím: Pálya választás
Írta: BackUP - 2014. június 15. - 13:28:04
Megírtam neked, már csak tesztelnem kell. Délután kirakom ide
Szerk:
itt van, könnyen testreszabható, fent elég a difiniált dolgokat átírni.
Hogyha 3-nál több/kevesebb pálya közül szeretnél szavaztatni, akkor lent az \'ErtekReset\'-nél is át kell írni, az nem nagy dolog van egy kis leírás róla.
 
#include <a_samp>
#include <zcmd>
#define SZAVAZAS_IDO 15 // ide írd, hogy automatikusan hány percenként induljon az új szavazás.
#define SZAVAZO_IDO 3 // ide írd, hogy hány másodpercig tartson a szavazás. (( ha letelt, utána vált pályát ))
#define DIALOG_SZAVAZAS 53 // ide írd a dialog ID-jét, hogy a módban lévõ dialogokkal ne keveredjen össze.
#define SZAVAZDIALOG ShowPlayerDialog(i, DIALOG_SZAVAZAS, DIALOG_STYLE_LIST, \"Szavazás\",\"Pálya1\\nPálya2\\nPálya3\",\"Szavaz\",\"\") // elég itt átírni a szavazós dialogot!
forward szavazas();
forward SzavazoIdo();
new szavazastimer;
new bool:szavazhat[MAX_PLAYERS];
new szavazatok[3]; //  a négyzetes zárójelbe akkora számot írj, amennyi pályára lehet szavazn
new nyertespalya = 0;
public szavazas()
{
for(new i;i < MAX_PLAYERS; i++)
{
    szavazhat = true;
    SZAVAZDIALOG;
}
KillTimer(szavazastimer);
SetTimer(\"SzavazoIdo\",1000*SZAVAZO_IDO,false);
ErtekReset();
}
public SzavazoIdo()
{
SendClientMessageToAll(-1,\"[szavazás] a szavazás ideje letelt!\");
szavazastimer = SetTimer(\"szavazas\",1000*60*SZAVAZAS_IDO,false);
new str1[15];
new str2[15];
new str3[15];
format(str1,sizeof(str1),\"* Pálya1: %d\",szavazatok[0]);
format(str2,sizeof(str2),\"* Pálya2: %d\",szavazatok[1]);
format(str3,sizeof(str3),\"* Pálya3: %d\",szavazatok[2]);
SendClientMessageToAll(-1, \" ------  SZAVAZATOK ------\");
SendClientMessageToAll(-1, str1);
SendClientMessageToAll(-1, str2);
SendClientMessageToAll(-1, str3);
SendClientMessageToAll(-1, \" \");
for(new i; i < sizeof(szavazatok); i++){    if(szavazatok > nyertespalya) nyertespalya = i;}
for(new ix; ix < MAX_PLAYERS; ix++)
{
szavazhat[ix] = false;
}
if(nyertespalya == szavazatok[0])
{
    SendClientMessageToAll(-1,\"Az 1. pálya nyert\");
    // ha az 1. pálya a nyertes, akkor ez történjen
}
else if(nyertespalya == szavazatok[1])
{
    SendClientMessageToAll(-1,\"A 2. pálya nyert\");
    // ha a 2. pálya a nyertes, akkor ez történjen
}
else if(nyertespalya == szavazatok[2])
{
    SendClientMessageToAll(-1,\"A 3. pálya nyert\");
    // ha a 3. pálya a nyertes, akkor ez történjen
}
}
public OnFilterScriptInit()
{
print(\" * Szavazás rendszer betöltve!\");
szavazastimer = SetTimer(\"szavazas\",1000*60*SZAVAZAS_IDO,false);
return 1;
}
CMD:szavazas(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
KillTimer(szavazastimer);
for(new i;i < MAX_PLAYERS; i++)
{
    SZAVAZDIALOG;
    szavazhat = true;
}
SetTimer(\"SzavazoIdo\",1000*SZAVAZO_IDO,false);
ErtekReset();
return 1;
}
public OnFilterScriptExit(){return 1;}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
    case DIALOG_SZAVAZAS:
    {
        new name[30];
        GetPlayerName(playerid, name, 40);
        if(listitem == 0)
   {
       if(szavazhat[playerid] == false) return SendClientMessage(playerid, -1, \"Elkéstél..\");
       new string[128];
       format(string, sizeof(string), \"[szavazás] %s a(z) 1. pályára szavazott!\",name);
       SendClientMessageToAll(-1,string);
       szavazatok[0] ++;
   }
   if(listitem == 1)
   {
       if(szavazhat[playerid] == false) return SendClientMessage(playerid, -1, \"Elkéstél..\");
       new string[128];
       format(string, sizeof(string), \"[szavazás] %s a(z) 2. pályára szavazott!\",name);
       SendClientMessageToAll(-1,string);
       szavazatok[1] ++;
   }
   if(listitem == 2)
   {
       if(szavazhat[playerid] == false) return SendClientMessage(playerid, -1, \"Elkéstél..\");
       new string[128];
       format(string, sizeof(string), \"[szavazás] %s a(z) 3. pályára szavazott!\",name);
       SendClientMessageToAll(-1,string);
       szavazatok[2] ++;
   }
    }
}
return 1;
}
stock ErtekReset()
{
szavazatok[0] = 0;
szavazatok[1] = 0;
szavazatok[2] = 0; // addig folytasd ameddig el nem érsz a szavazatok változó maximális értékéig! (( Figyelem! ha a változónak pl: 5-ös értéke van, akkor 0-4ig számozható! ))
}
Cím: Pálya választás
Írta: BoSS - 2014. június 20. - 15:09:26
Köszönöm szépen,ment a plusz :)
Cím: Pálya választás
Írta: BackUP - 2014. június 21. - 15:24:12
Zárd a témát