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,...") |
mNo edit summary |
||
(16 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{Shared function hu}} | {{Shared function hu}} | ||
{{ | {{Note_box_hu|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.<br/> | |||
<br/> | |||
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. | |||
== | {{Note_hu|Nem használhatod a "check", "list" és "test" szavakat mint parancsot.}} | ||
==Szintaxis== | |||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
Line 20: | Line 22: | ||
</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_hu}} | ||
*'''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 38: | Line 40: | ||
</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_hu}} | ||
{{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==== | ||
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 91: | ||
<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 114: | ||
<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 146: | ||
<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 156: | ||
</section> | </section> | ||
== | ==Lásd még== | ||
{{Server | {{Server Functions hu}} | ||
==Fordította== | ==Fordította== | ||
*'''WorthlessCynomys''' | *'''WorthlessCynomys''' | ||
[[ar:addCommandHandler]] | |||
[[en:addCommandHandler]] | [[en:addCommandHandler]] | ||
[[hu:addCommandHandler]] | |||
[[pt-br:AddCommandHandler]] |
Latest revision as of 18:31, 21 February 2021
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.
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.
Megjegyzés: Nem használhatod a "check", "list" és "test" szavakat mint parancsot. |
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
Megjegyzés: Amikor tetszőleges paramétereket használ, előfordulhat, hogy az összes paramétert meg kell adnia, mielőtt egyet is használna. További információkért látogassa meg a tetszőleges paraméterek oldalt.
- 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 ] )
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
Megjegyzés: Amikor tetszőleges paramétereket használ, előfordulhat, hogy az összes paramétert meg kell adnia, mielőtt egyet is használna. További információkért látogassa meg a tetszőleges paraméterek oldalt.
- caseSensitive: Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e.
Handler függvény paraméterek
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
- HU/clearChatBox
- HU/executeCommandHandler
- HU/getCommandHandlers
- HU/getFPSLimit
- HU/getMaxPlayers
- HU/getServerHttpPort
- HU/getServerName
- HU/getServerPassword
- HU/getServerPort
- HU/getVersion
- HU/isGlitchEnabled
- HU/outputChatBox
- HU/outputConsole
- HU/outputDebugString
- HU/outputServerLog
- HU/removeCommandHandler
- HU/setFPSLimit
- HU/setGlitchEnabled
- HU/setMaxPlayers
- vsetServerPassword
- HU/showChat
- HU/shutdown
Fordította
- WorthlessCynomys