NavigaceDotazy Kampaně Civilizace Jednotky Ke stažení Tvorba map - Menu editoru - Vychytávky - Spouště - Kampaňe - AI script - RMS script Cheaty Citáty Kniha návštev OstatníOdkazyAoe.cz Aoe2 by HHPZ AoK Heaven Aoe2 FacebookAnketa |
Tvorba RM Část III. : Terén I.~ Nadefinování povrchu země:Máme nadefinován hlavní povrch, proto je čas se pustit na ostatní o kterých jsem se zmínil. Pro ty existují tyto definující příkazy: create_player_lands create_lands Pomocí prvního budeme definovat terén určený pro hráče, tedy ten, kde se objeví TC. (Nezkoušejte to, nebude vám to fungovat. AOE sice vygeneruje TC a vesničany sám, ale nebude respektovat příkazy RMS. Ty bude brát v potaz až v momentě, kdy sami zadáte, že se mají tyto objekty hráčům vytvořit) Druhý definuje povrch, jež není určen pro start hráčů. Jak jsem říkal, je možno pomocí tohoto příkazu vytvořit víc zón, ale nedoporučuji to. Jedna, max 2 stačí.
A nyní se podíváme na syntaxe, které pod tyto dva příkazy můžeme vkládat a tím terén utvářet: terrain_type - Jaký povrch to bude. U povrchu pro hráče se musí jednat o takový, na kterém nejsou další objekty. Kupříkladu v lese by se těžko stavělo TC. base_size - je velikost základny v políčkách. V případě hodnoty 10 to tedy bude 10x10, jinak řečeno 100 políček čtverečních. Proč to říkám? V případě mapy 72x72 nemůžete zadat hodnotu třeba 80, protože jinak se hra sekne a nespustí. Políčka se vlivem počtu hráčů nesčítají, tedy při dvou hráčích na 72x72 můžete zadat hodnotu i 40. Ale pokud se jedná o prostor pro hráče, je ideálnější držet se hodnot do desítky. Tento příkaz se pouřívá hlavně v případě ostrovů, kdy chcete aby TC nebylo přímo u pobřeží. land_percent - určuje hodnotu v procentech, která značí, jak velký prostor terénu bude pokryt. Pokud je proceto vyjádřené v políčkách menší, než je hodnota base_size, pak bude výsek čistý čtverec. Když bude hodnota větší, dočkáme se přirozenějších přírodních tvarů. number_of_tiles - alternativa k land_percent (Nelze použít obě, musíte si vybrat). Udává přesný počet políček na kterém bude povrch vytvořen. Ovšem Tyto políčka se nenásobí podle velikosti mapy, čili jich bude stejně jak na titěrné, tak i na gigantické. left_border; right_border; top_border; bottom_border - v procentech představují plochu vzdálenou od okrajů, jež bude pokryta. Mezi protilehlými stranami je to 100%, čili pokud děláte okraje v levo a v pravo, pak si musíte dát pozor, aby jste tuto hodnotu nepřekročili. (Pokud levý okraj začíná 45% od okraze mapy, pak pravý nesmí začínat dál jak 54%, i když ani to vám hra nevezme. V případě vody mám vyzkoušeno 45 od každého okraje). Pro lepší představu, se tímto dá vytvořit třeba ostrov libovlně na mapě, nebo naopak jezero uprostřed mapy atd... Bohužel, vše se odvíjí od toho, jak máte vygenerován povrch pro hráče. Čili to bude chtít hodně propočtů a zkoušení, než se vám podaří nalézt to nejlepší nastavení, aby se vám výsledný ostrůvek líbil. border_fuzziness - roztřepení okraje v procentech. ES doporučuje zadávat hodnoty mezi 5-20%, které zaručují nejrealističtější roztřepenost okrajů. Čím menší procento, tím větší efekt roztřepenosti. Standardní hodnota je nula. zone - pomocí libovolného čísla (do dvacítky prosím vás, nepřehánět) lze třídit jednotlivá území. Ty pak můžeme použít pro tvorbu řek, nebo třeba pro okraj mělké vody u pobřeží. Jak, to si povíme později. Území se stejným čílsem zóny se mohou překrývat, ostatní ne. Pokud zóny nenadefinujete, pak každý povrch tvoří svojí vlastní zónu a stejně tak i samostatné ostrovy jednotlivých hráčů. land_id - opět malé libovolné číslo, jako označení. Speciálně pro takto označenou oblast můžeme později přiřazovat různé objekty, které se nikde jinde na mapě nevytvoří. (Ostrůvek se zlatem uprostřed moře atd...) set_zone_by_team - dovoluje umístit dva hráče ze stejného týmu na jednu určenou zónu. Využitelné je to hlavně při spojeneckých ostrovech. Pokud chcete, aby měl každý hráč svůj vlastní ostrov, tak tohle ani následující syntaxy nepoužívejte. set_zone_randomly - náhodně rozmístí zóny. Čili se může stát, že dva hráči budou na stejném ostrově, i když třeba nejsou spojenci. other_zone_avoidance_distance - číslo, které udává počet polí, jež budou oddělovat určitou zónu od ostatních. Na oddělení se používá základní terén mapy. Čili pokud je terén voda, pak vzniknou řeky, vodní příkopy atd... assign_to_player - přiřazení určité země určitému hráči (číslo hráče). ES varuje, že tato funkce neběží v případě použití create_player_lands. clumping_factor - roztažení plochy. Volená hodnota je od jedné do patnícti. Kde jednička představuje plochu protáhlou, kdežto patnáctka se snaží spíše o kruh, jež je v celku. Standardně je nastavená hodnota 8. Čili kdo netrpí na detajlech, nemusí se tímto efektem zabývat. ~ Trocha praxe:Na závěr si zkusíme vytvořit mapu. Řekněme ostrovy. Použijeme náš soubor, který jsme vytvořili v druhé části (Prvni.rms). Nechte v něm vše, co už je tam napsané, tedy hlavičku, nadefinování hráčů a halvního povrchu. K tomu teď přidáme: create_player_lands { terrain_type DESERT land_percent 10 base_size 10 clumping_factor 5 zone 15 } create_land { terrain_type PALM_DESERT land_percent 5 zone 16 other_zone_avoidance_distance 20 } /* ****************************************************** */ A jak už jsme si řekli, nechceme, aby nám AOE generoval TC a vesničany podle svého. Tudíš musíme přidat ješte jeden zápis. Zatím nad ním nemusíte přemýšlet, rozebereme si ho později... <OBJECTS_GENERATION> create_object TOWN_CENTER { set_place_for_every_player group_placement_radius 18 min_distance_to_players 0 max_distance_to_players 0 } create_object VILLAGER { set_place_for_every_player min_distance_to_players 6 max_distance_to_players 6 } Když to všechno dáte dohromady, mšlo by se vám objevit přibližně něco takového:
Objevilo? No, teď už stačí jen pochopit vše, co bylo řečeno a přejít na další část - Terén II. PS: Pro tento a podobné testy doporučuji při startu nastavit zcela odkrytou mapu. Při změně scriptu hru nemusíte u hlavního menu spouštět znovu, stačí dát restart. |