Jest to mój drugi artykuł, w którym opiszę najważniejsze rzeczy na OTS:
- pętle, które wykonują coś kilka razy
- tablice, które mogą przechowywać wiele danych
Pętle:
Przyjmijmy, że chcesz wykonać coś kilka razy, np. robisz skrypt, gdzie musisz trzy razy wysłać graczowi wiadomość "test".
Można to zrobić w ten sposób:
Kod:
doPlayerSendTextMessage(cid, 22, "test")
doPlayerSendTextMessage(cid, 22, "test")
doPlayerSendTextMessage(cid, 22, "test")
Kod:
for i = 1, 3 do
doPlayerSendTextMessage(cid, 22, "test")
end
Dla i równego 1 do 3 zrób
wyślij graczowi CID wiadomość test
zakończ
'i' jest tu tymczasową zmienną wykorzystaną w kodzie, od razu deklarujemy ją na wartość 1 i uruchamiamy pętlę od 1 do 3.
Można 'i' wykorzystać też w zawartości pętli np.
Kod:
for wartosc = 1, 5 do
doPlayerSendTextMessage(cid, 22, wartosc)
end
1
2
3
4
5
Jednocześnie.
Tablice:
Jest to zbiór wartości np. nagrody. Przykładem tablicy jest jedzenie w tibii :) Każde ID żywności ma swój znacznik zapełnienia gracza oraz odgłos jedzenia.
Ok, do rzeczy:
Kod:
local tabelka = {2160,2464,2470}
doPlayerAddItem(cid, tabelka[1], 1)
Teraz pomieszajmy pętlę z tablicą:
Kod:
local tabelka = {2160,2464,2470}
for petelka = 1, #tabelka do
doPlayerAddItem(cid, tabelka[petelka], 1)
end
Uruchamiam następnie pętlę od 1 do #tabelka. Jeśli podasz nazwę tabelki poprzedzając #, efektem będzie wartość oznaczająca, ILE dana tabela ma wartości, w tym przypadku #tabelka = 3, czyli uruchamia pętlę od 1 do 3.
Natomiast w samej pętli dodaje nam 1 item tabelka[petelka]. Brzmi tajemniczo?
To nie jest takie trudne, petelka to jest nasza pętla, w tym przypadku jej konkretny obrót, jeśli będzie np. tabelka[1] to będzie chodzić o 2160, jeśli 2 to 2464 a 3 to 2470, proste? Chyba tak :)
Można w podobny sposób dodać też ilość nagród:
Kod:
local tabelka = {2160,2464,2470}
local ilosc = {1,1,1}
for petelka = 1, #tabelka do
doPlayerAddItem(cid, tabelka[petelka], ilosc[petelka])
end
Kod:
local tabelka =
{
[2160] = {1, 2},
[2464] = {5, 7},
[2470] = {11, 22}
}
Można to wykorzystać tak:
Kod:
local tabelka =
{
[2160] = {1, 2},
[2464] = {5, 7},
[2470] = {11, 22}
}
doPlayerSendTextMessage(cid,22,#tabelka[2160])
Można jeszcze zrobić o, tak:
Kod:
local tabelka =
{
[2160] = {1, 2},
[2464] = {5, 7},
[2470] = {11, 22}
}
doPlayerSendTextMessage(cid,22,tabelka[2464][2])
Mam nadzieję, że ten artykuł pomoże niektórym, pozdrawiam!
Zakładki