Sziasztok! Még nem láttam ehhez hasonló témát, szóval gondoltam, hogy nyitok egyet. Elnézést, ha már van! Ez kezdõknek szerintem jól jöhet.
Szóval. Az a_samp és a zcmd (nem muszáj) függvénykönyvtárakra lesz szükségünk
#include <a_samp>
#include <zcmd>
#define DIALOG_MELYIK 1
new csapat1[MAX_PLAYERS];
new csapat2[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, \"Melyik csapatban akarsz lenni?\", \"Csapat1\\nCsapat2\", \"Választ\", \"Kilép\");
return 1;
}
public OnFilterScriptInit()
{
return 1;
}
new count = 0;
new countt = 0;
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid = 1)
{
if(!response)
{
Kick(playerid);
}
if(listitem == 0)
{
csapat1[playerid] = 1;
count++;
}
if(listitem == 1)
{
csapat2[playerid] = 1;
countt++;
}
}
return 1;
}
Nézzük a magyarázatot:
#include <a_samp>
#include <zcmd>
Ezeket be kell írnunk a gamemod/filterscript elejére, ha használni akarjuk, a benne létrehozott függvényeket, callback-eket.
#define DIALOG_MELYIK 1
definiáljuk azt a dialogot, ami a belépéskor megkérdezi a játékostól, hogy melyik csapatban szeretne lenni. Én a DIALOG_MELYIK nevet adtam neki, és az egyes azonosítót. Átírhatjátok, csak az a lényeg, hogy a DIALOGOK AZONOSÍTÓJA NE EGYEZZEN SOSEM!
new csapat1[MAX_PLAYERS];
new csapat2[MAX_PLAYERS];
Itt hozzuk létre a változókat. Ezeket nagyon egyszerû használni. A nevében is benne van mit lehet vele csinálni. Az értékét lehet változtatni, mivel az értéke változó. (true == 1, false == 0) Itt létrehoztam a csapat1 és a csapat2 nevû változót, ami az összes online játékosra vonatkozik! Erre késõbb visszatérünk
public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, \"Melyik csapatban akarsz lenni?\", \"Csapat1\\nCsapat2\", \"Választ\", \"Kilép\");
return 1;
}
Ha a játékos belép a szerverre, akkor megjeleníti neki az egyes azonosítójú dialogot, aminek a címe: Melyik csapatban akarsz lenni? és a két választható lehetõség: Csapat1, Csapat2, A két gomb pedig: Választ, és Kilép
new count = 0;
new countt = 0;
Ez létrehozza a számlálókat. A count nevû számláló az egyes csapatban lévõ tagokat számolja, a countt nevû számláló pedig a 2.-es csapatban lévõket. De ugye itt még semmit sem számlál, mivel itt csak a nullás értéket adtunk neki
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(!response)
{
Kick(playerid);
}
Ha a játékos bezárja a dialogot, a mi esetünkben a \"Kilép\" gombra nyom, akkor kickeli a rendszer.
if(listitem == 0)
{
csapat1[playerid] = 1;
count++;
}
if(listitem == 1)
{
csapat2[playerid] = 1;
countt++;
}
return 1;
}
Nézzük szétbontva
if(listitem == 0)
{
csapat1[playerid] = 1;
count++;
}
Ha azt választja, a dialogban, hogy csapat1, akkor a változó értéke egy, vagyis true lesz. És a count nevû számlálóhoz hozzáadódik egy!
if(listitem == 1)
{
csapat2[playerid] = 1;
countt++;
}
Ha azt választja a dialogban, hogy csapat2, akkor a változó értéke 1, vagyis true lesz. És a countt nevû számlálóhoz hozzáadódik egy!
Körülbelül ennyi lenne, remélem érthetõ voltam. Ha hibát észleltek akkor jelezzétek!
Ha szeretnétek, hogy hozzáírjam, a csapatból kilépést, stb. parancsokat meg mindent akkor jelezzétek. Most csak ennyihez volt kedvem! Sziasztok!