Nadawanie nowo wybudowanym budynkom identów

Wszelkie pytania na temat SAIL'a i modowania OW.
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Serpent »

Polecam patent z ComEnterUnit przy wstawianiu ludzi do bunkrów gdyż PlaceHumanInUnit powoduje że człowiek wsadzony tak do bunkra zawsze zwrócony będzie w stronę 0 ;) (przy wieżyczkach nie ma tego problemu).
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Markok
Soldier level 6
Soldier level 6
Posts: 314
Joined: Thu Sep 04, 2014 12:53 am
Location: Oberschlesien
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Markok »

Tyle, że przynajmniej na 1.12.10.15 funkcji IsEmpty nie ma (ani w żadnym spisie).
Wstawiłem zamiast tego IsInUnit = 0 i hula, sytuacja opanowana.
Edit. Chodziło chyba o filterek f_empty :)
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Serpent »

Sory, faktycznie.

IsEmpty to moja funkcja której używam w SoSie ;)

Code: Select all

// return true if building is empty
Export Function IsEmpty(unit);
var filter;
begin
filter := FilterAllUnits([[[f_side, GetSide(unit)], [f_type, unit_building], [f_not, [f_occupied]]]]);

       if not unit in filter then
          result := true
       else
          result := false;
End;
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Markok
Soldier level 6
Soldier level 6
Posts: 314
Joined: Thu Sep 04, 2014 12:53 am
Location: Oberschlesien
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Markok »

O ile wstawianie ludzi do bunkrów działa elegancko, to już przefiltrowanie tak samo zbrojowni i próba wsadzenia tam trzech gości kończy się ich wędrówką do depotu, chociaż filtr b_armoury jest, a nie b_depot.. tak samo z fabryką czy labem, potem wziąłem się z wkurzenia za ewentualne naprawianie budynków przez inżyniera przy ataku za pomocą funkcji GetLives, tu też są niezłe jaja, <1000 sprawia, że eng to po prostu pier%$li, dodanie = skutkuje ciągłym czatowaniem przy jednym z bunkrów..
Chyba zostanę przy koncepcji misji opartych na budowie bazy i nacierających falach wroga, bo AI bazy , a raczej jego brak wbija mi gwoździe w mózg :roll:
Serp nie masz ochoty na SoSa to Cię pomęczę, a nóż Ci się zachce :D

Code: Select all

Every 0$01 do
var i,zbroja;
begin
for i = 1 to 3 do begin
zbroja = FilterAllUnits([[f_btype,b_armoury],[f_side,1]]);
//budowa solda
ComEnterUnit(sold,zbroja); 
end; 
end; => grupka żołnierzy wkracza na libację do składu..

Every 0$01 do
var i,bud;
begin
enable;
for i = 1 to bud do
bud = FilterAllUnits([[f_type,unit_building],[f_side,1]]);
If GetLives(bud[i])<1000 then begin
 ComRepairBuilding(eng,bud[i]);
 AddComReturn(eng);
end; 
end; => inżynier leży zapity w składzie i ani myśli się z niego ruszać
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Serpent »

Spoiler:

Code: Select all

 // naprawa
Every 0$01 do
var i, engs, dmg_b;
begin
enable;

engs := FilterAllUnits([[[f_side, 3], [f_class, 2], [f_ok]]]);
dmg_b := FilterUnitsInArea(ru_base, [[[f_side, 3], [f_type, unit_building], [f_not, [f_lives, 1000]]]]);

      if engs then
         begin

              if dmg_b then
                 begin
                 for i = 1 to engs do
                     if IsInUnit(engs[i]) then
                        ComExitBuilding(engs[i])
                         else
                          if not HasTask(engs[i]) then
                             ComRepairBuilding(engs[i], dmg_b[1]);
                 end
                  else
                      begin
                      for i = 1 to engs do
                          if not HasTask(engs[i]) and not IsInUnit(engs[i]) then
                             ComEnterUnit(engs[i], ident_magazynu);
                      end;
         end;
End; 
Jeżeli są jakieś uszkodzone budynki to wszyscy inżynierowie koloru czerwonego wyjdą z magazynu i pójdą naprawiać 1 budynek z listy. Jeżeli nie ma uszkodzonych budynków to niech wracają do magazynu.

Code: Select all

// wejscie
zbroja = FilterAllUnits([[f_btype,b_armoury],[f_side,1]])[1];

for i = 1 to 3 do
     ComEnterUnit(sold[i], zbroja);
Trzeba pamiętać że jednostki czasami muszą wykonać kilka czynności zanim przystąpią do tej właściwej. Ty w swoim kodzie nakazujesz od razu naprawę budynku jednostce która siedzi w magazynie. To tylko jeden z wielu przykładów ;D
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Markok
Soldier level 6
Soldier level 6
Posts: 314
Joined: Thu Sep 04, 2014 12:53 am
Location: Oberschlesien
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Markok »

Kolejne ambitne pytania w drodze :
1. Co zrobić przy randomowym spawnowaniu pojazdów, żeby gatling się nie pchał na jankeskie lekkie podwozie ?
2. Czemu vc_weapony nie idą kolejno 1-mg 2-gat, tylko między mg a gatem dali lekkie działo, niechciane lekkie działo, da się jakoś to wyłączyć, słyszałem że stałe można zmieniać więc bym sobie mgka pod lekkie działo wrzucił, da radę ?
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Serpent »

2. Co to za problem?

Code: Select all

export lekkie_dzialo, lekki_karabin;
Export Function Define_Weapons;
begin
lekkie_dzialo := us_light_gun;
lekki_karabin := us_machine_gun;
end;
Chociaż nie widzę sensu. Lepiej użyć tablic.

1. Użyj if'ów.

Code: Select all

var weapon;
begin
weapon := [us_gatling_gun, ru_gun][Rand(1,2)];
vc_weapon := weapon;

if weapon = us_gatling_gun then
   vc_chassis := us_medium_wheeled
else
   vc_chassis := ru_medium_wheeled;

Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Markok
Soldier level 6
Soldier level 6
Posts: 314
Joined: Thu Sep 04, 2014 12:53 am
Location: Oberschlesien
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Markok »

W dwójce mi chodzi o to, że nie chcę jak daję Rand(2,4) żeby mi lekkie działo się spawnowało, jutro te kawałki kodu sprawdzę.
PS. Zadaję bardziej ambitne pytania od Creativa :D ?
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Nadawanie nowo wybudowanym budynkom identów

Post by Serpent »

Markok wrote:W dwójce mi chodzi o to, że nie chcę jak daję Rand(2,4) żeby mi lekkie działo się spawnowało, jutro te kawałki kodu sprawdzę.
Patrz przykład przy 1.
Markok wrote: PS. Zadaję bardziej ambitne pytania od Creativa :D ?
Nie ;D
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Post Reply