ActiveUnitChanged nie działa

Wszelkie pytania na temat SAIL'a i modowania OW.
Post Reply
zhtk
Soldier level 0
Soldier level 0
Posts: 6
Joined: Mon Aug 08, 2011 6:58 pm

ActiveUnitChanged nie działa

Post by zhtk »

Zastanawiam się czy w silnik OW pozwala na zrobienie gry RPG. Dialog z NPC wywoływałoby się zaznaczając rozmówcę.

Niestety ten kod się nie wykonuje (NPC mają inny side, przyjazne nastawienie):

Code: Select all

on ActiveUnitChanged(NewUnit) do
var selection;
begin
     if jakas_jednostka in NewUnit then
     begin
          repeat
          selection := SelectiveQuery('Dialog_1', Dialog_s1);
          // ...
     end;
end;
Pytania:
- Jakiego typu jest NewUnit - listą, liczbą, tekstem, ... ?
- Co zrobić żeby działało?
- Jaki może być substytut tego kodu (np. coś w rodzaju every 0$01 sprawdź zaznaczony unit)?

Pytania poza tematem:
- Czy zmienne są silnie typowane?
- Czy jest dostępna struktura słownikowa?
- Czy da się inicjować zmienne przy deklaracji (var x := 5;)?
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: ActiveUnitChanged nie działa

Post by Serpent »

Code: Select all

On ActiveUnitChanged(un) do
begin

     if un = ident_jednostki then
        // kod wywoła się za każdym razem po zaznaczeniu danej jednostki

End;
Czy zmienne są silnie typowane?
Zależy, zmienne lokalne nie są silnie typowane. Co do reszty to jest różnie.

Czy da się inicjować zmienne przy deklaracji (var x := 5;)?
Nie, tylko i wyłącznie tak:

Code: Select all

var x;
begin
x := 5;
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
zhtk
Soldier level 0
Soldier level 0
Posts: 6
Joined: Mon Aug 08, 2011 6:58 pm

Re: ActiveUnitChanged nie działa

Post by zhtk »

Ok, działa.

Przypuśćmy że zaznaczyłem kilka jednostek naraz. Wtedy un będzie listą czy event będzie wywołany kilka razy? A może aktywna jednostka to będzie ta z największym imp wśród zaznaczonych?
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: ActiveUnitChanged nie działa

Post by Serpent »

Nie, un to jednostka. Nie może być inaczej.

Jeżeli zaznaczysz kilka jednostek to event nie wykona się. Event wykonuje się tylko w przypadku JEDNEJ zaznaczonej jednostki.

// Tutaj sprawdzenie

Code: Select all

On ActiveUnitChanged(un) do
begin
display_strings := un;
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
zhtk
Soldier level 0
Soldier level 0
Posts: 6
Joined: Mon Aug 08, 2011 6:58 pm

Re: ActiveUnitChanged nie działa

Post by zhtk »

To wszystko co chciałem wiedzieć, dzięki.
Post Reply