- Desde
- 2 Feb 2020
- Mensajes
- 223
- Reacciones
- 236
- Honor
- 80
Tutorial Phasemask para World of Warcraft:
En esta guía, enseñaré una de las maneras de hacer una fase para el emulador JadeCore que está basado en TrinityCore.
Les servirá de conocimiento base para otros emuladores más actualizados y motivarlos a investigar mas sobre el tema.
Vale aclarar que todo lo planteado aquí es de manera autodidacta no soy programador, solo comparto lo que he aprendido.
Para esta guia deben tener instalado algun gestor de base de datos como Navicat, SQLyog, HeidiSQL o via web phpmyadmin.
Link del Tutorial de Script C++ World of Warcraft 1.
Link del Tutorial de Script C++ World of Warcraft 2.
Link del Tutorial de Script C++ World of Warcraft 3.
Punto sobre los cuales hablare:
-Como crear una fase por phasemask en base de datos.
Primeramente empezaremos analizando la estructura de las tablas que utilizaremos:
-phase_definitions
-conditions
-creature o gameobject
En creature o gameobject solamente agregaremos un valor en la columna phaseMask a los npc o gameobject correspondiente a cada fase.
Ahora vamos a la parte de SQL:
En caso de ser una fase donde NO sea un evento cerrado a solamente los npc o gameobject propios de dicho evento, se le sumaria 1 a la phaseMask:
*No ejecuten este ejemplo en su base de datos, puede que no coincida con ningun npc o gameobject.
En esta guía, enseñaré una de las maneras de hacer una fase para el emulador JadeCore que está basado en TrinityCore.
Les servirá de conocimiento base para otros emuladores más actualizados y motivarlos a investigar mas sobre el tema.
Vale aclarar que todo lo planteado aquí es de manera autodidacta no soy programador, solo comparto lo que he aprendido.
Para esta guia deben tener instalado algun gestor de base de datos como Navicat, SQLyog, HeidiSQL o via web phpmyadmin.
Link del Tutorial de Script C++ World of Warcraft 1.
Link del Tutorial de Script C++ World of Warcraft 2.
Link del Tutorial de Script C++ World of Warcraft 3.
Punto sobre los cuales hablare:
-Como crear una fase por phasemask en base de datos.
Primeramente empezaremos analizando la estructura de las tablas que utilizaremos:
-phase_definitions
zoneid | Id de la zona donde ocurrira la fase. |
entry | Entry unica para cada fase. |
phasemask | Numero de fase expresado en mascara de bits (he utilizado hasta las phasemask 134217728). 0x00000001 = 1 0x00000002 = 2 0x00000004 = 4 0x00000008 = 8 0x00000010 = 16 0x00000020 = 32 0x00000040 = 64 0x00000080 = 128 0x00000100 = 256 0x00000200 = 512 0x00000400 = 1024 0x00000800 = 2048 0x00001000 = 4096 0x00002000 = 8192 0x00004000 = 16384 0x00008000 = 32768 0x00010000 = 65536 0x00020000 = 131072 0x00040000 = 262144 0x00080000 = 524288 0x00100000 = 1048576 0x00200000 = 2097152 0x00400000 = 4194304 0x00800000 = 8388608 0x01000000 = 16777216 0x02000000 = 33554432 0x04000000 = 67108864 0x08000000 = 134217728 0x10000000 = 268435456 0x20000000 = 536870912 0x40000000 = 1073741824 0x80000000 = 2147483648 |
terrainswapmap | Id del terrain que se desea incluir en la fase (sniff data) son para fases donde el mapa cambia por algun evento Ej. la quest donde sanan a Sen-zin su la tortuga |
flags | Flag para gestionar las fases (PhaseMgr.h-->PhasingFlags) Si el valor de la flag es 0, automaticamente suma las phasemask. PHASE_FLAG_OVERWRITE_EXISTING = 1, // sobreescribe la fase existente y no se suma a la fase anterior. PHASE_FLAG_NO_MORE_PHASES = 2, // detiene el calculo de fases despues de esta(no mas fases seran aplicadas) PHASE_FLAG_NEGATE_PHASE = 4, // resta de la fase actual. |
comment | comentario |
-conditions
SourceTypeOrReferenceId | La numero 24 (CONDITION_SOURCE_TYPE_PHASE_DEFINITION) ubicado en ConditionMgr.h-->ConditionSourceType |
SourceGroup | Id de la zona en zoneid-->phase_definitions |
SourceEntry | entry-->phase_definitions |
SourceId | 0 |
ElseGroup | 0 ó 1 Si queremos que la fase tenga dos condiciones y al cumplirse una de las dos entonces se realice el cambio de fase |
ConditionTypeOrReference | Tipo de condicion utilizado para que la fase cambie (ConditionMgr.h-->ConditionTypes Las demas columnas dependen del ConditionTypeOrReference escogido. |
-creature o gameobject
En creature o gameobject solamente agregaremos un valor en la columna phaseMask a los npc o gameobject correspondiente a cada fase.
Ahora vamos a la parte de SQL:
SQL:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
SQL:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
SQL:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
En caso de ser una fase donde NO sea un evento cerrado a solamente los npc o gameobject propios de dicho evento, se le sumaria 1 a la phaseMask:
SQL:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
SQL:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
SQL:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
*No ejecuten este ejemplo en su base de datos, puede que no coincida con ningun npc o gameobject.