• Announcements

    • LegnaX

      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:    
    • LegnaX

      ¡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.
    • LegnaX

      ¡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

[Guía 8] Establecer Funcionamiento de un NPC

12 posts in this topic

TEORÍA

Un NPC puede ser muchas cosas, es decir, puede ser un reparador, un instructor de clase o simplemente un NPC estático.

Para poder realizar esto sera necesario usar una única tabla.

  • creature_template:
    • entry: ID del NPC que le queremos asignar una función.
    • npcflag: Representa el funcionamiento que va a tener dicho NPC. A continuación se mostrar los diferentes tipos.
      • 1               Gossip: Si el NPC tiene más opciones.
      • 2               Quest Giver: Si el NPC empieza o termina alguna misión.
      • 16             Trainer: El NPC es un entrenador
      • 32             Class Trainer: El NPC es un entrenador de clase.
      • 64             Profesion Trainer: El NPC es un entrenador de profesión.
      • 128           Vendor: El NPC es un vendedor.
      • 4096         Repairer: El NPC es un reparador.
      • 8192         Flight Master: El NPC es un maestro de vuelo.
      • 16384       Spitirt Healer: El NPC es el ángel que resucita cuando mueres.
      • 65536       Innkeeper: El NPC es un tabernero.
      • 131072     Banker: El NPC es un banquero.
      • 524288     Tabard Designer: El NPC es un diseñador de Tabardos (Hermandad).
      • 2097152   Auctioneer: El NPC es un subastador.
      • 4194304  Stable Master: El NPC es un maestro de establo.
      • 8388608  Guid Banker: El NPC es un banquero de hermandad.

Así pues, al contrario que en otras reparaciones, no vamos a borrar (DELETE) ni a insertar (INSERT INTO), si no que vamos a sobrescribir (UPDATE). Mediante esta opción podemos cambiar de una forma rápida una columna de un registro, sin interferir en las demás columnas.

!OJO¡ Siempre que vallamos a usar la sentencia UPDATE, debemos asegurarnos que la clave principal (entry)  sea la correcta.

La sentencia SQL a usar sera:

UPDATE `tabla` SET `columna`=XXXXX WHERE `entry`=XXXXX;

En el caso que nuestro NPC realice diferentes funciones, la sentencia SQL variaría un poco. En este caso seria:

 

UPDATE `tabla` SET `columna`='columna'|XXX|XXX|XXX WHERE `entry`=XXXXX;

 

EJEMPLO PRÁCTICO

Vamos a realizar un par de ejemplos prácticos.

Tenemos al NPC 84861 Dr. Hadley Ricard, quien es un NPC con el funcionamiento de un Quest Giver, pero no tiene esa opción y no podemos hablar con el. Para ello, vamos a ejecutar la siguiente sentencia atendiendo a su ID, y al npcflag: Quest Giver, que le corresponde el 2. Una vez tenemos los datos usamos la sentencia anterior mostrada y sustituimos.

 

UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=84861;

Ya tenemos actualizado el npcflag del NPC, pero ahora el NPC 88228 Sargento Faucefasta es un NPC que también un Quest Giver, pero también hace función de vendedor. Para ello la sentencia atendiendo de la ID y las npcflag: Quest Giver (2) y Vendor (128)

UPDATE `creature_template` SET `npcflag`=`npcflag`|2|128 WHERE `entry`=84861;

 

Ya tendríamos el NPC actualizado, ahora ya sera un vendedor y misionero.

 

Un Saludo

Edited by Pitufo759

Share this post


Link to post
Share on other sites

y si es un transfigurador como se arreglaria? ?

Share this post


Link to post
Share on other sites

Cierto, si mal no me equivoco:

  • npcflag: Representa el funcionamiento que va a tener dicho NPC. A continuación se mostrar los diferentes tipos.
    • Gossip: Si el NPC tiene más opciones.
      • 268435456     Tranfoguration: NPC transfigurador

Un Saludo

Share this post


Link to post
Share on other sites


268435456: Guardia

segun un foro que encontre no se si puedo poner el link aqui pero si quieres te lo envio por privado 

sigo buscando como se pone transfigurador :S en trinitycore no lo encuentro por ningun lado

Edited by kroxirex

Share this post


Link to post
Share on other sites
hace 22 horas, kroxirex dijo:


268435456: Guardia

segun un foro que encontre no se si puedo poner el link aqui pero si quieres te lo envio por privado 

sigo buscando como se pone transfigurador :S en trinitycore no lo encuentro por ningun lado

Esa es la npcflag de transfigurador. Te la dijo bien Pitufo.

Share this post


Link to post
Share on other sites
hace 5 minutos, Hypnos dijo:

Esa es la npcflag de transfigurador. Te la dijo bien Pitufo.

:D:D pues ale manos a la obra 

Share this post


Link to post
Share on other sites

cuando dice que no se puede hablar, quiere decir que no es targeteable?

Share this post


Link to post
Share on other sites

Como se pone la funcion de ineraccion con el jugador?, por ejemplo, el jefe final de ULDUAR esta bug, el NPC que inicia la cadena de eventos no interactúa con el jugador, como seria el codigo para arreglarlo? y otra pregunta, como se hace para que un NPC sea tarjeteable y se le pueda atacar?.

Share this post


Link to post
Share on other sites
hace 3 horas, reyard dijo:

Como se pone la funcion de ineraccion con el jugador?, por ejemplo, el jefe final de ULDUAR esta bug, el NPC que inicia la cadena de eventos no interactúa con el jugador, como seria el codigo para arreglarlo? y otra pregunta, como se hace para que un NPC sea tarjeteable y se le pueda atacar?.

Lo primero es mas complicado de explicar y habria que ver cada caso en concreto. Hay que hacer unas cuantas cosas para eso y no puedo explicartelo ahora.Habria que hacer una SAI y posiblemente un goosip.

A lo segundo, la columna "unit_flags" contiene la suma de las diferentes flags que tiene el npc. Si no recuerdo mal, la que hace un npc inatacable es unit_flags=2. El problema es que no puedes ponerlo a 0 directamente porque puedes borrar otras flags que tenga, por lo que habria que verlo directamente en la base de datos...La forma mal hecha de hacerlo cuando no tienes acceso a la base de datos es poniendo unit_flags=0.

Share this post


Link to post
Share on other sites

¿Cómo tiene que hacerse si a un NPC quest giver le falta una misión, suponiendo que ya cuenta con el resto? Pongamos que al NPC Brother Rabbitsfoot le falta la misión A Monkey Idol en su lista de misiones y, por tanto, no las entrega.

Otra duda que tengo es cómo podría hacerse para hacer una misión entregable a otra entidad a causa de que la original esté bugueada o puedas hacer una misión autoentregable a causa de que esté bug.

Gracias.

 

Share this post


Link to post
Share on other sites

Perdón, acabo de ver que hay otro artículo dirigido a esto, siento las molestias.

Share this post


Link to post
Share on other sites
hace 10 horas, CrazeAge dijo:

¿Cómo tiene que hacerse si a un NPC quest giver le falta una misión, suponiendo que ya cuenta con el resto? Pongamos que al NPC Brother Rabbitsfoot le falta la misión A Monkey Idol en su lista de misiones y, por tanto, no las entrega.

Otra duda que tengo es cómo podría hacerse para hacer una misión entregable a otra entidad a causa de que la original esté bugueada o puedas hacer una misión autoentregable a causa de que esté bug.

Gracias.

 

Buenas, sobre entregar la mision en otro npc porque uno esta bugueado....intentamos hacerlo todo lo mas blizzlike posible por lo que lo suyo seria arreglar el npc bug para que se pueda entregar en el que  corresponde.

A tus dudas, creo que ya diste con la guia correcta :) .

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now