HU/addCommandHandler: Difference between revisions
(Created page with "__NOTOC__ {{Shared function hu}} {{Note_box|Erősen ajánlott, hogy '''ne''' használd ugyan azt a nevet a függvényedhez és a parancshoz, mivel ez kavarodáshoz vezethet,...") |
No edit summary |
||
Line 2: | Line 2: | ||
{{Shared function hu}} | {{Shared function hu}} | ||
{{Note_box|Erősen ajánlott, hogy '''ne''' használd ugyan azt a nevet a függvényedhez és a parancshoz, mivel ez kavarodáshoz vezethet, ha több függvény is használatban van. Használj olyan nevet, mely pontosabban leírja, hogy mit csinál a parancsod.}} | {{Note_box|Erősen ajánlott, hogy '''ne''' használd ugyan azt a nevet a függvényedhez és a parancshoz, mivel ez kavarodáshoz vezethet, ha több függvény is használatban van. Használj olyan nevet, mely pontosabban leírja, hogy mit csinál a parancsod.}} | ||
Ez a függvény egy parancsot csatol az egy adott script függvényhez, így amikor ezt a parancsot a szerveren használják, a függvény meghívódik. | |||
{{Note_hu|Nem használhatod a "check", "list" és "test" szavakat mint parancsot.}} | |||
Több command handler-t is hozzá csatolhatunk egy parancshoz, így abban a sorrendben hívódnak meg a függvények, ahogy a handler-ek sorrendje van. Fordítva, több parancsot is hozzá lehet csatolni egy függvényhez és a '''commandName''' paramétert használva eldönthetjük, hogy hogyan kezeljük a kérést. | |||
A felhasználóknak a parancs formátuma: | |||
''commandName'' '' | '''commandName''' ''argumentum1'' ''argumentum2'' | ||
Ez meghívható közvetlen a játékos konzoljából vagy a chat-ben a per (''/'') elé téve. A szerver oldali handler-eket a szerver admin is meg tudja hívni a szerver konzoljából ugyan úgy, ahogy a játékos meghívja a konzoljából. | |||
== | ==Szintaxis== | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
Line 20: | Line 20: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===Kötelező argumentumok=== | ||
*'''commandName:''' | *'''commandName:''' Ez a parancs neve amit a handler-hez csatol. Ez lesz az amit a játékos a konzolba beírva, vagy a chatben használva meg tudja hívni a függvényt. | ||
*'''handlerFunction:''' | *'''handlerFunction:''' Ez a függvény amit a handler meg fog hívni. A handler-t a függvény '''után kell''' létrehozni. Ez átadja a függvények a játékost aki meghívta és a parancsot amit beírt. Ez után minden további argumentumot amit a játékos továbbá beírt (Lásd lejjebb). Ezek elhagyhatóak. | ||
=== | ===Opcionális argumentumok=== | ||
{{OptionalArg}} | {{OptionalArg}} | ||
*'''restricted:''' | *'''restricted:''' Ez meghatározza, hogy a parancs használata korlátozott-e. Amennyiben '''true''' értéket kap, az ACL alapján kitűzött korlátozásokat alkalmazza. | ||
{{New feature|3|1.0| | {{New feature|3|1.0| | ||
*'''caseSensitive:''' | *'''caseSensitive:''' Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e. | ||
}} | }} | ||
Line 39: | Line 39: | ||
===Required Arguments=== | ===Required Arguments=== | ||
*'''commandName:''' | *'''commandName:''' Ez a parancs neve amit a handler-hez csatol. Ez lesz az amit a játékos a konzolba beírva, vagy a chatben használva meg tudja hívni a függvényt. | ||
*'''handlerFunction:''' | *'''handlerFunction:''' Ez a függvény amit a handler meg fog hívni. A handler-t a függvény '''után kell''' létrehozni. Ez átadja a függvények a játékost aki meghívta és a parancsot amit beírt. Ez után minden további argumentumot amit a játékos továbbá beírt (Lásd lejjebb). Ezek elhagyhatóak. | ||
===Optional Arguments=== | ===Optional Arguments=== | ||
{{OptionalArg}} | {{OptionalArg}} | ||
{{New feature|3|1.0| | {{New feature|3|1.0| | ||
*'''caseSensitive:''' | *'''caseSensitive:''' Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e. | ||
}} | }} | ||
</section> | </section> | ||
====Handler | ====Handler függvény paraméterek==== | ||
These are the parameters for the handler function that is called when the command is used. | These are the parameters for the handler function that is called when the command is used. Ezek azok a paraméterei a handler függvénynek, melyeket megkap a függvény a parancs meghívásakor. | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
<syntaxhighlight lang="lua">player playerSource, string commandName [, string arg1, string arg2, ... ] </syntaxhighlight> | <syntaxhighlight lang="lua">player playerSource, string commandName [, string arg1, string arg2, ... ] </syntaxhighlight> | ||
* '''playerSource:''' | * '''playerSource:''' Ez az a játékos aki meghívta a parancsot vagy a [[Element/Console|szerver konzol]]. Ha nem játékos hívta meg (Pl. szerver admin vagy szerver konzol), akkor ez '''false'''. | ||
* '''commandName:''' | * '''commandName:''' A parancs neve amivel meghívták a függvényt. | ||
* '''arg1, arg2, ...:''' | * '''arg1, arg2, ...:''' Minden egyes érték amit a parancs neve után szóközökkel elválasztva beírnak az egy külön változóba kerül. Ha nincs értéke egy argumentumnak akkor [[nil]]. Kezelhet egy változó számú változót a vararg kifejezés használatával, ahogy a ''Szerver példa 2''-ben az látható. | ||
</section> | </section> | ||
<section name="Client" class="client" show="true"> | <section name="Client" class="client" show="true"> | ||
<syntaxhighlight lang="lua">string commandName [, string arg1, string arg2, ... ] </syntaxhighlight> | <syntaxhighlight lang="lua">string commandName [, string arg1, string arg2, ... ] </syntaxhighlight> | ||
* '''commandName:''' | * '''commandName:''' A parancs neve ami meghívta a függvényt. | ||
* '''arg1, arg2, ...:''' | * '''arg1, arg2, ...:''' Minden egyes érték amit a parancs neve után szóközökkel elválasztva beírnak az egy külön változóba kerül. Ha nincs értéke egy argumentumnak akkor [[nil]]. Kezelhet egy változó számú változót a vararg kifejezés használatával, ahogy a ''Szerver példa 2''-ben az látható. | ||
</section> | </section> | ||
=== | ===_Visszaadott érték=== | ||
'''true''' ha a handler sikeresen létre lett hozva, '''false''' egyébként. | |||
== | ==Példák== | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
''' | '''Példa 1:''' Ez a példa a "createmarker" parancsot csatolja a consoleCreateMarker függvényhez, aminek meghívása a játékos pozicióján létrehoz egy piros markert. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
-- Define our function that will handle this command | -- Define our function that will handle this command | ||
Line 89: | Line 89: | ||
<section name="Server" class="server" show="hide"> | <section name="Server" class="server" show="hide"> | ||
''' | '''Példa 2:''' Ez a példa hasznosítja a Lua vararg kifejezését, hogy létrehozzon egy ''check_parameters'' parancsot, hogy megszámolja a beküldött argumentumok számát, összeolvassza őket egy egyesített [[HU/String|string]]-be és kiírja azt. Ez azt is megmutatja, hogy hogyan lehet használni a table.concat függvényt, hogy összeolvasszuk az összes megadott argumentumot. Ez kifejezetten hasznos, ha el akar olvasni egy üzenetet melyet a felhasználó írt be. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
-- Define our function that will handle this command (which can accept a variable number of arguments after commandName) | -- Define our function that will handle this command (which can accept a variable number of arguments after commandName) | ||
Line 112: | Line 112: | ||
<section name="Server" class="server" show="hide"> | <section name="Server" class="server" show="hide"> | ||
''' | '''Példa 3:''' Ez a példa megmutatja egy szimpla függvény használatát, amely több command handler-t kezel. Ez nem ajánlott az általános használathoz, mivel nehezíti a kód érhetőségét, de ahol több command handler ugyan azt a logikát használja, hasznos lehet, hogy csökkentse az ismétlődő kód mennyiségét. Alapjáraton, kedvezőbb lenne ha ezt a megosztott logikát egy külön függvénybe helyeznénk, mivel ez több kontrollt eredményez a lefutásban. | ||
<!-- commands are case sensitive by default, in this example too --> | <!-- commands are case sensitive by default, in this example too --> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
Line 144: | Line 144: | ||
<section name="Client" class="client" show="false"> | <section name="Client" class="client" show="false"> | ||
''' | '''Példa 1:''' Ez a példa teleportálja a helyi játékost egy véletlenszerű közeli pozicióra (hasznos ha a játékos beszorul valahova) | ||
<syntaxhighlight lang="lua">function escapeMe ( commandName ) | <syntaxhighlight lang="lua">function escapeMe ( commandName ) | ||
Line 154: | Line 154: | ||
</section> | </section> | ||
== | ==Lásd még== | ||
{{Server functions hu}} | {{Server functions hu}} | ||
Revision as of 13:15, 11 August 2018
This template is no longer in use as it results in poor readability. Ez a függvény egy parancsot csatol az egy adott script függvényhez, így amikor ezt a parancsot a szerveren használják, a függvény meghívódik.
Megjegyzés: Nem használhatod a "check", "list" és "test" szavakat mint parancsot. |
Több command handler-t is hozzá csatolhatunk egy parancshoz, így abban a sorrendben hívódnak meg a függvények, ahogy a handler-ek sorrendje van. Fordítva, több parancsot is hozzá lehet csatolni egy függvényhez és a commandName paramétert használva eldönthetjük, hogy hogyan kezeljük a kérést.
A felhasználóknak a parancs formátuma:
commandName argumentum1 argumentum2
Ez meghívható közvetlen a játékos konzoljából vagy a chat-ben a per (/) elé téve. A szerver oldali handler-eket a szerver admin is meg tudja hívni a szerver konzoljából ugyan úgy, ahogy a játékos meghívja a konzoljából.
Szintaxis
bool addCommandHandler ( string commandName, function handlerFunction [, bool restricted = false, bool caseSensitive = true ] )
Kötelező argumentumok
- commandName: Ez a parancs neve amit a handler-hez csatol. Ez lesz az amit a játékos a konzolba beírva, vagy a chatben használva meg tudja hívni a függvényt.
- handlerFunction: Ez a függvény amit a handler meg fog hívni. A handler-t a függvény után kell létrehozni. Ez átadja a függvények a játékost aki meghívta és a parancsot amit beírt. Ez után minden további argumentumot amit a játékos továbbá beírt (Lásd lejjebb). Ezek elhagyhatóak.
Opcionális argumentumok
NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.
- restricted: Ez meghatározza, hogy a parancs használata korlátozott-e. Amennyiben true értéket kap, az ACL alapján kitűzött korlátozásokat alkalmazza.
- caseSensitive: Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e.
bool addCommandHandler ( string commandName, function handlerFunction [, bool caseSensitive = true ] )
Required Arguments
- commandName: Ez a parancs neve amit a handler-hez csatol. Ez lesz az amit a játékos a konzolba beírva, vagy a chatben használva meg tudja hívni a függvényt.
- handlerFunction: Ez a függvény amit a handler meg fog hívni. A handler-t a függvény után kell létrehozni. Ez átadja a függvények a játékost aki meghívta és a parancsot amit beírt. Ez után minden további argumentumot amit a játékos továbbá beírt (Lásd lejjebb). Ezek elhagyhatóak.
Optional Arguments
NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.
- caseSensitive: Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e.
Handler függvény paraméterek
These are the parameters for the handler function that is called when the command is used. Ezek azok a paraméterei a handler függvénynek, melyeket megkap a függvény a parancs meghívásakor.
player playerSource, string commandName [, string arg1, string arg2, ... ]
- playerSource: Ez az a játékos aki meghívta a parancsot vagy a szerver konzol. Ha nem játékos hívta meg (Pl. szerver admin vagy szerver konzol), akkor ez false.
- commandName: A parancs neve amivel meghívták a függvényt.
- arg1, arg2, ...: Minden egyes érték amit a parancs neve után szóközökkel elválasztva beírnak az egy külön változóba kerül. Ha nincs értéke egy argumentumnak akkor nil. Kezelhet egy változó számú változót a vararg kifejezés használatával, ahogy a Szerver példa 2-ben az látható.
string commandName [, string arg1, string arg2, ... ]
- commandName: A parancs neve ami meghívta a függvényt.
- arg1, arg2, ...: Minden egyes érték amit a parancs neve után szóközökkel elválasztva beírnak az egy külön változóba kerül. Ha nincs értéke egy argumentumnak akkor nil. Kezelhet egy változó számú változót a vararg kifejezés használatával, ahogy a Szerver példa 2-ben az látható.
_Visszaadott érték
true ha a handler sikeresen létre lett hozva, false egyébként.
Példák
Példa 1: Ez a példa a "createmarker" parancsot csatolja a consoleCreateMarker függvényhez, aminek meghívása a játékos pozicióján létrehoz egy piros markert.
-- Define our function that will handle this command function consoleCreateMarker ( playerSource, commandName ) -- If a player triggered it (rather than the admin) then if ( playerSource ) then -- Get that player's position local x, y, z = getElementPosition ( playerSource ) -- Create a size 2, red checkpoint marker at their position createMarker ( x, y, z, "checkpoint", 2, 255, 0, 0, 255 ) -- Output it in his chat box outputChatBox ( "You got a red marker", playerSource ) end end -- Attach the 'consoleCreateMarker' function to the "createmarker" command addCommandHandler ( "createmarker", consoleCreateMarker )
Lásd még
Fordította
- WorthlessCynomys