Mangos world scripts

Z WoWResource Wiki
Přejít na: navigace, hledání

Zpět na seznam tabulek world databáze.

Tabulky `*_scripts`

Tento formát používá 7 různých tabulek, podle kterých se řidí aktivace scriptů sedmi odlišných akcí:

Tabulka Obsah tabulky / aktivace Původ
gameobject_scripts Skripty aktivované při použití gameobjectu typu GAMEOBJECT_TYPE_BUTTON (1) uživatel
spell_scripts Skripty aktivované vykouzlením spellu s efektem SPELL_EFFECT_SCRIPT_EFFECT (77) caster
quest_start_scripts Skripty aktivované když hráč přijímá quest quest giver
quest_end_scripts Skripty aktivované když hráč odevzdává hotový quest quest taker
creature_movement_scripts Scripty aktivované během pohybu NPC creatura
event_scripts Scripty aktivované událostí, ať už jde o objekt či spell SPELL_EFFECT_SEND_EVENT (61)
gossip_scripts Scripty aktivované použitím gossip_menu_option

POZNÁMKA: Jedno ID (entry) v těchto takulkách, může mít více než jeden řádek ve skriptu = může udělat víc, než jen jednu akci.<br"> Každá akce může mít vlastní zpoždění (delay). V takovém případě bude MaNGOS (core) aktivovat příslušné kroky postupně.


Struktura

Pole Typ Null Key Výchozí hodnota Extra
id int(11) unsigned NE 0
delay int(11) unsigned NE 0
command mediumint(8) unsigned NE 0
datalong mediumint(8) unsigned NE 0
datalong2 int(10) unsigned NE 0
datalong3 int(10) unsigned NE 0
datalong4 int(10) unsigned NE 0
data_flags tinyint(3) unsigned NE 0
dataint int(11) NE 0
dataint2 int(11) NE 0
dataint3 int(11) NE 0
dataint4 int(11) NE 0
x float NE 0
y float NE 0
z float NE 0
o float NE 0
Comments varchar(255) NE NULL


Popis polí tabulky

id

Tabulka Význam pole id Související pole nebo DBC soubor
gameobject_scripts GUID gameobjectu typu 'button' (tlačítko) gameobject.guid
spell_scripts ID spellu DBC soubor Spell.dbc
quest_start_scripts ID scriptu -> tabulka quest_template, pole StartScript quest_template.StartScript
quest_end_scripts ID scriptu -> tabulka quest_template, pole CompleteScript quest_template.CompleteScript
creature_movement_scripts ID waypointu -> tabulka creature_movement, pole script_id creature_movement.script_id
event_scripts ID eventu ? (*)
gossip_scripts ID gossip option gossip_menu_option.action_script_id

(*) Pozn. k tabulce event_scripts: Zatím neexistuje úplný seznam eventů. Každopádně, ID eventů jsou brány přímo z gameobject
WDB dat nebo dat spell effectů. Pokud oba, gameobject a spell, aktivují stejný event, ID budou odpovídat (budou stejná).

delay

Časová prodleva v sekundách před spuštěním daného kroku scriptu. 0 = okamžité spuštění.

command

Typ akce prováděné skriptem po uběhnutí časové prodlevy (delay). Hodnota tohoto pole ovlivňuje význam hodnot ostatních (zbývajících) polí.

Mohou být použity následující typy (příkazy):

Command Interní Název Popis
0 TALK Creature say/whisper/yell/textemote.
1 EMOTE Spustí na creatuře daný emote.
2 FIELD_SET Změní hodnotu indexu pro hráče.
3 MOVE_TO Přesune creaturu na určitou pozici / lokaci.
4 FLAG_SET (Turns on bits on a flag field at an index for the player.)
5 FLAG_REMOVE (Turns off bits on a flag field at an index for the player.)
6 TELEPORT_TO Teleportuje hráče na určitou pozici / lokaci.
7 QUEST_EXPLORED Splní podmínku explore questu. (doprovod)
8 KILL_CREDIT Splní podmínku kill credit pro quest(?)
9 RESPAWN_GAMEOBJECT Spawnuje despawnovaný gameobject.
10 TEMP_SUMMON_CREATURE Dočasně přivolá creaturu.
11 OPEN_DOOR Otevře dveře (gameogject type == 0).
12 CLOSE_DOOR Zavře dveře (gameobject type == 0).
13 ACTIVATE_OBJECT Aktivuje objekt.
14 REMOVE_AURA Odstraňuje auru vyvolanou spellem.
15 CAST_SPELL Vykouzlí spell.
16 PLAY_SOUND Přehraje zvuk.
17 CREATE_ITEM Vytvoří item.
18 DESPAWN_SELF NPC despawnuje (samo sebe) s určitým zpožděním.
19 PLAY_MOVIE Přehraje video. Cíl může být pouze hráč.
20 MOVEMENT Způsobuje, že NPC jde směrem k jinému NPC.
21 SET_ACTIVEOBJECT
22 SET_FACTION Změní frakci.
23 MORPH_TO_ENTRY_OR_MODEL Změna modelu (Morph).
24 MOUNT_TO_ENTRY_OR_MODEL Nasednutí na zvíře (Mounts up).
25 COMMAND_SET_RUN Zbůsobí běh creatury.


Ostatní pole

Význam a použití zbývajících polí se liší v závislosti na typu příkazu.

  • SCRIPT_COMMAND_TALK = 0
    • datalong: Typ zprávy in-game chatu
Flag Význam
0 SAY
1 YELL
2 TEXT_EMOTE
3 BOSS_EMOTE
4 WHISPER
5 BOSS_WHISPER
6 ZONE_YELL
    • datalong2: Creature entry (Script vyhledá creturu s daným entry (ID), která je nejblíž ke zdroji).
    • datalong3: Rádius (okruh) vyhledávání creatury.
    • datalong4: ID jazyku (0 = universal).
    • data_flags:
Vnitřní název příznaku Hodnota
flag_target_player_as_source 0x01
flag_original_source_as_target 0x02
flag_buddy_as_target 0x04
    • dataint - dataint4: ID textu, který creatura řekne (napíše do chatu). Viz. `db_script_string`. ID musí být mezi 2000000000 a 2000010000.

Poznámka: V případě, že je vyplněno více polí dataint, text bude vybírán náhodně.


  • SCRIPT_COMMAND_EMOTE = 1
    • datalong: ID emoce, která se má na creatuře spustit. Viz.: Emotes.dbc


  • SCRIPT_COMMAND_FIELD_SET = 2
    • datalong: Index pole.
    • datalong2: Hodnota na místě indexu.


  • SCRIPT_COMMAND_MOVE_TO = 3
    • datalong2: Délka pohybu.
    • x: Cílová pozice X.
    • y: Cílová pozice Y.
    • z: Cílová pozice Z.
    • o: Orientace (směr otočení pohledu). Sever = 0; Jih = 3.14159 (pí).


  • SCRIPT_COMMAND_FLAG_SET = 4
    • datalong: Index pole pro nastavení. (Field index to be set.)
    • datalong2: Bit(y) příznaků k nastavení. (Flag bit(s) to set.)


  • SCRIPT_COMMAND_FLAG_REMOVE = 5
    • datalong: Index pole pro odstavení. (Field index to be unset.)
    • datalong2: Bit(y) příznaků k odstavení. (Flag bit(s) to unset.)


  • SCRIPT_COMMAND_TELEPORT_TO = 6
    • datalong: ID cílové mapy. Viz.: Maps.dbc
    • x: Cílová pozice X.
    • y: Cílová pozice Y.
    • z: Cílová pozice Z.
    • o: Cílová orientace (směr otočení pohledu hráče). Sever = 0; Jih = 3.14159 (pí).


  • SCRIPT_COMMAND_QUEST_EXPLORED = 7
    • datalong: ID Questu, jehož stav by měl být změněn na 'splněn'.
    • datalong2: Vzdálenost hráče od NPC/gameobjectu, potřebná k tomu, aby script stále plnil svojí funkci.

Poznámka: Tento typ commandu se používá zejména pro doprovodné questy.


  • SCRIPT_COMMAND_KILL_CREDIT = 8


  • SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9
    • datalong: GUID gameobjectu k respawnu. Viz.: `gameobject.guid`.
    • datalong2: Čas despawnu v sekundách. Minimální hodnota je 5. Nižší hodnoty se ignorují(MaNGOS použije 5).


  • SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10
    • datalong: Entry vyvolané creatury z tabulky `creature_template.entry`.
    • datalong2: Čas despawnu v milisekundách (ms).
    • data_flags: 0x01 = vyvolá creaturu jako aktivní objekt.
    • x: Pozice X.
    • y: Pozice Y.
    • z: Pozice Z.
    • o: Orientace (směr otočení pohledu). Sever = 0; Jih = 3.14159 (pí).


  • SCRIPT_COMMAND_OPEN_DOOR = 11
    • datalong: GUID aktivovaného(*) gameobjectu dvěří. Viz.: `gameobject.guid`.
    • datalong2: Časová prodleva v sekundách, mezi opětovným zavřením dvěří. Minimální hodnota je 5. Nižší hodnoty se ignorují(MaNGOS použije 5).

Poznámka: gameobject se (podle všeho) musí nejdříve aktivovat pomocí commandu SCRIPT_COMMAND_ACTIVATE_OBJECT (13).


  • SCRIPT_COMMAND_CLOSE_DOOR = 12
    • datalong: GUID aktivovaného(*) gameobjectu dvěří. Viz.: `gameobject.guid`.
    • datalong2: Časová prodleva v sekundách, mezi opětovným otevřením dvěří. Minimální hodnota je 5. Nižší hodnoty se ignorují(MaNGOS použije 5).

Poznámka: gameobject se (podle všeho) musí nejdříve aktivovat pomocí commandu SCRIPT_COMMAND_ACTIVATE_OBJECT (13).


  • SCRIPT_COMMAND_ACTIVATE_OBJECT = 13
    • Zdroj musí být unit(gameobject/npc/gossip/event/spell/quest..) a cíl gameobject.


  • SCRIPT_COMMAND_REMOVE_AURA = 14
    • datalong: Spell ID. Viz.: Spell.dbc
    • datalong2: Pokud je hodnota větší než 0, vztahuje se na zdroj; jinak se vztahuje na cíl.


  • SCRIPT_COMMAND_CAST_SPELL = 15
    • datalong: Spell ID. Viz.: Spell.dbc
    • datalong2: 0 = zdroj->cíl; 1 = zdroj->zdroj; 2 = cíl->cíl; 3 = cíl->zdroj.


  • SCRIPT_COMMAND_PLAY_SOUND = 16
    • datalong: ID zvuku. Viz.: SoundEntries.dbc
    • datalong2: bitmask: 0/1 = kdokoliv/cíl; 0/2 = v závislosti na vzdálenosti(distanční závislost); Takže 1|2 = 3 znamená cíl s distanční závislostí.

Poznámka: Zdroj může být jakýkoliv objekt nebo npc. Cíl může být libovolný hráč.


  • SCRIPT_COMMAND_CREATE_ITEM = 17

Poznámka: Zdroj nebo cíl musí být hráč.


  • SCRIPT_COMMAND_DESPAWN_SELF = 18
    • datalong: Časová prodleva despawnu. (pozn. překladatele: časové jednotky nejsou známé)

Poznámka: Zdroj nebo cíl musí být creatura.


  • SCRIPT_COMMAND_PLAY_MOVIE = 19


  • SCRIPT_COMMAND_MOVEMENT = 20
    • datalong: Typ pohybu (0: nečinný, 1: náhodný, 2: po waypointech).
    • datalong2: Creature entry (Script vyhledá creturu s daným entry (ID), která je nejblíž ke zdroji).
    • datalong3: Rádius (okruh) vyhledávání creatury.


  • SCRIPT_COMMAND_SET_ACTIVEOBJECT = 21
    • datalong: 0=off, 1=on.
    • datalong2: Creature entry.
    • datalong3: Rádius (okruh) vyhledávání.


  • SCRIPT_COMMAND_SET_FACTION = 22
    • datalong: factionId NEBO 0 k obnovení původní frakce z tabulky `creature_template`.
    • datalong2: Creature entry.
    • datalong3: Rádius (okruh) vyhledávání.


  • SCRIPT_COMMAND_MORPH_TO_ENTRY_OR_MODEL = 23
    • datalong: Creature entry nebo modelID (záleží na hodnotě pole data_flags) / NEBO 0 pro demorph.
    • datalong2: Creature entry.
    • datalong3: Rádius (okruh) vyhledávání.
    • dataflags: 0x01 pro použití pole datalong výhradně jako hodnotu modelID.


  • SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL = 24
    • datalong: Creature entry nebo modelID (záleží na hodnotě pole data_flags) / NEBO 0 pro dismount.
    • datalong2: Creature entry.
    • datalong3: Rádius (okruh) vyhledávání.
    • dataflags: 0x01 pro použití pole datalong výhradně jako hodnotu modelID.


  • SCRIPT_COMMAND_SET_RUN = 25
    • datalong: 0=off, 1=on.
    • datalong2: Creature entry.
    • datalong3: Rádius (okruh) vyhledávání.