Morvan wrote:
Tutaj natomiast nie rozumiem dlaczego to występuje w postaci dwuwymiarowej, opis wg. mnie wyjasnia, ze zwraca tablice jednowymiarowa, w ktorej znajduja sie wartosci dot. [task, x, y, par1, par2, patrol]
GetTaskList zwraca listę zadań czyli [ [zadanie1], [zadanie2], ... ]
Nawet jeśli jest tylko jedno to będzie [ [zadanie1] ]
Dlatego jeśli napiszesz GetTaskList(Mercenary1)[1] to zwróci coś takiego:
[literka komendy, x, y, id, 0, 0, 0]
Teraz o ile dobrze pamiętam:
Każda komenda ma przypisaną literkę, przy czym trzeba rozróżnić duże od małych. Nie wiem czy jest jakiś spis, ja zawsze sprawdzałem każdą której potrzebowałem samemu.
x i y to koordynaty celu tego zadania, czyli tutaj małpy
id też odnosi się do celu, czyli id małpy (tu trochę nie jestem pewien)
pozostałe działają tylko w niektórych przypadkach (np pamiętam że jedno z nich rozróżnia podłożenie miny czasowej od zdalnej) w większości przypadków, gdy nie są do niczego potrzebne, to po prostu 0.
Morvan wrote:
W swoim kodzie spróbowałem zrobić coś takiego : if GetTaskList(Doctor)[1][1]=84 then begin 'doctor lapie malpki'
albo
GetTaskList(Doctor)[1]=84 then begin 'doctor lapie malpki'
Funkcja GetTaskList(Doctor)[1][1] zwróci literkę zadania (oswajanie to 'T' - jak wyżej). Cyfr do komend używa się przy evencie On Command.
Czyli powinno być if GetTaskList(Doctor)[1][1]='T' ale tutaj sprawdzasz tylko pierwsze zadanie z całej listy. Czyli jeśli przytrzymasz shift i wydasz kilka zadań z oswajaniem na końcu, to nie zadziała. Przynajmniej dopóki oswajanie nie przejdzie na pierwsze miejsce na liście.