[Poradnik] Tworzenie komend

Sry

Mouse
W tym poradniku chce powiedziec, jak za pomoca LUA mozemy robic komendy takie jak np. na utility.

Aby zaczac, oczywiscie musimy isc do chatki plemiennej i wpisac /lua

Teraz bedzie potrzebny nam event pozwalajacy na stworzenie komendy

Code:
function eventChatCommand(nazwaGracza, komenda)
Nastepnie musimy zadeklarowac nazwe komendy

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda == "meep" -- jezeli nazwa komendy to meep
Na koncu musimy dodac co ma sie stac po wpisaniu komendy oraz dodac 2 razy end

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda == "meep" then -- jezeli nazwa komendy to meep wtedy
        tfm.exec.giveMeep(nazwaGracza) -- daj meepa graczowi ktory wpisal komende
    end
end
Teraz wystarczy skopiowac i wkleic skrypt, wpisac !meep i gotowe! (nalezy dodac wykrzyknik przed nazwa komendy)

Oczywiscie mozemy kombinowac np. jezeli chcemy zeby tylko dany gracz mogl wpisac komende

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda == "meep" and nazwaGracza == "Sry" then -- jezeli nazwa komendy to meep oraz gracz to Sry wtedy
        tfm.exec.giveMeep(nazwaGracza) -- daj meepa graczowi ktory wpisal komende
    end
end
Warto zauwazyc ze po wpisaniu komendy wyswietla sie to na czacie. Mozna to wylaczyc, dzieki temu nie bedzie widac czy ktos uzyl komendy

Code:
system.disableChatCommandDisplay("meep") -- wylacz wyswietlanie komendy !meep na czacie
Caly kod

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda == "meep" then
        tfm.exec.giveMeep(nazwaGracza)
    end
end

system.disableChatCommandDisplay("meep")
Za pomoca komendy mozemy rowniez np. uzywac latania

Na poczatku skryptu dodajemy zmienna (przechowuje pewne dane)

Code:
latanie = 0 -- 0 tutaj oznacza falsz (tj. latanie jest wylaczone)
Teraz stworzymy komende

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda == "latanie" then
        latanie = 1 -- ustawia wartosc latanie na prawda (tj. latanie jest wlaczone)
    end
end
Nastepnie dodajemy skrypt na latanie

Code:
function eventNewPlayer(nazwaGracza) -- dla nowego gracza
system.bindKeyboard(nazwaGracza, 32, true, true) -- ustaw mozliwosc uzywania spacji
end

for name, player in pairs(tfm.get.room.playerList) do -- dla wszystkich graczy w pokoju
eventNewPlayer(name) -- ustaw ich jako nowych graczy
end

function eventKeyboard(nazwaGracza, kod, down, x, y) -- funkcja ta odpowiada za uzywanie klawiszy do roznych celow
if kod == 32 then -- jezeli klawisz to spacja (32)
tfm.exec.movePlayer(nazwaGracza, 0, 0, true, 0, -50, false) -- rusz graczem
end
end
Jednak musimy go zmodyfikowac pod komende

Code:
function eventNewPlayer(nazwaGracza) -- dla nowego gracza
system.bindKeyboard(nazwaGracza, 32, true, true) -- ustaw mozliwosc uzywania spacji
end

for name, player in pairs(tfm.get.room.playerList) do -- dla wszystkich graczy w pokoju
eventNewPlayer(name) -- ustaw ich jako nowych graczy
end

function eventKeyboard(nazwaGracza, kod, down, x, y) -- funkcja ta odpowiada za uzywanie klawiszy do roznych celow
if kod == 32 and latanie == 1 then -- jezeli klawisz to spacja (32) oraz latanie wynosi prawda
tfm.exec.movePlayer(nazwaGracza, 0, 0, true, 0, -50, false) -- rusz graczem
end
end
Gotowe! Oto caly kod

Code:
latanie = 0 -- 0 tutaj oznacza falsz (tj. latanie jest wylaczone)

function eventChatCommand(nazwaGracza, komenda)
    if komenda == "latanie" then
        latanie = 1 -- ustawia wartosc latanie na prawda (tj. latanie jest wlaczone)
    end
end

function eventNewPlayer(nazwaGracza) -- dla nowego gracza
system.bindKeyboard(nazwaGracza, 32, true, true) -- ustaw mozliwosc uzywania spacji
end

for name, player in pairs(tfm.get.room.playerList) do -- dla wszystkich graczy w pokoju
eventNewPlayer(name) -- ustaw ich jako nowych graczy
end

function eventKeyboard(nazwaGracza, kod, down, x, y) -- funkcja ta odpowiada za uzywanie klawiszy do roznych celow
if kod == 32 and latanie == 1 then -- jezeli klawisz to spacja (32) oraz latanie wynosi prawda
tfm.exec.movePlayer(nazwaGracza, 0, 0, true, 0, -50, false) -- rusz graczem
end
end


Innym ciekawym zastosowaniem moze byc np. dawanie komus meepa

Rozpoczynamy normalnie

Code:
function eventChatCommand(nazwaGracza, komenda)
Jendak dalej robimy troche inaczej

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda:sub(0, 4) == "meep" then -- za 4 mozna podstawic dowolna liczbe, ale jezeli nie masz pewnosci najlepiej uzyc liczbe liter komendy
        tfm.exec.giveMeep(komenda:sub(6)) -- daj meepa jakiemus graczowi, za 6 najbezpieczniej wstawic liczbe liter komendy powiekszona o 2
    end
end
Caly kod

Code:
function eventChatCommand(nazwaGracza, komenda)
    if komenda:sub(0, 4) == "meep" then -- za 4 mozna podstawic dowolna liczbe, ale jezeli nie masz pewnosci najlepiej uzyc liczbe liter komendy
        tfm.exec.giveMeep(komenda:sub(6)) -- daj meepa jakiemus graczowi, za 6 najbezpieczniej wstawic liczbe liter komendy powiekszona o 2
    end
end
I to tyle! W razie jakichs trudnosci prosze pisac pod tematem lub na /c Sry
 
Last edited:

Cookiesnake

Well-Known Mouse
Boże jak ja nie ogarniam lua ...
 

Arineia

Active Mouse
yyyyyyyyyyyy
ale to do innych linijek tzn
1
2
itd?
 

Lachcim5

Well-Known Mouse
Zarąbiście
 
Top
"Dev-TR" theme by Soulzone