Page 3 of 6
Posted: Sat Dec 30, 2006 9:22 pm
by NNPlaya
No to zrób tak jak napisałem powyżej i po komendzie ChangeMissionObjectives (teraz na pewno działa, źle wpisałeś je w texts.txt, tam też je poprawiłem, w 01.wri zostawiłem bez zmian) wpisz po prostu SetAreaMapShow(areajakaśtam, 1);. No a potem to może jeszcze CenterNowOnXY(x,y), żeby wycentrować widok na arei (zamiast x i y wpisz współrzędne pośrodku arei). Czyli w rezultacie:
Code: Select all
every 0$1 trigger GetDistUnits(Julian,Heike)<8 do
Begin
CenterOnUnits([Julian,Heike]);
<DIALOG>
Wait(0$1);
ChangeMissionObjectives('dotarcie');
SetAreaMapShow(jakaś_tam_area,1);
Wait(0$2);
CenterNowOnXY(współrzędna x, współrzędna y);
Wait(0$4);
CenterNowOnUnits([Julian,Heike]);
end;
I potem w texts.txt/01.wri (pomijam tekst dialogów, umiesz już je tworzyć):
Code: Select all
# dotarcie
Add Main dot
- Dojdź z Julkiem lub bez niego do krawędzi mapy
#
# dotarciewykonane
out dot
#
Posted: Sat Dec 30, 2006 9:38 pm
by Scyzor
thx , to juz mam 2 misje z glowy

a teraz co trzeba zrobic zeby w 5 min gry pojawily sie jednostki wroga i mnie zaatakowaly ?
-------
jesli moja area nazywa sie area1 to komenda powinna byc SetAreaMapShow(area1,1); ?? bo nadal mi sie pokazuje na poczatku gry ta area
Posted: Sat Dec 30, 2006 10:13 pm
by Radzio
zeby sie od poczatku nie pojawiala to muisz ja ukryc w edytorze tam na dole gdzie ona jest ustawiona (na tej liscie) ustawic wartosc minimap na 0
Posted: Sat Dec 30, 2006 10:30 pm
by NNPlaya
Żeby cie zaatakowały jednostki to zrób coś takiego:
Code: Select all
export ru_soldiers, i; // to napisz na początku, jeszcze przed Starting
every 0$300 do
Begin
uc_nation=nation_russian;
uc_side=3;
hc_skills=[3,1,0,0]; //umiejętności, pierwsza liczba to um. walki, 2 inżynierii, 3 mechaniki, 4 nauki
hc_sex=1; //1 to facet, 2 to kobieta
sol1=CreateHuman;
sol2=CreateHuman;
sol3=CreateHuman;
sol4=CreateHuman;
ru_soldiers=[sol1,sol2,sol3,sol4];
PlaceUnitXY(sol1,x,y,false);
PlaceUnitXY(sol2,x,y,false);
PlaceUnitXY(sol3,x,y,false);
PlaceUnitXY(sol4,x,y,false);
ComAttackUnit(ru_soldiers,FilterAllUnits([[f_side,2],[f_type,unit_human]]));
end;
Oczywiście możesz więcej/mniej narobić tych żołnierzy, po prostu dodawaj/kasuj komendy CreateHuman, PlaceUnitXY i ich identyfikatory ru_soldiers. Rób to wg powyższego przykładu
Posted: Sat Dec 30, 2006 10:37 pm
by Scyzor
taaaa heh ...

a co zrobic zeby one sie pojawily a potem zaatakowaly ??

a nie staly bezczynnie w miejscu
-------
oo teraz jak chcialem przetestowac gre to jak wchodzilem w arabskie menu to taki blad mi sie pokazal

Posted: Sun Dec 31, 2006 11:22 am
by NNPlaya
Zmień nazwy folderów misji z Ar01, Ar01_cont i tak dalej na 01, 01_cont itd. Potem zmień w missions.dat przy pozycjach map z Ar01 na 01 i będzie działać.
missions.dat
Code: Select all
Tak jest:
(...)
MAP Ar01
(...)
Powinno być:
(...)
MAP 01
(...)
A co do tych ludzi bezczynnie stojących to zapewne raz atakują, ale zdecydowanie częściej nic nie robią, no nie? Spróbuj wpisać tak:
Code: Select all
export ru_soldiers, i; // to napisz na początku, jeszcze przed Starting
every 0$300 do //300 to w sekundach 5 minut, zapomniałem dodać
Begin
uc_nation=nation_russian;
uc_side=3;
hc_skills=[3,1,0,0]; //umiejętności, pierwsza liczba to um. walki, 2 inżynierii, 3 mechaniki, 4 nauki
hc_sex=1; //1 to facet, 2 to kobieta
sol1=CreateHuman;
sol2=CreateHuman;
sol3=CreateHuman;
sol4=CreateHuman;
ru_soldiers=[sol1,sol2,sol3,sol4];
PlaceUnitXY(sol1,x,y,false);
PlaceUnitXY(sol2,x,y,false);
PlaceUnitXY(sol3,x,y,false);
PlaceUnitXY(sol4,x,y,false);
ComAttackUnit(ru_soldiers,FilterAllUnits([[f_side,2],[f_type,unit_human]]));
end;
every 0$5 trigger not IsDead(sol1) or not IsDead(sol2) or not IsDead(sol3) or not IsDead(sol4) do
Begin
enable;
ComAttackUnit(ru_soldiers, FilterAllUnits([[f_side,2],[f_type,unit_human]]));
end;
Posted: Sun Dec 31, 2006 11:33 am
by Radzio
a po co te not dead'y przeciez jakby dedli to i tak by nie atakowali, a 5 minut to mogles zapisac 5$0 zamiast takich bajonskich wartosci sekund xD
ps: wcale sie nie czepiam jak cos ale chce zeby wszyscy umieli poprawnie uzywac SAILa a nie pisac troche "niedoprawione" kody
ps(2): a jak ktos nie lubi sie bawic w te x-y to moze skorzystac z PlaceUnitArea
wystarczy stworzyc aree ktora pomiescilaby tych ludkow w wybranym przez siebie miejscu i uzyc polecenia:
Code: Select all
PlaceUnitArea(sol1,nazwa_area,false); //false moze byc rowniez 0 gdyz to to samo
Posted: Sun Dec 31, 2006 1:07 pm
by NNPlaya
5$0 znaczy 5 minut? Nie wiedziałem. Masz rację, te warunki faktycznie są niepotrzebne. Wystarczy samo
Code: Select all
every 0$5 do
Begin
enable;
ComAttackUnits(ru_soldiers,FilterAllUnits([[f_side,2],[f_type,unit_human]]));
end;
Rozumiem, że chcesz po prostu mi pomóc pisać bardziej sensownie kody i chwała Ci za to

.
No to w rezultacie tak to powinno wyglądać:
Code: Select all
export ru_soldiers, i; // to napisz na początku, jeszcze przed Starting
every 5$0 do
Begin
uc_nation=nation_russian;
uc_side=3;
hc_skills=[3,1,0,0]; //umiejętności, pierwsza liczba to um. walki, 2 inżynierii, 3 mechaniki, 4 nauki
hc_sex=1; //1 to facet, 2 to kobieta
sol1=CreateHuman;
sol2=CreateHuman;
sol3=CreateHuman;
sol4=CreateHuman;
ru_soldiers=[sol1,sol2,sol3,sol4];
PlaceUnitArea(sol1,nazwa_arei,false);
PlaceUnitArea(sol2,nazwa_arei,false);
PlaceUnitArea(sol3,nazwa_arei,false);
PlaceUnitArea(sol4,nazwa_arei,false);
end;
every 0$5 do
Begin
enable;
ComAttackUnit(ru_soldiers, FilterAllUnits([[f_side,2],[f_type,unit_human]]));
end;
Posted: Sun Dec 31, 2006 1:10 pm
by Scyzor
powinno byc tak ?? bo nadal mi nie działa
CAMPAIGN "Russian campaign"
MISSION 01
NAME "New Campaign"
NEXT 1
MISSION 1
MAP 01
NAME "Niespodzianka"
SUBCAMP 01_cont
PREV 0
NEXT 2
VIDEO 0
MISSION 2
MAP 01_cont
NAME "Zagubiona"
SUBCAMP 1
PREV 0
NEXT 3
MISSION 3
MAP 02
NAME "Arabska Potęga"
SUBCAMP 1
PREV 2
NEXT 4
Posted: Sun Dec 31, 2006 1:27 pm
by NNPlaya
A zmieniłeś nazwy folderów?
Posted: Sun Dec 31, 2006 1:29 pm
by Scyzor
tak na :
ar01 -->01
ar01_cont --> 01_cont
ar02 --> 02
Posted: Sun Dec 31, 2006 1:37 pm
by NNPlaya
Scyzor wrote:powinno byc tak ?? bo nadal mi nie działa
CAMPAIGN "Russian campaign"
MISSION 01 //tutaj skasuj 1, czyli powinno być MISSION 0
NAME "New Campaign"
NEXT 1
MISSION 1
MAP 01
NAME "Niespodzianka"
SUBCAMP 01_cont //Tutaj wpisz od 1 do 5, z tego co pamiętam, to Radizio pisał na OWS, że to są obrazki po zakończeniu misji.
PREV 0
NEXT 2
VIDEO 0
MISSION 2
MAP 01_cont
NAME "Zagubiona"
SUBCAMP 1
PREV 0
NEXT 3
MISSION 3
MAP 02
NAME "Arabska Potęga"
SUBCAMP 1
PREV 2
NEXT 4
Popraw to tak i zrestartuj kompa i wtedy zobacz.
Posted: Sun Dec 31, 2006 2:14 pm
by Radzio
ech, wymien cala zawartosc pliku na to:
Code: Select all
CAMPAIGN "Russian campaign"
MISSION 0
NAME "New Campaign"
NEXT 1
MISSION 1
MAP 01
NAME "Niespodzianka"
SUBCAMP 1
PREV 0
NEXT 2
MISSION 2
MAP 01_cont
NAME "Zagubiona"
SUBCAMP 1
PREV 1
NEXT 3
MISSION 3
MAP 02
NAME "Arabska Potęga"
SUBCAMP 1
PREV 2
NEXT 4
Posted: Sun Dec 31, 2006 2:15 pm
by Scyzor
zrobileem wszystko tak jak mowisz a i tak wyskakuje blad :/
za to na edytorze jest wszystko ok
no prucz tego ze po misji 01_cont nie wlancza sie 02
tylko jeszcze raz ta sama misja
Posted: Sun Dec 31, 2006 2:18 pm
by Radzio
a czyj kod zastosowale - moj czy NNPlaya?