Atrybuty

Wszelkie pytania na temat SAIL'a i modowania OW.
Post Reply
kmicic11
Soldier level 1
Soldier level 1
Poland
Posts: 18
Joined: Sat Feb 10, 2024 2:20 pm

Atrybuty

Post by kmicic11 »

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;
User avatar
Don Hard
Soldier level 5
Soldier level 5
Nepal
Posts: 244
Joined: Thu May 28, 2015 7:40 pm
Location: Lechia

Re: Atrybuty

Post by Don Hard »

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.
kmicic11
Soldier level 1
Soldier level 1
Poland
Posts: 18
Joined: Sat Feb 10, 2024 2:20 pm

Re: Atrybuty

Post by kmicic11 »

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 .
User avatar
Don Hard
Soldier level 5
Soldier level 5
Nepal
Posts: 244
Joined: Thu May 28, 2015 7:40 pm
Location: Lechia

Re: Atrybuty

Post by Don Hard »

Ź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;
kmicic11
Soldier level 1
Soldier level 1
Poland
Posts: 18
Joined: Sat Feb 10, 2024 2:20 pm

Re: Atrybuty

Post by kmicic11 »

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.
Post Reply