ACID: Porovnání verzí

Z WoWResource Wiki
Přejít na: navigace, hledání
m (překlad dalších akcí)
Řádek 156: Řádek 156:
 
|-
 
|-
 
! 15  
 
! 15  
| ACTION_T_QUEST_EVENT  || Quest ID || T-Type || N || Satisfies external script objective for a quest for the target (must be a player).  
+
| ACTION_T_QUEST_EVENT  || Quest ID || T-Type || N || Splní speciální úkol questu (event - SpecialFlags = 2) pro cíl (musí být hráč).  
 
|-
 
|-
 
! 16  
 
! 16  
| ACTION_T_CASTCREATUREGO  || Quest ID || Spell ID || T-Type || Emulates spell cast on the creature for the target (must be a player)  
+
| ACTION_T_CASTCREATUREGO  || Quest ID || Spell ID || T-Type || Simuluje kouzlení creatůry na cíl (musí být hráč)  
 
|-
 
|-
 
! 17  
 
! 17  
| ACTION_T_SET_UNIT_FIELD || Index || Value || T-Type || Sets unit field at the index to the value given for the target
+
| ACTION_T_SET_UNIT_FIELD || Index || Value || T-Type || Nastaví pole Index na hodnotu Value u cíle. (Viz UpdateData, UpdateFields, data pole u charaterů)
 
|-
 
|-
 
! 18  
 
! 18  
Řádek 177: Řádek 177:
 
|-
 
|-
 
! 22  
 
! 22  
| ACTION_T_SET_PHASE || Phase # || N || N || Sets current phase to number given
+
| ACTION_T_SET_PHASE || Phase # || N || N || Nastaví stav na fázi číslo 'Phase #'
 
|-
 
|-
 
! 23  
 
! 23  
| ACTION_T_INC_PHASE || Number || N || N || Increments (or decrements) the phase by given number.  
+
| ACTION_T_INC_PHASE || Number || N || N || Zvýší (nebo sníží) aktuální číslo fáze (phase) o udané číslo Number.  
 
|-
 
|-
 
!24
 
!24
Řádek 189: Řádek 189:
 
|-
 
|-
 
!26
 
!26
| ACTION_T_QUEST_EVENT_ALL || Quest ID || N || N || Satisfies external objective for a quest for all players in threat list.
+
| ACTION_T_QUEST_EVENT_ALL || Quest ID || N || N || Splní speciální úkol questu (event - SpecialFlags = 2) pro všechny hráče v threat listu.
 
|-
 
|-
 
!27
 
!27
| ACTION_T_CASTCREATUREGO_ALL || Quest ID || Spell ID || N || Emulates spell cast on creature for all players in threat list .
+
| ACTION_T_CASTCREATUREGO_ALL || Quest ID || Spell ID || N || Simuluje kouzlení creatůry na všechny hráče v threat listu.
 
|-
 
|-
 
!28
 
!28
Řádek 201: Řádek 201:
 
|-
 
|-
 
!30
 
!30
| ACTION_T_RANDOM_PHASE || Phase 1 || Phase 2 || Phase 3 || Randomly chooses a phase from the list of three phases.  
+
| ACTION_T_RANDOM_PHASE || Phase 1 || Phase 2 || Phase 3 || Náhodně vybere fázi ze seznamu tří fází.  
 
|-
 
|-
 
!31
 
!31
| ACTION_T_RANDOM_PHASE_RANGE || Min Phase || Max Phase || N || Chooses a random phase in the range specified.  
+
| ACTION_T_RANDOM_PHASE_RANGE || Min Phase || Max Phase || N || Vybere náhodnou fázi ze specifikovaného rozsahu.  
 
|-
 
|-
 
!32
 
!32
| ACTION_T_SUMMON || Creature ID || T-Type || Summon ID || Summons a creature at the coords specified for the given summon id that will attack a target.  
+
| ACTION_T_SUMMON || Creature ID || T-Type || Summon ID || Vyvolá creatůru na souřadnicích specifikovaných pro dané summon id. Vyvolaná creatůra zautočí na cíl.
 
|-
 
|-
 
!33
 
!33
| ACTION_T_KILLED_MONSTER || Creature ID || T-Type || N || Simulates a kill for a mob of ID given for the player from the target type.  
+
| ACTION_T_KILLED_MONSTER || Creature ID || T-Type || N || Simuluje zabití moba Creature ID pro hráče podle typu cíle.
 
|-
 
|-
 
!34
 
!34
| ACTION_T_SET_INST_DATA || Field || Value || N || Sets new value for the field given in the instance script.  
+
| ACTION_T_SET_INST_DATA || Field || Value || N || Nastaví novou hodnotu Value v poli Field dat instance (ovlivňuje skript instance).  
 
|-
 
|-
 
!35
 
!35
| ACTION_T_SET_INST_DATA64 || Field || T-Type || N || Stores target's GUID at the field given in the instance script.  
+
| ACTION_T_SET_INST_DATA64 || Field || T-Type || N || Nastaví GUID cíle do pole Field dat instance (ovlivňuje skript instance).  
 
|-
 
|-
 
!36
 
!36
Řádek 222: Řádek 222:
 
|-
 
|-
 
!37
 
!37
| ACTION_T_ZONE_COMBAT_PULSE || N || N || N || Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
+
| ACTION_T_ZONE_COMBAT_PULSE || N || N || N || Nastaví všem hráčům v instanci bojový režim s creatůrou. Funguje pouze v boji a uvnitř instancí.
 
|}
 
|}
  
Řádek 256: Řádek 256:
 
| TARGET_T_ACTION_INVOKER || Targets the unit that caused the event; only for certain events only.  
 
| TARGET_T_ACTION_INVOKER || Targets the unit that caused the event; only for certain events only.  
 
|}
 
|}
 +
  
 
{| style="border-collapse: collapse;" border="1"
 
{| style="border-collapse: collapse;" border="1"
Řádek 279: Řádek 280:
 
| CAST_FORCE_TARGET_SELF || Donutí cíl seslat tot kouzlo na sebe.
 
| CAST_FORCE_TARGET_SELF || Donutí cíl seslat tot kouzlo na sebe.
 
|}
 
|}
 +
  
 
{| style="border-collapse: collapse;" border="1"
 
{| style="border-collapse: collapse;" border="1"
 
! colspan="3" | Seznam Event Flagů
 
! colspan="3" | Seznam Event Flagů
 
|-
 
|-
! style="width:2em;" | Bit / Value
+
! style="width:5em;" | Bit / Value
 
! style="width:20em;" | Name
 
! style="width:20em;" | Name
 
! Description
 
! Description

Verze z 26. 8. 2008, 12:42

Od revize 220, ScriptDev2 implementoval DB-based skriptovací systém, který dovoluje použití databázi (MySQL) pro vytvoření vlastních události. Systém se jmenuje ACID (Artificial Creature Intelligence Database), dříve známý pod názvem EventAI. .

A základní 2 věty eventAI zní: „Co dělat? Kdy to dělat?“. První věta (Co) se bude nazývat akci. Druhá věta (Kdy) se bude nazývat událost. Kdokoliv, kdo chce vytvořit eventAI skript potřebuje jen odpovědět na dvě otázky nahoře. Nějaké události se budou vyskytovat jen jednou, zatímco jiné mohou být časované tak, aby se spouštěla ve specifikovaném intervalu, který si určíme. Základní představa skriptu byla vysvětlena, popojdeme tedy dále. Událost může užívat tři různé parametry a tyto parametry ovládají různé věci v závislosti na události. Pokud parametr není výslovně pojmenovaný pro událost, nebude užívaný pro tu událost.

V databázi ScriptDev2 najděte tabulku `eventai_scripts` a `localized_texts`. Pouze v těchto dvou tabulkách se tyto události tvoří. Tabulka `eventai_scripts` slouží k deklarování události a tabulka `localized_texts` slouží k uložení vlastních Textů (Text ID). Zaměříme se nyní na tabulku `eventai_scripts`. Její první sloupec `id` je primary key, který nás vůbec nezajímá. Druhý sloupec `creature_id`. Jak už z názvu vychází, zde se bude zapisovat creature ID. Asi se ptáte „A jak to ovlivní tu creaturu?“. Tato creatura bude hlavním děním naší události. Další sloupec `event_type` je sloupec, do kterého zapisujeme typ události (Druhá věta).

Jednotlivé typy událostí (event_type)
ID Jméno Parametr 1 Parametr 2 Parametr 3 Parametr 4 Popis
0 EVENT_T_TIMER InitialMin InitialMax RepeatMin RepeatMax POUZE V BOJI - InitialMin/Max určuje za jak dlouho se událost spustí a RepeatMin/Max za jak dlouho se bude opakovat.
1 EVENT_T_TIMER_OOC InitialMin InitialMax RepeatMin RepeatMax MIMO BOJ - InitialMin/Max určuje za jak dlouho se událost spustí a RepeatMin/Max za jak dlouho poté se bude opakovat.
2 EVENT_T_HP HPMax% HPMin% RepeatMin RepeatMax HPMax/Min% určuje při kolika procentech HP se událost spustí a RepeatMin/Max za jak dlouho poté se bude opakovat.
3 EVENT_T_MANA ManaMax% ManaMin% RepeatMin RepeatMax ManaMin/Max% určuje při kolika procentech many se událost spustí a RepeatMin/Max za jak dlouho poté se bude opakovat.
4 EVENT_T_AGGRO N N N N Událost se spustí, jakmile creatura nabere aggro.
5 EVENT_T_KILL RepeatMin RepeatMax N N Událost se spustí po zabití hráče a bude se opakovat každých RepeatMin/Max.
6 EVENT_T_DEATH N N N N Událost se spustí po smrti creatury.
7 EVENT_T_EVADE N N N N Událost se spustí pokud creatura vstoupí do EvadeMode. (když creatura opustí útok a vrátí se na pozici spawnu)
8 EVENT_T_SPELLHIT SpellID School RepeatMin RepeatMax Událost se spustí po úderu kouzla, pokud je SpellID = 0, spustí se po úderu jakýmkoli kouzlem. Pokud je nastaven parametr school spustí se při úderu kouzel z dané skupiny. Událost se bude opakovat každých RepeatMin/Max.
9 EVENT_T_RANGE MinDist MaxDist RepeatMin RepeatMax Událost je spuštěna pokud, hráč s nejvyšším threatem (ohrožením) je ve vzdálenosti Param1 až Param2 yardů. Bude se opakovat každých RepeatMin/Max.
10 EVENT_T_OOC_LOS NoHostile NoFriendly RepeatMin RepeatMax Událost se spustí pokud se hráč dostane do oblasti viditelnosti creatury. Nespustí se pro Hostile hráče pokud parametr NoHostile není nastaven na 0, dále se nespustí pro Friendly hráče pokud parametr NoFriendly není nastaven na 0. Bude se opakovat každých RepeatMin/Max. nikdy se nespustí pro creatury/pety, a nebo pokud je creatura v souboji.
11 EVENT_T_SPAWNED N N N N Událost se spustí při prvním spawnu creatury a při respawnu.
12 EVENT_T_TARGET_HP HPMax% HPMin% RepeatMin RepeatMax Událost se spustí, pokud jsou HP aktuálního cíle creatury mezi HPMax/Min% a bude se opakovat každých RepeatMin/Max.
13 EVENT_T_TARGET_CASTING RepeatMin RepeatMax N N Událost se spustí pokud aktuální cíl castí kouzlo. Bude se opakovat každých RepeatMin/Max.
14 EVENT_T_FRIENDLY_HP HPDeficit Radius RepeatMin RepeatMax Událost se spustí pokud přátelské jednotce v okruhu (Param2) bude scháze (Param1) HP. Událost se opakuje každých RepeatMin/Max.
15 EVENT_T_FRIENDLY_IS_CC DispelType Radius RepeatMin RepeatMax Událost se spustí, pokud je přátelská jednotka pod vlivem CC* v okruhu (param2). Bude se opakovat každých RepeatMin/Max. *CC = kouzla jako stun, sheep apod.
16 EVENT_T_MISSING_BUFF SpellID Radius RepeatMin RepeatMax Událost se spustí pokud přátelksé jednotce v poloměru (Param2) yardů vyprší kouzlo (Param1). Bude se opakovat každých RepeatMin/Max.
17 EVENT_T_SUMMONED_UNIT CreatureID RepeatMin RepeatMax N Událost se spustí pokud je spawnuta creatura (Param1), pro všechny spawny Param1 = 0. Bude se opakovat každých RepeatMin/Max.


Další sloupec `event_param1` je typu parametru. To znamená, že do tohoto sloupce zapisujeme data, které vstupují do události a ovlivňují ji. Mají své vlastní typy (Čas v ms, Procenta, Flags). Jak jste si mohli všimnout v tabulce jsou popsány jednotlivé paramatery 1 2 3 k určitým událostním typům. Uvedeme si malinký příklad, ať nejste tak zmatení.

Zapíši do `creature_id` ID 123. Do `event_type` zapíši 4, což je EVENT_T_HP - znamená, že tato událost se spustí při dosažení určitého % HP. Určitého % HP je myšleno co? Hádejte  :) ... Je to parametr 1 (z tabulky můžete vyčíst) no a kde najdu tuto hodnotu? V tabulce, konkrétně ve sloupci `event_param1`. Jednoduché, že? Nu, přejdeme dále. Další sloupec je `event_param2` má stejné vlastnosti jako parametr 1 (`event_param1`) akorát nemusí být vždy použit (parametr 1 také nemusí být vždy použit). Uvedeme si příklad. Představte si, že Vám maminka peče koláč a teďkom vytáhne tři koláčové formy, ale dělá jenom jeden koláč. Jenže, co kdyby přišla návštěva? Musela by uvařit tři koláče a použít tři koláčové formy. Tak stejně je to i s parametry. Např. při časovači Vám stačí čas (interval), za který se určitá akce opakuje, kdežto u EVENT_T_HP by se mohl hodit i další parametr např. k předání času jako zpoždění. Shrneme si zatím, co jsme zapsali: `creature_id` 123, `event_type` 4 (EVENT_T_HP), `event_param1` 90 (při 90% HP) `event_param2` 2000 (2000 milisekund spoždění). Nyní jsme si „zodpověděli“ druhou větu - událost (Kdy to dělat). No a co naše první věta? Když se na to podíváte z dálky na druhou větou (Kdy to dělat), je v ní napsáno, že se má něco dělat! A co? To nám řekne naše první věta. Nyní si to převedeme na eventAI. Další sloupec v tabulce `eventai_scripts` je `action1_type`. Do tohoto sloupce ukládáme jaký typ akce se má provést při naši události.

Jednotlivé typy akcí (action_type)
ID Jméno Parametr 1 Parametr 2 Parametr 3 Popis
1 ACTION_T_SAY Text ID N N Creatura řekne text s určitým Text ID /say
2 ACTION_T_YELL Text ID N N Creatura zařve text s určitým Text ID /yell
3 ACTION_T_TEXTEMOTE Text ID N N Creatura vyjádří textový cit. /e
4 ACTION_T_SOUND Sound ID N N Creatura pustí zvuk.
5 ACTION_T_EMOTE Emote ID N N Creatura vyjádří cit. /cry
6 ACTION_T_RANDOM_SAY Text ID 1 Text ID 2 Text ID 3 Vybere z těchto 3 Text ID jednu a řekne ji. Pokud je Text ID = -1 vynechá jej.
7 ACTION_T_RANDOM_YELL Text ID 1 Text ID 2 Text ID 3 Vybere z těchto 3 Text ID jednu a zařve ji. Pokud je Text ID = -1 vynechá jej.
8 ACTION_T_RANDOM_TEXTEMOTE Text ID 1 Text ID 2 Text ID 3 Vybere z těchto 3 Text ID jednu a vyjádří textový cit /e. Pokud je Text ID = -1 vynechá jej.
9 ACTION_T_RANDOM_SOUND Sound ID 1 Sound ID 2 Sound ID 3 Vybere z těchto 3 Sound ID jednu a pustí ji. Pokud je Sound ID = -1 vynechá ji.
10 ACTION_T_RANDOM_EMOTE Emote ID 1 Emote ID 2 Emote ID 3 Vybere z těchto 3 Emote ID jednu a emotuje ji. Pokud je Emote ID = -1 vynechá ji.
11 ACTION_T_CAST Spell ID T-Type Interrupt * Vrhnout kouzlo na cíl. Pokud je Interrupt = 1, kouzlo se může přerušit.
12 ACTION_T_SUMMON Creature ID T-Type Duration * Vyvolá kreaturu (peta). Duration čas za jak dlouho má pet zmizet. Pokud je Duration = 0 (výchozí), pet zmizí při zabití.
13 ACTION_T_THREAT_SINGLE_PCT Threat % T-Type N Modifikuje hrozbu cíle procentem Threat.
14 ACTION_T_THREAT_ALL_PCT Threat % NU N Modifikuje hrozbu každého v okolí procentem Threat.
15 ACTION_T_QUEST_EVENT Quest ID T-Type N Splní speciální úkol questu (event - SpecialFlags = 2) pro cíl (musí být hráč).
16 ACTION_T_CASTCREATUREGO Quest ID Spell ID T-Type Simuluje kouzlení creatůry na cíl (musí být hráč)
17 ACTION_T_SET_UNIT_FIELD Index Value T-Type Nastaví pole Index na hodnotu Value u cíle. (Viz UpdateData, UpdateFields, data pole u charaterů)
18 ACTION_T_SET_UNIT_FLAG Flag(s) T-Type N Nastaví flag(y) na cíli.
19 ACTION_T_REMOVE_UNIT_FLAG Flag(s) T-Type N Odstraní flag(y) na cíli.
20 ACTION_T_AUTO_ATTACK Boolean N N Pokud je Boolean 0 (false), zastaví se auto útok, jestli je Boolean 1 (true), útok bude pokračovat.
21 ACTION_T_COMBAT_MOVEMENT Boolean N N Pokud je Boolean 0 (false), zastaví se bojový pohyb, jestli je Boolean 1 (true), bude se pohybovat.
22 ACTION_T_SET_PHASE Phase # N N Nastaví stav na fázi číslo 'Phase #'
23 ACTION_T_INC_PHASE Number N N Zvýší (nebo sníží) aktuální číslo fáze (phase) o udané číslo Number.
24 ACTION_T_EVADE N N N Přinutí creaturu, aby se resetovala - ukončí souboj a ztratí threat.
25 ACTION_T_FLEE N N N Přinutí creaturu uprchnout ze souboje.
26 ACTION_T_QUEST_EVENT_ALL Quest ID N N Splní speciální úkol questu (event - SpecialFlags = 2) pro všechny hráče v threat listu.
27 ACTION_T_CASTCREATUREGO_ALL Quest ID Spell ID N Simuluje kouzlení creatůry na všechny hráče v threat listu.
28 ACTION_T_REMOVEAURASFROMSPELL T-Type Spell ID N Odebere všechny aury (param2) z cíle.
29 ACTION_T_RANGED_MOVEMENT Distance Angle N Uses ranged movement generator keeping the creature at a distance.
30 ACTION_T_RANDOM_PHASE Phase 1 Phase 2 Phase 3 Náhodně vybere fázi ze seznamu tří fází.
31 ACTION_T_RANDOM_PHASE_RANGE Min Phase Max Phase N Vybere náhodnou fázi ze specifikovaného rozsahu.
32 ACTION_T_SUMMON Creature ID T-Type Summon ID Vyvolá creatůru na souřadnicích specifikovaných pro dané summon id. Vyvolaná creatůra zautočí na cíl.
33 ACTION_T_KILLED_MONSTER Creature ID T-Type N Simuluje zabití moba Creature ID pro hráče podle typu cíle.
34 ACTION_T_SET_INST_DATA Field Value N Nastaví novou hodnotu Value v poli Field dat instance (ovlivňuje skript instance).
35 ACTION_T_SET_INST_DATA64 Field T-Type N Nastaví GUID cíle do pole Field dat instance (ovlivňuje skript instance).
36 ACTION_T_DIE N N N Zabije creaturu.
37 ACTION_T_ZONE_COMBAT_PULSE N N N Nastaví všem hráčům v instanci bojový režim s creatůrou. Funguje pouze v boji a uvnitř instancí.

Opět máte tabulku s popisem. Opět, tyto akce pobírají parametry, které je ovlivňují. U parametrů akcí nám přibyl další typ parametru a to je TARGET (cíl).

Seznam všech možných TARGETů
ID Name Description
0 TARGET_T_SELF Cíl je sám.
1 TARGET_T_HOSTILE Cíl je stávající oběť (obvykle cíl s největším aggrem v okolí).
2 TARGET_T_HOSTILE_SECOND_AGGRO Cíl je creatura s druhým největším aggrem.
3 TARGET_T_HOSTILE_LAST_AGGRO Cíl je creatura s nejmenším aggrem.
4 TARGET_T_HOSTILE_RANDOM Náhodné vybrání cíle (cíl v okolí).
5 TARGET_T_HOSTILE_RANDOM_NOT_TOP Náhodné vybrání cíle, mimo creaturu s největším aggrem (cíl v okolí).
6 TARGET_T_ACTION_INVOKER Targets the unit that caused the event; only for certain events only.


Seznam Cast Flagů
Bit / Value Name Description
0 / 1 CAST_INTURRUPT_PREVIOUS Přeruší jakékoli přechozí castění.
1 / 2 CAST_TRIGGERED Donutí castit okamžitě a ignoruje potřebnou manu/pomůcky.
2 / 4 CAST_FORCE_CAST Donutí castit kouzlo i když se může zdát, že je cíl moc daleko, nebo že má creatura málo many.
3 / 8 CAST_NO_MELEE_IF_OOM Zabrání creatuře začít melee útok, když jí došla mana, nebo je moc daleko.
4 / 16 CAST_FORCE_TARGET_SELF Donutí cíl seslat tot kouzlo na sebe.


Seznam Event Flagů
Bit / Value Name Description
0 / 1 EFLAG_REPEATABLE Opakuje událost (Nebude se opakovat pokud není tento flag nastaven)
7 / 128 EFLAG_DEBUG_ONLY Zatím neimplementováno.

Ukážeme si teď pár praktických příkladů...

INSERT INTO `eventai_scripts` (
`id`,
`creature_id`,
`event_type`,
`event_inverse_phase_mask`,
`event_chance`,
`event_param1`,
`event_param2`,
`action1_type`,
`action1_param1`,
`action2_type`,
`action2_param1`,
`comment`
) 
VALUES 
(NULL,'123','4','0','100','90','2000','1','1','4','1564',
'Popis neni povinny.. jen kvuli prehledu');
  • event type - EVENT_T_HP
  • event inverse phase mase - nechte byt na nula
  • event chance - sance na splneni udalosti
  • event parametr 1 - 90 (procenta HP viz. tabulka)
  • event parametr 2 - 2000 (čas (ms) viz. tabulka - TARGETy dole jsou vysvětlivky -> nepovinný parametr označován * )
  • event parametr 3 - N (není žádný, viz. tabulka - TARGETy dole jsou vysvětlivky)
  • action1 type - typ první akce - 1 - ACTION_T_SAY (promluví)
  • action1 parametr 1 - 1 (text ID 1 viz. tabulka)
  • action2 type - typ druhé akce - ACTION_T_SOUND (4)
  • action2 parametr 1 - 1564 (sound ID viz. tabulka - creatura zahraje zvuk s ID)
  • comment - nepovinný komentář pro developery

A co že se při tomto eventAI scriptu stane? Event type nám říka, že se to stane při dosažení určité hodnoty HP. Event parametr 1 nám ríká, že HP musí dosáhnout hodnoty 90%. Event parametr 2 nám říká, že po dosáhnutí určité hodnoty HP bude čekat 2000 milisekund. Action type1 nám říká, že první akce bude /say (creatura promluví) určitý text ID, nebo Váš text ID, který si sami vytvoříte a jeho data zapíšete do tabulky `localized_texts`. Action2 type nám říká, že se zahraje určitý zvuk. Action2 parametr 1 nám určuje ID zvuku, který se má zahrát....

Externí odkazy