• Anuncios

    • Guest

      RGPD (LEY DE 25 DE MAYO DE 2018)   24/05/2018

      Pueden ver el original RGPD del servidor en este enlace (inglés). Opcionalmente, pueden ver una versión adaptada al español aquí: ¡Es muy importante leer y aceptar esto antes de seguir jugando!
    • Terënas

      ¿Necesitas ayuda?   16/08/2018

      Bienvenidos al foro en español de Firestorm
      Si es tu primera vez y no sabes dónde solicitar ayuda para resolver tu problema, te dejamos unos enlaces que seguro te serán de utilidad.   ¿Tienes un problema dentro del juego? ¿No puedes entrar al juego? ¿Compraste puntos y no te han llegado? ¿Fuiste sancionado y quieres apelar? ¿Perdiste una montura u objetos? ¿Encontraste a un jugador haciendo trampa? ¿Compraste algo en la tienda y no te ha llegado? ¿Encontraste un bug (error o fallo) en el juego?   Si deseas contactar con un miembro del Staff puedes ver la lista completa de miembros en el siguiente enlace:    
    • Guest

      ¡Avatares personalizados ahora disponibles!   12/04/2020

      ¡Saludos, usuarios del foro de Firestorm!   ¡A petición popular de los usuarios y debido a los múltiples problemas con la sincronización de avatares del foro con los avatares de la cuenta de los jugadores, ahora los usuarios del foro podrán seleccionar un avatar personalizado y una imagen de fondo en sus perfiles del foro! Para poder cambiar vuestro avatar, deberán acceder a vuestro perfil del foro y pulsar en el icono de imagen que encontrarán junto a vuestro avatar: 1) La imagen no podrá superar los 250 Kb de tamaño. 2) La resolución máxima será de 170x170px.   Para poder cambiar vuestro fondo de perfil, deberán pulsar en el botón de Foto de portada (deberán pulsar a la derecha de dicho botón, por alguna extraña razón): 1) La imagen no podrá superar los 750 Kb de tamaño.   ¡No olviden respetar las normas de cortesía y normas sociales especificadas tanto en el post de normas del foro como en el post de código de conducta del servidor, o su cuenta del foro será sancionada acorde a la gravedad de la falta cometida!   Un saludo y pasen un buen día.
    • Guest

      ¡Cambios de nombre del foro!   27/05/2020

             Nos alegra comunicarles que todo aquel que quiera cambiar su nombre, ya sea porque tenga su correo en su perfil de foro, o simplemente porque haya decidido cambiarlo, ahora podrá hacerlo.   Simplemente tendrá que comentar en este post con el nombre que desea tener en el foro para que su solicitud sea atendida.   No se admitirán nombres que resulten ofensivos y/o inapropiados (sexual, racista, terrorista, etc).                       ¡Un saludo a todos!
Pitufo759

[Guia 7] Añadir misiones a un NPC

5 posts en este tema

TEORÍA

Para implementar en un NPC una misión que no esta usaremos 2 diferentes tablas.

  • creature_queststarter: En esta tabla se guarda que misión empieza un NPC. Sus campos:
    • id: Corresponde al NPC que da la misión.
    • quest: Corresponde a la ID de la misión.
  • creature_questender: En esta tabla se guarda que misión termina un NPC. Sus campos:

    • id: Corresponde al NPC que da la misión.
    • quest: Corresponde a la ID de la misión.

Una vez que sabemos esto podemos empezar con un simple ejemplo.

Como sabemos antes de hacer cualquier acción de insertar algo a la base de datos, primeros debemos asegurarnos que no existe nada con los identificadores que vamos a trabajar ( ID y Quest), para ello primero, ejecutamos una sentencia de DELETE.

DELETE FROM `tabla` WHERE `id`=XXXXX AND `quest`=XXXXX;

Por lo tanto, realizamos un borrado de un registro de la tabla "tabla" cuando ID y quest concuerden con el registro. En el caso de que no exista un registro con los datos introducidos, la sentencia SQL no realizara "nada".

Ahora realizaremos una sentencia de INSERT INTO, para insertar un registro en una tabla especifica.

INSERT INTO `tabla`(`id`, `quest`) VALUES (XXXXX, XXXXX);

Por lo tanto, hemos especificado una tabla que contiene, esas 2 columnas, y vamos a insertar unos valores, que han de estar en el mismo orden que las columnas. Es decir el 1º valor corresponderá a la ID del NPC, y el segundo valor a la ID de la misión.

 

EJEMPLO PRÁCTICO

Vamos a realizar un ejemplo practico.

Para empezar tenemos esta misión El Buen Doctor(35146) que la empieza el NPC  Marybelle Walsh(84632) y termina en el NPC Dr. Hadley Ricard(84861)

1º Establecemos el comienzo de la misión Y seguidamente la finalización de la misión:

 

DELETE FROM `creature_queststarter`WHERE `id`=84632 AND `quest`=35146;
INSERT INTO `creature_queststarter`(`id`, `quest`) VALUES (84632, 35146);

DELETE FROM `creature_questender`WHERE `id`=84861 AND `quest`=35146; 
INSERT INTO `creature_questender`(`id`, `quest`) VALUES (84861, 35146);

 

Una vez tengamos esto, ya esta implementado la misión en los NPC a los que corresponde.

Un Saludo

 

 

Editado por Pitufo759
A 1 persona le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

gracias por la guia !!! una pregunta, puede haber varios bugs respecto a que un NPC no de la mision o no funcione correctamente no?  que tablas influyen en que este bug?

 el npcflag, unit_flag , creature_questender, creature_questarter hay alguna otra tabla que añadir ?? 

 

 

Compartir este post


Enlace al post
Compartir en otros sitios

Las misiones en si, son bastante complejas a la hora de poder realizarlas, ya que influyen en muchas tablas.

En este caso, únicamente se ha tratado el "colocar" una misión en un NPC.

npcflag y unit_flag son columnas de la tabla creature_template. Aun que cierto es que influyen en que una misión no se puede realizar, pero lo hacen de una manera indirecta, ya que si el NPC que nos tiene que dar la misión es un questgiver y en la BD esta puesto como si fuera un Gossip, impediría poder realizara correctamente. En ese caso seria una corrección del NPC en cuestión.

No obstante en ocasiones en diferentes misiones que no se pueden completar por que no se consiguen por X o por Y los objetivos, hay que tocar la tabla quest_template, pero esta ya es mas complicada, debido a que tiene 124 columnas. Aun que cada problema de misiones se abarcan de diferente manera dependiendo que fallo sea.

En resumen una misión puede tener un fallo por:

  • No tiene anexada la mision al NPC
  • El NPC no tiene el npcflag o faction  que suele ser lo mas común.
  • Fallo dentro de la misión. (Id mal relacionadas de los objetivos o falto de ellos)

Un saludo

Compartir este post


Enlace al post
Compartir en otros sitios

Faltaria otra guia en donde nos indicara como solucionar quest que necesitan un item ya sea dropeado por una criatura o de recolectar

Compartir este post


Enlace al post
Compartir en otros sitios

Buena guia, le falta una cosilla que te comento para que la añadas (creo que tu la sabes pero lo has dado por hecho que otros tambien),ademas que sin ello aunque añadas las misiones al npc, este no te las dara o finalizara.

Te falto añadir que para que el npc muestre que tiene misiones, ya sea para empezarlas o acabarlas, hay que añadirle la npcflag 2. Por lo que al añadir una mision a un npc en cualquiera de esas dos tablas habra que asegurarse que la tiene haciendo un update:

UPDATE `creature_template` SET `npcflag`=npcflag|2 WHERE `entry`=XXXX;

Por lo demas muy bien explicado todo :) .

En cuanto a las dudas que comentais, para los objetivos ya no se usa la tabla quest_template sino la tabla quest_template_objectives y es en esta donde se pone si hace falta matar alguna criatura, o recolectar algun item,etc.

Una mision que no deja entregarla habiendola completado puede ser debido a varias cosas como ya comento pitufo y hay que ver cada mision en particular.

npcflag incorrecta o no esta añadida en la tabla de creature_questender son las mas comunes.

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!


Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.


Iniciar Sesión