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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Dzsugasvili - 2013. június 27. - 17:01:54

Cím: Parancsok DM-ben
Írta: Dzsugasvili - 2013. június 27. - 17:01:54
sziasztok
valahogy sehogy sem találok megoldást..
egy kompakt megoldást keresek a dm-ben való parancsok használatának tiltására, de valahogy nem jön össze.
elég sok parancsom van, nem szeretném mindegyikhez hozzáírni utólag, hogy dmben nem lehet használni.
próbálkoztam az OnPlayerCommandPerformed(mert ugye zcmd-t használok) callbacknál ügyeskedni, de abból megint csak káosz lett.
Cím: Parancsok DM-ben
Írta: ZyZu. - 2013. június 27. - 18:16:51
Ha mindent jól szeretnél akkor minden parancshoz beírod.. az a legjobb.
Cím: Parancsok DM-ben
Írta: jana4 - 2013. június 27. - 18:58:56
Próbáld meg ezt:
 

public OnPlayerCommandReceived(playerid, cmdtext[])
{
if(GetPVarInt(playerid, \"DM\")) // nem tudom, hogy nálad miként zajlik a lekérdezés ha DM-ben a játékos, alább van egy példa
{
SendClientMessage(playerid, -1, \"DM-ben parancs nem használható!\");
return 0;
}
return 1;
}

 
És a példa:
 

CMD:dm(playerid)
{
           SendClientMessage(playerid, -1, \"Beléptél egy DM-be!\");
           SetPVarInt(playerid, \"DM\", 1); // 1 = igaz
           return 1;
}
CMD:dmkilepes(playerid)
{
           SendClientMessage(playerid, -1, \"Kiléptél a DM-bõl!\");
           SetPVarInt(playerid, \"DM\", 0); // 0 = hamis
           return 1;
}

 


Idézetet írta: ZyZu date=1372349811\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"38972\" data-ipsquote-contentclass=\"forums_Topic
Ha mindent jól szeretnél akkor minden parancshoz beírod.. az a legjobb.
Ez vicc?  :D
Cím: Parancsok DM-ben
Írta: ZyZu. - 2013. június 27. - 19:53:28
probáltam már ezt a megoldást én is de akkor az lesz a probléma, hogy kiírja a hiba üzenetét és + elõhívódik a parancs..
Cím: Parancsok DM-ben
Írta: jana4 - 2013. június 27. - 20:51:46
A játékmódba kell tenni, nem külön filterszkriptbe.

Amúgy szerintem a kóddal még kicsit bûvészkedni kell, mert nem lesz jó akkor sem teljesen ha a játékmódba tesszük.
Cím: Parancsok DM-ben
Írta: Dzsugasvili - 2013. június 27. - 21:20:04
egy ilyen változót használok a dm lekérésére:
 
new bool:indm[MAX_PLAYERS]=false;

 
egyébként az történik, amit ZyZu említett, lefut a parancs és kiírja az üzenetet.
Cím: Parancsok DM-ben
Írta: jana4 - 2013. június 27. - 21:51:44
Én most próbáltam ki, és jól ment úgy, hogy bent volt a játékmódban.

De mondom, még bûvészkedni kell.


Tehát akkor ez helyett:

 
if(GetPVarInt(playerid, \"DM\"))

 
...ezt kell alkalmazd:
 
if(indm[playerid] == true)
Cím: Parancsok DM-ben
Írta: Dzsugasvili - 2013. június 27. - 22:11:00
na mostmár jól mûködik.
esetleg kivételeket tudok hozzáadni, vagy ilyesmi?
Cím: Parancsok DM-ben
Írta: Zsolesszka - 2013. június 27. - 22:16:15
Tudsz kivételeket hozzá tenni, de akkor a fenti megoldás nem megfelelõ számodra, kivételekhez elengedhetetlen hogy ne írd be minden parancshoz amelyiket nem szeretnéd hogy használhatóak legyenek DM-ben.
Vagy egyszerûen megoldod OnPlayerCommandReceived alatt sima strcmp-s parancsokkal a dm-ben használatosakat a tiltás elõtt.
Cím: Parancsok DM-ben
Írta: Dzsugasvili - 2013. június 27. - 22:26:45
na mindegy, azért köszönöm. zárok.