Szerző Téma: Szavazós dialog  (Megtekintve 850 alkalommal)

Nem elérhető inf

  • 366
    • Profil megtekintése
Szavazós dialog
« Dátum: 2013. október 13. - 16:00:29 »
0 Show voters
Sziasztok!

Kérnék egy olyan scriptet hogy van egy dialog és abban van 10 darab választhatósági lehetõség és amelyikre többen szavaznak az fog érvénybe lépni.


Elõre is köszi!


Közben csináltam egy kis alapot:

 
#include 
#include
new Map1;
new Map2;
new Map3;
new Map4;
new Map5;
new Map6;
new Map7;
new Map8;
new Map9;
new Map10;
CMD:telesteszt(playerid, params[])
{
new DIALOGstring[3000];
   format(DIALOGstring, sizeof(DIALOGstring),\"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\",
   \"Map 1\\n\",
   \"Map 2\\n\",
   \"Map 3\\n\",
   \"Map 4\\n\",
   \"Map 5\\n\",
   \"Map 6\\n\",
   \"Map 7\\n\",
   \"Map 8\\n\",
   \"Map 9\\n\",
   \"Map 10\\n\");
   ShowPlayerDialog(playerid, 179, DIALOG_STYLE_MSGBOX, \"Pályák\", DIALOGstring, \"Szavazás\",\"\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==179)
{
if(response)
{
if(listitem==0)
{
Map1++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==1)
{
Map2++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==2)
{
Map3++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==3)
{
Map4++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==4)
{
Map5++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==5)
{
Map6++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==6)
{
Map7++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==7)
{
Map8++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==8)
{
Map9++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
if(listitem==9)
{
Map10++;
SendClientMessage(playerid, 0,\"Sikeresen leadtad szavazatodat!\");
}
}
}
return 1;
}
« Utoljára szerkesztve: 2013. október 13. - 19:43:11 írta InFIeL_HuN »

Szavazós dialog
« Válasz #1 Dátum: 2013. október 13. - 18:00:02 »
+1 Show voters
Szia!
Találtam angol forumon egy ilyesmi scriptet, érdemes megnézni mert szerintem egészen jó!  :smokin:
A script: http://forum.sa-mp.com/showthread.php?t=201339
Üdv: MesterMartino

Nem elérhető inf

  • 366
    • Profil megtekintése
Szavazós dialog
« Válasz #2 Dátum: 2013. október 13. - 19:43:47 »
0 Show voters
Nem tudtam megcsinálni.
De közben csináltam egy kis alapot nem tudnád tovább írni?

Szavazós dialog
« Válasz #3 Dátum: 2013. október 13. - 20:19:13 »
+1 Show voters
Én kicsit másképpen képzelném el ezt az egészet, nem csináltam meg neked az egészet de egy példascriptet elkészítettem neked!  :smokin:
A script:
 
#include 
#include
#include  //Saját függvénykönyvtár.
#define DIALOG_VOTE 1
#pragma tabsize 0
stock PName(playerid)
{
new nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,sizeof(nev));
return nev;
}
new map1 = 0;
new map2 = 0;
new map3 = 0;
new tartozkodik = 0;
CMD:makevote(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return msg(playerid,piros,\"Nem vagy Rcon admin\");
for(new i; i < MAX_PLAYERS; i++)
{
          ShowPlayerDialog(i,DIALOG_STYLE_LIST,DIALOG_VOTE,\"Pályák\",\"Map1\\nMap2\\nMap3\",\"Szavazás\",\"Tartózkodás\");
          //Én most csak 3 pályát csinálok, de te ezt kiegészítheted 10-el.
    SetTimer(\"votetimer\",60000,false); //Indítok egy timert.
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_VOTE)
{
    if(!response)
{
    new string[100];
   format(string,sizeof(string),\"%s tartózkodik a szavazástól.\",PName(playerid));
   msgall(RED,string);
   tartozkodik ++;
}
if(listitem == 0)
{
    new string[100];
    format(string,sizeof(string),\"%s a map 1 re szavazott\",PName(playerid));
    msgall(RED,string);
    map1 ++;
}
if(listitem == 1)
{
    new string[100];
    format(string,sizeof(string),\"%s a map 2 re szavazott\",PName(playerid));
    msgall(RED,string);
    map2 ++;
}
if(listitem == 2)
{
    new string[100];
    format(string,sizeof(string),\"%s a map 3 re szavazott\",PName(playerid));
    msgall(RED,string);
    map3 ++;
}
}
return 1;
}
forward votetimer();
public votetimer(); //Amikor a timer lejár.
{
msgall(feher,\"Szavazás infó:\");
new string[100];
format(string,sizeof(string),\"%i játékos tartózkodott\",tartozkodik);
msgall(RED,string);
new string2[100];
format(string2,sizeof(string2),\"%i játékos a map1 -re szavazott\",map1);
msgall(RED,string2);
new string3[100];
format(string3,sizeof(string3),\"%i játékos a map2 -re szavazott\",map2);
msgall(RED,string3);
new string4[100];
format(string4,sizeof(string4),\"%i játékos a map3 -re szavazott\",map3);
msgall(RED,string4);
//Reseteljük az értékeket:
map1 = 0;
map2 = 0;
map3 = 0;
tartozkodik = 0;
}

 
További jó forumozást remélem tudtam segíteni.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Szavazós dialog
« Válasz #4 Dátum: 2013. október 13. - 20:42:49 »
0 Show voters
format(DIALOGstring, sizeof(DIALOGstring),\"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\",
   \"Map 1\\n\",
   \"Map 2\\n\",
   \"Map 3\\n\",
   \"Map 4\\n\",
   \"Map 5\\n\",
   \"Map 6\\n\",
   \"Map 7\\n\",
   \"Map 8\\n\",
   \"Map 9\\n\",
   \"Map 10\\n\");
   ShowPlayerDialog(playerid, 179, DIALOG_STYLE_MSGBOX, \"Pályák\", DIALOGstring, \"Szavazás\",\"\");

 
Ezt most nem értem, minek csinálod így? ???
Ja és nem DIALOG_STYLE_MSGBOX, hanem DIALOG_STYLE_LIST-re van szükséged.
Bõven elég így megoldani a dolgot:
 
ShowPlayerDialog(playerid, 179, DIALOG_STYLE_LIST, \"Pályák\", \"Map1\\nMap2\\nMap3\\nMap4\\nMap5\\nMap6\\nMap7\\nMap8\\nMap9\\nMap10, \"Szavazás\",\"Mégsem\");

 


Nekem ez szúrta ki nagyon a szememet, gondoltam, megemlítem ezt a hibádat. Azonban még bõven van mit tanulnod... Egy ilyen kész forráskódot pedig szerintem ne várj, mert senki sem ír egy ilyet, mert túl egyszerû, a kezdõ pedig lusta megtanulni, hogy kell egy ilyet megírni. Ha pedig elkészítjük neked, sosem tanulod meg, hogyan kellett volna. De azért MesterMartino írt neked egy példát, az alapján remélhetõleg ki tudsz indulni. Azonban neked az a bajod, hogy az alapvetõ dolgokat sem, pl. a dialogok típusait sem tudod.

Nem elérhető inf

  • 366
    • Profil megtekintése
Szavazós dialog
« Válasz #5 Dátum: 2013. október 13. - 20:57:31 »
0 Show voters
És azt még nem tudnád beleírni hogy amelyiknek a legnagyobb az értéke az lépjen érvénybe?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal