×

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
  • /
  • •LUA - edytor pokoju•
1 / 20 › »
•LUA - edytor pokoju•
Ouake
« Censeur »
1382651220000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  23
  • Start
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

http://i.imgur.com/Vfpibjk.png

Aktualna wersja: 0.22

http://i.imgur.com/PaoUXgL.png


______________________________1. Wstęp
______________________________2. Budowa
______________________________3. Słowa, wartości, znaki
______________________________4. Przykłady
______________________________5. Błędy
______________________________6. Inne


http://i.imgur.com/PaoUXgL.png

http://i.imgur.com/GwCdMtL.png

1. Co to jest?
_Lua to język programowania głównie służący do wzbogacenia funkcjonalności istniejącego programu. Jego wykorzystanie jest dość częste, ponieważ język ten jest stosunkowo łatwy względem innych oraz jego skrypty są krótkie.


2. Jak rozumieć lua
_Jeżeli znasz podstawowe słówka z języka angielskiego, połowa już jest za Tobą - wystarczy przetłumaczyć sobie którykolwiek kod aby wiedzieć do czego on służy. Co do samego modułu, można go sobie wyobrazić jako użytkownika TFM, ale nie jest on myszką tylko całym pokojem. Moduł nie gra tak jak wszyscy biegając za serem i norą, jedyne co robi to interpretuje rozkazy graczy i je spełnia. Jeżeli chcemy, abyśmy dostali serek po wpisaniu komendy '!ser' skrypt może być taki:
function eventChatCommand(nick,komd)
if komd=="ser" then
tfm.exec.giveCheese(nick)
end
if komd=="szam" then
tfm.exec.setShaman(nick)
end
end
teraz moduł będzie zawsze dawać ser po wpisaniu '!ser'. Przetłumaczmy sobie skrypt:
funkcja wydarzenieKomendaCzatu(nick,komenda)
jeśli komenda=="ser" wtedy --jeśli [komenda] jest 'ser' wtedy
tfm.exec.dajSer(nick)
koniec
jeśli komenda=="szam" wtedy
tfm.exec.ustawSzamana(nick)
koniec
koniec
Teraz trochę łatwiej zrozumieć co robi ten skrypt oraz moduł. Spójrzmy jeszcze co dzieje się w module gdy jakaś konkretna osoba, np. ja wpisze komendę '!ser':
function eventChatCommand("Ouake","ser")
if "ser"==
"ser" then
tfm.exec.giveCheese("Ouake")
end
if
"ser"=="szam" then
tfm.exec.setShaman("Ouake")
end
end


3. Jak korzystać z lua
W celu przesłania skryptu lua do modułu należy otworzyć konsolę poprzez wpisanie komendy '/lua', tam wpisujemy/wklejamy co chcemy i wybieramy "Wyślij". Każdy skrypt jest odczytywany przez moduł, ale jeżeli zostanie wykryty jakiś błąd zakłócający pracę programu, wtedy moduł zostaje automatycznie wyłączony.
http://i.imgur.com/l7eAXhi.png

_Każdą funkcję zaczynamy od logicznego słowa function i dalej wybrany przez Nas event, czyli na co funkcja ma zadziałać. Dalej są wpisywane różne nazwy zmiennych tej funkcji jakie event pobiera i zazwyczaj dotyczą tej osoby, która to aktywuje, ale może zadziałać także na wszystkich. Te wartości są typu local, więc nie można ich używać poza funkcją. Następnym krokiem jest zapisanie bloku funkcji, czyli co ma się stać po jej aktywacji i wpisanie w nawiasie istotnych danych, które mogą pochodzić z pobranych wartości eventa, wpisać własne stałe wartości lub jeszcze inne zmienne zewnętrzne. Jeżeli wprowadzimy już wszystko co chcemy, zamykamy całość przez end lub kilka endów i funkcja jest gotowa.


1. Prosta funkcja
_Jak zrobić prostą funkcję, czyli bez żadnych waruków czy zmiennych aktywacyjnych zapisałem wyżej, więc tylko dam tu przykład:
function eventPlayerGetCheese(nick)
system.bindMouse(nick,true)
end


2. Funkcja z warunkiem
_Dodanie warunku sprawia, że funkcja zadziała Tylko wtedy, gdy sens tego warunku będzie prawdą, dzięki temu możemy określić kiedy dana część bloku ma się aktywować. Do zapisania warunku korzystamy z formuły if [coś] then, gdzie w miejsce [coś] podajemy zmienną, znak porównania i żądaną wartość lub odwrotnie. Przykład dla warunku z 1 zdaniem logicznym:
function eventChatCommand(nick,komd)
if komd=="szam" then
tfm.exec.setShaman(nick)
end
end
Zdań w warunku może być więcej niż 1, np.:
function eventChatCommand(nick,komd)
if komd=="pomoc" or komd=="help" then
ui.addPopup(0,0,"Heh, i niby czego oczekujesz? xD",nick,300,100,200)
end
end
Jeżeli gracz wpisze komendę '!pomoc' lub '!help' pojawi się okienko z pomocą dzięki temu, że wykorzystano działanie słowa or, czyli "lub". Oprócz tego jest jeszcze and - "i", czyli obydwa zdania muszą być prawdą w tym samym czasie, więc przykład wyżej byłby niemożliwy, bo jak wpisać naraz '!pomoc' oraz '!help'? W warunku można zapisać więcej niż 2 zdania oraz łaczyć ory i andy tak jak tu:
function eventChatCommand(nick,komd)
if komd=="win" and tfm.get.room.playerList[nick].hasCheese==true or komd=="win" and tfm.get.room.playerList[nick].isShaman==true then
tfm.exec.giveCheese(nick)
tfm.exec.playerVictory(nick)
end
end
Ale jak to działa? Nawiasami < > oddzielę osobne zdania:
if <komd=="win" and tfm.(...).hasCheese==true> or <komd=="win" and tfm.(...).isShaman==true> then
A gdy zamienimy or'y z and'ami?
if <komd=="win"> or <tfm.(...).hasCheese==true and komd=="win"> or <tfm.(...).isShaman==true> then
Drugi fragment można spokojnie usunąć, bo zawsze działa komd=="win" w pierwszym, a trzecie gdy będziesz szamanem i wpiszesz '![byle co]'.


3. Funkcja z aktywacją
_Do wykonania tego przyda się wykorzystać zmienne, które ustala sam programista (Ty). Ich nazwa może być jaka tylko zechcesz, ale nie może to być słowo kluczowe. Teraz zrobimy taki kod, przez co po wpisaniu '!start' będzie można używać ducha pod sobą, a "!stop" wyłączy to:
ffa=0

for nick in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(nick,32,true)
end

function eventChatCommand(nick,komd)
if komd=="start" then
ffa=1
elseif komd=="stop" then
ffa=0
end
end

function eventKeyboard(nick,klaw,wd,x,y)
if klaw==32 and ffa==1 then
tfm.exec.addShamanObject(24,x,y+20) --*
end
end


* - pominięte wartości są uznawane przez moduł za 'nil'.
Nasza zmienna zewnętrzna to ffa - taką ma nazwe. Ilość wpisanych zmiennych jest dowolna tak samo jak możliwe do wpisania wartości.


4. Osobne ustawienia graczy
_Kod podany wyżej można nazwać dobrym, ponieważ wykonuje to co chcemy. Dobrze byłoby go jednak ulepszyć tak, aby opcja zadziałała tylko na osobę, która użyje komendę w danej chwili, a w takim przypadku takie zmienne należy tabelkować:
Tab={} -- tak sie tabelkuje zmienną

for nick in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(nick,32,true)
Tab[nick]=0 -- tak się podaje wartość zmiennej tabelowanej
end

function eventChatCommand(nick,komd)
if komd=="start" then
Tab[nick]=1
elseif komd=="stop" then
Tab[nick]=0
end
end

function eventKeyboard(nick,klaw,wd,x,y)
if klaw==32 and Tab[nick]==1 then
tfm.exec.addShamanObject(24,x,y+20)
end
end
Tak samo jak ze zwykłymi zmiennymi, ilość tabelkowanych jest dowolna jak i nazwa, ich wartości, ilość elementów tabeli i budowa.


5. End
_Tak więc kiedy i ile razy trzeba użyć wpisu end? Służy on do zamykania jeszcze otwartych stopni, ale zamyka on tylko 1, jeżeli ma kilka np. warunek, wtedy ma 2 stopnie i potrzebne są 2 endy. Co otwiera nowy stopień? Są to function if for while i repeat - każdy trzeba osobno zamykać. Oprócz tego jest jeszcze elseif i else, które można wpisać w miejsce end od if, ale ostatni elseif czy else trzeba zamknąć przez end.
http://i.imgur.com/FbPQ5kZ.png

1. Słowa
_Jako że mają one ważny sens w kodzie, nie mogą być one nazwami zmiennych. Spis tych słów i ich rola:
and- znaczy i, łączy ze sobą klika warunków
do- znaczy zrób, używane na końcu for i while
else- znaczy jeszcze, ostatni warunek, patrzy na wszystko spoza if lub elseif
elseif- znaczy lub jeśli, gdy ten warunek jest prawdziwy, kolejne nie są sprawdzane.
end- znaczy koniec, zamyka jeszcze otwartą funkcje na jednym stopniu
false- znaczy fałsz, używane przy sprawdzaniu w warunkach
for- znaczy dla, początek pętli wielokrotnego wykonania
function- znaczy funkcja, początek każdej funkcji reagującej w czasie rozgrywki
if- znaczy jeśli, początek warunku
local- znaczy miejscowe, zmienna istnieje tylko dla obszaru, w którym się znajduje
nil- znaczy nic, można rozumieć jako pustkę
not- znaczy nie, używane w warunkach, ustawia przeciwieństwo
or- znaczy lub, tworzy kilka możliwości dla jednego warunku
repeat- znaczy powtarzaj, początek pętli warunkowej
return- znaczy wróć, umieszczane w funkcji, kończy działanie całej funkcji, za słowem można też ustalić co ma zwracać
then- znaczy wtedy, zakończenie warunku
true- znaczy prawda, używane przy sprawdzaniu w warunkach
until- znaczy dopóki, koniec pętli warunkowej repeat
while- znaczy gdy, początek pętli warunkowej


2. Znaki
+- dodawanie
-- odejmowanie
*- mnożenie
/- dzielenie
^- potęgowanie
%- modulo lub początek definicji manipulatora tekstu
#- wpisane przed nazwą tabeli zwraca ilość elementów danego stopnia w postaci liczby lub ilość znaków w tekście
==- porównywanie czy strony są takie same. Pamiętaj, że właśnie to sie używa w warunkach
~=- porównywanie czy strony są różne
<=- porównywanie czy lewa strona jest mniejsza lub równa prawej
>=- porównywanie czy lewa strona jest większa lub równa prawej
<- porównywanie czy lewa strona jest mniejsza od prawej
>- porównywanie czy lewa strona jest większa od prawej
=- przepisywanie wartości z prawej do lewej
(- początek zbioru danych, ustalanie kolejności wykonywania działań
)- koniec zbioru danych
{- początek zbioru danych tabeli
}- koniec zbioru danych tabeli
[- początek pola określającego pozycję danej z tabeli
]- koniec pola określającego pozycję danej z tabeli
--- tekst wpisany za tym symbolem uznawany jest za komentarz
[[- początek pola wielolinijkowego, między znaki można wstawić =, 1 lub kilka
]]- koniec pola wielolinijkowego. Jeżeli otwarcie miało =, tu też musi być
--[[- komentarz wielolinijkowy
;- oddziela osobne linie kodu, tak jak 'enter'
,- oddzielenie kliku wartości obok siebie
..- przyłączanie do tekstów


3. Wartości
1) Prawda/Fałsz Boolean
tfm.get.room.playerList[nick].hasCheese==true


2) Liczba rzeczywista Float
tfm.exec.displayParticle(8,400,200,3.5,2,-0.15,-0.05,nick)


3) Liczba całkowita Int
tfm.exec.addShamanObject(24,x,y)


4) Tekst String
ui.addTextArea(0,"Cześć, jestem <J>Twoim Bogiem",nil,30,30)


5) Tabela Table
Tab={}
Tab[nick]=0


6) funkcja Function
function eventLoop(t)
print(t)
end



4. Wzorce
Te wpisy są w stanie odczytać określony fragment tekstu lub wpisać wartość zmiennej. Lista wzorców:
%a- wszystkie litery
%d- liczby dziesiętne (od 0 do 9)
%l- małe litery
%p- znaki interpunkcyjne itd...
%s- tylko spacje
%u- duże litery
%w- znaki alfanumeryczne
%x- liczby szesnastkowe (od 0 do F)
%bxy- wszystkie znaki od x do najbliższego y
[?]- wszystkie znaki z ?
http://i.imgur.com/oaTz19R.png

► Odradzasz się gdy zginiesz
function eventPlayerDied(nick)
tfm.exec.respawnPlayer(nick)
end
► Komenda '!pomoc'
function eventChatCommand(nick,komd)
if komd=="pomoc" then
ui.addTextArea(0,"<J>Oto jest pomoc dla Ciebie!",nick,100,100,0,0,0x1c3c41,0x1c3c41)
end
end
► Latanie spacją
function eventNewGame()
for nick in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(nick,32,true)
end
end
function eventKeyboard(nick,klaw)
if klaw==32 then
tfm.exec.movePlayer(nick,0,0,true,0,-50,true)
end
end
► Wstawianie skrzynki w miejscu kliknięcia
for nick in pairs(tfm.get.room.playerList) do
system.bindMouse(nick,true)
end
function eventMouse(nick,x,y)
tfm.exec.addShamanObject(1,x,y)
end
► Ser za całus
function eventEmotePlayed(nick,id)
if id==3 then
tfm.exec.giveCheese(nick)
end
end
► Odbieranie odpowiedzi okienka
for nick in pairs(tfm.get.room.playerList) do
ui.addPopup(1,2,"Wpisz se coś",nick,100,100,120)
end
function eventPopupAnswer(id,nick,odp)
if id==1 then
ui.addTextArea(0,odp,nil,300,150,200,40,0x1c3c41,0x1c3c41,1)
ui.addPopup(1,2,"Wpisz se coś",nick,100,100,120)
end
end
► Komenda wczytująca mapę
function eventChatCommand(nick,komd)
if komd:sub(0,3)=="map" then
tfm.exec.newGame(komd:sub(5))
end
end
► Komenda zmieniająca kolor nicku
function eventChatCommand(nick,komd)
local sekw = {}
for arg in komd:gmatch("%S+") do
table.insert(sekw,arg)
end
if sekw[1]=="color" then
tfm.exec.setNameColor(sekw[2], tonumber("0x"..sekw[3]))
-- tfm.exec.setNameColor([nick], 0x[kod RGB])
end
end
http://i.imgur.com/L9ISUVQ.png

Tutaj opisane są błędy, które najczęściej występują.

1. Init Error
"Init" to skrót od "inicjacji" i oznacza, że kod nie jest poprawny.

# Attempt to call nil.
Ten błąd pojawia się, gdy kod otrzymuje wartość nil w miejscu gdzie jest ona niedozwolona. Zdarza się też, że dana wartość jest odpowiednio ustalona, ale wtedy ważna jest kolejność wpisów
print(test)
test="Hejka."
Istnieje jeszcze inny przypadek wystapienia tego błędu gdy wpiszemy złą nazwę funkcji
Print("Hejka.")

# Index expected, got nil.
Próba przywołania wartości z tabeli, gdzie tabela nie istnieje.
tbl[1]="Tabela tbl nie została wcześniej stworzona."

# ')' expected (to close '(' at line [liczba])
Pojawia się, gdy nie zamkniemy otwartego nawiasu lub wpiszemy źle jedną z danych wewnątrz nawiasu
print("Hej"

print("Hejka, lubicie "Władcę pierścieni"?")

# '[instrukcja]' expected
Jeśli nie wpiszemy wymaganej instrukcji, np. then po if, otrzymamy to. Może to się też zdarzyć gdy wykonujemy porównanie złym znakiem
A=1
if A==1
print("nie ma then, czyli błąd")
end

A=1
if A=1 then
print("powinno być ==, czyli błąd")
end

# '' expected.
To może się pojawić, gdy pierwszy warunek rozpoczniemy przez elseif
elseif 2>1 then
print("elseif nie powinno być pierwsze.")
end

# Multiple points.
Prawidłową liczbę z ułamkiem dziesiętnym zapisuje się wprowadzając najpierw część całkowitą, kropka, część ułamka. Ten błąd wystąpi, gdy spróbujemy dodać więcej kropek
--Prawidłowy ułamek dziesiętny.
20.4391

--Nieprawidłowy ułamek dziesiętny.
20.43.9.1

# Unfinished (long) comment/string.
Jeżeli otwierasz pole tekstu lub komentarza przez np. [[ musisz to później też zamknąć
text="Ten tekst nigdy się nie kończy.

--[[ Ten komentarz nigdy się nie kończy.

# Nesting of [[...]] is deprecated.
Gdy piszesz komentaż na kilka liń, nie możesz używać kilka razy tego samego nawiasu
--[[ Tu jest komentarz A [[ To jest w środku komentarza A ]] To jest koniec komentarza A. Co z tym po prawej? ]]

# Attempt to index ? (a nil value).
Próba przywołania wartości z tabeli z miejsca, gdzie nie ma żadnej wartości (jest nil).
tbl={}
print(tbl[1])

# Null
To jest błąd modułu API, którego nie da się rozwiazać.


2. Runtime Error
Są to błędy, które występują w trakcie działania modułu, nie zawsze oznacza to wyłączenie modułu.

# Attempt to concatenate [typ] and [typ].
Nie można łączyć ze sobą różnych typów danych używając "..", wyjątkiem jest łączenie tekstu i liczb
--Tak jest dobrze.
"Tekst "..34

--Tak jest źle.
{"This","is","tabela","!!!"}.."tekst"

nil..{"tabela"}

nil.."tekst"

function().."tekst"

# Invalid key to 'next'.
To pojawia się, gdy w funkcji next() są nieprawidłowe dane. Funkcja pairs() korzysta z next()
tbl={Coś=true, CośJeszcze=true}

for k,v in pairs(tbl) do
tbl[k]=nil
end

# Attempt to perform arithmetic on a [typ] value.
Jeżeli spróbujemy zwiększyć wartość tekstu lub całej tabeli o jakąś liczbę, wynikiem będzie ten błąd. Działania matematyczne można używać tylko na liczbach
{"table"}+4

# Attempt to compare [typ] with [typ].
Nie można porównywać ze sobą różnych typów danych
if {"table"}>4 then
print("Za to otrzymasz błęda.")
end

# [typ] expected, got [typ].
Kiedy funkcja oczekuje pewnego typu danej ale otrzyma inną, pojawi się ten błąd
for key,value in pairs("tekst") do
print("pętla for powyżej oczekuje tabeli.")
end

# Lua destroyed : Runtime can't exceed 40 ms in 4 seconds !
function eventLoop()
for i=1,1000 do
--To spowoduje błąd.
end
end

# Lua destroyed: Runtime too long!
for i=1,10000000000 do
--To też spowoduje błąd.
end


3. Argument error
Błędy argumentów rzadko przerywają pracę skryptu, częściej jest to tylko ostrzerzenie, że coś nie działa jak powinno.

# Argument must be integer.
To występuje gdy argument w funkcji oczekuje liczby, ale otrzymuje inny typ.
for name in pairs(tfm.get.room.playerList) do
tfm.exec.movePlayer(name,"text",200)
end


4. Misc error

# vm error: java.lang.ArrayIndexOutOfBoundsException: 256
Może wystapić przez wiele rzeczy, ale najczęściej gdy coś jest powtarzane w nieskończoność
function a()
a()
end
a()

# You don't have the right to use this function ([funkcja]).
Niektórych funkcji nie można używać w chatkach plemiennych
tfm.exec.chatMessage()
system.newTimer()
system.removeTimer()
system.loadFile()
system.loadPlayerData()
system.saveFile()
system.savePlayerData()
http://i.imgur.com/EnVamhL.png

◈ Przypisywanie wartości zmiennym można wykonywać osobno
x=1
y=2
Ale można też jednocześnie
x,y=1,2
W ten sposób można łatwo zamieniać wartości między nimi:
x,y=y,x

◈ Pętla while:
a=0
x=0

while a<11 do
tfm.exec.addShamanObject(6,x,100)
a=a+1
x=x+80
end
Jak działa: Gdy funkcja wkroczy do while czyta jego warunek i idzie dalej, wykonuje co kazano, a gdy dotrze do end sprawdza czy warunek jest prawdą. Jeżeli okaże się, że tak - nie wychodzi z pętli tylko wraca spowrotem na początek i wykonuje jeszcze raz aż warunek będzie fałszem, dopiero wtedy może wyjść dalej. Z tego można wyjąć też wniosek, że lepiej jeżeli pętlę będzie dało się opuścić, inaczej zobacz: Błędy\2. Runtime error\#7

◈ Pętla repeat:
a=0
x=0

repeat
tfm.exec.addShamanObject(6,x,100)
a=a+1
x=x+80
until not(A1<11)
Działanie identyczne do pętli while, ale tu ustalamy warunek przeciwny i funkcja wychodzi gdy warunek jest fałszem. Pętla jest zawsze wykonywana najmniej 1 raz.

◈ Własne funkcje:
function Start()
tfm.exec.disableAutoNewGame(true)
tfm.exec.disableAfkDeath(true)
ui.addPopup(0,1,"Pytanie: Cześć?",nil,200,100,200)
end

Start()
Ponieważ ta funkcja nie jest ustawiona na co ma reagować, dlatego trzeba ją samemu uruchomić i to robi wpis Start().

◈ not. Jest to jeszcze jedno słowo używane w warunkach, a wpisanie go obraca kolejny zapis w przeciwieństwo.
if not keyCode==32 then
--wykonuje to samo co
if keyCode~=32 then

◈ Używając symbolu .. można łączyć zwykły tekst z różnymi zmiennymi, ale nie z nil, tabelami czy funkcjami.
i=1

for nick in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(nick,32,true)
end
function eventKeyboard(nick,klaw)
if klaw==32 then
ui.addTextArea(0,"<p align='center'><V>"..nick.." jest pro, po raz "..i.." !",nil,50,40,140,20,0x1c3c41,0x1c3c41,1)
i=i+1
end
end

◈ Wpisywanie wartości do stworzonej tabeli wykonuje się tak:
Tabela={}

Tabela[1]=1
Tabela[2]=2
Tabela[150]=3
Tabela["Cześć"]="Tak też może być"
Wpis w kwadratowym nawiasie ustala nazwę pozycji danej w tabeli. Dodatkowo można już wewnątrz tabeli ustalić tą pozycje:
Tabela={1,2,[150]=3,["Cześć"]="I tak też może być"}
Pobieranie wartości z tabeli wygląda tak:
Tabela={1,2,[150]=3,["Cześć"]="To już co innego, ale może być"}

a=Tabela[1] --jeżeli nie ustalimy pozycji, moduł automatycznie przydziela liczbami od 1 w góre
b=Tabela[150]

◈ Wybieranie fragmentów z tekstu:
TXT="W tym przypadku zostaną odczytane fragmenty ten:'Dzieńdobry', jeszcze ten:'Umiesz używać...', i ten:'Lua?', czyli 3 odczyty, a dlatego takie, bo użyto wpis:'‘([^‘]+)‘', no i teraz 4 :-). Poza tym niżej będą 3 liczby dzięki %d i gratisek."
s=""

for odcz in TXT:gmatch("'([^']+)'") do
s=s..odcz.."\n"
end
s=s.."\n\t"
for odcz in TXT:gmatch("%d") do
s=s..odcz.."\t"
end
s=s..":D"

ui.addTextArea(1,s,nil,30,30)

◈ Użycie słowa return:
function Kwadrat(x)
y=x*x
return y
end

function eventChatCommand(nick,komd)
if komd:sub(1,4)=="test" and komd:sub(6)~="" then
print("Odpowiedź fukcji Kwadrat:"..Kwadrat(tonumber(komd:sub(6))))
end
end

Dernière modification le 1461162060000
Ouake
« Censeur »
1382651220000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  18
  • Start
  • 7
  • 8
  • 9
  • 10

http://i.imgur.com/PaoUXgL.png


______________________________7. Kody lua
______________________________8. Numeracja ID
______________________________9. Tagi Transformice i html
______________________________10. Drzewo Lua


http://i.imgur.com/PaoUXgL.png

http://i.imgur.com/Efgztl0.png

Uwaga:Wszystkie błękitne funkcje mogą używać jedynie osoby należące do grupy lua team.
Funkcje oznaczone kolorem czerwonym mogą zostać usunięte w przyszłości, lepiej używać ich nowych odpowiedników w kolorze zielonym.



1. Eventy

eventChatCommand(String nick, String komd)
• Reaguje, gdy gracz wpisze w czacie '![komd]'.


eventChatMessage(String nick, String txt)
• Reaguje, gdy gracz wyśle dowolną wiadomość w czacie.


eventColorPicked(Int id, String nick)
• Reaguje, gdy gracz wybierze kolor z okienka wyboru koloru.


eventEmotePlayed(String nick, Int id, String arg)
• Reaguje, gdy gracz wykona daną emotke.


eventFileLoaded(String nazwa, String plik)

eventFileSaved(String nazwa)


eventKeyboard(String nick, Int klaw, Boolean wduszony, Int x, Int y)
• Reaguje, gdy gracz wciśnie dany klawisz.


eventLoop(Int obecnyCzas, Int pozostałyCzas)
• Reaguje co 500 milisekund.


eventMouse(String nick, Int x, Int y)
• Reaguje, gdy gracz kliknie.


eventNewGame()
• Reaguje na początku wczytywania nowej mapy.


eventNewPlayer(String nick)
• Reaguje, gdy gracz wejdzie do pokoju.


eventPlayerDataLoaded(String nick, String plik)

eventPlayerDied(String nick)
• Reaguje, gdy gracz zginie.


eventPlayerGetCheese(String nick)
• Reaguje, gdy gracz zdobędzie ser.


eventPlayerLeft(String nick)
• Reaguje, gdy gracz opuści pokój.


eventPlayerRespawn(String nick)
• Reaguje, gdy gracz zmartwychwstanie.


eventPlayerVampire(String nick)
• Reaguje, gdy gracz zmieni się w wampira.


eventPlayerWon(String nick, Int czasOdStartu, Int czasOdWskrzeszenia)
• Reaguje, gdy gracz wygra mapę.


eventPopupAnswer(Int id, String nick, String odp)
• Reaguje, gdy gracz odpowie na dane okienko.


eventSummoningStart(String nick, Int idObj, Int x, Int y, Int kat)
• Reaguje, gdy gracz jako szaman rozpocznie tworzenie obiektu.


eventSummoningCancel(String nick)
• Reaguje, gdy gracz jako szaman wycofa tworzenie obiektu.


eventSummoningEnd(String nick, Int idObj, Int x, Int y, Int kat, Table Info, Int vy, Table Info)
• Reaguje, gdy gracz jako szaman zakończy tworzenie obiektu.


eventTextAreaCallback(Int id, String nick, String odp)
• Reaguje, gdy gracz kliknie tekst-przycisk. Przykład: <a href="event:nazwaOdp">Kliknij tutaj</a>.
• Wpisanie <a href="event:#clear,nazwaOdp">Kliknij tutaj</a> oczyści pole tekstowe po kliknięciu



2. Funkcje

print(String tekst)
• Wpisuje do czatu #lua tekst tylko osobie wczytującej kod lua.


system.bindKeyboard(String nick, Int kod, Boolean wduszony, Boolean tak)
• Włącza przechwytywanie kliknięć gracza klawiszami.


system.bindMouse(String nick, Boolean tak)
• Włącza przechwytywanie kliknięć gracza myszą dla eventów.


system.disableChatCommandDisplay(String komd, Boolean tak)
• Wyłącza wpisywanie danej komendy do czatu. (maks. 100)


system.exit()
• Wyłącza aktualny skrypt lua.


system.loadFile(Int numerPliku)

system.loadPlayerData(String nick)

system.newTimer(Function funkcja, Int czasMS, Boolean pętluj, Object arg1, Object arg2, Object arg3, ...)
• Zwrot: Int idLicznika


system.removeTimer(Int idLicznika)

system.saveFile(String data, Int numerPliku)

system.savePlayerData(String nick, String data)


ui.addPopup(Int id, Int typ, String tekst, String nick, Int x, Int y, Int szer, Boolean wzglEkranu)
• Wstawia okienko. Typy okien: 0 (zwykłe), 1 ("Tak" lub "Nie"), 2 (Z paskiem do wpisania tekstu). Okno pokazuje się wszystkim, gdy [nick] to nil.


ui.addTextArea(Int id, String tekst, String nick, Int x, Int y, Int szer, Int wys, Int kolor, Int kolorRamy, Float alfa, Boolean wzglEkranu)
• Wstawia pole tekstowe. Pole pokazuje się wszystkim, gdy [nick] to nil.


ui.removeTextArea(Int id, String nick)
• Usuwa pole tekstowe. Pole usuwa się wszystkim, gdy [nick] to nil.


ui.setMapName(String tekst)
• Zmienia nazwę mapy w pasku.


ui.setShamanName(String tekst)
• Zmienia nazwę shamana w pasku.


ui.showColorPicker(Int id, String nick, Int kolorDomyślny, String tytuł)
• Wstawia okienko wyboru koloru.


ui.updateTextArea(Int id, String tekst, String nick)
• Aktualizuje pole tekstowe. Pole aktualizuje się wszystkim, gdy [nick] to nil.


tfm.exec.addConjuration(Int x, Int y, Int czasMS)
• Wstawia conjuration na mapę.


tfm.exec.addImage(String nazwa, String cel, Int x, Int y, String nick)
• Zwrot: Int idObrazka

#idObiektu
$nick
%nick
?WarstwaTła
_WarstwaGruntów
!WarstwaPierwszoplanowa
&WarstwaWzglEkranu


tfm.exec.addJoint(Int idPoł, Int idGr1, Int idGr2, Table Par)
• Dodaje połączenie pomiędzy dwoma gruntami lua.
• Par to tabela zawierająca właściwości linii, które są definiowane przez:
- type (Int): 0-JD, 1-JP, 2-JPL, 3-JR
- point1 (String "x,y"): współrzędne punktu przybicia do pierwszego gruntu
- point2 (String "x,y"): współrzędne punktu przybicia do drugiego gruntu, dotyczy JD i JPL
- point3 (String "x,y"): współrzędne pierwszego punktu przybicia do tła, dotyczy JPL
- point4 (String "x,y"): współrzędne drugiego punktu przybicia do tła, dotyczy JPL
- frequency (Float): spowolnienie szybkości rozciągania, dotyczy JD
- damping (Float): usztywnienie lini łączącej/maksymalne rozciągnięcie, dotyczy JD
- axis (String "x,y"): kierunek rozciągania przedlinii, dotyczy JP
- angle (Int): kąt rozciągania przedlinii, dotyczy JP
- limit1 (Float): lewa granica rozciągania_przedlini/maksymalnego_obrotu, dotyczy JP i JR
- limit2 (Float): prawa granica rozciągania_przedlini/maksymalnego_obrotu, dotyczy JP i JR
- forceMotor (Float): siła rozciągania/obracania
- speedMotor (Float): szybkość i kierunek rozciągania/obracania
- ratio (Float): równowaga rozciągania, dotyczy JPL
- line (Int): grubość linii
- color (Int): kolor linii
- alpha (Float): przezroczystość linii
- foreground (Boolean): ustawienie na pierwszy plan
• W kodzie mapy można wpisać w linii parametr lua="id" co pozwoli na interakcję z kodem lua.


tfm.exec.addPhysicObject(Int idGruntu, Int x, Int y, Table Par)
• Wstawia lua-grunt na mapę.
• Par to tabela zawierająca właściwości gruntu, które są definiowane przez:
- type (Int): typ gruntu
- width (Int): szerokość
- height (Int): wysokość
- foreground (Boolean): pierwszy plan
- friction (Float): tarcie
- restitution (Float): odbijalność
- angle (Int): kąt obrócenia
- color (Int): kolor, dotyczy prostokątu i koła
- miceCollision (Boolean): kolizyjność z myszami
- groundCollision (Boolean): kolizyjność z obiektami
- dynamic (Boolean): grunt dynamiczny
- mass (Int): masa
- fixedRotation (Boolean): stały kąt nachylenia
- linearDamping (Float): tłumienie liniowe
- angularDamping (Float): tłumienie kątowe
• W kodzie mapy można wpisać w grunt parametr lua="id" co pozwoli na interakcję z kodem lua.


tfm.exec.addShamanObject(Int idTypuObj, Int x, Int y, Int kąt, Int vx, Int vy, Boolean przezr)
• Wstawia obiekt szamana na mapę.
• Zwrot: Int idObiektu


tfm.exec.bindKeyboard(String nick, Int kod, Boolean wduszony, Boolean tak)
• Włącza przechwytywanie kliknięć gracza klawiszami.


tfm.exec.chatMessage(String tekst, String nick)

tfm.exec.disableAfkDeath(Boolean tak)
• Wyłącza śmierć gracza poprzez afk.


tfm.exec.disableAllShamanSkills(Boolean tak)
• Wyłącza wszystkie umiejętności szamana.


tfm.exec.disableAutoNewGame(Boolean tak)
• Wyłącza automatyczną zmiane mapy.


tfm.exec.disableAutoScore(Boolean tak)
• Wyłącza systemowe otrzymywanie punktów.


tfm.exec.disableAutoShaman(Boolean tak)
• Wyłącza losowe wybieranie szamana.


tfm.exec.disableAutoTimeLeft(Boolean tak)
• Wyłącza automatyczną zamiane czasu.


tfm.exec.displayParticle(Int id, Int x, Int y, Float vx, Float vy, Float ax, Float ay, String nick)
• Wstawia cząstke. Cząstka wstawiana jest wszystkim, gdy [nick] to nil.


tfm.exec.explosion(Int x, Int y, Int moc, Int zasięg, Boolean tylkoMyszy)
• Tworzy eksplozję.


tfm.exec.giveCheese(String nick)
• Daje ser graczowi.


tfm.exec.giveMeep(String nick)
• Daje meep'a graczowi.


tfm.exec.killPlayer(String nick)
• Zabija gracza.


tfm.exec.lowerSyncDelay(, String nick)
• Zmniejsza odstęp pomiędzy synchronizacją gracza do maksymalnie 400 milisekund.


tfm.exec.moveObject(Int idObj, Int x, Int y, Boolean offset, Int vx, Int vy, Boolean offset)
• Przemieszcza oraz nadaje szybkość danemu graczowi.


tfm.exec.movePlayer(String nick, Int x, Int y, Boolean offset, Int vx, Int vy, Boolean offset)
• Przemieszcza oraz nadaje szybkość danemu graczowi.


tfm.exec.newGame(String kodMapy, Boolean odwrócona)
• Wczytuje mapę. Można użyć: 6 / @3706640 (wybrana mapa), #4 (losowa mapa z perm), zaczynające sie na '<' (mapa XML), nil (zupełnie losowa).


tfm.exec.playEmote(String nick, Int id, String argument)
• Wymusza na graczu wykonanie emotki.


tfm.exec.playerVictory(String nick)
• Gracz wygrywa.


tfm.exec.removeImage(Int idObrazka)

tfm.exec.removeJoint(Int idLinii)
• Usuwa linię.


tfm.exec.removeObject(Int idObiektu)
• Usuwa obiekt.


tfm.exec.removePhysicObject(Int idGruntu)
• Usuwa lua-grunt.


tfm.exec.respawnPlayer(String nick)
• Wskrzesza gracza.


tfm.exec.setGameTime(Int czasS)
• Ustawia pozostały czas mapy.


tfm.exec.setNameColor(String nick, Int kolor)
• Zmienia kolor nicku gracza.


tfm.exec.setPlayerScore(String nick, Int punkty, Boolean dodaj)
• Ustawia punkty graczowi.


tfm.exec.setRoomMaxPlayers(Int maksGraczy)

tfm.exec.setRoomPassword(String hasło)

tfm.exec.setShaman(String nick)
• Ustawia gracza jako szamana.


tfm.exec.setUIMapName(String tekst)
• Zmienia nazwę mapy w pasku.


tfm.exec.setUIShamanName(String tekst)
• Zmienia nazwę shamana w pasku.


tfm.exec.setVampirePlayer(String nick)
• Ustawia gracza jako wampira.


tfm.exec.snow(Int czasS, Int moc)
• Włącza padanie śniegu
http://i.imgur.com/aHE6FRR.png

1. Emotki
0 - Taniec
1 - Śmiech
2 - Płacz
3 - Całus
4 - Złość
5 - Klaskanie
6 - Spanie
7 - Facepalm
8 - Siedzenie
9 - Konfetti
10 - Flaga
11 - Pianka na patyku
12 - Zdjęcie
13 - Piątka
14 - Przytulanie
15 - Całus
16 - Papier, kamień, nożyce

2. Obiekty
0 - Strzałka
1 - Mała skrzynka
2 - Duża skrzynia
3 - Mała deska
4 - Duża decha
6 - Piłka
7 - Trampolina
10 - Kowadło
17 - Kula w górę
23 - Bomba
24 - Duch
26 - Niebieski Portal
27 - Pomarańczowy Portal
28 - Balon
29 - Czerwony Balon
30 - Zielony Balon
31 - Żółty Balon
32 - Runa
33 - Kurczak
34 - Śniezka
35 - Strzała Kupidyna
39 - Jabłko
40 - Owca
45 - Lodowa deska
46 - Czekoladowa deska
54 - Zamrożona mysz
57 - Chmura
59 - Bańka
60 - Malutka deseczka
61 - Skrzynia towarzysząca
62 - Stabilna runa
63 - Złota rybka
65 - Rozdymka
67 - Super decha
68 - Trójkątna skrzynia
69 - Deska-zygzak
80 - Papierowy samolocik
85 - Głaz
89 - Dyńka
90 - Nagrobek
95 - Papierowa kulka
96 - Skrzynka z myszkami
101 - Walentynkowa skrzynka
102 - Mechaniczna skrzynka
103 - Świąteczna skrzynka
104 - Skrzynka-ciasto
105 - Muzyczna skrzynka
106 - Książki
107 - Skrzynka-duch
201 - Walentynkowa skrzynia
202 - Mechaniczna skrzynia
203 - Szklana skrzynia
204 - Skrzynia-dynia
205 - Świąteczna skrzynia
206 - Szamańska skrzynia
207 - Skrzynia-ciasto
208 - Muzyczna skrzynia
209 - Tabliczka
210 - Skrzynia z pająkiem
301 - Walentynkowa deska
302 - Mechaniczna deska
303 - Deska-kość
304 - Świąteczna deska
305 - Słodka deska
306 - Muzyczna deska
307 - Krótki ołówek
401 - Walentynkowa decha
402 - Mechaniczna decha
403 - Decha-krokodyl
404 - Decha-kość
405 - Świąteczna decha
406 - Szamańska decha
407 - Słodka decha
408 - Muzyczna decha
409 - Długi ołówek
601 - Piłka-pokeball
602 - Piłka-czaszka
603 - Piłka-trąbka
604 - Piłka nożna
701 - Drewniana trampolina
1002 - Mechaniczne kowadło
1003 - Kowadło-głaz
1004 - Lukrecjowe kowadło
1005 - Kowadło-nagrobek
1701 - Szklana kula
1702 - Kula-lizak
1703 - Kula-bombka
1704 - Szamańska kula
1705 - Czerwone jabłko
2801 - Balon-kot
2802 - Balon-złoty trybik
2803 - Balon-biało-różowy
2804 - Balon-(mechaniczny)
2805 - Balon-żaba
2806 - Balon-serce
2807 - Balon-akwarium
2808 - Balon-choinka
2809 - Balon-gwiazdka
2810 - Szamański balon
2811 - Balon-ciasto
2812 - Balon-pisanka
2813 - Muzyczny Balon
2814 - Balon-Nuta

3. Cząsteczki
0 - Biały błysk
1 - Fioletowy błysk
2 - Żółty blask
3 - Dymek
4 - Słaby biały blask
5 - Serce
6 - Bańka #1 (~1,2s)
7 - Bańka #2 (~1,4s)
8 - Bańka #3 (~2s)
9 - Turkusowy blask
10 - Spirit
11 - Słaby żółty blask
12 - Super spirit
13 - Czerwony blask
14 - Bańka wodna
15 - "+1"
16 - "+10"
17 - "+12"
18 - "+14"
19 - "+16"
20 - "meep"
21 - Czerwone konfetti
22 - Zielone konfetti
23 - Niebieskie konfetti
24 - Żółte konfetti
25 - Deszcz #1
26 - Wiatr #1
27 - Wiatr #2
28 - Deszcz#2
29 - Gwiazdka
30 - Małe czerwone serduszko
31 - Małe różowe serduszko
32 - Kwiatek
33 - Dzwonek
34 - Bombka
35 - Wślizg szamana
36 - Teleport #1
37 - Teleport #2
38 - Lizak
39 - Żółty cukierek
40 - Różowy cukierek
41 - Magiczna kulka
42 - Pióro

4. Klawisze
0 - bieg w lewo
1 - skok
2 - bieg w prawo
3 - kucanie

8 - Backspace
9 - Tab
16 - Shift
17 - Ctrl
18 - Alt
19 - Pause/Break
20 - Caps lock
27 - Escape
33 - Page up
34 - Page down
35 - End
36 - Home
37 - ←
38 - ↑
39 - →
40 - ↓
46 - Delete
48 - 0
49 - 1
50 - 2
51 - 3
52 - 4
53 - 5
54 - 6
55 - 7
56 - 8
57 - 9
65 - Q
66 - B
67 - C
68 - D
69 - E
70 - F
71 - G
72 - H
73 - I
74 - J
75 - K
76 - L
77 - M
78 - N
79 - O
80 - P
81 - A
82 - R
83 - S
84 - T
85 - U
86 - V
87 - Z
88 - X
89 - Y
90 - W
91 - Lewy klawisz Windows
92 - Prawy klawisz Windows
96 - Numpad 0
97 - Numpad 1
98 - Numpad 2
99 - Numpad 3
100 - Numpad 4
101 - Numpad 5
102 - Numpad 6
103 - Numpad 7
104 - Numpad 8
105 - Numpad 9
106 - Mnożenie
107 - Dodawanie
109 - Odejmowanie
110 - Kropka ułamkowa
111 - Dzielenie
112 - F1
113 - F2
114 - F3
115 - F4
116 - F5
117 - F6
118 - F7
119 - F8
120 - F9
121 - F10
122 - F11
123 - F12
144 - Num lock
145 - Scroll lock
186 - ;
187 - =
188 - ,
189 - -
190 - .
191 - /
192 - ~
219 - [
220 - \
221 - ]
222 - '

5. Grunty
0 - Drewno
1 - Lód
2 - Trampolina
3 - Lawa
4 - Czekolada
5 - Ziemia
6 - Trawa
7 - Piasek
8 - Chmura
9 - Woda
10 - Kamień
11 - Śnieg
12 - Prostokąt
13 - Koło
14 - Niewidzialny
15 - Pajęczyna
http://i.imgur.com/ucsAVG1.png

1. Tagi Transformice

<N> - zwykły tekst
    [Ouake] Cześć :-)
<T> - kolor tekstu plemiennego
    • [Ouake] Cześć :-)
<BL> - wiadomości ogólne w czacie
    Ouake jest teraz szamanem, podążaj za nią!
<J> - wiadomości specjalne w czacie
    Jesteś szamanem! Pomóż swoim podopiecznym dojść do sera!
<ROSE> - wiadomości moderatorskie lub specjalne w czacie
    [~Moderator] Gracz [x] nie może mówić przez 1 godz. Powód: Bo lubi placki.
<R> - wiadomości błędów
    Ta mapa nie została eksportowana jako Chatka Plemienna.
<V> - kolor nazw
    [Ouake] Cześć :-)
    Jesteś w pokoju [1]. Wpisz /room NazwaPokoju by stworzyć swój własny pokój lub dołączyć do już istniejącego.

<CH> - kolor niebieskiego szamana
    Ouake jest teraz szamanem, podążaj za nią!
<CH2> - kolor różowego szamana
    [Ouake] Cześć :-)
<VP> - nazwy klawiszy
    Jesteś małą myszką! Używając strzałek kursora, dojdź do sera prawej stronie. Naciśnij strzałkę do góry by skoczyć.
<G> - niezalogowani znajomi
    Ouake 21/12/2012, 12:66

<TD>- wyrównanie do prawej
<TG>- wyrównanie do lewej
<TI>- zmienia rozmiar czcionki na 14
<BV>- kolor nicku map crewa
<N2>- brak wykorzystania
<VI>- brak wykorzystania

<a:active> - ?
<a:hover> - ?
<a href='event:[nazwa]'>[tekst]</a> - tworzenie tekstu z akcją

2. Tagi html
<B></B>- pogrubienie
<I></I>- kursywa
<U></U>- podkreślenie
<BR></BR>- nowa linia
<LI></LI>- wstawia tekst jako listę
<p align='[gdzie]'>[tekst]</p>- wyrównanie tekstu: "left"-lewo, "center"-środek, "right"-prawo
<font face='[czcionka]'>[tekst]</font>- zmienia czcionkę tekstu
<font size='[rozmiar]' >[tekst]</font>- zmienia rozmiar tekstu
<font color='#[RGB]'>[tekst]</font>- zmienia kolor tekstu
<textformat tabstops='a,b,c,...'>[tekst]</textformat> - ustala wyrównanie tabulatorów

3. Inne
\n- nowa linia
\t- tabulator
\\- wpisuje znak \
\"- wpisuje znak "
\'- wpisuje znak '
http://i.imgur.com/097vxF4.png

_G

_G

(...)
assert
bit32

arshift
band
bor
bnot
extract
lrotate
lshift
replace
rshift
rrotate
coroutine

create
resume
running
status
warp
yield
debug

disableEventLog
disableTimerLog
error
ipairs
getmetatable
math

abs
acos
asin
atan
atan2
ceil
cos
cosh
deg
exp
floor
fmod
frexp
huge
ldexp
log
log10
max
min
modf
pi
pow
rad
random
randomseed
sin
sinh
sqrt
tan
tanh
next
os

date
difftime
time
pairs
pcall
print
rawequal
rawget
rawlen
rawset
select
setmetatable
string

byte
char
dump
find
format
gmatch
gsub
len
lower
match
rep
reverse
sub
upper
system

bindKeyboard
bindMouse
disableChatCommandDisplay
exit
loadFile
newTimer
removeTimer
saveFile
table

concat
foreach
foreachi
getn
insert
maxn
remove
sort
tfm

exec

addConjuration
addJoint
addPhysicObject
addShamanObject
disableAfkDeath
disableAllShamanSkills
disableAutoNewGame
disableAutoScore
disableAutoShaman
disableAutoTimeLeft
displayParticle
explosion
giveCheese
giveMeep
killPlayer
loverSyncDelay
moveObject
movePlayer
newGame
playerVictory
removeJoint
removeObject
removePhysicObject
respawnPlayer
setGameTime
setNameColor
setPlayerScore
setShaman
setVampirePlayer
snow
addImage
chatMessage
removeImage
setRoomMaxPlayers
setRoomPassword

bindKeyboard
setUIMapName
setUIShamanName
enum

emote

angry
clap
confetti
cry
dance
facepaw
flag
kiss
laugh
marshmallow
selfie
sit
sleep
ground

chocolate
circle
cloud
earth
grass
ice
invisible
lava
rectangle
sand
snow
stone
trampoline
water
web
wood
particle

bell
blueGlitter
bubble
cloud
curlyWind
daisy
diagonalRain
blueConfetti
dullWhiteGlitter
egg
ghostSpirit
greenConfetti
heart
littlePinkHeart
littleRedHeart
lollipopConfetti
meep
mouseTeleportation
orangeGlitter
pinkCandyConfetti
plus1
plus12
plus10
plus14
plus16
projection
rain
redConfetti
redGlitter
shamanTeleportation
spirit
star
tealConfetti
waterBubble
whiteGlitter
wind
yellowCandyConfetti
yellowConfetti
yellowGlitter
shamanObject

anvil
apple
arrow
ball
balloon
balloonFish
blueBalloon
bluePortal
board
bomb
box
bubble
cannon
chicken
cloud
companionCube
cupidonArrow
greenBalloon
iceCube
littleBoard
littleBoardChocolate
littleBoardIce
littleBox
longBoard
orangePortal
paperBall
paperPlane
pumpkinBall
redBalloon
rock
rune
sBoard
sheep
snowBall
stableRune
tinyBoard
tombstone
trampoline
triangle
yellowBalloon
get

misc

apiVersion
bouboumVersion
transformiceVersion
room

community
currentMap
maxPlayers
mirroredMap
name
objectList
► objectList[id] *

angle
baseType
colors[id]
ghost
id
type
vx
vy
x
y

passwordProtected
playerList
► playerList[id] *

community
hasCheese
isDead
isFacingRight
isJumping
isShaman
isVampire
look
movingLeft
movingRight
playerName
registrationDate
score
shamanMode
title
tribeName
vx
vy
x
y
inHardMode
uniquePlayers
xmlMapInfo

author
mapCode
permCode
xml
tonumber
tostring
type
ui

addPopup
addTextArea
removeTextArea
setMapName
setShamanName
showColorPicker
updateTextArea
xpcall

*playerList[nick]

- playerList to tabela danych o graczach w pokoju, więc jeżeli chcemy coś od niej odczytać, w miejsce "nick" musi pojawić się nazwa gracza.

*objectList[id]
- objectList to tabela danych o obiektach w pokoju, więc jeżeli chcemy coś od niej odczytać, w miejsce "id" musi pojawić się id obiektu. Każdy obiekt ma swój własny "id" tak samo jak gracze i w podobnym miejscu, tylko że obiekty mają w tfm.get.room.objectList.

Dernière modification le 1461162000000
Basterfeild
« Citoyen »
1382701260000
    • Basterfeild#0000
    • Profil
    • Derniers messages
#3
  6
Fajny, czytelny poradnik :]

Życzę przypięcia i odznaczenia :)
Jakubqwe
« Citoyen »
1382719860000
    • Jakubqwe#0000
    • Profil
    • Derniers messages
#4
  2
Nareszcie ktoś się postarał i zrobił fajny poradnik. Dzięki.
Basterfeild
« Citoyen »
1382788980000
    • Basterfeild#0000
    • Profil
    • Derniers messages
#5
  1
Nie wiecie może, co robi <hspace="33" /> ?
Jakubqwe
« Citoyen »
1382789100000
    • Jakubqwe#0000
    • Profil
    • Derniers messages
#6
  1
.
Basterfeild a dit :
Nie wiecie może, co robi &amp;lt;hspace="33" /&amp;gt; ?

Nie wiem.
Ouake
« Censeur »
1382797440000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#7
  3
Basterfeild a dit :
Nie wiecie może, co robi <hspace="33" /> ?

algorytmy.pl a dit :
Atrybut definiuje odstępy poziome dookoła elementu. Czasem istnieje konieczność otoczenia grafiki lub appletu pustą przestrzenią - ten atrybut doskonale nadaje się do takich celów.

[quote=algorytmy.pl nie napisał/a tego, bo Ouake to trochę zedytował, czyli Ouake]Przestrzeń dookoła loga zostanie otoczona po lewej i po prawej stronie 33 pikselowym odstępem. Dzięki temu układ akapitu jest bardziej czytelny. Zabieg często stosowany w przypadku oblewania tekstem dużej ilości fotografii.[/quote]
algorytmy.pl a dit :
PRZYKŁADY ZASTOSOWAŃ

<img src="g/tlo.gif" width="50" height="50" alt="tlo" hspace="10" align="left" />

Czyli możemy o tym zapomnieć, bo nie da się użyć <img> w tekście.
Basterfeild
1382804460000
    • Basterfeild#0000
    • Profil
    • Derniers messages
#8
[Modéré par Lament, raison : Podwójny post.]
Basterfeild
« Citoyen »
1382902380000
    • Basterfeild#0000
    • Profil
    • Derniers messages
#9
  1
Szkoda :/

Wpiszcie kod XML

Zmoderujcie

Wyszedł normalny tekst


http://i.imgur.com/4ve1Lxx.png?1

Dernière modification le 1487615880000
Ouake
« Censeur »
1383156060000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  3
- Dodane kody ID klawiszy -

- Drzewo lua zostało powiększone -
Woterek
« Citoyen »
1383160920000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#11
  1
[edit]
Basterfeild
« Citoyen »
1383336300000
    • Basterfeild#0000
    • Profil
    • Derniers messages
#12
  1
Opiszesz "string"'i?
Roksiunia
« Citoyen »
1383670740000
    • Roksiunia#0000
    • Profil
    • Derniers messages
    • Tribu
#13
  1
Jak to zrobic?!?!?!
Ouake
« Censeur »
1385912280000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#14
  3
Nowości:

+ eventPlayerDataLoaded(String nick, String dane)

+ system.loadPlayerData(String nick)

+ system.savePlayerData(String nick, String dane)

Rozwinięte:
ui.addPopup(Int id, Int typ, String tekst, String nickCel, Int x, Int y, Int szer, Boolean fixedPos)

Rozwinięte:
ui.addTextArea(Int id, String text, String targetPlayer, Int x, Int y, Int width, Int height, Int backgroundColor, Int borderColor, Float backgroundAlpha, Boolean fixedPos)

Rozwinięte:
tfm.exec.snow(Int sekundy, Int moc)
http://i.imgur.com/gmMVxwl.png
02/12/2013
Kolejne nowości:

+ tfm.exec.displayParticle(Int particleId, Int xPosition, Int yPosition, Float xSpeed, Float ySpeed, Float xAcceleration, Float yAcceleration, String targetPlayer)

• Dodana numeracja ID cząstek
Dawidmdxpl
« Citoyen »
1386082260000
    • Dawidmdxpl#0000
    • Profil
    • Derniers messages
#15
  1
/delete
Woterek
« Citoyen »
1386084180000
    • Woterek#0000
    • Profil
    • Derniers messages
    • Tribu
#16
  1
Dawidmdxpl a dit :
jak używać tych cząsteczek ?

??? o jakie "cząsteczki" ci chodzi?
Jufaster
« Citoyen »
1387634160000
    • Jufaster#0000
    • Profil
    • Derniers messages
#17
  1
Nowa funkcja.


tfm.exec.giveENForumHuntPresent(Code U97RYF)

• Here's the code for present 3 in EN's Christmas present hunt! This is not a real function!!

heh
Ouake
« Censeur »
1387639380000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#18
  3
Tak widziałem, ale nie działa dla nas, a ja takich nie wypisuję, bo po co.
Kiriami
« Citoyen »
1388172540000
    • Kiriami#0000
    • Profil
    • Derniers messages
    • Tribu
#19
  1
nie umiem :( pierwszy raz to widze
wpisałam
function eventChatCommand(Kiriami,message)
if message=="wampir" then
tfm.exec.giveVampire(Kiriami)
end
if message=="latam" then
tfm.exec.setFly(Kiriami)
end
end

i nic sie nie dzieje (nie znam zabardzo angielskiego ;c
Ouake
« Censeur »
1388178900000
    • Ouake#0000
    • Profil
    • Derniers messages
    • Tribu
#20
  3
a dit :
Ouake=0

for Woterek in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(Woterek,32,true)
end

function eventChatCommand(Kiriami,Jufaster)
if Jufaster=="wampir" then
tfm.exec.giveVampire("Kiriami")
end
if Jufaster=="latam" then
Ouake=1
end
end

function eventKeyboard(Kiriami)
if Ouake==1 and Kiriami=="Kiriami" then
tfm.exec.movePlayer(Kiriami,0,0,true,0,-50,true)
end
end
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • •LUA - edytor pokoju•
1 / 20 › »
© Atelier801 2018

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

Version 1.27