Atak Jednostek oraz wykonanie misji- MOD

Tematy zbędne, ale zbyt dobre by je usunąć znajdują się tutaj.
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

hehe, wszystko sie da...
wiec tak:
1 problem: kod bedzie taki

Code: Select all

every 0$1 trigger IsInArea(Jawor,Area01) or IsInArea(Nadol,Area01) or IsInArea(Pamel,Area01) do
begin
//twoj kod
end;
2 problem: wielokrotne jednostki w jednej komendzie wstawiaj w kwadratowe nawiasy (chodzi ci chyba o wynagradzanie ludzi tak?):

Code: Select all

RewardPeople([1ludek,2ludek,3ludek]);
savecharacters nie zaakceptuje wielokrotnosci (mam na mysli ze nie da ci to zamierzonego efektu bo zapisze zestaw postaci jako jedna zmienna)
3 problem: komenda na zablokowanie:

Code: Select all

InGameOn;
na odblokowanie:

Code: Select all

InGameOff;
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

Ok działa, mam jeszcze pytanie jak powinien wyglądać kod jeśli ma mi sie pojawić postać z poprzedniej misji?? bo coś nie dziala to co czytałem w temacie scyzora chyba, przy kompilacji wykrywa że ''nadol'' to error...(w poprzedniej misji bylo zapisane savecharacters...
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

w poprzedniej misji:

Code: Select all

SaveCharacters(Nadol,'Nadol');
w nowej:

Code: Select all

Nadol=CreateCharacter('Nadol');
tyle ze ta nowa misja musi byc zaladowana po zapisie tej starej wiec najpierw musisz miec save'a z poprzedniej by ta druga sie zaladowala poprawnie
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

Wszystko działa xD teraz mam kolejne pytanie;p
Jak powinien wyglądać kod jeżeli po zbudowaniu 6 pojazdów pojawi się taka ''ramka'' czerwona i jak sie tam wejdzie wszystkimi ludzmi w pojeździe to misja się skończy...??
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Code: Select all

every 0$1 trigger FilterAllUnits([[f_type,2],[f_side,1]])>=6 do
begin
SetAreaMapShow(twojaarea,1);
end;

Code: Select all

every 0$1 trigger FilterUnitsInArea(twojaarea,[[f_type,2],[f_side,1]])>=6 and FilterUnitsInArea(twojaarea,[[f_type,1],[f_side,1]])>=6 do
begin
//kod na zakonczenie, ktorego juz tu nie napisze bo mysle ze go znasz
end;
twojaarea to nazwa tej arei, wokol ktorej pojawi sie ramka
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

No spoko z tym że jest mały w tym problem, bo jeżeli postacie są w pojazdach nie kończy misji, dopiero jak wyjdą z pojazdu wyswietla koniec...tj medale wiadomo...
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Code: Select all

every 0$1 trigger FilterUnitsInArea(twojaarea,[[f_type,2],[f_side,1]])>=6  do
begin
//kod na zakonczenie, ktorego juz tu nie napisze bo mysle ze go znasz
end;
sprobuj to
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

Ok działa. A co dodać do kodu ''ataku'' jeżeli chce aby ten sam atak powtarzał sie co 5 min np. a nie tylko raz jak sie da:
every 5$0 do
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

wpisz tak:

Code: Select all

every 5$0 do
begin
//kod ataku
enable;
end;
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

A mam pytanie jeszcze male, jaka komenda powinna byc żeby to co się pojawi atakwoało moja bazę, bo ten
ComAttackUnit([odzialy],FilterAllUnits([f_side,1]));
nie działa za bardzo(porposu jak się pojawią to stoją)...a GoToArea jest troche malo inteligentne ze tak powiem...jest coś jeszcze?? a moze ten 1 jest zły?
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

jest taki fajny kod:

Code: Select all

ComAgressiveMove([oddzialy],x,y);
gdzie x i y to pozycje na mapie (najezdzajac na wybrany hex widac jego wartosci x i y po lewej stronie ekranu) najlepiej zeby byly one gdzies na srodku bazy albo na jej koncu (chyba da to najwiekszy realizm), ogolnie kod ten polega na tym ze wybrane jednostki beda zdazaly do tego hexu, jednakze w przeciwienstwie do zwyklego przemieszczenia beda sie zatrzymywac gdy tylko ujrza wroga, a kontynuowac trase beda po zniszczeniu wrogow w polu widzenia
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

Ok działa. nastepne pytanie xD
Jak zrobić żeby po misji pokazywało się takie okno z wyborem postacie, i że one są w następnej misji? i żeby przechodziło z jednej mapy do 2 ''po czymś tam'' bez poakzywania tego okno ''wygrales'' etc tylko chodzi o płynne przejście, coś jak w misji USA gdzie z Alphy macmilan przechodził do budowy Epsilonu...
I jak ta grafe podczas loadingu zmienić (to co taka mapka jest jakby)??
A i jak dac żeby nad skaldem pisalo np. Nadol ? tak jak w multi?
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

1) kod na zmiane mapy:

Code: Select all

ChangeMap('1','%_cont');
zmieni mape na mape z tym samym numerkiem, tyle ze bedzie miala dopisek _cont
2) co do postaci najlepiej zapisac je w tej poprzedniej misji jako zestaw postaci (poprzedniej czyli nie tej przed _cont tylko tej jeszcze poprzedniej) poleceniem:

Code: Select all

SaveCharacters(FilterAllUnits([[f_side,1],[f_type,1],[f_alive]]),'zestaw');
teraz w tej nowej misji wprowadzic sobie jakos zmienna dla zestawu np. zest1

Code: Select all

EXPORT zest1;
i w kodzie dalszym wpisac

Code: Select all

zest1=CreateCharacterSet('zestaw');
nastepnie menu wyboru:

Code: Select all

CharacterSelection('naglowek',min,max,zest1,[klasy])
gdzie naglowek to identyfikator do tekstu w pliku Texts.txt (lub TxtNR.wri) do tekstu np. Wybierz sobie tyle i tyle postaci, blablabla... (nie wiem jak to wprowadzic) min to minimalna ilosc ludzi, max chyba tlumaczyc nie musze, zest1 to nasz zestaw, [klasy] to klasy dostepne na jakie postacie mozna zamienic np. 4 podstawowe klasy to bedzie [1,2,3,4] a same specjalne klasy [5,8,9] mozesz takze ustalic ilu ludzi moze miec dana klase np. [1,2,3,[4,1]] ustalilem ze bedzie mozna miec tylko 1 naukowca
3) grafa jest w folderze Interface\LoadImgs w data1.owp , zobacz sam jak to jest ulozone a zrozumiesz (pliki sa w formacie targa jak nie masz jakiegos programu graficznego z takim formatem to uzyj irfanview)
4) poczytaj mojego tutka: http://www.owsupport.com/?sect=tutorial ... asename_pl
tylko pod zadnym pozorem NIE PRZEPISUJ ZADNYCH TEKSTOW ZA // ANI TEZ SAMYCH // (mialem juz na to skargi bo ludzie nie wiedzieli ze to komentarze :? )
User avatar
NaDoL
Community Veteran
Community Veteran
Posts: 379
Joined: Wed Apr 12, 2006 7:43 pm
Location: Poland
Contact:

temat

Post by NaDoL »

Spoko wiem ^^ ot tera mam następne ptanie;p
Jaki fragment jest kodu jeżeli po oswojeniu 3 małpoludów-inżynierów pojawia sie coś tam (cel albo dialog wiadomo)? i jaki będzie kod jezeli chce aby np. Nadol po skończeniu dialogu wszedł do pojazdu który stoi obok(id pojazdu- pojazd) i odjechał nim do area01 ??
Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

1) kod:

Code: Select all

every 0$1 trigger FilterAllUnits([[f_side,1],[f_class,16])>=3 do
begin
//blablabla
end;
2) kod:

Code: Select all

// skonczyl sie dialog
ComEnterUnit(Nadol,pojazd);
AddComMoveToArea(Nadol,area01);
// Nadol pojechal w swiat :D
Locked