×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Poradnik]Lua
1 / 10 › »
[Poradnik]Lua
Woterek
« Citoyen »
1380378060000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  10
  • Poradnik
  • ID klawiszów
  • Tłumaczenia
  • Przydatne
  • Wyjaśnienie zmiennych
By otworzyć konsole LUA wpisz /lua
Możesz użyć jedynie w chatce plemiennej gdy:
-Masz prawo do zmieniania mapy (/np)
-Masz 100 serków (ogólnie)
Lub gdy należysz do "Team lua" na roomie ktorego nazwa rozpozyna się od "#"


Podstawy języka skryptu LUA:
• Tworzenie funkcji:
-Zaczynamy od sformułowania function
-Dodajemy tzw event jest to sformułowanie odpowiedzialne za "Włączanie" funkcji
-Dodajemy funkcje
-Zamykamy function używając end

Przykład:
function eventPlayerGetCheese(playerName)
tfm.exec.setVampirePlayer(playerName)
end

(Jest to prosty skrypt na zmienienie myszki w wampira kiedy zbierze ona ser!)

• Tworzenie komendy
-Zaczynamy od sformułowania function
-Tworzenie komendy należny kontynuować ustawiając wartości komendy (ja użułem com)
-Dodania warunku
-Dodajemy funkcje
-Zamykamy warunek używając end
-Zamykamy function używając end

Przykład:
function eventChatCommand(playerName, com)
if com == 'off' then
system.exit()
end
end


Jeśli chcemy dodać kilka komend należy dodać kolejne warunki
Przykład:
function eventChatCommand(playerName, com)
if com == 'off' then
system.exit()
else if com == 'help' then
ui.addPopup(1,0,"Treść popupu :D",playerName,100,100,400)
end
end
end


•Funkcje na klawisze!
By stworzyć kod który uaktywnia nam funkcje kliknięciem klawisza na naszej klawiaturze należy:
-Bindujemy klawisz graczowi używając tfm.exec.bindKeyboard
-Dodajemy tzw event jest to sformułowanie odpowiedzialne za "Właczanie" funkcji
-Dajemy warunek
-Dodajemy funkcje
-Zamykamy function używając end
Przykład:
--Bindujemy graczowi klawisz kiedy wchodzi do pokoju
function eventNewPlayer(playerName)
tfm.exec.bindKeyboard(playerName,16,true,true)
end
--Bind dla tych co już są w pokoju
for playerName,player in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(playerName,16,true,true)
end
--Funkcja na klawisz
function eventKeyboard(playerName,key,down,x,y)
if key==16 then
tfm.exec.giveCheese(playerName)
end
end


• Układanie kodu
Układanie kodu jest średnio ważna czynnością lecz niektórzy bardzo zwracają na to uwagę + pomaga to w czytaniu kodu
• Podstawy układania kodu:
Podczas układania kodu bardzo ważne jest:
-Oddzielanie używając TAB'u lub spacji.
-Pisanie end na równi z eventem/ warunkiem który zamyka
-Opisywanie funkcji używając komentarza przykład --To jest skrypt na latanie! (komentarz nie jest częścią kodu oraz używanie go jest opcjonalne)
Na początek tyle informacji o układaniu kodu powinno ci wystarczyć!

•Parę zasad:
-Wszystkie eventy mogą zostać użyte tylko raz, w przypadku wielokrotnego użycia, jedynie jeden, ten który jest pierwszy patrząc od dołu będzie brany pod uwagę
-Zawsze przed eventem stawiaj function i kończ ją używając end
-Zawsze używaj end po: function, if, do (Czasami jak dodajemy parę funkcji używając elseif to elseif zastępuje end)
-Zawsze po if i elseif musi być then
-Staraj się nie popełniać literówek, jedna literówka i cały kod nie działa.

Pomogli:
Szel
Shamousey
Leafileaf
Makinit


Starałem się krótko i łatwo napisać o LUA i nie wdrażać jakiś skomplikowanych rzeczy by nie namieszać wam w głowach :)
Lista ID klawiszów w LUA
Key["backspace"] = 8;
Key["tab"] = 9;
Key["enter"] = 13;
Key["shift"] = 16;
Key["ctrl"] = 17;
Key["alt"] = 18;
Key["pauza"] = 19;
Key["caps lock"] = 20
Key["esc"] = 27;
Key["spacja"] = 32;
Key["page up"] = 33;
Key["page down"] = 34;
Key["end"] = 35;
Key["home"] = 36;
Key["lewa strzałka"] = 37;
Key["strzałka do góry"] = 38;
Key["prawa strzałka"] = 39;
Key["strzałka w dol"] = 40;
Key["insert"] = 45;
Key["delete"] = 46;
Key["0"] = 48;
Key["1"] = 49;
Key["2"] = 50;
Key["3"] = 51;
Key["4"] = 52;
Key["5"] = 53;
Key["6"] = 54;
Key["7"] = 55;
Key["8"] = 56;
Key["9"] = 57;
Key["a"] = 65;
Key["b"] = 66;
Key["c"] = 67;
Key["d"] = 68;
Key["e"] = 69;
Key["f"] = 70;
Key["g"] = 71;
Key["h"] = 72;
Key["i"] = 73;
Key["j"] = 74;
Key["k"] = 75;
Key["l"] = 76;
Key["m"] = 77;
Key["n"] = 78;
Key["o"] = 79;
Key["p"] = 80;
Key["q"] = 81;
Key["r"] = 82;
Key["s"] = 83;
Key["t"] = 84;
Key["u"] = 85;
Key["v"] = 86;
Key["w"] = 87;
Key["x"] = 88;
Key["y"] = 89;
Key["z"] = 90;
Wkrótce
Tematy które się wam przydadzą tworząc kod LUA:
•LUA - edytor pokoju• - Inny poradnik o LUA
Lista funkcji i eventów
Zamówienia na kody
Gotowe skrypty LUA
Przydatne informacje
http://pastebin.com/dJ9eZGRU - Pełna wersja tego co macie na zakładce ID klawiszów
W spisie funkcji/eventów Tiga mamy parę zmiennych.
Typy zmiennych:
-String - Dowolny tekst, umieszczamy w "" lub wypełniamy za pomocą playerName/ nil
-Int - Wartość liczbowa
-Boolean - Pytanie na które mamy odpowiedzieć true/ false (prawda/ fałsz)
-Table - Tabela czyli coś takiego jak zmienna lecz posiada parę liczb przykład a={1,2,3}
-Function - Specjalna funkcja
Oczywiście usuwamy te zmienne.
Przykład niewypełnionego i wypełnionego eventu
Nie wypełniony:
eventKeyboard(String playerName, Int keyCode, Boolean down, Int xPlayerPosition, Int yPlayerPosition)

Wypełniony prawidłowo
eventKeyboard(playerName, 16, true, 100, 100)

Żle wypełniony
eventKeyboard(String playerName, Int 16, Boolean true, Int 100, Int 100)

Dernière modification le 1518955140000
Serfeuszka
« Consul »
1380378360000
    • Serfeuszka#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
hahaha to z wampirem jest genialne. xD
a jak zrobić , żeby np. kowadło spadło w miejsce X[ilestam] Y[ilestam]?
V ok ok
Woterek
« Citoyen »
1380378360000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#3
  3
Dalsza część poradnika (tłumaczenie spisu Tiga)

========================================
#####
Eventy
========================================

eventChatCommand(String playerName, String message)
• Ten event włącza się gdy gracz wpisze wiadomość zaczynającą się od « ! » na czacie.

--------------------------------------------------------------------------------


eventEmotePlayed(String playerName, Int emoteId)
• Ten event włącza się gdy gracz użyje emotki.

--------------------------------------------------------------------------------


eventFileLoaded(String fileName, String file)
• Ten event włącza się gdy plik zostaje wczytany.

--------------------------------------------------------------------------------


eventFileSaved(String fileName)
• Ten event włącza się gdy plik zostaje zapisany.

--------------------------------------------------------------------------------


eventKeyboard(String playerName, Int keyCode, Boolean down, Int xPlayerPosition, Int yPlayerPosition)
• Ten event włącza się gdy gracz wciśnie dany klawisz.

--------------------------------------------------------------------------------


eventMouse(String playerName, Int xMousePosition, Int yMousePosition)
• Ten event włącza się gdy gracz kliknie myszkę (tą która ma w ręce).

--------------------------------------------------------------------------------


eventLoop(Int currentTime, Int timeRemaining)
• Ten event włącza się co 500 milisekund.

--------------------------------------------------------------------------------


eventNewGame()
• Ten event włącza się gdy zaczyna się nowa runda.

--------------------------------------------------------------------------------


eventNewPlayer(String playerName)
• Ten event włącza się gdy gracz wejdzie do pokoju.

--------------------------------------------------------------------------------


eventPlayerDied(String playerName)
• Ten event włącza się gdy myszka umrze.

--------------------------------------------------------------------------------


eventPlayerGetCheese(String playerName)
• Ten event włącza się się gdy gracz zdobędzie ser.

--------------------------------------------------------------------------------


eventPlayerLeft(String playerName)
• Ten event włącza się gdy gracz wyjdzie z pokoju.

--------------------------------------------------------------------------------


eventPlayerVampire(String playerName)
• Ten event włącza się gdy gracz stanie się wampirem

--------------------------------------------------------------------------------


eventPlayerWon(String playerName)
• Ten event włącza się gdy gracz wejdzie do norki.

--------------------------------------------------------------------------------


eventPlayerRespawn(String playerName)
• Ten event włącza się gdy gracz się zrespawnuje.

--------------------------------------------------------------------------------


eventPopupAnswer(Int popupId, String playerName, String answer)
• Ten event włącza się gdy gracz odpowie na popup.

--------------------------------------------------------------------------------


eventSummoningStart(String playerName, Int objectType, Int xPosition, Int yPosition, Int angle)
• Ten event włącza się gdy szaman zacznie tworzyć obiekt.

--------------------------------------------------------------------------------


eventSummoningCancel(String playerName)
• Ten event włącza się gdy szaman przestanie tworzyć obiekt.

--------------------------------------------------------------------------------


eventSummoningEnd(String playerName, Int objectType, Int xPosition, Int yPosition, Int angle, Int xSpeed, Int ySpeed, Int objectType, Table other)
• Ten event włącza się gdy szaman stworzy obiekt.

--------------------------------------------------------------------------------


eventTextAreaCallback(Int textAreaId, String playerName, String callback)
• Ten event włącza się gdy gracz kliknie na podświetlony tekst przykład : . Jeśli ten string callbacka zaczyna sie z '#clear,' wtedy tekst jest wyczyszczony.

========================================
#####
Funkcje
========================================

Funkcje są w trakcie tłumaczenia...
Kuuur
« Citoyen »
1380379500000
    • Kuuur#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  0
dobry poradnik , czekalem na to :P
Tombard
« Citoyen »
1380379860000
    • Tombard#0000
    • Profil
    • Derniers messages
#5
  0
W końcu.Dziękuje! ;]
Smieszny
« Citoyen »
1380379860000
    • Smieszny#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
Jezu, z 6 lat mi zajelo by nauka lua a tu prosty i dobry poradnik. Podpiac i dzieki bardzo chlopie
Kuuur
« Citoyen »
1380379980000
    • Kuuur#0000
    • Profil
    • Derniers messages
    • Tribu
#7
  0
jak chce na przyklad zrobic komende z ' tfm.exec.giveCheese '
to co musze wpisac ? :I
Woterek
« Citoyen »
1380384840000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Kuuur a dit :
jak chce na przyklad zrobic komende z ' tfm.exec.giveCheese '
to co musze wpisac ? :I

function eventChatCommand(playerName, com)
if com == 'ser' then
tfm.exec.giveCheese(playerName)
end
end

Jak gracz wpisze !ser to da mu ser! :D
Starajcie sie sami zrobić na przykładzie poradnika wtedy bede wiedzial ze moj czas poswiecony na pisnie poradnika nie poszedl na marne :)
Nicknamepll
« Citoyen »
1380397140000
    • Nicknamepll#0000
    • Profil
    • Derniers messages
    • Tribu
#9
  0
Pomocne troche się napracowałeś. :D
Dzięki.
Basterfeild
« Citoyen »
1380398160000
    • Basterfeild#0000
    • Profil
    • Derniers messages
#10
  0
Dobry poradnik :)
Może coś zrobię ;P
Rekichan
« Censeur »
1380403680000
    • Rekichan#0095
    • Profil
    • Derniers messages
    • Tribu
#11
  3
I na co to mi, jak ja miałam bana ;_;
Tajmat
« Censeur »
1380438240000
    • Tajmat#0000
    • Profil
    • Derniers messages
    • Tribu
#12
  0
O co chodzi ? :D :O
Kamiplpl
« Citoyen »
1380445020000
    • Kamiplpl#0000
    • Profil
    • Derniers messages
    • Tribu
#13
  0
Rekichan a dit :
I na co to mi, jak ja miałam bana ;_;

a zas wszyscy myślą że z was to takie prosy...
Rekichan
« Censeur »
1380450000000
    • Rekichan#0095
    • Profil
    • Derniers messages
    • Tribu
#14
  0
Kamiplpl a dit :
a zas wszyscy myślą że z was to takie prosy...

1. Nie jestem prosem
2. to nie ja sobie bana nabiłam.
Woterek
« Citoyen »
1380450300000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#15
  0
Jest to temat o lua a nie o banach, trzymajcie sie tematu dzieki :)
Lolowata
« Citoyen »
1380450900000
    • Lolowata#0000
    • Profil
    • Derniers messages
    • Tribu
#16
  0
A do czego to? Nie zakumałam tematu bo chora jestem :/
PS. Co tu za okienko na lua wpisałam?
Anettelma
« Citoyen »
1380466020000
    • Anettelma#0000
    • Profil
    • Derniers messages
    • Tribu
#17
  0
Woterek cudowna myszka :3 brawo! ja jestem pelna podziwu, bo nie mam pojecia jak mogles w ogole na to wpasc :d swoja droga - robie reklame - Woterek jest z Imperium Sera, zapraszamy xD sdfsdfsdf
Kuuur
« Citoyen »
1380470760000
    • Kuuur#0000
    • Profil
    • Derniers messages
    • Tribu
#18
  0
ja mialem 3 bany a moge wszystko robic w lua o:
Ziyya
« Citoyen »
1380472800000
    • Ziyya#0000
    • Profil
    • Derniers messages
    • Tribu
#19
  0
Ja miałam 2 i też moge robić he xD
Woterek
« Citoyen »
1380475980000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#20
  0
Woterek a dit :
-Nigdy nie dostałeś bana za hackowanie!

Jest to roznica czy dostało sie bana za nieodpowienie zachowanie/ wyzywanie czy za hackowanie :)
oraz
Woterek a dit :
Jest to temat o lua a nie o banach, trzymajcie sie tematu dzieki :)
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Poradnik]Lua
1 / 10 › »
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27