Navigace

Dotazy 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í

Odkazy

Aoe.cz Aoe2 by HHPZ AoK Heaven Aoe2 Facebook pocitadlo

Anketa

   

Tvorba AI Část IV. : Řetězce

Vzpomínáte jak se nastaví v editoru aby se po jedné spustila spoušť druhá?

Podobné řetězcové spouštění jde samozřejmě udělat i v AI.

Tyto takzvané GOALy vám dost ulehčí práci s nekonečným přidáváním podmínek.
 

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

~ Jak na to ? :


  (goal <goal-id> <value>)
               ; id představuje číslo společné pro všechny goaly v jednom
                 řetězci, value pak samostatné pořadové číslo řetězce.

 
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

~ Příklady řetězců :


  (goal 1 1)
  (goal 1 2)
  (goal 1 3)
  (goal 2 1)
  (goal 1 4)
  (goal 2 2)

Mouhou jít samozřejmě i napřeskáčku, prostě jak se to programátorovi hodí. V praxi se goal využívá tak, že když je jeden splněn spustí druhý, nebo třeba rovnou více dalších...
 

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

~ Jak sestavit řetězec ? :


(defrule
  (true)
               ; Univerzální podmínka která říká, že je vše splněno a program
                 může přejít na efekty.
=>
  (set-goal 1 1)
               ; Spustí syntaxi prvního řetězce číslo 1
)
 
(defrule
  (goal 1 1)
               ; Takto je označena syntaxe řetězce.
=>
  (train villager)
)

 
Celkem jednoduché ne ?
 
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

~ A ještě si k tomu zase něco přihodíme :


(disable-self)
               ; Tento efekt se může přidat do syntaxe jen jako poslední.
                 Znamená : Prověď efekty výše a vypni tuto syntaxi.
                 Disable volte opatrně, pokud například nad ním bude
                 efekt "postav budovu" a nebude dostatek surovin,
                 pak se efekt vypne a nesplní!
 
(set-strategic-number sn-number-explore-groups 1)
               ; Nastaví kolik vojenských jednotek bude prohledávat
                 okolí (Dá Scouta do pohybu).

 
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

~ Praxe

No, nebudem chodit okolo horké kaše a rovnou si to to vyzkoušíme :
 
(defrule
  (true)
=>
  (build house)
  (set-goal 1 1)
  (set-goal 2 1)
  (disable-self)
)
 
(defrule
  (unit-type-count villager < 5)
=>
  (train villager)
)
 
(defrule
  (goal 1 1)
  (unit-type-count villager == 5)
=>
  (set-goal 1 2)
)
 
(defrule
  (goal 2 1)
=>
  (set-strategic-number sn-number-explore-groups 1)
)
 
(defrule
  (goal 1 2)
=>
  (research ri-loom)
  (set-goal 1 3)
)
 
(defrule
  (goal 1 3)
  (building-type-count mill < 1)
=>
  (chat-local-to-self "Mam 5 vesnicanu, postavim mlyn - Ukol splnen")
  (build mill)
  (disable-self)
)

 
Pro snadnější pochopení :

Jedná se o nastavení postupu jak postavit mlýn až po pěti vesničanech. První syntaxe spouští dva na sobě nezávislé řetězce. Nejdříve má počítač postavit dům kvůli populaci a začít s trénováním vesničanů. Zárověň v druhém řetězci má popohnat průzkumníka k práci. Jakmile bude vesničanů 5 spustí druhou syntaxi prvního řetězce...
 

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

< ^ >

Copyright © 2006 - Autoři