Agregar y quitar creature/gameobject. Modificar ubicaciones
Quitaremos o agregaremos un npc u objeto.
Para creatures usamos la tabla: creature
Para gameobjects usamos la tabla: gameobject
Columnas de la tabla
veremos solo la tabla de `creature`, no hay mucha diferencia con la de objetos..
guid |
id |
map |
spawnMask |
area |
spawnMask |
phaseMask |
modelid |
equipment_id |
position_x |
position_y |
position_z |
orientation |
spawntimesecs |
spawndist |
currentwaypoint |
curhealth |
curmana |
MovementType |
npcflag |
unit_flags |
dynamicflags |
guid - El guid sería el 'DNI' del npc. Es un número único, que identifica a un npc. Si se spawnean 20 jabalíes, cada uno tendrá un único guid, y no se repetirá con ningún otro guid de ningun otro npc.
id - el Entry del npc.
map - En su server escriben .gps y les dice el mapa. Acá la lista.
zone - En su server escriben .gps y les dice la zona. Pueden dejar 0, no pasa nada.
area - En su server escriben .gps y les dice el áreaa. Pueden dejar 0, no pasa nada.
spawnMask - 1 para world , otro valor es para dungeons/raids. Info en la ayuda de TC.
phaseMask - complicado de explicar.. usen 1.
modelid - dejen 0, salvo que tenga q usar algun modelo en especial.
equipment_id - dejen 1, salvo que tenga q usar algun modelo en especial.
position_x (y,z,o) - coordenadas del npc
spawntimesecs - Segundos para que respawnee.
spawndist - Distancia del punto de spawn en el que puede spawnear. Si tiene movimiento, el radio de movimiento.
currentwaypoint - Dejan 0.
curhealth - Dejan 1.
curmana - Dejan 0.
MovementType - 0 se queda quieto. 1 se mueve en el radio de spawndist. 2 hace un waypoint previamente seteado en la tabla correspondiente.
npcflag - Dejan 0, salvo q tenga que tener una npcflag diferente al indicado en creature_template
unit_flags - Dejan 0, salvo q tenga que tener una unit_flags diferente al indicado en creature_template
dynamicflags - Dejan 0, salvo q tenga que tener una dynamicflags diferente al indicado en creature_template
Agregando/sacando un npc
Supongamos que falta un Stranded Crewman (45210).
Vamos al lugar donde deberia estar con el gm, ponemos .gps
y en el chat aparecerán las coordenadas.
Código:
DELETE FROM `creature` WHERE `id`=45210 AND guid=12214; -- Stranded Crewman
INSERT INTO `creature` (guid,id,map,zone,area,spawnMask,phaseMask,modelid,equipment_id,position_x,position_y,position_z,orientation,spawntimesecs,spawndist,currentwaypoint,curhealth,curmana,MovementType,npcflag,unit_flags,dynamicflags) VALUES
(12214,45210,0,0,0,1,1,0,0,-4966.3,-6451.35,1.48649,2.042363,90,0,0,1,0,0,0,0,0);
Ahí agregamos en el guid 12214, el npc 45210, en la posición -4966.3,-6451.35,1.48649,2.042363, del mapa 0 (Eastern Kingdom). Respawnea en 90 segundos.
Modificando la posición de un npc
Puede ocurrir que el npc esté ya puesto, pero no donde deberia.
Con el macro que les dí en el post de Introducción, pueden ver el guid que tiene el npc actualmente en wowarg.
Código:
UPDATE `creature` SET position_x=-3815,position_y=-5718.93,position_z=52.3259,orientation=5.99956 WHERE id=48102 AND guid=12213; -- Gorosh the Pant Stealer estaba mal ubicado
El npc estaba spawneado pero no donde deberia. Así que no borramos nada, solo actualizamos las coordenadas x,y,z,o de ese npc (aclarando ID y el GUID).
Agregando/sacando un gameobject
Código:
DELETE FROM `gameobject` WHERE id=50983 AND `guid`=35689; -- fuego en campamento Dragonmaw
INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(35689,50983,530,1,1, -5116.788574, 631.188660, 85.055522,0.949811,0,0,0.457254, 0.889336, 300, 0, 1);
Update gameobject
Código:
UPDATE `gameobject` SET orientation=1.62 WHERE id=205847 AND guid=159136; -- chair
NOTAS:
Al ingresar un npc, uds no saben que GUID libre hay en WoWArg. Pueden subir su fix con el guid que hayan usado en su server o sino pueden poner
SET @CGUID := xxxxxxxxx; -- Buscar id libre. Se necesitan 10 libres.