AzerothCore
Pages :

spell_area

<-Volver a: World

Tabla `spell_area`

Esta tabla se usa para aplicar un aura de hechizo espec铆fica al jugador dentro de un 谩rea del juego. Cuando cualquier jugador entra en esta 谩rea o interact煤a de alg煤n modo con una misi贸n, esta aura se manejar谩 en consecuencia.

Estructura

Field Type Attributes Key Null Default Extra Comment
spell MEDIUMINT UNSIGNED PRI NO
area MEDIUMINT UNSIGNED PRI NO
quest_start MEDIUMINT UNSIGNED PRI NO
quest_end MEDIUMINT UNSIGNED NO
aura_spell MEDIUMINT SIGNED PRI NO
racemask MEDIUMINT UNSIGNED PRI NO
gender TINYINT UNSIGNED PRI NO
flags TINYINT UNSIGNED NO
quest_start_status INT UNSIGNED NO
quest_end_status INT UNSIGNED NO

Descripci贸n de los campos

spell

El ID del hechizo a lanzar sobre el jugador. Ver Spell.dbc.

area

El ID del 谩rea. Escribe ".gps" en el juego y busca el n煤mero "Area:" a usar en esta celda. Ver tambi茅n AreaTable.dbc.

quest_start

El entry de la misi贸n que el jugador debe tener en el estado definido por quest_start_status. Ver quest_template.id.

quest_end

El entry de la misi贸n que el jugador NO debe tener en el estado definido por quest_end_status. Ver quest_template.id. Poner tanto quest_start como quest_end al mismo valor es in煤til.

aura_spell

Si se establece, este valor (m谩s o menos el ID de aura de hechizo de Spell.dbc) impone una condici贸n adicional.

El valor tiene el siguiente efecto:

  • < 0 (valores negativos) Si el jugador tiene el aura -aura_spell entonces el spell no se activar谩.
  • 0 esta columna se ignora.
  • > 0 (valores positivos) Si el jugador no tiene el aura aura_spell entonces el spell no se activar谩.

racemask

Este ID se llama autom谩ticamente desde ChrRaces.dbc. El bitmask se introduce aqu铆.

  • 0, 1791 = Todas las razas
  • 690 (2 + 16 + 32 + 128 + 512) = Solo Horda
  • 1101 (1 + 4 + 8 + 64 + 1024 ) = Solo Alianza

gender

El tipo de g茅nero al que se aplica esta entrada. 0 = Masculino, 1 = Femenino, 2 = Cualquiera.

flags

Flag Value Name Comment
1 0x01 SPELL_AREA_FLAG_AUTOCAST Si el hechizo debe aplicarse autom谩ticamente cuando el personaje entra en el 谩rea. Tambi茅n impide que el usuario lo elimine.
2 0x02 SPELL_AREA_FLAG_AUTOREMOVE Si el hechizo debe eliminarse autom谩ticamente cuando el personaje est谩 dentro del 谩rea (solo funciona con actualizaciones de misi贸n)

Nota: El hechizo siempre se elimina al salir del 谩rea, SPELL_AREA_FLAG_AUTOREMOVE no afecta a esto.

Ejemplo:

  • flags = 0 : El hechizo no se a帽ade al entrar (debe a帽adirse manualmente), no se elimina autom谩ticamente al actualizar la misi贸n, pero se elimina al salir.
  • flags = 1 : El hechizo se aplica autom谩ticamente al entrar, no se elimina autom谩ticamente al actualizar la misi贸n, pero se elimina al salir.
  • flags = 2 : El hechizo no se a帽ade al entrar (debe a帽adirse manualmente), se elimina autom谩ticamente al actualizar la misi贸n y se elimina al salir.
  • flags = 3 : (Por defecto) El hechizo se aplica autom谩ticamente al entrar, se elimina autom谩ticamente al actualizar la misi贸n y se elimina al salir.

quest_start_status, quest_end_status

Dentro de quest_start_status, puedes definir la m谩scara del estado de misi贸n requerido para quest_start.

Dentro de quest_end_status, puedes definir la m谩scara del estado de misi贸n requerido para quest_end.

Ejemplo:

El 谩rea 257 es una caverna en Teldrassil. Lo que queremos es simple: cuando el jugador toma la misi贸n 28725, tiene el aura en la caverna. Cuando termina la misi贸n 28727, el aura desaparece.

Deber铆as tener el hechizo 92237 al entrar en la caverna SI:

  • La misi贸n de inicio 28725 est谩 incompleta, completa o recompensada (2 | 8 | 64 = 74)
  • La misi贸n de fin 28727 no est谩 tomada (none), est谩 incompleta o completa PERO no recompensada (1 | 2 | 8 = 11)

Aqu铆 est谩 el SQL para este ejemplo:

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 El jugador no tiene ni ha tenido la misi贸n en absoluto. Podr铆a aceptarla, pero no lo ha hecho (todav铆a).
QUEST_STATUS_COMPLETE = 1 2 El jugador cumpli贸 los objetivos, pero a煤n no la ha entregado.
QUEST_STATUS_UNAVAILABLE = 2 4 (NOT USED) (Sin usar)
QUEST_STATUS_INCOMPLETE = 3 8 El jugador a煤n no cumpli贸 los objetivos
QUEST_STATUS_AVAILABLE = 4 16 (NOT USED) (Sin usar)
QUEST_STATUS_FAILED = 5 32 El jugador fall贸 al cumplir los objetivos por cualquier motivo, p. ej. l铆mite de tiempo
QUEST_STATUS_REWARDED = 6 64 El jugador entreg贸 la misi贸n y esto es una especie de interacci贸n post-misi贸n

Ejemplo para un SQL

Para un `quest_end_status` que debe contener QUEST_STATUS_NONE (1), QUEST_STATUS_COMPLETE (2) y QUEST_STATUS_INCOMPLETE (8):

-- equivalente a `quest_end_status`= 11
UPDATE `spell_area` SET `quest_end_status`= (1|2|8) WHERE `spell`=XXXXX AND `area`=YYYY;

Algunos ejemplos:

  • Un 谩rea podr铆a pacificar a todos los jugadores (hechizo 39331)
  • Otra 谩rea podr铆a curar por completo cada 1 segundo (hechizo 48591)
  • Teletransportar al jugador fuera de un 谩rea (hechizo 53141)
  • Buffs espec铆ficos de facci贸n, p. ej. en la Ciudadela de la Corona de Hielo:
  • "Hellscream's Warsong" (hechizo 73822) para la horda
  • "Strength of Wrynn" (hechizo 73828) para la alianza
  • Incluso buffs basados en regi贸n, como el 谩rea 440 - Tanaris.