[Tutorial] Cómo crear Quest Points 3.3.5

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
Hola a tod@s! En esta ocasión os traigo un tutorial muy simple con el que podréis crear vuestros Quest Points de manera rápida y efectiva. Pero.... y qué es un quest point? fácil, cuando cogéis una misión y queréis saber dónde se hace o dónde se entrega? recurrís al mapa verdad? Y en el mapa se marca un área en azul o aparece una bolita dorada en una ubicación verdad? Pues eso son los quest points, los puntos marcados en el mapa que indican dónde se hace o entrega un quest.

Cabe diferenciar 2 tipos de quest points básicos; uno sería el de entregar la quest (bolita dorada) y, otro sería el que indica una zona en donde puede ser encontrado cierto item, criatura, gobject, etc (área azul).

¿Qué vamos a necesitar manejar para crearlos?
- La dbc "WorldMapArea.dbc".
- Gestor de base de datos (SQLYog o similar).
- Nuestro cliente de wow con cuenta de gm.
- Comando ingame .gps

Empecemos....

Tablas del SQL:

1. quest_poi
En primer lugar vamos a ver la tabla quest_poi (situada en la database World), de la cual podéis ver su estructura AQUÍ. Esta tabla es la encargada de determinar qué tipo de "cosa" estamos buscando y dónde.

Sus columnas serían las siguientes:
QuestID : Poned el ID de la misión a la que vais a ponerle el quest point.
id: el primer quest point sería 0, si lleva varios, el siguiente sería 1, el siguiente 2, etc.
ObjetiveIndex: aquí pondremos la función que va a desempeñar el quest point, tenéis que ir a esta página y en la sección "objIndex" os aparecen los valores que habría que asignar dependiendo de lo que estés buscando.
MapID: el ID del mapa donde se localiza el quest point.
WorldMapAreaId: en esta columna deberemos dirigirnos a la dbc anteriormente ya extraída de nuestro cliente WorldMapArea.dbc y, utilizaremos el id del área que nos indique en ella donde queremos poner el quest point.
Floor: estableceremos el valor relativo a la planta o nivel en la que situaremos el quest point.
Priority: siempre "0".
Flags: yo normalmente pongo 1, hay más valores, pero hay poca información al respecto y no sabría explicarlo bien.
VerifiedBuild: siempre "0".

2. quest_poi_points
Esta es la tabla que se encarga de guardar las coords de nuestros quest points para que aparezcan en el lugar que queremos en el mapa. Podéis verla más explicada AQUÍ.

Sus columnas serían las siguientes:
QuestID: Habría que poner el ID de la quest que hemos puesto en "quest_poi" anteriormente.
Idx1: el mismo valor que en la columna "id" de "quest_poi" que pusimos.
Idx2: empieza en 0 (si sólo es 1 objetivo, si fuera marcar una zona habría que irle creando mas líneas y aumentarle 1 a este valor por cada línea nueva, lo veremos más adelante con otros ejemplos)
X: nos meteremos en el cliente, iremos al punto donde queremos que se marque el quest point y, ejecutaremos el comando de gm .gps, anotaremos la coord X aproximándola a valores enteros.
Y: lo mismo que la coord X lo hacemos también con la Y.
VerifiedBuild: siempre "0".

Ejemplos de Quest Points:

Dicho esto vamos a rellenar varios ejemplos, uno consistente en entregar una miss a un npc y otro consistente en crear un área donde aparecen las criaturas que necesitaremos matar para completar la miss.

EJEMPLO 1

Quiero hacer un quest point para una misión que me he inventado con ID 70000 en Durotar que consista en entregarle un mensaje a un npc.

Rellenaríamos la tabla "quest_poi" de la siguiente forma:
QuestID: 70000
id: 0
ObjetiveIndex: -1
MapID: 1
WorldMapAreaId: 4
Floor: 0
Priority: 0
Flags: 1
VerifiedBuild: 0

Ya tenemos la información de lo que tiene que marcar nuestro quest point, ahora vamos a decirle donde debe de situarse en el mapa, para ello nos dirigimos a la siguiente tabla que deberemos de rellenar...

Rellenaríamos la tabla "quest_poi_points" de la siguiente manera:
QuestID: 70000
Idx1: 0
Idx2: 0
X: 1400
Y: 567
VerifiedBuild: 0

EJEMPLO 2

Quiero hacer un quest point para una misión que me he inventado con ID 70000 en Durotar que consita en matar 8 cerdos que salen en una determinada zona (zona azul) y después entregar la misión a un npc.

Bien, aquí deberemos de coger de partida lo que necesita la quest para ser completada, en nuestro caso se refiere a criaturas, las cuales deberán estar especificadas en la tabla "quest_template" en su columna "requiredNpcOrGo1" (ved como os he dicho la sección ObjIndex de esta web) y después cuando las matemos que salga el del npc donde se entrega la miss. Por eso vamos a realizar varias líneas.

Rellenaríamos la tabla "quest_poi" de la siguiente forma para especificarle que vamos a referirnos a un área de criaturas especificadas en "RequiredNpcOrGo1" de la tabla "quest_template":

QuestID: 70000
id: 0
ObjetiveIndex: 0
MapID: 1
WorldMapAreaId: 4
Floor: 0
Priority: 0
Flags: 1
VerifiedBuild: 0

Y también crearíamos otra línea rellenándola para entregar la miss a un npc, atendiendo a que "id" debemos aumentarlo en 1 ya que va a ser para la misma misión pero será otro quest point distinto al de las ciaturas. Por tanto pondríamos lo siguiente:

QuestID: 70000
id: 1
ObjetiveIndex: -1
MapID: 1
WorldMapAreaId: 4
Floor: 0
Priority: 0
Flags: 1
VerifiedBuild: 0

Ya tendríamos declarada la función de cada quest point, ahora empezaríamos con la tabla "quest_poi_points" para decirle dónde queremos que el "quest_poi" de la misión 70000 aparezca en el mapa como un área azul donde se encontrarían las criaturas. Tenemos que tener en cuenta que el "Idx2" empieza en 0 y aumenta en 1 por cada línea que agreguemos. Todas las coords debéis sacarlas del juego de la manera que os he explicado anteriormente. Imaginaros que tenéis una silueta triangular con puntos y tenéis que unirlos todos siguiendo sólo un sentido, pues eso aplicadlo al juego, es decir, primero iros a un punto del mapa donde estén las criaturas, después a otro y a otro hasta volver al punto de origen.

Para este ejemplo vamos a marcar un área triangular que indique dónde están las criaturas de la miss. Asique añadimos 3 lineas en la tabla "quest_poi_points":

QuestID: 70000
Idx1: 0
Idx2: 0
X: 1400
Y: 567
VerifiedBuild: 0
QuestID: 70000
Idx1: 0
Idx2: 1
X: 1480
Y: 765
VerifiedBuild: 0
QuestID: 70000
Idx1: 0
Idx2: 2
X: 1440
Y: 614
VerifiedBuild: 0
Y por último crearemos una línea para especificar dónde está el npc al que se le entrega la misión después de haberla completado también en "quest_poi_points":

QuestID: 70000
Idx1: 1
Idx2: -1
X: 1200
Y: 800
VerifiedBuild: 0

Igual que lo hemos realizado con criaturas, se puede hacer con gobjects y con items, sólo recordad fijaros en la tabla "quest_template" qué es lo que necesita para completarse y contrastar cual es el valor que le corresponde en la columna "ObjetiveIndex" de la tabla "quest_poi".

Con esto ya sabréis hacer vuestro propios Quest Points para vuestra misiones custom, o para reparar las que aparezcan mal. Espero que os guste, que lo practiquéis y que consigáis hacer todo lo que os propongáis.

** NOTA: Las coords usadas en este tutorial son totalmente inventadas, usad el método descrito para obtener las que necesitáis para vuestros Quest Points.
 

Raverkai

Guardian
Desde
23 Apr 2020
Mensajes
205
Reacciones
231
Honor
82
I love you so much tuerney! hermano, excelente guía <3
 

destork

Explorador
Desde
12 Jun 2023
Mensajes
19
Reacciones
4
Honor
7
Alguien sabe como hacer con los Quest point de legión son distintas las dB, por favor ayuda....
 

Crea una cuenta o inicia sesión para comentar

Debes ser usuario para poder dejar un comentario.

¡Regístrate!

Crea una cuenta en nuestra comunidad. ¡Es fácil!

Acceder

¿Ya tienes una cuenta? Accede aquí

3,957Temas
25,949Mensajes
15,874Usuarios
moi16Último usuario
Top