Pickpocketing loot template
La tabla `_loot_template`
Estas tablas sirven para organizar todo el sistema de loots de items. En total hay 11 tablas:
creature_loot_template: Loot de criatura.
disenchant_loot_template: Loot de desencantar.
fishing_loot_template: Loot de pesca.
gameobject_loot_template: Loot de entidad.
item_loot_template: Loot de item.
pickpocketing_loot_template: Loot de criatura cuando es robada.
prospecting_loot_template: Loot de prospectar.
skinning_loot_template: Loot de criatura cuando es desollada/minada/recolectada.
quest_mail_loot_template: Loot de correo de misión.
reference_loot_template: Loot de referencia.
milling_loot_template: Loot de moler.
Estructura
Field | Type | NULL | Key | Default | Extra |
---|---|---|---|---|---|
entry | mediumint unsigned | NO | PRI | 0 | |
item | mediumint unsigned | NO | PRI | 0 | |
ChanceOrQuestChance | float | NO | 100 | ||
lootmode | smallint | NO | 1 | ||
groupid | tinyint | NO | 0 | ||
mincountOrRef | mediumint | NO | 1 | ||
maxcount | tinyintunsigned | NO | 1 |
Relaciones
Las 11 tablas tienen diferentes relaciones con otras tablas de la base de datos.
Tabla de loot | Campo | Relación | Tabla relacionada | Campo | Comentario |
---|---|---|---|---|---|
fishing_loot_template | Sin relación | Sin relación | Sin relación | Sin relación | El entry está enlazado con la ID del área de pesca. |
creature_loot_template | entry | varios ← varios | creature_template | lootid | |
gameobject_loot_template | entry | varios ← varios | gameobject_template | data1 | Sólo las entidades de tipo 3 (GAMEOBJECT_TYPE_CHEST) o 25 (GAMEOBJECT_TYPE_FISHINGHOLE) usan data1 como ID de loot. Los demás usan data1 para otras cosas. |
item_loot_template | entry | varios ← uno | item_template | entry | |
disenchant_loot_template | entry | varios ← varios | item_template | DisenchantID | |
prospecting_loot_template | entry | varios ← uno | item_template | entry | |
milling_loot_template | entry | varios ← uno | item_template | entry | |
pickpocketing_loot_template | entry | varios ← varios | creature_template | pickpocketloot | |
skinning_loot_template | entry | varios ← varios | creature_template | skinloot | Aparte de los items desollados, también puede almacenar items minables/recolectados de criaturas. |
quest_mail_loot_template | entry | quest_template | RewardMailTemplateId | ||
reference_loot_template | entry | varios ← varios | *_loot_template | mincountOrRef | En caso de mincountOrRef negativo |
Descripción de los campos
entrada
Identificación del botín. Las filas con la misma identificación definen el mismo grupo de botina.
Es normal usar la misma ID que la fuente (entrada de la criatura, entidad, etc.), pero cualquiera puede usarse, ya que ese valor se asigna en su tabla de plantilla (ver "campo" en la tabla de arriba).
item
ID del artículo que estará en el botín.
== NOTA: En el caso de referencia, como veremos más adelante, este valor es inútil, y es normal poner el mismo número (positivo) que la entrada de la referencia, que tiene un pedido.
OPCHANCEORQUESTCHANCE
El significado de este campo depende de lo que se ponga aquí y en MinCotorRef:
Entrada simple
ChanceOrquestChance> 0, MincautorRef> 0
Con ambos valores positivos, es el porcentaje que el elemento caerá, siendo el máximo.
Misión Dr.
OPCHANCEORQUESTCHANCE <0, MincautorRef> 0
Como en el paso de la entrada simple. Pero colocar el porcentaje negativo indica que el elemento solo debe aparecer si el jugador tiene que activar la misión correspondiente.
LOOT DE REFERENCIA
MincoutorRef <0
Si ponemos negativo a MincautorRef, estamos indicando que no es un elemento que cae, sino un grupo de elementos de otro botín (de la referencia_lot_template). Teniendo esto claro, se aclara qué significado tendrá ChanceOorQuestChance en este caso.
ChanceOrQuestChance = 0: 'Solo válido si varias entradas se agrupan en el mismo grupo (ver GroupId). En caso de que estén agrupados, elegirá uno (o más, dependiendo de lo que se ponga en Maxcount) con el mismo porcentaje de posibilidades entre todas las entradas del mismo grupo.
ChanceOrquestChance> 0: 'ver más tarde. ChanceOorQuestChance <0: No tiene sentido. No se usa.
LootMode
Un parámetro especial para separar botines condicionales. No estamos interesados y siempre usaremos 1.
GroupId
Un número que reúne varios boletos de botín y sirve para elegir diferentes posibilidades dentro del mismo botín.
Distinguiremos entre dos tipos de grupos: los de probabilidad explícita (comenzando 0) y los de igual probabilidad (inicio -up = 0) coser. Como se explicó, el grupo igual a la probabilidad selecciona sus elementos con el mismo porcentaje.
Por supuesto, un grupo consistirá en
- Solo entradas con probabilidad explícita
- Solo entradas con igual probabilidad
- Entradas de ambos tipos
La forma más fácil de comprender cómo funcionan los grupos es ver el proceso que sigue el emulador:
Antes de hacer algo:
- Se forman grupos: todas las entradas agrupadas con el mismo grupo y los valores de entrada se separan en dos tipos, una para las de probabilidades explícitas y otra para las de la misma probabilidad.
Durante la generación del botín: Durante la generación del botín:
- El emulador extrae los dados para entradas de probabilidad explícita (si las hay):
- sale un número aleatorio de 0 a 100.
- La probabilidad de que cada elemento se verifique para cada entrada de "probabilidad explícita":
- Si n es menor que el valor absoluto de la oportunidad de inicio de la entrada, entonces el elemento gana y está incluido en el botín. El procesamiento de grupos se detiene, el resto de los grupos se detienen.
- Si la entrada "pierde" el elemento, pierde su probabilidad de aparecer en el botín. N se resta del valor del porcentaje que tuvo la entrada "perdida" y el resto de los grupos continúan siendo verificados.
- Si ninguna de las entradas de "probabilidad explícita" gana, detiene las de "la misma probabilidad" (si las hay):
- Se selecciona una entrada aleatoria de "la misma probabilidad" y su elemento se incluye en el botín.
Ahora usaremos la probabilidad del grupo como la suma de todos los valores iniciales iniciales del mismo grupo. Si comprende el proceso, comprenderá los resultados:
- No más de lo que un artículo caerá del mismo grupo.
- Si la probabilidad del grupo es al menos 100, entonces un elemento seguro caerá.
- Si la probabilidad del grupo no va de 100, entonces cada elemento definido en el grupo tiene esa probabilidad de aparecer.
- Si la probabilidad del grupo es mayor que 100, entonces algunas entradas perderán parte de su probabilidad de acomodar hasta el máximo de 100. Por lo tanto, los porcentajes cuya suma excede los 100 deben evitarse.
- El procesamiento de boletos con "misma probabilidad" lleva mucho menos tiempo que con "probabilidad explícita", por lo tanto, se recomienda usar el primero.
Ahora que las aplicaciones básicas de los grupos son claras:
- 100% Los grupos de probabilidad de grupo generan exactamente un elemento cada vez. Esto a menudo se necesita, por ejemplo, para el botín de niveles en los jefes.
- Los grupos de probabilidad de grupo <100 generan uno o ningún elemento cada vez que mantengan las probabilidades de cada elemento sin cambios. Este comportamiento es útil para limitar el número máximo de elementos por botín.
- El mismo grupo se puede utilizar para varios tipos de botines. Esto ayuda a reducir el tamaño de la base de datos. Para más detalles, consulte el botín de referencia.
MincautorRef
Este campo define
- Cuando es positivo: el número mínimo de copias del artículo que saldrá.
- Cuando es negativo: una referencia a reference_loot_template.
Cero no se usa.
El significado de los números positivos es claro. Lo negativo puede ser algo recto.
= Plantilla de referencia
MincautorRef <0, grupo = 0
El botín de referencia le pide al emulador que busque en reference_lot_thening otra botina (con una entrada igual a "-mindoref") para incluir el botín que tengo allí en la tabla de botín actual. Simple.
El valor del campo MaxCount en este caso sirve para definir el número de veces que se consultará la referencia. Ejemplo, LOOT DE TIERS: un jefe tiene que lanzar 3 siempre, incluso si se repiten. Para hacer esto, agregue una referencia a la referencia_theat_template donde se encuentran los tres niveles y establezca maxcount = 3.
Tenga cuidado con infinitos autoreferencias y bucles, porque algo así como:
Insert in `Criure_loot_Template` (` entry`, `item`,` MINCAUTORREF) VALUES
(21215.0, -21215);
It will make the emulator fall from overload.