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 V. : Časovač

Časovač je celkem užitečný, ale budete jej s největší pravděpodobností užívat méně než goaly.

A o co jde? Jistě si vzpomínáte na hlášku "Dej mi 200 jídla do 5 minut nebo ti vyhlásim válku !", a ta se dělá právě časovačem.
 

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

~ Co budem používat ? :


  (enable-timer <číslo> <čas>)
               ; Tímto efektem docílíte spuštění časovače.
  (timer-triggered <číslo>)
               ; Takto je označen v podmínkách.
  (disable-timer <číslo>)
               ; A tímhle se vypíná.
 
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

Když mluvíme o času, jistě vás budou zajímat jednotky.
V časovači můžete použít pouze sekundy. Spuštění časovaného efektu, který se má aktivovat za minutu, tedy vypadá takto :
 
(enable-timer 1 60)
 

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

Časovač má tendenci nefungovat, pokud není vypnuté znovuodpočítávání. Složitě řečeno ... Ale jistě pochopíte z následujícího :
 
(defrule
  (true)
=>
  (enable-timer 1 60)
  (disable-self)
)
 
(defrule
  (timer-triggered 1)
=>
  (disable-timer 1)
  (chat-to-player 1 "Cas vyprsel")
)

Jak vidíte první syntaxi jsem pomocí disable vypnul hned jak byl spuštěn časovač.

V druhé jsme vypnul samotný časovač ve chvíli kdy došlo k navršení požadované doby.

Disable-timer funguje opačně než disable-self takže ho v efektech umístěte jako první!

Schválně si to vyzkoušejte.
 

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

~ Předurčená hodnota

Ještě než se pustíme dál, naučíme se proměnit různé value ve srozumitelný text. Je s tím sice trochu víc práce, ale pro někoho (a někdy) je to velká pomoc. V podstatě jde o nahrazení nic neříkající číslice textem, který si zvolíte. A jde to samozřejmě použít i u řetězců a dalších syntaxí.
 
  (defconst <Zvolený text bez mezer> <Co má nahradit>)
              
; Takto nadefinujete proměnu dané věci.
 
Nejlépe asi porozumíte opět příkladu (porovnejte se syntaxemi výše) :
 
(defconst muj_casovac 1)
 
(defrule
  (true)
=>
  (enable-timer muj_casovac 60)
  (disable-self)
)
 
(defrule
  (timer-triggered muj_casovac)
=>
  (disable-timer muj_casovac)
  (chat-to-player 1 "Cas vyprsel")
)

 
Nemyslím, že by na tom bylo něco složitého.
 

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

< ^ >

Copyright © 2006 - Autoři