Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

Back-to:World

The `spell_area` table

...

  • An area could pacify all players (spell 39331)
  • Another area could full heal every 1 second (spell 48591)
  • Teleport player out of an area (spell 53141)
  • Factions-specific buffs, e.g. in Icecrown Citadel:
    • "Hellscream's Warsong" (spell 73822) for horde 
    • "Strength of Wrynn" (spell 73828) for alliance
  • Even region-based buffs, such as area 440 - Tanaris.

Structure

Field

Type

Attributes

Key

Null

Default

Extra

Comment

spell

mediumint(8)

unsigned

PRI

NO

0

 

 



area

mediumint(8)

unsigned

PRI

NO

0

 

 



quest_start

mediumint(8)

unsigned

PRI

NO

0

 

 



quest_end

mediumint(8)

unsigned

 


NO

0

 

 



aura_spell

mediumint(8)

signed

PRI

NO

0

 

 



racemask

mediumint(8)

unsigned

PRI

NO

0

 

 



gender

tinyint(

1

3)

unsigned

PRI

NO

2

 



flags

 

autocast

tinyint(

1

3)

unsigned

  


NO

0

 

3



quest_start_status

int(11)

unsigned

 


NO

64

 

 



quest_end_status

int(11)

unsigned

 


NO

11

 

 



Description of the fields

...

This ID is automatically called from ChrRaces.dbc. The bitmask is entered here.

MASTER:

0, 50331648 52430847 = All Races

16777216 33555378 (2 + 16 + 32 + 128 + 256 + 512 + 33554432) = Horde Only

33554432 18875469 (1 + 4 + 8 + 64 + 1024 + 2097152 + 16777216) = Alliance Only

3.3.5:

0, 1791 = All Races

690 (2 + 16 + 32 + 128 + 512) = Horde Only

1101 (1 + 4 + 8 + 64 + 1024 ) = Alliance Only

gender

The gender type this entry applies to. 0 = Male, 1 = Female, 2 = Any.

...

flags

FlagNameComment
10x01SPELL_AREA_FLAG_AUTOCAST If the spell should be automatically applied when the character enters the area. Also prevents the user from removing it.
20x02SPELL_AREA_FLAG_AUTOREMOVE If the spell should be automatically removed when the character is inside the area (only works with quest updates)

Note: Spell is allways removed on leaving area, SPELL_AREA_FLAG_AUTOREMOVE does not effect this.


Example:

flags = 0 : Spell not added on enter (must be added manually), not automatically removed on quest update, but removed on leave.
flags = 1 : Spell is not autocasted, 1 = is autocastedautomatically applied on enter, not automatically removed on quest update, but removed on leave.
flags = 2 : Spell not added on enter (must be added manually), automatically removed on quest update and removed on leave.
flags = 3 : (Default) Spell is automatically applied on enter, automatically removed on quest update and removed on leave.

quest_start_status, quest_end_status

...

INSERT INTO spell_area (spell, area, quest_start, quest_end, autocast, quest_start_status, quest_end_status) VALUES (92237, 257, 28725, 28727, 1, 74, 11); 


Quest Status

Flag

Explanation

QUEST_STATUS_NONE = 0

1

Player does not have or had quest at all. He could accept it, but he did not (yet).

QUEST_STATUS_COMPLETE = 1

2

Player fulfilled objectives, but did not hand it in yet.

QUEST_STATUS_UNAVAILABLE = 2

4 (NOT USED)

(Not used)

QUEST_STATUS_INCOMPLETE = 3

8

Player did not fulfill objectives yet

QUEST_STATUS_AVAILABLE = 4

16 (NOT USED)

(Not used)

QUEST_STATUS_FAILED = 5

32

Player failed to fulfill objectives for any reason, e.g. time limit

QUEST_STATUS_REWARDED = 6

64

Player handed quest in and this is sort of a post-quest interaction


Info
titleExample for a SQL

 For a `quest_end_status` that should contain QUEST_STATUS_NONE (1), QUEST_STATUS_COMPLETE (2) and QUEST_STATUS_INCOMPLETE (8):

Bloque de código
languagesql
 UPDATE `spell_area` SET `quest_end_status`= (1|2|8) WHERE `spell`=XXXXX AND `area`=YYYY; -- equivalent to `quest_end_status`= 11


...