ActiveUnitChanged nie działa

Wszelkie pytania na temat SAIL'a i modowania OW.
zhtk
Soldier level 0
Soldier level 0
Posty: 6
Rejestracja: Lun Ago 08, 2011 6:58 pm

ActiveUnitChanged nie działa

Mensaje autor: 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):

Código: Seleccionar todo

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;)?
Avatar de Usuario
Serpent
Soldier level 10
Soldier level 10
Estonia
Posty: 4169
Rejestracja: Mar Jul 07, 2009 9:13 pm
Ubicación: Polska - EuroStan ZSRE
Kontakt:

Re: ActiveUnitChanged nie działa

Mensaje autor: Serpent »

Código: Seleccionar todo

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:

Código: Seleccionar todo

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
Posty: 6
Rejestracja: Lun Ago 08, 2011 6:58 pm

Re: ActiveUnitChanged nie działa

Mensaje autor: 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?
Avatar de Usuario
Serpent
Soldier level 10
Soldier level 10
Estonia
Posty: 4169
Rejestracja: Mar Jul 07, 2009 9:13 pm
Ubicación: Polska - EuroStan ZSRE
Kontakt:

Re: ActiveUnitChanged nie działa

Mensaje autor: 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

Código: Seleccionar todo

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
Posty: 6
Rejestracja: Lun Ago 08, 2011 6:58 pm

Re: ActiveUnitChanged nie działa

Mensaje autor: zhtk »

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