MSHost.cz
https://forum.mshost.cz:443/

Funkce + Prikazy
https://forum.mshost.cz:443/viewtopic.php?f=18&t=1444
Page 1 of 1

Author:  MIKI785 [ Fri 06. Jul 2012 13:10:38 ]
Post subject:  Funkce + Prikazy

Zdravim, zde vam ukazu jak si vytvorit vlastni funkce a jak je pouzivat. Cela lua je zalozena na funkcich.

Funkce se vytvareji nasledovne:
Code:
function nazevFunkce () --Do zavorek se davaji pripadne parametry oddelene carkou

--co se ma vykonat.

end --Kazda funkce se musi radne ukoncit.


Ukazu vam jak udelat funkci ktera vypise neco do chatu s predefinovanou barvou, tudiz zadavame jen text.
Code:
function zprava (text) --Definovani funkce 'zprava' s parametrem 'text'

outputChatBox(text, getRootElement(), 255,0,0, true) --Odesle zpravu v cervene barve

end --Ukonceni

Funkci zprava pote pouzijeme nasledovne: zprava("Muj Text")

A jak muzeme vytvorit funkci ktera je vyvolana hracem pomoci prikazu? Uplne jednoduse pomoci addCommandHandler()
Prikazy muzete delat dvema zpusoby, bud:
Code:
addCommandHandler("prikaz",

function (player, cmd)

end)

nebo muzete samostatne vytvorit funkci a pak k ni priradit prikaz:
Code:
function funkce (player, cmd)

end

addCommandHandler("prikaz", funkce)

Jeste je zde moznost to provest prez event onPlayerCommand ale to je zbytecnost.
Urcite ste si vsimli ze funkce maji parametry player a cmd, to proto ze addCommandHandler poskytuje pro vyvolane funkce parametry kterymy jsou: Element Hrace ktery prikaz zadal (player), text prikazu, v tomto pripade "prikaz" (cmd), a pak uz jto so libovolne parametry ktere zada hrac... pokud zada napriklad '/prikaz 24' tak cislo 24 se da ziskat tak ze do vyvolane funkce pridate jeden parametr, napr. function (player, cmd, cislo).
Pozor! parametr player je poskytovan pouze server-sided, v clientu jsou pak parametry nasledovne: function (cmd, cislo)

Zde vam ukazu priklad ktery zjisti hracovi pozice po zadani prikazu /getpos

Code:
addCommandHandler("getpos",

function (player, cmd)

   local x, y, z = getElementPosition(player) --Zjisteni suradnic
   outputChatBox("Souradnice: " .. x .. ", " .. y .. ", " .. z, player) --Posle zpravu danemu hraci.
   
end)


Doufam ze vam tento tutorial neco rekl ;)

Author:  1MenuX1 [ Sun 08. Jul 2012 19:55:25 ]
Post subject:  Re: Funkce + Prikazy

Hodně mi to pomohlo ;)

Author:  Rerger [ Sun 15. Jul 2012 22:18:20 ]
Post subject:  Re: Funkce + Prikazy

Pěkný pěkný :-)

Author:  1MenuX1 [ Sun 29. Jul 2012 0:49:41 ]
Post subject:  Re:

OutputChatbox vypíše samotnému hráči text.Co mám připsat aby text viděli všichni?Např dám /flip a text se zobrazí se jen mně (nebo ne?Málokdo je na mém test serveru, 3 lidi znají heslo,3 je mapper,a drifty nemá funkční cash systém, takže na jeho serveru nemůžu Cmd testovat..).A nevíš čím by se ještě mohlo "platit"?Je to kvůli tomu cash systému.Jinak jaké jsou rozdíly mezi příkazy s / a ! (např /admins a !cash )?

Author:  Drifty [ Sun 29. Jul 2012 0:57:25 ]
Post subject:  Re: Re:

Ahoj.. :D

Takhle by to měli vidět všichni :
Code:
outputChatBox("AHOJ", getRootElement(), 255, 0, 0)

A takhle jenom ty.
Code:
outputChatBox("AHOJ", 255, 0, 0)


A rozdíly mezi / a ! nejsou žádné krom toho že když to máš udělané na ! tak vidí každý hráč jaký příkaz si zadal.

Author:  MIKI785 [ Sun 29. Jul 2012 10:17:12 ]
Post subject:  Re: Re:

Drifty wrote:
Ahoj.. :D

Takhle by to měli vidět všichni :
Code:
outputChatBox("AHOJ", getRootElement(), 255, 0, 0)

A takhle jenom ty.
Code:
outputChatBox("AHOJ", 255, 0, 0)


A rozdíly mezi / a ! nejsou žádné krom toho že když to máš udělané na ! tak vidí každý hráč jaký příkaz si zadal.

Tak ted si napsal peknou hovadinu.

outputChatBox ma 2. parametr element kteremu se to odesle, pokud tam das rootElement tak jeho "child element" je vse na serveru, tudiz se to odesle vsem, to co si napsal ty v tom druhem prikladu se odesle take vsem, jelikoz ti to vyhodi warning ze 2. parametr je Interger a ne element a bude to ignorovat cervenou barvu cos tam dal.

Rozdil mezi / a ! je obrovsky. / Se pouze zadava do chatu abys deklaroval to, ze pises do console. To jsou proste prikazy. ! prikazy jsou jen detekce toho co napises do chatu, to nejsou opravdove prikazy. Muzes si udelat cokoliv, napr ?points, ^points, $points. Proste cokoliv, nejsou to prikazy.

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/