Mangos world scripts
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
- datalong: Kill credit entry (ID) pro quest (entry je v `quest_template.ReqCreatureOrGOId`).
- datalong2: 0 = osobní KillCredit, 1 = skupinový KillCredit.
- 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
- datalong: ID itemu. Viz.: `item_template.entry`.
- datalong2: Množství.
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
- datalong: ID videa. Viz.: Movie.dbc
- 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
- SCRIPT_COMMAND_MOUNT_TO_ENTRY_OR_MODEL = 24
- SCRIPT_COMMAND_SET_RUN = 25
- datalong: 0=off, 1=on.
- datalong2: Creature entry.
- datalong3: Rádius (okruh) vyhledávání.