Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Wszelkie pytania na temat SAIL'a i modowania OW.
Post Reply
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Jeanks »

Próbuję i mi nie wychodzi. Mianowicie potrzebuje kodu który wywoła zdarzenie gdy do Stacji radarowej wejdzie żołnierz. Nie było by problemu tylko, że budynek będzie dopiero wybudowany przez gracza.

Próbowałem z On BuildingComplete oraz IsInUnit ale coś nie działa tzn zdarzenie wykonuję się losowo czasem jak zbuduje warsztat czasem jak zbrojownie.
Oczywiście dałem GetBType(ID)=b_control_tower żeby nie było ;p

Code: Select all

On BuildingComplete(radar) do
begin
If GetBtype(radar)=b_control_tower then
If IsInUnit(un) then
If GetClass(un)=class_soldier then
If Minutnik < 20 then
BackupOp1
        else
BackupOp2;
    end;

Oczywiście dałem wcześniej var un ;]
Jeanks zgarnia wszystko ot co xD
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4166
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Serpent »

WTF???

Jest event na wejście do budynku (patrz misja 1 i EON).

Code: Select all

On EnterBuilding(b, un) do
begin
      
       If GetBType(b) = b_control_tower {czy jakoś tak} then
          If un = jednostka then
            begin
             // kod
            end;
end;

Tylko nie zapomnij dodać warunku do jednego wejścia żeby kod nie powtarzał się za każdym razem gdy jednostka do niej wejdzie.
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
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Re: Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Jeanks »

POPRAWIONY KOD I DZIAŁA PIĘKNIE


Pamiętamy dać Backup=0 po Starting Begin

Code: Select all

             var un,radar,zm,dow,sol2,sol3,war3,veh;
   export backup;
On EnterBuilding(radar,un) MARKED 11 do
begin
un=steve;
If GetBtype(radar)=b_control_tower then
If GetClass(un)=class_soldier then
If Backup=0 then
If Minutnik < 20 then  
BackupOp1
else
BackupOp2;
    end;      



Every 1$0 do
begin
Minutnik = Minutnik + 1;
enable;
end;


Export Function BackupOp1 ;

begin
zm=0;
uc_side = 1;
        uc_nation = nation_american;
  // ludzie
        hc_class=1 ;
        hc_name='';
        hc_skills=[Rand(5,6),Rand(1,5),Rand(1,5),Rand(1,5)];
        dow=CreateHuman;

Say(steve,'d1');
say(dow,'d2');
wait(0$30);
repeat begin
zm=zm+1;
uc_side = 1;
        uc_nation = nation_american;
  // ludzie
        hc_class=1 ;
        hc_name='';
        hc_skills=[Rand(1,3),Rand(1,3),Rand(1,3),Rand(1,3)];
        sol2=CreateHuman;
           vc_chassis=us_light_wheeled;
vc_engine=engine_combustion;
vc_control=control_manual;
vc_weapon=us_gatling_gun;
veh=CreateVehicle;
PlaceUnitArea(veh,area21,false);
PlaceHumanInUnit(sol2,veh);
        end until zm=2 ; BackUp=Backup+1;        end;

Export Function BackupOp2;
begin
zm=0;
uc_side = 1;
        uc_nation = nation_american;
  // ludzie
        hc_class=1 ;
        hc_name='';
        hc_skills=[Rand(5,6),Rand(1,5),Rand(1,5),Rand(1,5)];
        dow=CreateHuman;

Say(steve,'d1');
say(dow,'d3');
wait(0$45);
repeat begin
zm=zm+1;
uc_side = 1;
        uc_nation = nation_american;
  // ludzie
        hc_class=1 ;
        hc_name='';
        hc_skills=[Rand(2,4),Rand(2,4),Rand(2,4),Rand(2,4)];
        sol2=CreateHuman;
           vc_chassis=us_medium_tracked;
vc_engine=engine_combustion;
vc_control=control_manual;
vc_weapon=us_gatling_gun;
veh=CreateVehicle;
PlaceUnitArea(veh,area21,false);
PlaceHumanInUnit(sol2,veh);
        end until zm=3; BackUp=Backup+1;    end;
Last edited by Jeanks on Mon May 06, 2013 2:50 pm, edited 3 times in total.
Jeanks zgarnia wszystko ot co xD
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4166
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Serpent »

Ty no jak nie potrafisz eventów używać no to jak ma ci to działać?

Code: Select all

un=steve;  // ID JEDNOSTKI TYLKO ON MA PRAWO WYWOŁAĆ KOD
Gówno prawda, według tego co napisałeś "każda jednostka która wejdzie do byle jakiego budynku otrzyma ident steve". Przejrzyj kody, jak to ma wyglądać.

Zresztą, estetyka kodu leży nawet nie wiem jak to sprawdzić.
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
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Re: Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Jeanks »

Ale to nie działa w ogóle ani dla Steve'a ani dla nikogo innego to już działało lepiej z BuildingComplete bo chociasz funkcja przypadkowo ale sie wywoływała tutaj nie ma nic.


EDIT:// Działa oj Panie musze CIe rozczarować i zatkać

Działa tylko gdy do budynku wejdzie Steve i będzie żołnierzem czyli tak jak chcę
Żadna inna jednostka nie wywołała kodu :P


Dzięki i tak za to, że przypomniałeś mi o tym EnterBuilding.
Poprawny kod dwa posty wyżej
Jeanks zgarnia wszystko ot co xD
User avatar
Gothuk
Site Administrator
Site Administrator
Poland
Posts: 985
Joined: Tue Sep 04, 2007 6:10 pm
Location: Poland, Warsaw
Contact:

Re: Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Gothuk »

Twój kod nie jest poprawny.
Instrukcje wykonają się jak jakikolwiek człowiek wejdzie do wieży kontrolnej i Steve w tej chwili będzie żołnierzem.
Jeżeli chcesz sprawdzić czy to Steve wszedł do tej wieży to dodaj sprawdzanie w ifie (if un = steve then ...).
Aha, nie wiem czy wiesz, ale warunki można łączyć, np. poprzez and, or.

Ogólnie tak jak Serp napisał, tragiczne formatowanie kodu :x.
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Re: Zdarzenie gdy żołnierz wejdzie do stacji radarowej

Post by Jeanks »

Eee wiem. Nie będę się z Tobą kłócił ale kod działa tylko gdy wejdzie Steve nie będę tego powtarzał trzeci raz :P może przez pomyłkę nie wiem ale tylko gdy wejdzie Steve.

Nie ważne jak wygląda kod skoro działa.
Jeanks zgarnia wszystko ot co xD
Post Reply