Page 1 of 1

Medal za ludzi

Napsal: Tue Aug 11, 2009 10:35 am
od Pablo Abruzzi
Chciałem zrobić ,aby po stracie ludzi gracz nie dostał medalu, więc napisałem:

Code: Select all

every 0$1 trigger FilterAllUnits([[f_side,1],[f_type,unit_human]])=0 do
Begin
AddMedal('cel',1);
AddMedal('rob',1);
If FilterAllUnits([[f_side,3],[f_type,unit_human],])<15 then
AddMedal('syberyt',-1);
AddMedal('syberyt',1);
GiveMedals('MAIN');
YouWin;
end;
To nie działa, próbowałem różnych sposobów (z else i w innych warunkach, ale nic) Proszę o korekte tego kodu.

Re: Medal za ludzi

Napsal: Tue Aug 11, 2009 12:24 pm
od Gothuk

Code: Select all

every 0$1 trigger FilterAllUnits([[f_side,1],[f_type,unit_human]])=0 do
Begin
   AddMedal('cel',1);
   AddMedal('rob',1);
   If FilterAllUnits([[f_side,3],[f_type,unit_human]])<15 then AddMedal('syberyt',-1)
   Else AddMedal('syberyt',1);
   GiveMedals('MAIN');
   YouWin;
end;

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 9:41 am
od Pablo Abruzzi
Gothuk wrote:

Code: Select all

every 0$1 trigger FilterAllUnits([[f_side,1],[f_type,unit_human]])=0 do
Begin
   AddMedal('cel',1);
   AddMedal('rob',1);
   If FilterAllUnits([[f_side,3],[f_type,unit_human]])<15 then AddMedal('syberyt',-1)
   Else AddMedal('syberyt',1);
   GiveMedals('MAIN');
   YouWin;
end;
Ten kod nic nie zmienił, dalej nawet jak mam dwóch ludzi dostaje medal.

2) Nie chce zakładać nowych tematów więc napiszę tu:

Code: Select all

export hek;

every 0$1 trigger FilterAllUnits([[f_side,2],[f_type,unit_human]])=0 do
Begin
InGameOn;
DialogueOn;
   Say(bur,'MojDialog5');
   Say(ser,'MojDialog6');
   InGameOff;
DialogueOff;
   AddMedal('cel',1);
   AddMedal('rob',1);
   AddMedal('syberyt',-1);
uc_side=2;
uc_nation=2;
hc_skills=[10,4,6,3];
hc_class=1;
hc_sex=2;
hc_importance=0;
hc_name='Heike Stayer';
hc_gallery='ru';
hc_face_number=24;
hek=CreateHuman;
PlaceUnitArea(hek,heike,false);
AddComAgressiveMove([hek],106,17);
 If GetLives(hek)>300 then
DialogueOn;
Say(hek,'MojDialog7');
SayRadio(ser,'MojDialog8');
SayRadio(sewi,'MojDialog9');
DialogueOff;
AddMedal('syberyt',1);
GiveMedals('MAIN');
YouWin;
end;
Ten kod nie chce mi poprawnie działać, kiedy pojawia się ,,hek" od razu kończy się misja wraz z medalem za jej schwytanie, a mi chodziło o to, żeby ją poranić i wtedy wyświetlają się dialogi i gracz wygrywa.

Mam jeszcze kod, który działa, że jak dojdzie do areny z życiem powyżej 300 to też gracz wygrywa, tyle że bez medalu, bez tego kodu tamto działa, z tym nie.

Ps. Jest to kod podobny z tego z misji 7 rosyjskiej, ale nie znalazłem tam nic podobnego do mojego. Proszę o pomoc.

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 11:25 am
od Radzio
Po pierwsze, czemu zrobiłeś listę w AddComAgressiveMove z jedną jednostką? Usuń nawiasy kwadratowe.
Twój problem jest logiczny, skoro napisałeś:

Code: Select all

If GetLives(hek)>300 then
DialogueOn;
To jeśli W TYM MOMENCIE hek będzie miała mniej niż 300 życia to włączy się DialogueOn;, w przeciwnym wypadku po prostu pójdzie dalej.
Powinieneś nakazać kodowi czekać, dopóki się to nie stanie (jeśli to gracz ma obniżyć jej poziom zdrowia, to wyłącz także InGame):

Code: Select all

repeat
wait(1);
until GetLives(hek)>300;

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 3:36 pm
od Radzio
Ty, dzióbek nie w tą stronę xD Chyba się starzeję xD

EDIT: Czemu usunąłeś ten post przed chwilą?

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 3:38 pm
od Pablo Abruzzi

Code: Select all

export hek;

every 0$1 trigger FilterAllUnits([[f_side,2],[f_type,unit_human]])=0 do
Begin
InGameOn;
DialogueOn;
   Say(bur,'MojDialog5');
   Say(ser,'MojDialog6');
   InGameOff;
DialogueOff;
   AddMedal('cel',1);
   AddMedal('rob',1);
   AddMedal('syberyt',-1);
uc_side=2;
uc_nation=2;
hc_skills=[10,4,6,3];
hc_class=1;
hc_sex=2;
hc_importance=0;
hc_name='Heike Stayer';
hc_gallery='ru';
hc_face_number=24;
hek=CreateHuman;
PlaceUnitArea(hek,heike,false);
AddComAgressiveMove(hek,106,17);
 If GetLives(hek)>300 then
repeat
wait(1);
until GetLives(hek)>300;
Say(hek,'MojDialog7');
SayRadio(ser,'MojDialog8');
SayRadio(sewi,'MojDialog9');
AddMedal('syberyt',1);
GiveMedals('MAIN');
YouWin;
end;

Code: Select all

export hek;

every 0$1 trigger FilterAllUnits([[f_side,2],[f_type,unit_human]])=0 do
Begin
InGameOn;
DialogueOn;
   Say(bur,'MojDialog5');
   Say(ser,'MojDialog6');
   InGameOff;
DialogueOff;
   AddMedal('cel',1);
   AddMedal('rob',1);
   AddMedal('syberyt',-1);
uc_side=2;
uc_nation=2;
hc_skills=[10,4,6,3];
hc_class=1;
hc_sex=2;
hc_importance=0;
hc_name='Heike Stayer';
hc_gallery='ru';
hc_face_number=24;
hek=CreateHuman;
PlaceUnitArea(hek,heike,false);
AddComAgressiveMove(hek,106,17);
repeat
wait(1);
until GetLives(hek)>300;
Say(hek,'MojDialog7');
SayRadio(ser,'MojDialog8');
SayRadio(sewi,'MojDialog9');
AddMedal('syberyt',1);
GiveMedals('MAIN');
YouWin;
end;
Próbowałem powyższych dwóch kombinacji, ale nic to nie zmieniło, teraz ona idzie do celu i gada swój dialog zaplanowany po schwytaniu, potem kończy się misja.

EDIT: Bo się pomyliłem w spisywaniu kodu.

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 3:43 pm
od Radzio
Usuń ten if, dzióbek tu w drugą stronę trzeba:

Code: Select all

repeat
wait(1);
until GetLives(hek)>300;  // tu na <

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 3:59 pm
od Pablo Abruzzi
Od razu lepiej :D , dzięki. A i jeszcze jedno, jak chce zrobić medal za straty ludzi to jak to w sumie ma wyglądać, bo ten kod Gothuka zabardzo nie chce działać??

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 4:04 pm
od Radzio
Kod Gocia jest ok. Oczywiście, jeśli są to dwie oddzielne misje, bo w przeciwnym wypadku to nie ma sensu.
Jeśli masz ciągle ten sam problem, polecam wysłanie moda.

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 4:07 pm
od Pablo Abruzzi
Radzio wrote:Kod Gocia jest ok. Oczywiście, jeśli są to dwie oddzielne misje, bo w przeciwnym wypadku to nie ma sensu.
Jeśli masz ciągle ten sam problem, polecam wysłanie moda.
Znaczy, nie za bardzo Cię rozumiem ja chce ten kod do jednej misji, po prostu jak masz mniej niż 15 ludzi nie dostajesz medalu jak masz więcej niż 15 lub 15 dostajesz medal. Jak to ma być?

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 4:11 pm
od Radzio
To tak właśnie zadziałać powinien kod Gocia.
Wyślij tego moda, może coś gdzieś indziej jest nie tak.

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 4:15 pm
od Pablo Abruzzi
Trochę dziwne, chyba mnie źle zrozumiałeś: ten kod działa tylko nic nowego nie wnosi wybiłem sobie ludzi tak, że miałem ich dwóch i dalej dostawałem medal za brak strat. Tak ma być?

EDIT: Miałeś rację musiałem pozmieniać kilka kodów o tych postaciach, które nie mogą zginąć i działa, dziękuje tobie i Gothukowi :P .

Re: Medal za ludzi

Napsal: Wed Aug 12, 2009 4:30 pm
od Radzio
You are welcome.

[Topic closed]