Tabla `characters`
La tabla contiene informaci贸n est谩tica vital para cada personaje. Su funci贸n radica en crear los objetos respectivos del jugador dentro del propio juego.
Estructura
Field | Type | Attributes | Key | Null | Default | Extra | Comment |
---|---|---|---|---|---|---|---|
guid | INT | UNSIGNED | PRI | NO | 0 | Unique | Global Unique Identifier |
account | INT | UNSIGNED | NO | 0 | Account Identifier | ||
name | VARCHAR(12) | SIGNED | NO | ||||
race | TINYINT | UNSIGNED | NO | 0 | |||
class | TINYINT | UNSIGNED | NO | 0 | |||
gender | TINYINT | UNSIGNED | NO | 0 | |||
level | TINYINT | UNSIGNED | NO | 0 | |||
xp | INT | UNSIGNED | NO | 0 | |||
money | INT | UNSIGNED | NO | 0 | |||
skin | TINYINT | UNSIGNED | NO | 0 | |||
face | TINYINT | UNSIGNED | NO | 0 | |||
hairStyle | TINYINT | UNSIGNED | NO | 0 | |||
hairColor | TINYINT | UNSIGNED | NO | 0 | |||
facialStyle | TINYINT | UNSIGNED | NO | 0 | |||
bankSlots | TINYINT | UNSIGNED | NO | 0 | |||
restState | TINYINT | UNSIGNED | NO | 0 | |||
playerflags | INT | UNSIGNED | NO | 0 | |||
position_x | FLOAT | SIGNED | NO | 0 | |||
position_y | FLOAT | SIGNED | NO | 0 | |||
position_z | FLOAT | SIGNED | NO | 0 | |||
map | SMALLINT | UNSIGNED | NO | 0 | Map Identifier | ||
instance_id | INT | UNSIGNED | NO | 0 | |||
instance_mode_mask | TINYINT | UNSIGNED | NO | 0 | |||
orientation | FLOAT | SIGNED | NO | 0 | |||
taximask | TEXT | SIGNED | NO | ||||
online | TINYINT | UNSIGNED | NO | 0 | |||
cinematic | TINYINT | UNSIGNED | NO | 0 | |||
totaltime | INT | UNSIGNED | NO | 0 | |||
leveltime | INT | UNSIGNED | NO | 0 | |||
logout_time | INT | UNSIGNED | NO | 0 | |||
is_logout_resting | TINYINT | UNSIGNED | NO | 0 | |||
rest_bonus | FLOAT | SIGNED | NO | 0 | |||
resettalents_cost | INT | UNSIGNED | NO | 0 | |||
resettalents_time | INT | UNSIGNED | NO | 0 | |||
trans_x | FLOAT | SIGNED | NO | 0 | |||
trans_y | FLOAT | SIGNED | NO | 0 | |||
trans_z | FLOAT | SIGNED | NO | 0 | |||
trans_o | FLOAT | SIGNED | NO | 0 | |||
transguid | MEDIUMINT | SIGNED | NO | 0 | |||
extra_flags | SMALLINT | UNSIGNED | NO | 0 | |||
stable_slots | TINYINT | UNSIGNED | NO | 0 | |||
at_login | SMALLINT | UNSIGNED | NO | 0 | |||
zone | SMALLINT | UNSIGNED | NO | 0 | |||
death_expire_time | INT | UNSIGNED | NO | 0 | |||
taxi_path | TEXT | SIGNED | YES | ||||
arenaPoints | INT | UNSIGNED | NO | 0 | |||
totalHonorPoints | INT | UNSIGNED | NO | 0 | |||
todayHonorPoints | INT | UNSIGNED | NO | 0 | |||
yesterdayHonorPoints | INT | UNSIGNED | NO | 0 | |||
totalKills | INT | UNSIGNED | NO | 0 | |||
todayKills | SMALLINT | UNSIGNED | NO | 0 | |||
yesterdayKills | SMALLINT | UNSIGNED | NO | 0 | |||
chosenTitle | INT | UNSIGNED | NO | 0 | |||
knownCurrencies | BIGINT | UNSIGNED | NO | 0 | |||
watchedFaction | INT | UNSIGNED | NO | 0 | |||
drunk | TINYINT | UNSIGNED | NO | 0 | |||
health | INT | UNSIGNED | NO | 0 | |||
power1 | INT | UNSIGNED | NO | 0 | |||
power2 | INT | UNSIGNED | NO | 0 | |||
power3 | INT | UNSIGNED | NO | 0 | |||
power4 | INT | UNSIGNED | NO | 0 | |||
power5 | INT | UNSIGNED | NO | 0 | |||
power6 | INT | UNSIGNED | NO | 0 | |||
power7 | INT | UNSIGNED | NO | 0 | |||
latency | MEDIUMINT | UNSIGNED | NO | 0 | |||
talentGroupsCount | TINYINT | UNSIGNED | NO | 1 | |||
activeTalentGroup | TINYINT | UNSIGNED | NO | 0 | |||
exploredZones | LONGTEXT | SIGNED | YES | ||||
equipmentCache | LONGTEXT | SIGNED | YES | ||||
ammoId | INT | UNSIGNED | NO | 0 | |||
knownTitles | LONGTEXT | SIGNED | YES | ||||
actionBars | TINYINT | UNSIGNED | NO | 0 | |||
grantableLevels | TINYINT | UNSIGNED | NO | 0 | |||
order | TINYINT | SIGNED | YES | ||||
creation_date | TIMESTAMP | SIGNED | NO | CURRENT_TIMESTAMP | |||
deleteInfos_Account | INT | UNSIGNED | YES | ||||
deleteInfos_Name | VARCHAR(12) | SIGNED | YES | ||||
deleteDate | INT | UNSIGNED | YES |
Descripci贸n de los Campos
Globally Unique Identifier o Identificador Global 脷nico del personaje. Este n煤mero debe de ser 煤nico, ya que es la mejor manera de identificar personajes por separado.
El ID de la cuenta en la que reside este personaje. V茅ase account.id en la Base de Datos Auth.
El nombre del personaje. La longitud m谩xima es de 12 caracteres.
La raza del personaje. V茅ase ChrRaces.dbc.
La clase del personaje. V茅ase ChrClasses.dbc.
El g茅nero del personaje
ID | G茅nero |
---|---|
0 | Masculino |
1 | Femenino |
2 | Desconocido (?) |
El n煤mero 2
puede verse en la tabla creature_model_info en particular.
El nivel actual del personaje.
La cantidad de experiencia que 茅ste personaje ha ganado para el siguiente nivel.
La cantidad de cobre que el personaje pos茅e ( T茅ngase en cuenta que todo el dinero que se tiene dentro del juego se mide en monedas de cobre )
Contiene datos acerca del color de la piel del personaje. skinColor = playerbytes % 256
Contiene datos acerca del estilo facial del personaje. faceStyle = (playerbytes >> 8) % 256
Contiene datos acerca del estilo del cabello del personaje. hairStyle = (playerbytes >> 16) % 256
Contiene datos acerca del color del cabello del personaje. hairColor = (playerbytes >> 24) % 256
Contiene datos acerca del vello facial del personaje. facialHair = playerBytes2 % 256
Cantidad de casillas en el banco.
Estado de reposo.
Una 'M谩scara de Bits/Tabla de Bits' o BitMask que representan aquellos marcadores que pos茅e el jugador. Cada bit controla un marcador distinto, y para combinar marcadores puedes sumar cada marcador que des茅es uno por uno, activando en efecto los respectivos bits.
Flag | Name | Comment | |
---|---|---|---|
1 | 0x00000001 | PLAYER_FLAGS_GROUP_LEADER | |
2 | 0x00000002 | PLAYER_FLAGS_AFK | |
4 | 0x00000004 | PLAYER_FLAGS_DND | |
8 | 0x00000008 | PLAYER_FLAGS_GM | |
16 | 0x00000010 | PLAYER_FLAGS_GHOST | |
32 | 0x00000020 | PLAYER_FLAGS_RESTING | |
64 | 0x00000040 | PLAYER_FLAGS_UNK7 | |
128 | 0x00000080 | PLAYER_FLAGS_UNK8 | Marcador pre-3.0.3 PLAYER_FLAGS_FFA_PVP para el estado FFA PVP (FreeForAll o Todos contra Todos ) |
256 | 0x00000100 | PLAYER_FLAGS_CONTESTED_PVP | El jugador se ha visto envuelto en un combate PvP y ser谩 atacado por guardias de la Zona en Disputa respectiva |
512 | 0x00000200 | PLAYER_FLAGS_IN_PVP | |
1024 | 0x00000400 | PLAYER_FLAGS_HIDE_HELM | |
2048 | 0x00000800 | PLAYER_FLAGS_HIDE_CLOAK | |
4096 | 0x00001000 | PLAYER_FLAGS_PLAYED_LONG_TIME | Jug贸 mucho tiempo |
8192 | 0x00002000 | PLAYER_FLAGS_TOO_LONG | Jug贸 demasiado tiempo |
16384 | 0x00004000 | PLAYER_FLAGS_IS_OUT_OF_BOUNDS | |
32768 | 0x00008000 | PLAYER_FLAGS_DEVELOPER | 驴prefijo para algo? |
65536 | 0x00010000 | PLAYER_FLAGS_UNK17 | Marcador pre-3.0.3 PLAYER_FLAGS_SANCTUARY para el jugador que entr贸 a un santuario |
131072 | 0x00020000 | PLAYER_FLAGS_TAXI_BENCHMARK | Modo prueba de rendimiento de transporte (taxi) (on/off) (2.0.1) |
262144 | 0x00040000 | PLAYER_FLAGS_PVP_TIMER | 3.0.2, temporizador de pvp activo (luego de desactivar el pvp manualmente) |
524288 | 0x00080000 | PLAYER_FLAGS_UNK20 | |
1048576 | 0x00100000 | PLAYER_FLAGS_UNK21 | |
2097152 | 0x00200000 | PLAYER_FLAGS_UNK22 | |
4194304 | 0x00400000 | PLAYER_FLAGS_COMMENTATOR2 | |
8388608 | 0x00800000 | PLAYER_ALLOW_ONLY_ABILITY | Usado para Filotormenta (guerrero) y Asesinato m煤ltiple (p铆caro) |
16777216 | 0x01000000 | PLAYER_FLAGS_UNK25 | Desactiva todas las habilidades cuerpo a cuerpo en el teclado incluyendo Ataque Autom谩tico |
33554432 | 0x02000000 | PLAYER_FLAGS_NO_XP_GAIN |
Posici贸n cartesiana en X en la que se encuentra ubicado el personaje.
Posici贸n cartesiana en Y en la que se encuentra ubicado el personaje.
Posici贸n cartesiana en Z en la que se encuentra ubicado el personaje.
ID del mapa en el que se encuentra el personaje.
ID de la instancia en la que se encuentra el personaje y a la que est谩 vinculado.
La dificultad actual de la mazmorra en la que se encuentra el jugador. Este campo es una M谩scara/Tabla de bits. Los valores son asignados juntos, sin embargo, s贸lo dos de los cuatro deben ser usados a la vez. Cabe recalcar que 茅sta descripci贸n puede no ser ciento por ciento correcta.
Flag | Comment |
---|---|
0 | Normal |
1 | Her贸ico |
16 | 10 Jugadores |
32 | 25 Jugadores |
Orientaci贸n del personaje. (Norte = 0,0, Sur = 3,14159)
TaxiNodes/rutas de vuelo conocidas separadas con espacio.
Registra si el personaje est谩 conectado (1) o desconectado (0).
Booleano del 0 al 1 que controla si la cinem谩tica de inicio ha sido mostrada al jugador o no.
Tiempo total de juego del personaje desde que ha estado activo en el mundo, medido en segundos.
Tiempo total de juego en el cual el personaje ha estado inmerso desde el nivel actual, medido en segundos.
Hora en la cual el personaje se desconect贸 por 煤ltima vez, medida en tiempo Unix.
Booleano del 0 al 1 que controla si el personaje est谩 actualmente en una zona de descanso o no.
Bonificaci贸n acumulada de la tasa de descanso a la hora de ganar experiencia.
El coste para restablecer los talentos del personaje, medido en monedas de cobre.
Cantidad de veces en las que se han restablecido los talentos del personaje.
Posici贸n cartesiana en X del transporte en el que se encontraba el personaje desde la 煤ltima vez que se guard贸.
Posici贸n cartesiana en Y del transporte en el que se encontraba el personaje desde la 煤ltima vez que se guard贸.
Posici贸n cartesiana en Z del transporte en el que se encontraba el personaje desde la 煤ltima vez que se guard贸.
La orientaci贸n del transporte en el que se encontraba el personaje la 煤ltima vez que se guard贸.
Globally Unique Identifier o Identificador 脷nico global del transporte en el que se encontraba el personaje cuando fue guardado por 煤ltima vez.
脡stos Marcadores o 'flags' controlan ciertos atributos espec铆ficos del jugador, en su mayor铆a caracter铆sticas del GM.
Flag | Name | Description | |
---|---|---|---|
1 | 0x00000001 | PLAYER_EXTRA_GM_ON | Define el estado del GM |
2 | 0x00000002 | PLAYER_EXTRA_GM_ACCEPT_TICKETS | EN DESUSO Define si el personaje acepta tickets |
4 | 0x00000004 | PLAYER_EXTRA_ACCEPT_WHISPERS | Define si acepta susurros |
8 | 0x00000008 | PLAYER_EXTRA_TAXICHEAT | Establece un TaxiCheat |
16 | 0x00000010 | PLAYER_EXTRA_GM_INVISIBLE | Define la visibilidad del GM |
32 | 0x00000020 | PLAYER_EXTRA_GM_CHAT | Muestra el 铆cono del GM en los mensajes del chat |
64 | 0x00000040 | PLAYER_EXTRA_HAS_310_FLYER | Marca si el jugador ya tiene una montura voladora de 310% de velocidad |
256 | 0x00000100 | PLAYER_EXTRA_PVP_DEATH | Almacena el estado de muerte en CjC (PvP) hasta la creaci贸n del cad谩ver dentro del juego |
Las ranuras disponibles (compradas) en el Maestro de Establo.
Este campo es una M谩scara/Tabla de Bits, cuya funci贸n es controlar las diferentes acciones que se llevan a cabo una vez que el jugador inicie sesi贸n con el personaje.
Flag | Name | Description | |
---|---|---|---|
1 | 0x01 | AT_LOGIN_RENAME | Forzar el cambio de nombre del personaje |
2 | 0x02 | AT_LOGIN_RESET_SPELLS | Restablecer los hechizos (tambi茅n las profesiones) |
4 | 0x04 | AT_LOGIN_RESET_TALENTS | Restablecer los talentos |
8 | 0x08 | AT_LOGIN_CUSTOMIZE | Personalizar el personaje |
16 | 0x10 | AT_LOGIN_RESET_PET_TALENTS | Restablecer los talentos de la mascota |
32 | 0x20 | AT_LOGIN_FIRST | Fijar y remover despu茅s del primer inicio de sesi贸n |
64 | 0x40 | AT_LOGIN_CHANGE_FACTION | Cambiar de facci贸n |
128 | 0x80 | AT_LOGIN_CHANGE_RACE | Cambiar de raza |
Para crear acciones m煤ltiples en esta casila, sume los valores entre s铆.
ID de la zona en la que se encuentra el personaje.
Tiempo en el cual el personaje del jugador puede ser resucitado en caso de ca铆da del servidor o salida del cliente mientras est谩 en forma fantasmal, medido en tiempo Unix.
Almacena la ruta del taxi actual del personaje (TaxiPath.dbc) si el jugador se desconecta mientras se encuentre en uno.
La cantidad de puntos de arena acumuldados por el personaje del jugador, y tambi茅n aquellos que recibir谩 la pr贸xima vez que se distribuyan los puntos de arena.
La cantidad de puntos de honor que tiene este personaje.
La cantidad de puntos de honor que el personaje obtuvo hoy.
La cantidad de puntos de honor que el personaje obtuvo ayer.
La cantidad de jugadores que el personaje ha matado.
La cantidad de jugadores que el personaje mat贸 hoy.
La cantidad de jugadores que el personaje mat贸 ayer.
T铆tulo actual, utilizando el campo bit_index (En orden de juego o InGameOrder dentro de CharTitles.dbc).
Monedas/distintivos/insignias conocidas (Aquello que debe figurar en la pesta帽a Monedas), M谩scara/Tabla de bits (sumatoria de Marcadores o 'flags) de BitIndexes, v茅ase CurrencyTypes.dbc.
Seguimiento de una facci贸n en la barra de experiencia (utilizando el ID de la reputaci贸n, v茅ase Faction.dbc).
Estado de embriaguez del personaje, 0-100
Estado de salud actual del personaje.
Poder actual del personaje (Desde el momento en el que se guard贸 el personaje).
Field | Power name |
---|---|
power1 | Man谩 |
power2 | ira |
power3 | Focus |
power4 | Energ铆a |
power5 | Felicidad |
power6 | Runas |
power7 | Poder r煤nico |
(Recordemos que son 7 columnas, dependiendo del poder que est茅 utilizando su clase estar谩 almacemado el valor del mismo en la respectiva casilla)
Latencia del personaje o ping en milisegundos, a partir del 煤ltimo autoguardado.
El n煤mero de especializaciones a las que tiene acceso este personaje. El valor por defecto es 1. El valor m谩ximo actualmente soportado es 2. Nunca debe de ser 0 (Esto es signo de un personaje creado antes de la implementaci贸n del la doble especializaci贸n de talentos).
Las especializaciones actuales habilitadas para este personaje, spec = 0 es la primera especializaci贸n, spec = 1 es la segunda especializaci贸n.
M谩scara/Tabla de bits para las zonas exploradas (1 bit para las exploradas, 0 bit para las no exploradas).
Equipamiento del personaje y alijo de la bolsa.
ID del Item de la munici贸n.
Contiene datos acerca de los t铆tulos conocidos por el jugador almacenados en enteros de 6 x 16bit. Para calcular d贸nde se encuentra un t铆tulo conocido en alguno de 茅stos 6 enteros se hace lo siguiente: Seleccionamos uno de los t铆tulos en CharTitles.dbc, a continuaci贸n tomamos el t铆tulo de Archimago por ejemplo:
TitleID | UnkRef? | MaleTitle | FemaleTitle | InGameOrder |
---|---|---|---|---|
93 | 0 | Archmage %s | Archmage %s | 61 |
Usamos el InGameOrder (orden de juego) para calcular en cu谩l de los 6 enteros (16bit) est谩 el t铆tulo almacenado:
InGameOrder / 32 = X
61 / 32 = **1,90625** (1 - **隆No** redondee el valor!)
Por lo que el primer entero almacena el t铆tulo. Ya que el conteo comienza de 0 a 5, ser铆a "0 TITLE_BIT 0 0 0 0".
Ahora, 驴Qu茅 bit almacena el t铆tulo? Usamos el m贸dulo para calcularlo.
InGameOrder Modulo 32 = X
61 Mod 32 = **29**
Por lo que el 29bit almacena el t铆tulo. Esto ser铆a 2 ^ 29 = 536870912.聽Este bit almacena el t铆tulo de Archimago. Esto significar铆a que si s贸lo t煤 tienes el t铆tulo de Archimago, characters.knownTitles ser铆a "0 536870912 0 0 0 0".
Una M谩scara/Tabla de bits que contiene las barras de acci贸n visibles para el jugador.
Flag | Comment | |
---|---|---|
1 | 0x00000001 | Barra inferior izquierda |
2 | 0x00000002 | Barra inferior derecha |
4 | 0x00000004 | Barra derecha |
8 | 0x00000008 | Barra derecha 2 |
Casilla de Reclutar a un Amigo.
Campo utilizado para cambiar el 贸rden en el que aparecen los personajes de la pantalla de selecci贸n de personajes. 脡ste campo es utilizado primero, y luego characters.guid, lo que significa que si 茅sta columna apunta a NULL para cada personaje de una cuenta, se ordenar谩n characters.guid por defecto.
Fecha y hora de la creaci贸n del personaje. Formato AAA-MM-DD HH:MM:SS seg煤n la hora del servidor.
Almacena la ID de la cuenta si el personaje es eliminado y CharDelete.Method en worldserver.conf se establece en 1.
Almacena el nombre del personaje si 茅ste es eliminado y CharDelete.Method en worldserver.conf se establece en 1.
Almacena la fecha en que el personaje fue eliminado y CharDelete.Method en worldserver.conf.dist se establece en 1. Ser谩 comprobado por worldserver dentro de CharDelete.KeepDays en worldserver.conf.dist o worldserver.conf Si este valor es menor que deleteDate + CharDelete.KeepDays el personaje ser谩 purgado.