What's new

-Trudny LUA dla zaawansowanych.

R

Rahim

Guest
Na pocz?tku chcia?bym podkre?li?, ?e ten poradnik jest przeznaczony dla os?b zaawansowanych. Tak wi?c je?li dopiero zacz??e? swoj? przygod? z LUA to radz? Ci omin?? ten poradnik i wr?ci? do niego, jak nabierzesz do?wiadczenia.

Zabraniam udost?pniania na inne fora - Rahim.
Plagiaty w Polsce podlegaj? karze grzywny, ograniczenia wolno?ci, albo pozbawienia wolno?ci do lat 3 (Prawo Autorskie i Prasowe, rozdz. 14., art. 115) - s? ?cigane nie tylko z pow?dztwa cywilnego.

Plagiat jest ?cigany przez prokuratora z pow?dztwa karnego - osoby kt?re go pope?niaj?, s? w kr?tkim czasie wzywane do s?du i przes?uchiwane przez prokuratora, a sprawy tocz? si? szybko, a nie ci?gn? si? latami.
Poradnik pisz? aby poprawi? umiej?tno?ci skrypter?w tego forum, nie innych ;)

W tym poradniku postaram si? wyja?ni?

Mi?o by by?o, gdyby?cie wcze?niej zapoznali si? z dwoma poradnikami mojego kolegi po fachu - Gelia:
http://tibia.net.pl/lua-xml/178429-kurs-lua.html
http://tibia.net.pl/lua-xml/178616-kurs-lua-cz-2-petle-oraz-tablice.html

Zaczn? od uzupe?nienia drugiego poradnika (dopisz? to, czego m?j poprzednik o tablicach nie napisa?).


SPIS TRE?CI:​

1. TABLICE & P?TLE


  1. Dodawanie warto?ci do tablicy.
  2. Pairs i ipairs
  3. Funkcje table
  4. Repeat... until



DODAWANIE WARTO?CI DO TABLICY

Powinni?cie ju? wiedzie?, co to jest tablica, jak "wyci?gn??" z niej jak?? warto?? i j? u?y?, jak dopisa? lub napisa? jak?? warto?? w tablicy. Zrobi? wam jednak powt?rk? z dodawania warto?ci do tablic.

Na og?? s? dwie metody - pierwsza to table.insert, druga to po proste
table[index] = wartosc
Tak naprawd? tylko za pomoc? table.insert mo?emy "wepchn??" jak?? warto?? np. w ?rodek tabeli. Druga metoda tylko podmienia warto??, zatem opiszmy lepiej pierwsz? metod?. Ot?? table.insert ma nie dwa... lecz trzy parametry. Jeden jest opcjonalny (?rodkowy):
table.insert(tablica, [pozycja,] wartosc)
Chyba ka?dy z was cho? raz u?y? tej funkcji, wi?c doskonale wie, ?e ta metoda bez ?rodkowego parametru dopisuje warto??... na ko?cu tabeli. A co, je?li chcemy dopisa? na przyk?ad w ?rodku tabeli? Przeanalizujmy przyk?ad:
local tbl = {1,2,3,4,5,6,7}
table.insert(tbl, 8)
print(unpack(tbl))
Przy okazji s?owo wyja?nienia - co to do licha jest to unpack? To jest funkcja LUA, kt?ra "rozpakowywuje" tablic?. Zrozumiecie lepiej, gdy zobaczycie efekt kocowy:
1 2 3 4 5 6 7 8
Dzi?ki unpack nie musz? u?ywa? p?tli. Na upartego m?g?bym skrypt napisa? tak:
local tbl = {1,2,3,4,5,6,7}
table.insert(tbl, 8)
for i = 1, #tbl do print(tbl) do
i efekt ko?cowy by?by prawie identyczny (prawie, bo ka?da liczba by?a by od nowego wiersza - zale?y od silnika, na kt?ym testujemy).

Jak zauwa?yli?my, liczba 8 zosta?a dopisana na ko?cu tabeli. A co, je?li chcemy mie? j? w ?rodku?

local tbl = {1,2,3,4,5,6,7}
table.insert(tbl, 4, 8)
print(unpack(tbl))
Oto, co otrzymamy:
1 2 3 8 4 5 6 7
Dzi?ki zastosowaniu "table.insert(tbl, 4, 8)"liczba "8" zosta?a "wepchni?ta" na czwart? pozycj? w tabeli, co spowodowa?o, ?e warto?ci za ni? zwi?kszy?y swoj? pozycj? o 1.

Druga metoda s?u?y do podmieniania warto?ci w tablicy. Na upartego mo?na tak?e dzi?ki niej doda? warto?? do tablicy, ale wydajniejszy jest pierwszy spos?b. Przyk?ad podmieniania:
local tbl = {1, 2, 3, 4, 5, 6, 7}
tbl[1] = 8
print(unpack(tbl))
8 2 3 4 5 6 7
Warto?? pierwszej liczby zosta?a zmieniona na 8. Pr?cz liczb mo?emy ?mia?o tak?e u?ywa? string?w, boolean?w, tablic a nawet i nil

local tbl = {1, 2, 3, 4, 5, 6, 7}
tbl[1] = "Yo" --podmieniamy wartosc o pozycji jeden na slowo "Yo"
tbl[2] = true --podmieniamy wartosc o pozycji dwa na wartosc logiczna prawda
tbl[3] = {5, 103434, ":<", false} --podmieniamy wartosc o pozycji trzy na tablice
tbl[4] = nil --podmieniamy wartosc o pozycji cztery za nil, NULL czy jak kto woli
tbl[5] = Rahim --podmieniamy wartosc o pozycji piec na zmienna o nazwie Rahim
tbl[6] = "Rahim" --podmieniamy wartosc o pozycji szesc na slowo "Rahim"
print(unpack(tbl))
Yo true table: 003ED818 nil nil Rahim 7
Zastanawiacie si?, dlaczego zamiast pokaza? zawarto?? tabeli zawartej na trzeciej pozycji tabeli pokaza?o si? jakie? "table: 003ED818"? Jakby to nale?ycie opisa?... Szczerze to sam nie jestem w 100% pewien, moim zdaniem jest to po prostu identyfikator zmiennej kryj?cej si? pod t? tablic?. Tak, jak na przyk?ad w skryptach ots r??ne postacie, potwory itp. maj? uid typu 42364234, 453847534, 4357345 itd. "E" jest to znak notacji wyk?adniczej, D oznacza bodaj?e dziedzin?... Mniejsza o tym, lecimy dalej.

Na pozycji numer 6 widzimy drugie z rz?du "nil" (kolorem niebieskim). Dlaczego nil? Dlatego, bo pr?bowa?em podmieni? pozycj? numer 5 w tabeli za zmienn? Rahim, kt?ra nie istnieje.
Gdybym zrobi? co? takiego:
local tbl = {1, 2, 3, 4, 5, 6, 7}
tbl[1] = "Yo" --podmieniamy wartosc o pozycji jeden na slowo "Yo"
tbl[2] = true --podmieniamy wartosc o pozycji dwa na wartosc logiczna prawda
tbl[3] = {5, 103434, ":<", false} --podmieniamy wartosc o pozycji trzy na tablice
tbl[4] = nil --podmieniamy wartosc o pozycji cztery za nil, NULL czy jak kto woli
Rahim = ":D"
tbl[5] = Rahim --podmieniamy wartosc o pozycji piec na zmienna o nazwie Rahim
tbl[6] = "Rahim" --podmieniamy wartosc o pozycji szesc na slowo "Rahim"
print(unpack(tbl))
Mym oczom ukaza?by si? taki efekt:
Yo true table: 003ED818 nil :D Rahim 7
Z tablicami asocjacyjnymi jest tak samo. Je?li za? chcemy podmieni? warto?? w takiej tablicy:
local pos = {x= 1000, y=1000, z=7, stackpos=254}
Piszemy takie co?:
pos.x = 999
pos.y = 998
pos.z = 8
Po u?yciu print(unpack(pos)) jednak niczego nie zobaczymy - unpack wy?wietla tylko warto?ci z "normalnych" tabel, czyli takich, w kt?rych warto?ci s? posuatwiane po kolei. _/
tbl = {x=1000, y=1000, z=7, 3, 4, [50] = "XD", ["lala"] = 2}
print(unpack(tbl))
Wypisze nam na ekranie tylko
3 4
Na pocz?tku napisa?em, ?e na upartego dzi?ki tej metodzie mo?na dodawa? nowe warto?ci na ko?cu tabeli. Na upartego? A co niby jest w tym takiego trudnego? A no spr?bujmy:
tbl = {1, 2, 3, 4, 5, 6}
tbl[9] = 9
print(unpack(tbl))
Zobaczymy co? takiego:
1 2 3 4 5 6
Dlaczego wi?c warto?? 9 nie zosta?a dodana do tabeli? Ot?? ta metoda s?u?y tylko do podmieniania za inne warto?ci na podanej pozycji... a tak si? sk?ada, ?e pozycja numer dziewi?? w tej tabeli nie istnieje - zatem nie ma jak podmieni?. Kiedy? mo?na by?o u?y? w tym przypadku funkcji table.setn, jednak i tak najlepszym wyj?ciem jest u?ycie table.insert(tbl, 9, 9)


pairs & ipairs

Co to jest to pairs oraz ipairs? Kolejna zagadka? Ot??... kurde, to si? da opisa? po ludzku? Nie wiem, jak wam opisa? po "informatycku", zatem zrobi? to po swojemu - opisz? na przyk?adzie.
Mamy sobie skrypcik:
local tbl = {1, 567, 123, 7856, "xDD", "yo u"}
I chcemy wy?wietli? wszystkie warto?ci zawarte w tabeli (jak wiemy, unpack wy?wietli tylko liczby). Co mamy zrobi?? Zastosujemy p?tl?! Tak!

local tbl = {1, 567, 123, 7856, "xDD", "yo u"}
for i = 1, #tbl do
print(tbl)
end
Takie co? wy?wietli nam:
1
657
123
7856
xDD
yo u
Ok, wszystko fajnie... tylko co, gdy mamy tak? tabel??
local tbl ={1, x=6, ["yo"] = 76.2, "no hej!"}
Zastosujmy i w tym przypadku t? sam? p?tl?:
local tbl = {1, x=6, ["yo"] = 76.2, "no hej!"}
for i = 1, #tbl do
print(tbl)
end
Oto, co ujrzymy:
1
no hej!

W takich przypadkach pomo?e nam... w?a?nie pairs. Pairs odczytuje wszelkie wartosci z tablicy, ?adna nie zostanie omini?ta. Przyk?ad z zastosowaniem pairs.
local tbl = {1, x=6, ["yo"] = 76.2, "no hej!"}
for k, v in pairs(tbl) do
print(k, v)
end
pairs jest funkcj?, kt?rego parametrem musi by? tablica.
A oto efekt kocowy:

1 1
2 no hej!
yo 76.2
x 6

Jak widzimy pairs "przekopuje" tablic? w jakiej? chi?skiej kolejno?ci... zamiast posuwa? si? w praw? stron, on najpierw wy?wietla zawarto?? pierwszego pola, po czym ostatnie, i zaczyna i?? w lew? stron? xd.

ipairs dzia?a podobnie do pairs z t? r??nic?, ?e ipairs dzia?a tylko gdy k jest liczb?. Przypatrzmy si? na to:
local tbl = {1, x=6, ["yo"] = 76.2, "_/!", 4, 7}
for k, v in ipairs(tbl) do
print(k, v)
end
W konsoli uj?ymy:
1 1
2 _/!
3 4
4 7
My?l?, ?e wida?, dlaczego.

Czym tak naprawd? s? pairs i ipairs? S? to funkcje wbudowane LUA (jak unpack, print i inne), kt?rych parametrem musi by? tablica oraz zwracaj? dwie warto?ci! Wi?cej o zwracaniu dw?ch warto?ci z funkcji w rozdziale "Returny".

To teraz troszk? praktyczniej. Do czego mo?e nam si? przyda? pairs i ipairs? B?dzie to bardzo u?yteczne np. w tablicy, kt?rej warto?ciami s? uid stworze?, przedmiot?w itd. ?atwiej b?dzie na przyk?ad napisa? skrypt, kt?ry wysy?a do ka?dego gracza jak?? wiadomo??:
PHP:
for i, v in ipairs(getPlayersOnline()) do
doPlayerSendTextMessage(v, MESSAGE_INFO_DESCR, "Tresc wiadomosci.")
end
Inaczej m?wi?c pairs i ipairs jest nieocenione, kiedy trzeba u?y? wszystkich warto?ci z tablicy. Przyk?ad: M
Mamy w tablicy pozycje, chcemy sprawdzi?, czy s? na nich gracze.

Jak by?my to zrobili bez u?ycia pairs i ipairs.
PHP:
local positions = {{x=1000, z=1000, z=7, stackpos=253}, {x=584, y=972, z=8, stackpos=253}}
for i = 1, #positions do
if(not isPlayer(getThingfromPos(positions[i]).uid)) then
return false
end
end
Oraz z u?yciem naszych dw?ch funkcji.
PHP:
local positions = {{x=1000, z=1000, z=7, stackpos=253}, {x=584, y=972, z=8, stackpos=253}}
for i, v in ipairs(positions) do
if(not isPlayer(getThingfromPos(v).uid)) then
return false
end
end
R??nica jest tylko jedna - positions zast?puje v. Mimo tego przyjemniej u?ywa si? tej drugiej metody.
Jeszcze tak na zako?czenie. i, v oraz k, v s? tylko nazwami zmiennych. Mo?emy za nie podstawi?, co tylko zechcemy - np. zenek, mietek czy te? kanapka, kosmita itp.

To by by?o na tyle z tej cz??ci.
 
R

Rahim

Guest
Odp: LUA dla zaawansowanych.

FUNKCJE table

Ten rozdzialik powinien Was szczeg?lnie zainteresowa?. Om?wi? tutaj wszystkie znane mi funkcje table, kt?re s? bardzo pomocne przy korzystaniu z tablic. Niekt?re zapewne ju? znacie: table.insert, table.remove. Ni?ej przedstawi? Wam inne, nie mniej ciekawsze i pomocne funkcje.


1. table.foreach(tabela, funkcja)
Ta funkcja jest czym? podobnym do p?tli z u?yciem pairs - ona te? "przekopuje" i robi to pokolei, z czym pairs mia?o problemy, lecz mo?e wykona? tylko jedn? funkcj?. Funkcja musi by? bez parametr?w. Ma?y przyk?ad u?ycia table.foreach:
PHP:
local tbl = {2, 3, 7, 5, 99, 213, 45, 92}
table.foreach(tbl, print) --print jest funkcj?, kt?r? chc?, aby funkcja table.foreach wykonywa?a. Parametrami print zostan? indeks oraz warto?? tablicy z ka?dej pozycji.
Oto, co nam si? uka?e:
1 2
2 3
3 7
4 5
5 99
6 213
7 45
8 92
Pierwszy rz?dek jest indeksem (to to samo, co wcze?niej nazywa?em pozycj?), drugi warto?ci?. Table.foreach ?atwo zast?puje si? p?tl? for z u?yciem pairs, kt?ra ma w swoim obwodzie do wykonania jedn? funkcj?, ale z maksymalnie dwoma parametrami. (na upartego... mo?na w bardzo prosty spos?b zrobi? kilka funkcji, kt?re owa funkcja wykona. Jak? Zostanie to opisanie ni?ej).

Oto przyk?ad zastosowania w grze:
PHP:
local tbl = {[cid] = {x=1000, y=1000, z=7}}
table.foreach(tbl, doTeleportThing)
W tej sytuacji funkcja doTeleportThing przyjmuje parametry cid oraz {x=1000, y=1000, z=7}. Faktycznie - gracz zostanie teleportowany po wykonaniu tego skryptu. Ale co, je?li gracz o uid "cid" nie istnieje (nie jest offline)? Trzeba by ju? zastosowa? p?tl? pairs b?d? ipairs - w table.foreach mo?na wykona? tylko jedn? funkcj?. Oczywi?cie w table.foreach mo?emy tak?e u?ywa? funkcji LUA wbudowanych w silnik.
PHP:
    local tbl = {["demon"] = jakasPos}
    table.foreach(tbl, doSummonCreature)
Taki skrypt zsumonuje demona na pozycji jakasPos. Ale co, je?li dodamy dwa lub wi?cej potwor?w do summonowania? Np.
PHP:
{["demon"] = topos, ["rat"] = frompos, ["dragon"] = {x=1030, y=990, z=7}}
Wtedy zostanie zsumonowany tylko jeden. Ot?? gdy funkcja b?dzie zwraca? warto?? inn?, ni? nil, table.foreach przerwie wykonywanie p?tli.
Wspomina?em wy?ej, ?e w taki spos?b mo?emy w table.foreach wykona? tylko jedn? funkcj?... A co, jak naprawd? bardzo mocno nam zale?y, aby table.foreach wykona?o kilka funkcji? A no i tak si? da... bo przecie? zawsze mo?na napisa? funkcj?, kt?ra b?dzie wykonywa?a inne funkcje. Jak to wyglada w praktyce?
PHP:
    local tbl = {[cid] = "Czesc", [43365345] = "Yo u", [123234] = "Dzien dobry!"}
   table.foreach(tbl, function(k, v) if(isPlayer(k)) then doPlayerSendTextMessage(k, MESSAGE_INFO_DESCR, v) end return nil end)
Ta funkcja wy?wietli wiadomo?? dla graczy o uid podanym w indeksie,a tekstem zawartym w warto?ci. Je?li gracz nie zostanie znaleziony, wiadomo?? nie zostanie wy?wietlona.

Wracaj?c do summonowania potwor?w. Jak wspomina?em, zostanie postawiony tylko jeden stworek, potem nie wykona si? dalej p?tla, poniewa? doSummonCreature zwraca uid creatury, a aby p?tla wykonywa?a si? dalej, funkcja musi zwr?ci? nil. Jak to zrobi?, aby by?o dobrze? ; )
PHP:
    local tbl = {["demon"] = topos, ["rat"] = frompos, ["dragon"] = {x=1030, y=990, z=7}}
    table.foreach(tbl, function (k, v) doSummonCreature(k, v) return nil end)
2. table.sort(tabela [, funkcja])
Prosta funkcja, kt?ra sortuje warto?ci w tablicy w kolejno?ci okre?lonej w funkcji (je?li nie, sortuje rosn?co). My?l?, ?e ka?dy rozumie, do czego i w jaki spos?b mo?e by? u?yta, zatem obejdzie si? bez zb?dnego t?umaczenia. Przyk?adzik:
PHP:
local tbl = {1, 3, 2, 6, 4, 8, -76, 17.8}
table.sort(tbl)
print(unpack(tbl))
-76 1 2 3 4 6 8 17.8
Jak wida?, warto?ci s? poustawiane rosn?co. A co, je?li chcemy je ustawi? malej?co? Zn?w zastosujemy funkcj? w parametrze, niczym w table.foreach, jednak tym razem funkcja nie musi zwraca? nil.
PHP:
local tbl = {1, 3, 2, 6, 4, 8, -76, 17.8}
 table.sort(tbl, function(k, v) return k > v end)
 print(unpack(tbl))
17.8 8 6 4 3 2 1 -76
A je?li mamy w tabeli s?owa i chcemy je posortowa? alfabetycznie? U?yjemy tutaj funkcji string.byte, kt?ra zwraca liczb? porz?dzkow? litery w uk?adzie kodowania ASCII. Wi?cej o tej funkcji, jak i innych z rodziny string, w kontynuacji mojego poradnika (j?li powstanie), w rozdziale "Funkcje string".
PHP:
    local tbl = {"x", "r", "q", "f", "o", "z", "s", "a", "k"}
    table.sort(tbl, function(k, v) return string.byte(k, 1) < string.byte(v, 1) end)
    print(unpack(tbl))
Wynikiem b?dzie:
a f k o q r s x z
Je?li chcemy wstecz, po prostu zmieniamy znak wi?kszo?ci.
PHP:
    local tbl = {"x", "r", "q", "f", "o", "z", "s", "a", "k"}
    table.sort(tbl, function(k, v) return string.byte(k, 1) > string.byte(v, 1) end)
    print(unpack(tbl))

z x s r q o k f a
3. table.concat(tabela [, separator [, odIlu [, doIlu]]])
Ciekawa funkcja, kt?ra pozwoli nam zast?pi? unpack. Table.concat pozwala po??czy? nam wszystkie warto?ci w tabeli w jedn? warto??. Separator okre?la znak, kt?rym warto?ci w tabeli b?d? oddzielane (je?li nie okreslimy separatora, wtedy wszystkie warto?ci b?d? ?cipni?te ze sob? =d). odIlu okre?la, od kt?rej pozycji w tabeli funkcja zacznie ??czy? warto?ci, a doIlu, do kt?rej warto?ci. Przyk?ad bez u?ycia separatora.
PHP:
local tbl = {"x", "r", "q", "f", "o", "z", "s", "a", "k"}
print(table.concat(tbl))
Oto, co otrzymamy:
xrqfozsak
Prawda, ?e urocze? ?cipni?te jak konserwa w puszcze. Taki zapis nie jest zbytnio czytelny, zatem pozwol? sobie pokaza? wam przyk??d u?ycia separatora.
PHP:
local tbl = {"x", "r", "q", "f", "o", "z", "s", "a", "k"}
print(table.concat(tbl, ", "))
Wynik ko?cowy:
x, r, q, f, o, z, s, a, k
Nie jest ?le. A co, jesli chc? np. zacz?? ??czy? warto?ci dopiero od drugiej pozycji?
PHP:
 local tbl = {"x", "r", "q", "f", "o", "z", "s", "a", "k"}
 print(table.concat(tbl, ", ", 2))
r, q, f, o, z, s, a, k
A jesli od warto?ci numer 3 do warto?ci numer 5?

PHP:
  local tbl = {"x", "r", "q", "f", "o", "z", "s", "a", "k"}
  print(table.concat(tbl, ", ", 3, 5))
q, f, o
Tak wi?c table.concat mo?e na przyk?ad przyda? si? przy wy?wietlaniu listy graczy online...
PHP:
function onSay(cid, words, param)
    local tbl = {}
    table.foreach(getPlayersOnline(), function(k, v) table.insert(tbl, k, getPlayerName(v).."["..getPlayerLevel(v).."]") return nil end)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player" .. (#tbl == 1 and "" or "s") .. " online: " .. table.concat(tbl, ", ") .. ". ")
return true
end
Prosty skrypt talkactions, kt?ry pokazuje graczy online oraz ich poziom do?wiadczenia. Du?o kr?tszy, ni? na TFS'ie ;>
Oto wynik ko?cowy:
13:29 Player online: Rahimene[100].
13:31 Players online: Rahimene[100], Kanciak[8].


REPEAT... UNTIL

Repeat until jest p?tl?, kt?ra programistom c++ powinna by? dobrze znana - jest to p?tla do... while u?ywana w c++. P?tla wykonuje si? ta przynajmniej raz - je?li r?wno?? zawarta w wyra?eniu until b?dzie prawdziwe p?tla wykona si? dalej. Przyk?ad:
PHP:
repeat
doPlayerAddHealth(cid, 10)
until getPlayerHealth(cid) < 100
B?dzie leczy? gracza po 10 hp dop?ki nie b?dzie mial wi?cej ni? 100 hp.

Og?lnie p?tla repeat until zawsze wykona si? conajmniej raz, bez wzgl?du na prawdziwo?? wyra?enia until.

PHP:
repeat
--body
until wyra?enie (je?li wyra?enie przyjmie warto?? logiczn? true, wtedy p?tla przestanie si? wykonywa?)
_________________________________________
_________________________________________
_________________________________________
To by by?o na tyle... W sumie jakich? ciekawszych informacji nie poda?em Wam, uzupe?ni?em jedynie informacje, kt?re nie zosta?y podane w innych poradnikach.
W nast?pnym poradniku (je?li takowy napisz?) zostanie opisane:

•Wyra?enia przyjmuj?ce warto?? logiczn?
•Wszystko o return
•Funkcje "string"

I zapewno co? jeszcze. Tak czy siak... mam nadziej?, ?e kilka godzin mojego ?ycia nie posz?o na marne i co? tam Wam do g?owy wesz?o. Nauczyciela ze mnie nie b?dzie, ale mam nadziej?, ?e wystarczaj?co Wam opisa?em wszystkei zagadnienia.

Pozdrawiam i licz? na komentarze odno?nie mojej pracy.
Je?li czego? nie rozumiecie itp. to po prostu zapytajcie :)
 

Yo Z

Advanced User
Joined
Oct 17, 2009
Messages
244
Reaction score
13
Odp: LUA dla zaawansowanych.

Szacun za napisanie takiego poradnika.

jest ?adny przej?ysty ;]
Napewno wielu graczy skorzysta z tego ;]]]
Jak b?d? mie? czas to i ja si? zalicz? do zadowolonych graczy kt?rzy wypr?bowali ten w?a?nie poradnik...

pytanie ile go pisa?e??
 

Aragornkk

Senior User
Joined
Oct 11, 2008
Messages
705
Reaction score
44
Odp: LUA dla zaawansowanych.

Bardzo dobrze wykorzystane zaawansowane funkcje lua. Osobi?cie jednak preferuje stary spos?b robienia skrypt?w ( bez ?adnych dodatk?w i utrudnie?)
Odemnie masz reputka za w?o?on? prace w pisanie tego przejrzystego poradnika.
A mam troch? chaotyczne pytanie: czy konsola szybciej wykona funkcj? z tabel? czy bez tabeli?
 

Vill

New User
Joined
Nov 8, 2009
Messages
5
Reaction score
2
Odp: LUA dla zaawansowanych.

W?a?nie tego szuka?em! Dzi?ki Rahim, za wskaz?wki, jak zosta? pro-skrypterem :D
 
Top