HU/addCommandHandler: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(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|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_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.}}
This function will attach a scripting function (handler) to a console command, so that whenever a player or administrator uses the command the function is called.
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/>
'''Note:''' You cannot use "check", "list" or "test" as a command name.
<br/>


Multiple command handlers can be attached to a single command, and they will be called in the order that the handlers were attached. Equally, multiple commands can be handled by a single function, and the ''commandName'' parameter used to decide the course of action.
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.


For users, a command is in the format:
A felhasználóknak a parancs formátuma:


''commandName'' ''argument1'' ''argument2''
'''commandName''' ''argumentum1'' ''argumentum2''


This can be triggered from the player's console or directly from the chat box by prefixing the message with a forward slash (''/''). For server side handlers, the server admin is also able to trigger these directly from the server's console in the same way as they are triggered from a player's console.
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.


==Syntax==  
{{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>  


===Required Arguments===
===Kötelező argumentumok===
*'''commandName:''' This is the name of the command you wish to attach a handler to. This is what must be typed into the console to trigger the function.
*'''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:''' This is the function that you want the command to trigger, which has to be defined before you add the handler. This function can take two parameters, playerSource and commandName, followed by as many parameters as you expect after your command (see below). These are all optional.
*'''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===  
===Opcionális argumentumok===  
{{OptionalArg}}  
{{OptionalArg_hu}}  
*'''restricted:''' Specify whether or not this command should be restricted by default. Use this on commands that should be inaccessible to everyone as default except special users specified in the ACL (Access Control List). This is to make sure admin commands such as ie. 'punish' won't be available to everyone if a server administrator forgets masking it in ACL. Make sure to add the command to your ACL under the proper group for it to be usefull (i.e <right name="command.killEveryone" access="true"></right>). This argument defaults to false if nothing is specified.
*'''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:''' Specifies if the command handler will ignore the case for this command name.
*'''caseSensitive:''' Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e.
}}
}}


Line 38: Line 40:
</syntaxhighlight>  
</syntaxhighlight>  


===Required Arguments===
===Kötelező argumentumok===
*'''commandName:''' This is the name of the command you wish to attach a handler to. This is what must be typed into the console to trigger the function.
*'''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:''' This is the function that you want the command to trigger, which has to be defined before you add the handler. This function can take commandName parameter, followed by as many parameters as you expect after your command (see below). These are all optional.
*'''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===  
===Opcionális argumentumok===  
{{OptionalArg}}  
{{OptionalArg_hu}}  
{{New feature|3|1.0|
{{New feature|3|1.0|
*'''caseSensitive:''' Specifies if the command handler will ignore the case for this command name.
*'''caseSensitive:''' Meghatározza, hogy a parancs beírása kis-/nagy-betű érzékeny-e.
}}
}}
</section>
</section>


====Handler function parameters====
====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.
<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:''' The player who triggered the command or the [[Element/Console|server console]]. If not triggered by a player (e.g. by admin) or server console, this will be ''false''.
* '''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:''' The name of the command triggered. This is useful if multiple commands go through one function.
* '''commandName:''' A parancs neve amivel meghívták a függvényt.
* '''arg1, arg2, ...:''' Each word after command name in the original command is passed here in a seperate variable. If there is no value for an argument, its variable will contain [[nil]]. You can deal with a variable number of arguments using the vararg expression, as shown in '''Server Example 2''' below.
* '''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:''' The name of the command triggered. This is useful if multiple commands go through one function.
* '''commandName:''' A parancs neve ami meghívta a függvényt.
* '''arg1, arg2, ...:''' Each word after command name in the original command is passed here in a seperate variable. If there is no value for an argument, its variable will contain [[nil]]. You can deal with a variable number of arguments using the vararg expression, as shown in '''Server Example 2''' below.
* '''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>


===Returns===
===Visszaadott érték===
Returns ''true'' if the command handler was added successfully, ''false'' otherwise.
'''true''' ha a handler sikeresen létre lett hozva, '''false''' egyébként.


==Examples==  
==Példák==  
<section name="Server" class="server" show="true">
<section name="Server" class="server" show="true">
'''Example 1:''' This example defines a command handler for the command ''createmarker''. This will create a red marker at the position of the player player who uses it.
'''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">
'''Example 2:''' This example makes use of Lua's vararg expression to implement a ''check_parameters'' command to count the number of parameters passed, merge them all into a single string and output it. This is also shows you how you can use table.concat to merge all the passed arguments. This is particularly useful when you want to read in a sentence of text passed from the user.  
'''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">
'''Example 3:''' This example shows using a single function to handle multiple command handlers. This isn't advised for general usage, as it makes code harder to understand, but where multiple command handlers share some logic, it can be a useful way of reducing duplicated code. Generally, it would be preferable to put this shared logic in a separate function instead, as this gives you more control over the flow.
'''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">
'''Example 1:''' This example warps the local player to a random nearby location (useful for when a player gets stuck somewhere).
'''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>


==See Also==
==Lásd még==
{{Server functions hu}}
{{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

Megjegyzés: 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.

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.


[[{{{image}}}|link=|]] Megjegyzés: Nem használhatod a "check", "list" és "test" szavakat mint parancsot.

Szintaxis

Click to collapse [-]
Server
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.


Click to collapse [-]
Client
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.

Click to collapse [-]
Server
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ó.
Click to collapse [-]
Client
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

Click to collapse [-]
Server

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 )
Click to expand [+]
Server
Click to expand [+]
Server
Click to expand [+]
Client

Lásd még


Fordította

  • WorthlessCynomys