Szerző Téma: Parancs használat  (Megtekintve 777 alkalommal)

Parancs használat
« Dátum: 2013. Június 01. - 13:58:27 »
0 Show voters
Hali, hogyan kell úgy megcsinálni eggy parancsot hogy pl: admin,vip,bandatag ilyesmik tudják csak használni?

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
Parancs használat
« Válasz #1 Dátum: 2013. Június 01. - 14:11:39 »
0 Show voters
Hát ezzel nem igazán segítettél rajta.
Minden választ a kérdésedhez itt megtalálsz:
Komplikáltabb megoldás
http://sampforum.hu/index.php?topic=6778.0


Egyszerûbb megoldás
http://wiki.sa-mp.com/wiki/SetPlayerTeam
http://wiki.sa-mp.com/wiki/GetPlayerTeam
Sok sikert ;)

Parancs használat
« Válasz #2 Dátum: 2013. Június 02. - 11:54:32 »
0 Show voters
Még mindig nem értem  :confused:

Nem elérhető ][Fo[R]cE][

  • 86
  • SAJT!
    • Profil megtekintése
Parancs használat
« Válasz #3 Dátum: 2013. Június 02. - 14:38:53 »
0 Show voters
Pedig egyszerû.. Létrehozol egy változót:
 
new gTeam[MAX_PLAYERS];

 
aztán:
 
#define TEAM_VIP 1
#define TEAM_ADMIN 2
#define TEAM_BANDA 3

 
Ha kész, akkor hozzálehet kezdeni a parancs készítéséhez:
 
CMD:vipparancs(playerid, params[])
{
if(gTeam[playerid] == TEAM_VIP)
{
//Ide a parancsod tartalma
}
else
{
SendClientMessage(playerid, 0xFF0000AA, \"Te nem vagy VIP Tag!\");
}
return 1;
}
CMD:adminparancs(playerid, params[])
{
if(gTeam[playerid] == TEAM_ADMIN)
{
//Ide a parancsod tartalma
}
else
{
SendClientMessage(playerid, 0xFF0000AA, \"Te nem vagy Adminisztrátor!\");
}
return 1;
}
CMD:bandaparancs(playerid, params[])
{
if(gTeam[playerid] == TEAM_BANDA)
{
//Ide a parancsod tartalma
}
else
{
SendClientMessage(playerid, 0xFF0000AA, \"Te nem vagy Bandába!\");
}
return 1;
}

Nem elérhető Szasza

  • 388
    • Profil megtekintése
Parancs használat
« Válasz #4 Dátum: 2013. Június 02. - 15:44:38 »
0 Show voters
Ha még mindig nem érted akkor .. ahoz hogy csak az tudja csinálni ahoz Kell az If (HA)
Vagyis például ha gteam vip akkor mit csináljon..
 

if(gTeam[playerid] == TEAM_VIP)

 
Itt lekérdezi hogy a playerid(vagyis aki beírja a parancsot) az a gTeam ben a TEAM_VIP es e.. és ha igen akkor csinálja azt ami alatta a { } között van...

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
Parancs használat
« Válasz #5 Dátum: 2013. Június 02. - 18:12:01 »
0 Show voters
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. ;)

Parancs használat
« Válasz #6 Dátum: 2013. Június 05. - 17:11:17 »
0 Show voters
Már értem  :thumbsup:
[mod]Megkérnék minden kedves témanyitót, ha kérdésére/kérésére választ kapott, akkor legyen szíves használni, a \"Téma megoldva\" funkciót![/mod]
« Utoljára szerkesztve: 2013. Június 05. - 18:07:32 írta Benceee »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal