[Poradnik]Lua |
Woterek « Citoyen » 1380378060000
| 10 | ||
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
| 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
| 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... |
0 | ||
dobry poradnik , czekalem na to :P |
Tombard « Citoyen » 1380379860000
| 0 | ||
W końcu.Dziękuje! ;] |
Smieszny « Citoyen » 1380379860000
| 0 | ||
Jezu, z 6 lat mi zajelo by nauka lua a tu prosty i dobry poradnik. Podpiac i dzieki bardzo chlopie |
0 | ||
jak chce na przyklad zrobic komende z ' tfm.exec.giveCheese ' to co musze wpisac ? :I |
Woterek « Citoyen » 1380384840000
| 0 | ||
Kuuur a dit : 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
| 0 | ||
Pomocne troche się napracowałeś. :D Dzięki. |
Basterfeild « Citoyen » 1380398160000
| 0 | ||
Dobry poradnik :) Może coś zrobię ;P |
Rekichan « Censeur » 1380403680000
| 3 | ||
I na co to mi, jak ja miałam bana ;_; |
Tajmat « Censeur » 1380438240000
| 0 | ||
O co chodzi ? :D :O |
Kamiplpl « Citoyen » 1380445020000
| 0 | ||
Rekichan a dit : a zas wszyscy myślą że z was to takie prosy... |
Rekichan « Censeur » 1380450000000
| 0 | ||
Kamiplpl a dit : 1. Nie jestem prosem 2. to nie ja sobie bana nabiłam. |
Woterek « Citoyen » 1380450300000
| 0 | ||
Jest to temat o lua a nie o banach, trzymajcie sie tematu dzieki :) |
Lolowata « Citoyen » 1380450900000
| 0 | ||
A do czego to? Nie zakumałam tematu bo chora jestem :/ PS. Co tu za okienko na lua wpisałam? |
Anettelma « Citoyen » 1380466020000
| 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 |
0 | ||
ja mialem 3 bany a moge wszystko robic w lua o: |
0 | ||
Ja miałam 2 i też moge robić he xD |
Woterek « Citoyen » 1380475980000
| 0 | ||
Woterek a dit : Jest to roznica czy dostało sie bana za nieodpowienie zachowanie/ wyzywanie czy za hackowanie :) oraz Woterek a dit : |