Страница 1 из 1
Medal za ludzi
: Вт авг 11, 2009 10:35 am
autor: Pablo Abruzzi
Chciałem zrobić ,aby po stracie ludzi gracz nie dostał medalu, więc napisałem:
Код: Выделить всё
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
: Вт авг 11, 2009 12:24 pm
autor: Gothuk
Код: Выделить всё
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
: Ср авг 12, 2009 9:41 am
autor: Pablo Abruzzi
Gothuk писал(а):Код: Выделить всё
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:
Код: Выделить всё
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
: Ср авг 12, 2009 11:25 am
autor: Radzio
Po pierwsze, czemu zrobiłeś listę w AddComAgressiveMove z jedną jednostką? Usuń nawiasy kwadratowe.
Twój problem jest logiczny, skoro napisałeś:
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):
Re: Medal za ludzi
: Ср авг 12, 2009 3:36 pm
autor: 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
: Ср авг 12, 2009 3:38 pm
autor: Pablo Abruzzi
Код: Выделить всё
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;
Код: Выделить всё
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
: Ср авг 12, 2009 3:43 pm
autor: Radzio
Usuń ten if, dzióbek tu w drugą stronę trzeba:
Код: Выделить всё
repeat
wait(1);
until GetLives(hek)>300; // tu na <
Re: Medal za ludzi
: Ср авг 12, 2009 3:59 pm
autor: Pablo Abruzzi
Od razu lepiej

, 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
: Ср авг 12, 2009 4:04 pm
autor: 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
: Ср авг 12, 2009 4:07 pm
autor: Pablo Abruzzi
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.
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
: Ср авг 12, 2009 4:11 pm
autor: 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
: Ср авг 12, 2009 4:15 pm
autor: 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

.
Re: Medal za ludzi
: Ср авг 12, 2009 4:30 pm
autor: Radzio
You are welcome.
[Topic closed]