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
El ID del hechizo a lanzar sobre el jugador. Ver Spell.dbc.
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.
El entry de la misi贸n que el jugador debe tener en el estado definido por quest_start_status. Ver quest_template.id.
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.
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:
Este ID se llama autom谩ticamente desde ChrRaces.dbc. El bitmask se introduce aqu铆.
El tipo de g茅nero al que se aplica esta entrada. 0 = Masculino, 1 = Femenino, 2 = Cualquiera.
| 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:
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:
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. |
| 4 (NOT USED) | (Sin usar) | |
| QUEST_STATUS_INCOMPLETE = 3 | 8 | El jugador a煤n no cumpli贸 los objetivos |
| 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: