Dakle evo i male skole Angie++ kao sto sam obecao :)
Za sada ce biti obradjeno samo pravljenje map fajlova posto vam je to najvaznije, a kasnije cu da objasnim i kako sam Angie++ obradjuje rezultate, salje poteze, itd.
Dakle ovako, kako bi se napravio map fajl za neku varijantu, potrebno je da se nabave sledece stvari:
- Karta varijante (konvertovana u bmp ako to vec nije)
- map fajl koji se dobija od judge-a slanjem komande: get map.ime_varijante
- i eventualno info.imevarijante odakle bi se saznalo koje godine se pocinje,
pocetne jedinice na karti itd.
Kada se ovo nabavi, sledeci potez je pravljenje map fajla (najlakse je kopirati neki postojeci map fajl i dati mu ime varijante pa ga preradjivati za novu varijantu, ali ja cu ovde poceti sa praznim fajlom).
Za potrebe ove male skole Angie++, nacrtao sam (vrlo ruznu) mapu na kojoj cu da zasnujem svoj primer. Varijanta nosi ime MSA++ (skraceno od mala skola Angie++), pa samim tim u direktorijumu Angie++\Maps pravim prazan fajl pod imenom msa++.map. Takodje u ovaj direktorijum snimam bmp fajl varijante, pod bilo kojim imenom! Ako cete da probate da radite uz ovo objasnjnje mozete downloadovati dve .bmp mape (jednu sa skracenicama i centrima i jednu praznu) kao i fajl map.msa++ koji bi trebalo da primite od judge-a (ovaj fajl naravno necete naci ni na jednom judge-u, jer je on samo primer za malu skolu Angie++) ako kliknete ovde.
U fajlu msa++.map sada treba upisati sledece:
[name] MSA++ (2D map) [bitmap] Maps\MSA256c_2D.bmpPrva stavka definise ime varijante i tip mape (ovaj deo trenutno nije bitan za Angie++, ali bolje da stavite sta treba).
Posle ovog ide:
[powers] First<F>='_red' Second<S>='_blue' Unowned<N>='_black'
Ovde se definisu imena drzava koje igraju, njihove skracenice, kao i boja kojom ce biti reprezentovane u Angie++. Ovde postoje samo tri drzave First(F), Second(S) i Unowned(N, sluzi za obelezavanje neutralnih centara). Ukoliko ste skinuli Chaos.map, pogledajte kako su tome definisane drzave, posto se koriste sve moguce boje i slova i ne postoje neutralni centri.
I jos ide definicja tipova jedinica koje se mogu naci na mapi:
[units] A,Army,Armee F,Fleet,Flotte W,Wing
Mislim da je ovo prilicno jasno! Sada treba jos dodati dve stavke:
[positions] [lineup] Starting=S1901M First: Second: Unowned:
Ove stavke mogu biti ovako prazne, ali vazno da su tu! Sada bi trebalo startovati Angie++ (ili ako je vec startovan da izadjete iz njega pa da ga ponovo startujete, kako bi registrovao postojanje nove varijatne), pa posle eventualnog logovanja, na glavnom meniju izabrati Variants, pa MSA++ (naravno za ovaj primer, a inace ime varijante koju preradjujete) i trebalo bi da Vam se pojavi ovako nesto:
Kada je ovo uradjeno, u fajl mas++.map treba prebaciti map.mas++ koji se dobija od judge-a (naravno za mas++ se ne dobija, ali za druge varijante), pa bi sada fajl msa++.map izgledao ovako:
[name] MSA++ (2D map) [bitmap] Maps\MSA256c_2D.bmp [powers] First<F>='_red' Second<S>='_blue' Unowned<N>='_black' [units] A,Army,Armee F,Fleet,Flotte [positions] Golf of Ad Astra, w goa gol gad Ad Astra, F ada Capricorn, l cap Far East, x far fea Lor, l lor Lio, l lio Icarus, x ica Sagitarius, l sag Pisces Sea, w pis pse Libra, l lib Taurus, l tau Cancer, S can Cancer Bay, w cab cba -1 goa-xc: ada ica/nc lio lor pis itd. itd. itd......... -1 Center order for summary report: ada far ica can #End of center ordering -1 [lineup] Starting= First: Second: Unowned:
Od prve -1 do [lineup] se tekst moze obristati, posto je nevazan za Angie++! Zatim, sve skracenice koje se nalaze na kraju reda prebaciti na pocetak:
goa,gol,gad,Golf of Ad Astra ada,Ad Astra cap,Capricorn far,fea,Far East lor,Lor lio,Lio ica,Icarus sag,Sagitarius pis,pse,Pisces Sea lib,Libra tau,Taurus can,Cancer cab,cba,Cancer Bay
Jos mozete da stavite velika slova na skracenice kako bi u Angie++ lepse izgledalo, ali nije obavezno, i jos eliminisati one skracenice teritorija koje imaju samo tri slova u imenu (Lor, Lio):
GoA,Gol,GAd,Golf of Ad Astra AdA,Ad Astra Cap,Capricorn Far,FEa,Far East Lor Lio Ica,Icarus Sag,Sagitarius PiS,PSe,Pisces Sea Lib,Libra Tau,Taurus Can,Cancer CaB,CBa,Cancer Bay
I sada mozemo da krenemo da stavljamo pozicije centara i jedinica! U Angie++ prebacite se na MapMaker tab, obelezite bilo koju drzavu (za ovu varijantu ce se drzave jedva videti posto Angie++ ostavi vrlo malo mesta za radio buttons ako ima samo jedan red, ali to i nije bitno). Sada pogledate prvu teritoriju u map fajlu (ovde Golf of Ad Astra) pa je nadjete na mapi koju pokazuje Angie++. Posto je ovde to vodena povrsina, obelezite u MapMaker tabu flotu (mada moze bilo sta, ali tek da znate kako ce da izgleda) i postavite flotu tamo gde mislite da ce najlepse da izgleda:
Znaci stavi se flota u Golf of Ad Astra a na 'Position:' (u MapMaker tabu) se upisu koordinate koje treba preneti u msa++.map fajl, ali pre toga treba upisati tip teritorije (u ovom slucaju vodena teritorija = W):
GoA,Gol,GAd,Golf of Ad Astra#W#061,079
Dakle znakom '#' se odvoje sva moguca imena teritorija od tipa teritorije, pa opet '#' za upis koordinata. Da bi rad bio olaksan i da ne morate da pamtite koordinate, cim stavite nesto na mapu, pored upisa koordinata kod Position: automatski se koordinate stavljaju u clipboard, pa samim tim samo stanete iza '#' i lupite Ctrl-V (paste).
Ovo ponovite za sve vodene teritorije!
PiS,PSe,Pisces Sea#W#119,308
CaB,CBa,Cancer Bay#W#499,385
Sada sledi teritorija Ad Astra, koja je centar i pripada drzavi First, ona se upisuje ovako:
AdA,Ad Astra#CF#
Prvo slovo posle '#' oznacava tip teritorije (C = costal, izlazi na vodenu povrsinu, tj. mogu se u njoj naci flote). Drugo slovo oznacava ciji je to home centar (u ovom slucaju to je centar drzave First cija je skracenica F). Zatim se posle druge '#' upisuje koordinata centra (znaci iz MapMaker taba oznaci se slicica za centar i postavi na pravo mesto na mapi):
AdA,Ad Astra#CF#218,019
Ovime je oznaceno gde ce se crtati centar, ali ne i jedinica (bilo flota bilo armija) pa zato se sada uzima flota ili armija iz MapMakera i postavlja tamo gde bi trebalo da se pojavi ako se nalazi na teritoriji Ad Astra (ponovo razdvojena znakom '#'):
AdA,Ad Astra#CF#218,019#287,047
Ovaj postupak se ponovi za sve priobalske teritorije koje imaju izlaz samo jednom obalom na more, a jesu centri.
Can,Cancer#CS#680,274#605,265
Sada mapa izgleda ovako:
Sledeca teritorija je Capricorn. Ova teritorija nema izlaz na more, tako da je njen tip L = land, a posto nije centar, treba joj samo odrediti mesto gde ce se naci armija. Znaci u MapMaker se oznaci Armija i stavi na kartu (isto za Sagitarius):
Cap,Capricorn#L#487,055
Sag,Sagitarius#L#372,145
Far East je teritorija slicna Capricornu, samo sto je uz to i centar, pa je zato:
Far,FEa,Far East#LN#642,126#675,063
Dakle L = Land, N = Unowned, 642,126 = centar, 675,063 = jedinica
Lor, Lio, Libra i Taurus su priobalne teritorije, a nisu centri pa su:
Lor#C#058,161
Lio#C#098,143
Lib,Libra#C#219,215
Tau,Tausrus#C#458,290
Dakle C = costal, a koordinate pokazuju gde ce biti iscrtana jedinica.
Ostaje jos teritorija Ikarus koja ima dve obale. Ona je ocigledno primorska pa joj je prvo slovo C, drugo slovo je N kojim se oznacava da centar pripada drzavi Unowned (moze F ili S, ili ono slovo cije je drzave centar). Posle toga ide # a za njom koordinate mesta gde se nalazi centar. Zatim ponovo '#' pa koordinate armije (u slucaju da armija zauzima teritoriju), pa '#' pa (nc) pa koordinate za flotu, pa '#' pa (sc) pa koordinate za flotu:
Ica,Icarus#CN#270,169#301,221#(nc)209,075#(sc)378,356
Naravno redosled postavljanja obala je nebitan (moze prvo sc pa nc), vazno je staviti prave koordinate, a mogu se dopisati jos obala (ec)111,111#(wc)111,111#(ac)111,111 itd (ac je ovde izmisljeno i sluzi samo kao primer).
Sada bi slika trebalo da izgleda ovako:
Naravno, u slucaju da ima na karti teritorija kao Icarus, ali nema centar, zapis bi bio isti, samo sto ne bi bilo drugog slova posle C i koordinata za centar:
Ica,Icarus#C#301,221#(nc)209,075#(sc)378,356
Sada msa++.map izgleda ovako:
MSA++ (2D map) [bitmap] Maps\MSA256c_2D.bmp [powers] First<F>='_red' Second<S>='_blue' Unowned<N>='_black' [units] A,Army,Armee F,Fleet,Flotte [positions] GoA,Gol,GAd,Golf of Ad Astra#W#061,079 AdA,Ad Astra#CF#218,019#287,047 Cap,Capricorn#L#487,055 Far,FEa,Far East#LN#642,126#675,063 Lor#C#058,161 Lio#C#098,143 Ica,Icarus#CN#270,169#301,221#(nc)209,075#(sc)378,356 Sag,Sagitarius#L#372,145 PiS,PSe,Pisces Sea#W#119,308 Lib,Libra#C#219,215 Tau,Taurus#C#458,290 Can,Cancer#CS#680,274#605,265 CaB,CBa,Cancer Bay#W#499,385 [lineup] Starting= First: Second: Unowned:
Dakle jos ostaje da se upisu pocetne pozicije! Za svaku jedinicu upisujemo po jedan red na ovaj nacin:
Starting=S1901M (ili Starting=W1900B ako pocinje gradnjama)
First:Army Ad Astra
Second:Fleet Cancer
Unowned:Center Far East
Unowned:Center Icarus
Kao sto se odavde moze videti, dovoljno je napisati First:Army Ad Astra a Angie++ automatski doda i centar tj. nije potrebno jos napisati i First:Center Ad Astra. Ovo moze biti problem ukoliko pravite map fajlove za varijante kao hunderd3 gde se recimo francuska armija na pocetku nalazi na u Provance-i koja nije centar. Ukoliko bi tu stajalo France:Army Provence, Angie++ bi nacrtao i centar, ali teritorija Provence nije definisana kao centar, pa Angie++ ne bi znao gde da nacrta centar pa bi se on pojavio u gornjem levom uglu karte. Ovo je reseno na taj nacin sto se posle teritorije stavlja '*', pa Angie++ zna da ne treba da postavlja centar za tu teritoriju (pogledajte h31.map i h32.map fajlove).
Na kraju mozete promeniti mapu sa Maps\MSA256c_2D.bmp na Maps\MSA256_2D.bmp, ukoliko Vam se vise svidja da je mapa prazna, nego da su nacrtani centri i imena teritorija.
Nadam se da ovaj tekst pomaze da napravite sopstvene .map fajlove, pa da ne gnjavite vise sa: "Jao, meni se ne svidja mapa, ja bih to drugacije, bla, bla, bla...". I nemojte da ulepsavate .map fajlove dodavanjem space-eva posle zareza i dvotacki, jer ce to samo zbuniti Angie++ i sve ce da bude izbrkano!
Ako nesto nije jasno ni posle ovog objasnjenja, pitajte na: nightshade@diplomats.com ili bradaric@eunet.yu.