Szerző Téma: [TUT] ZCMD parancsfeldolgozó  (Megtekintve 6817 alkalommal)

Nem elérhető Y2K

  • 488
    • Profil megtekintése
[TUT] ZCMD parancsfeldolgozó
« Dátum: 2011. Március 15. - 19:34:20 »
+3 Show voters
ZCMD PARANCSFELDOLGOZÓ
 
A zcmd elõnyei a dcmd-hez viszonítva:
 
  • SEBESSÉG - Több parancs esetén a szerveren a sebesség nem elhanyagolható.

  • EGYSZERÛSÉG - A zcmd szerintem a parancsok írásának talán legegyszerûbb módja. Persze, ezt nekted kell eldöntenetek.


Miért gyorsabb a zcmd, mint a dcmd?
Gyorsabb, mivel a dcmd OnPlayerCommandText(), a zcmd pedig a CallLocalFunction() segítségével hívja a parancsokat. Illetve, amikor a játékos meghívja a parancsot, a dcmd végigfut az összes parancson, ellenõrizve, hogy azt keresi-e. Ez nem éppen szerencsés, ha a parancs (amely akár 300 körül is lehet, nagyobb munkákban), amelyet keres, nem létezik, és õ mégis végignézi mindegyiket (hiszen nem találta még meg) a szkriptben, ezzel pedig feleslegesen használja az erõforrásokat.
Használat:
A használata nagyon egyszerû. Töltsétek le a függvénykönyvtárat a lenti linkrõl!
>>> LETÖLTÉS <<<
A letöltött függvénykönyvtárat helyezzétek a pawno \"include\" mappájába.
A szkript elejére írjátok be a(z) \"#include <zcmd>\" szöveget, majd kövessétek a lenti utasításokat egy parancs kidolgozásához.
A parancs kidolgozása zcmd-vel nagyon egyszerû. Az alábbi példán minden be van mutatva:
 
CMD:parancsneve(playerid, params[]){ // A \"CMD:\" elõtag után írd a parancsot, vagyis, amit a játékosnak a parancs futtatásához be kell írnia (ebben az esetben ez: /parancsneve) 
    //  a parancs hívása esetén lefutó kód
    return 1;
}

 
Az ilyen parancsot mindenen kívül rakjátok, például:
 
public OnPlayerText(playerid, text[]){
return 1;
}
CMD:parancsneve(playerid, params[]){ // A \"CMD:\" elõtag után írd a parancsot, vagyis, amit a játékosnak a parancs futtatásához be kell írnia (ebben az esetben ez: /parancsneve)
    //  a parancs hívása esetén lefutó kód
    return 1;
}
public OnPlayerCommandText(playerid, cmdtext[]){
return 0;
}

 
playerid - a parancsot beíró játékos azonosítója
params[] - a szóköz után rakott egyéb szövegek
A szkriptekben két visszahívás is használható.
OnPlayerCommandReceived(playerid, cmdtext[]) - Meghívódik, amikor a szerver megkapja a parancsot a játékostól. Ha itt return 0; szerepel, nem fut le a parancs.
OnPlayerCommandPerformed(playerid, cmdtext[], success) - Meghívódik, amikor a parancs lefut. Ha itt return 0; szerepel, \"Unknown command\" üzenet fog megjelenni.
Ezeket a visszahívásokat nem kell feltétlenül használni, csak, ha szükség van rá.
Ha zcmd-t szeretnél használni filterszriptben, ne felejtsd ki az alábbiakat, különben nem fog mûködni (alapismeret)
 
#define FILTERSCRIPT

 
Ha szeretnéd ellenõrizni, hogy a játékos írt-e valamit a parancs után, használd ezt:
 
if (isnull(params))

 
Ha sscanf-et is használsz, az ellenõrzés nem szükséges, az magától megteszi azt.
Írta: LordShigi (http://balkan-samp.com/forum/index.php?topic=10516.0)

Köszönet: ZeeX-nek a zcmd feldolgozó kidolgozásáért, és az útmutató angol nyelvû változatáért, melyet bõvítettünk


Fordította: Y2K (2010. augusztus 1.)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal