W tym tygodniu napiszemy skrypt, który będzie pozwalać na losowe zmienianie ubioru. W tym przykładzie ustawimy zmiany na 2 sekundy, ale pamiętaj, że podczas zmiany ubrania może wystąpić krótki lag. Dlatego radzimy ustawiać skrypt tak, aby zmieniał ubrania w dość dużych odstępach czasu..

Policzmy ubrania
Na samym początku pracy, musimy policzyć ile tak naprawdę mamy ubrań w każdej kategorii. Będziemy je trzymać w tabeli:
Mamy 18 różnych rodzajów ubrań. (będzie to udokumentowane tak jak reszta ID, kiedy mod zostanie wydany):
local clothes = 0–stosujemy pętlę typu while, aby zwiększać go aż dojdzie do nieprawidłowego ID ubrania
while getClothesByTypeIndex ( type, clothes ) ~= false do
clothes = clothes + 1
end –pamiętajmy, że ostatni id w ogóle nie istnieje. Musimy go skasował
–z licznika, w którym jest przechowywany
count[type] = clothes – 1
end
Tworzenie funkcji zmieniającej ubrania
Przejdźmy do napisania głównej funkcji, która będzie faktycznie zmieniać ubrania. Na początku zadeklarujmy samą funkcję, abyśmy potem mogli jej używać:
Teraz udostępnijmy ją dla każdego z podłączonych graczy. Można ich uzyskać, poprzez pobranie tabeli, w której są przechowywani przez serwer, potem zapętlimy skrypt tak, aby korzystając z niej zmieniać ubrania.Pobierzmy więc samą tabelę:
Następnie zastosujmy funkcję Lua FOR, jaką jeden z rodzajów pętli, aby przemieszczać się pomiędzy każdym z graczy w tabeli.
Na początku musimy wybrać ubranie losując je za pomocą funkcji Lua math.random. Nie zajmiemy się tatuażami, bo ich zwyczajnie nie widać pod ubraniami (ID 4-12):
if accessory == 1 then –ustawiamy akcesoria, takie jak okulary type = math.random ( 13, 17 ) else –następnie zajmujemy się fryzurami/koszulkami/spodniami/butami
type = math.random ( 0, 3 ) end
Ubrania, które są kompletami (ID 17) są normalnie zakładane na koszulki I spodnie, dlatego usuniemy je, jeżeli zajdzie taka potrzeba:
Teraz zwyczajnie wylosujmy typ ubrania:
–…I ubierzmy naszego gracza.
–pobieramy teksturą i model za pomocą funkcji getClothesByTypeIndex
texture, model = getClothesByTypeIndex ( type, clothing ) –I oczywiście zmieniamy sam wygląd gracza.
addPlayerClothes ( player, texture, model, type )
Nie wolno nam zapomnieć, aby zakończyć pętlę ‘for’ i deklarację funkcji.
End
End
Uruchomienie funkcji
Wreszcie, uruchamiamy naszą funkcję, jeżeli „dane źródłowe” będą pasowały do naszej funkcji (bardziej dokładniej opisane zostaną za chwilę) i kiedy ona sama startuje.
function clothesStart ( resourcename )
Nasza funkcja clothesStart powinna być wywoływana tylko, gdy TEN skrypt startuje. Ta linia kodu zapobiega ładowania danych, które nie pasują do skryptu:
Ustawmy licznik za pomocą funkcji setTimer tak jak w poprzednim tutorialu. Wywoływać będziemy naszą funkcję co dwie sekundy. Język Lua korzysta z danych czasowych w postaci milisekund. Jedna sekunda odpowiada 1000 milisekund.
setTimer ( ‘doChangeClothes’, 2000, 0 )
end
2010-09-03 13:15:06
gra wygląda ciekawie, chciałem w nia pograć, ale nikt nie dołącza do mojego serwera...