Próbuję dodać jednostką atrybuty stworzyłem taki kod i nie działa gdzie jest błąd:
Every 0$1 do
var i, j, un;
begin
result:=[];
for i:=1 to count do
begin
un:=CreateHuman;
begin
i=1
j=i
enable;
un := FilterAllUnits([[f_side, your_side], [f_type, unit_human]]);
if not un then
exit;
for i j in un do
for i j = 1 to 3 do
SetAttr(un, attr_speed, un, attr_stamina, GetAttr( [j], attr_speed, 20, attr_stamina, 20) );
end;
Atrybuty
Re: Atrybuty
W tym "kodzie" na każdej linijce trzeba byłoby się skupić dlaczego nie działa, dlatego pokrótce:
1. dajesz result (pusty) na samym początku z jakiegoś powodu.
2. nie znasz kompletnie budowy pętli for, a pisałem to już wcześniej. każda musi mieć swój begin i end.
3. nie dałeś średników w przypisywaniu wartości zmiennych.
4. enable jest niepotrzebne bo chcesz atrybuty przypisać raz, a nie ciągle.
5. pętla for przyjmuje tylko jedną wartość a nie dwie (i j(pomijam brak przecinka))
6. Nie mam pojęcia co miałeś na myśli i co chciałeś osiągnąć funkcją SetAttr. Funkcja przyjmuje trzy wartości - jednostkę, atrybut (speed, stamina) i wartość.
Jeśli będziesz dalej popełniał te same błędy to nie zamierzam odpisywać następny raz.
1. dajesz result (pusty) na samym początku z jakiegoś powodu.
2. nie znasz kompletnie budowy pętli for, a pisałem to już wcześniej. każda musi mieć swój begin i end.
3. nie dałeś średników w przypisywaniu wartości zmiennych.
4. enable jest niepotrzebne bo chcesz atrybuty przypisać raz, a nie ciągle.
5. pętla for przyjmuje tylko jedną wartość a nie dwie (i j(pomijam brak przecinka))
6. Nie mam pojęcia co miałeś na myśli i co chciałeś osiągnąć funkcją SetAttr. Funkcja przyjmuje trzy wartości - jednostkę, atrybut (speed, stamina) i wartość.
Jeśli będziesz dalej popełniał te same błędy to nie zamierzam odpisywać następny raz.
Re: Atrybuty
Poprawiłem kod :
Every 0$1 do
var i, j, un;
begin
enable;
un := FilterAllUnits([[f_side, 1], [f_type, unit_human]]);
if not un then
exit;
for i in un do
begin
for j := 1 to 4 do
SetAttr(i, j, 20);
end;
End;
Mam 1 i 4 umiejętność na 20 poziomie nie pasuje mi to.
Moje pytanie co tu zmienić aby mieć tylko atrybuty na 20
Po zmianie na
i=j pokazuje mi komunikat oczekiwane wyrażenie
Fragmenty kodu w poprzednim poście przekopiowałem z poradnika zone nie opisuje jakie funkcje i jak integrade pasuje do tego co jest wgrze gość który to wcześnjej napisał przekopiował fragmenty gry żadnych swoich opisów wyjaśnień tylko suche kopjuj wklej .
Every 0$1 do
var i, j, un;
begin
enable;
un := FilterAllUnits([[f_side, 1], [f_type, unit_human]]);
if not un then
exit;
for i in un do
begin
for j := 1 to 4 do
SetAttr(i, j, 20);
end;
End;
Mam 1 i 4 umiejętność na 20 poziomie nie pasuje mi to.
Moje pytanie co tu zmienić aby mieć tylko atrybuty na 20
Po zmianie na
i=j pokazuje mi komunikat oczekiwane wyrażenie
Fragmenty kodu w poprzednim poście przekopiowałem z poradnika zone nie opisuje jakie funkcje i jak integrade pasuje do tego co jest wgrze gość który to wcześnjej napisał przekopiował fragmenty gry żadnych swoich opisów wyjaśnień tylko suche kopjuj wklej .
Re: Atrybuty
Źle do tego podchodzisz. Jedyne do czego potrzebujesz pętle to nadania atrybutów liście wszystkich jednostek jakich potrzebujesz. A żeby je zebrać używasz filtra. Nie potrzeba się bawić w podwójne pętle.
Code: Select all
Every 0$1 do
var i, un;
begin
un := FilterAllUnits([ [f_side, 1], [f_type, unit_human] ]);
for i in un do
begin
SetAttr(i, attr_speed, 20);
SetAttr(i, attr_stamina, 20);
end;
End;
Re: Atrybuty
Dzięki
Nie chcę pisać posta pod postem. Ani tworzyć nowego tematu w tym samym temacie.
Żołnierze mają zwiększoną prędkość nie wiem jak zadać pytanie wujkowi google , albo szuajce na forum . czy poniesione atrybuty żołnierzy mają wpływ na prędkość pojazdów , czy zależy to od klasy żołnierza tzn musi być mechanikiem.
Nie chcę pisać posta pod postem. Ani tworzyć nowego tematu w tym samym temacie.
Żołnierze mają zwiększoną prędkość nie wiem jak zadać pytanie wujkowi google , albo szuajce na forum . czy poniesione atrybuty żołnierzy mają wpływ na prędkość pojazdów , czy zależy to od klasy żołnierza tzn musi być mechanikiem.