Szerintem fölösleges változókkal és defineokkal bajlódni a SetPlayerTeam és a GetPlayerTeam-nél egyszerûbb megoldás nincs.
Szóval a SetPlayerTeam-el beállítod egy játékosnak a csapatát. (olyan ez, mintha egy integer változónak megadnál egy bizonyos értéket)
Paraméterei:
-playerid - A játékosnak az azonosítója
-teamid - Ez az adott szám ami a csapatot jelöli (pl teamid-nak 1-et adsz meg akkor az elsõ csapat, 2-õt második csapat és ez így tovább)
Annyit még, hogy az alapméretezett az a 255-ik szám, vagy a NO_TEAM elnevezés, és nem a 0-ás.
Gyakorlatban lévõ alkalmazása:
public OnPlayerSpawn(playerid)
{
SetPlayerTeam(playerid, 4); // Ha egy játékos lespawnol akkor beállítjuk a csapatának az értékét 4-re (tehát mondhatjuk úgy is, hogy a negyedik csapatra)
return 1;
}
A GetPlayerTeam segítségével lekérdezhetjük, hogy például a fentebb beállított Spawnoláskor a hanyadik csapatban van (ergo a teamid-je mennyi)
Paraméterei:
-playerid - A játékos azonosítója akinek lekérdezed, hogy melyik csapatban van
Gyakorlati alkalmazása:
CMD:melyikcsapat(playerid,params[]) // A parancsunk, avagy a lekérdezés.
{
if(GetPlayerTeam(playerid) == 4) SendClientMessage(playerid, -1, \"Te a negyedik, azaz a rendõrök csapatában vagy!\"); // Ha a csapat lekérdezéskor az érték egyenlõ 4-el (amit fent beállítottuk) akkor elmondjuk kiírjuk, hogy a rendõrök csapatában van
return 1; // Visszatérünk
}
Ezt a Set-Get PlayerTeam-et úgy hasznosítod mondjuk egy RolePlay módnál, hogy az admin csapat pl az 1-es csapat lesz, a rendõrök a 2-es csapat, a mentõsök a 3-as és így tovább
Miért jobb ez a módszer, mint a fentiek? :Számomra a két fõ indok az az, hogy egyszerûbb sokkal a kezelése, nem kell bele annyi define (ha egy komoly RP mód akkor elég sokat kellesz defineolni a csapatoknak).
Remélem most már érted.