creature_model_info表是AzerothCore中存储生物模型信息的表格。它定义了每个生物模型的物理属性、碰撞检测、性别信息等重要数据,这些信息对于游戏中的交互、战斗和显示效果至关重要。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
DisplayID | MEDIUMINT UNSIGNED | 0 | 模型显示ID,主键 |
详细说明:生物模型的唯一标识符,对应客户端的模型文件。这是表的主键,每个模型ID都有唯一的属性配置。
取值范围:1 - 16777215 数据来源:
|
|||
BoundingRadius | FLOAT | 0 | 边界半径 |
详细说明:生物模型的边界半径,定义了生物占用的圆形区域大小。影响碰撞检测、攻击距离和移动路径计算。
单位:游戏码 (yards) 影响范围:
典型数值:
|
|||
CombatReach | FLOAT | 0 | 战斗距离 |
详细说明:生物的战斗距离,决定了生物进行近战攻击时的有效距离。这个值影响战斗中的距离判断和攻击命中计算。
单位:游戏码 (yards) 战斗机制:
设计原则:
典型数值:
|
|||
Gender | TINYINT UNSIGNED | 2 | 性别 (0=男性, 1=女性, 2=无性别) |
详细说明:模型的性别属性,影响某些技能效果、任务条件和社交系统的交互。
性别类型:
游戏影响:
设置建议:
|
SELECT * FROM creature_model_info WHERE DisplayID = 1234;
SELECT DisplayID, BoundingRadius, CombatReach
FROM creature_model_info
WHERE BoundingRadius > 3.0
ORDER BY BoundingRadius DESC;
INSERT INTO creature_model_info (DisplayID, BoundingRadius, CombatReach, Gender)
VALUES (12345, 1.5, 2.0, 0);
UPDATE creature_model_info
SET CombatReach = BoundingRadius * 1.2
WHERE CombatReach = 0;
CombatReach通常应该大于或等于BoundingRadius。CombatReach决定攻击距离,BoundingRadius决定碰撞体积。
参考相似大小的官方模型数值,通过游戏内测试调整到合适的效果。一般来说,模型越大,数值应该越大。
主要影响某些特定技能的作用效果,如魅惑类法术。大部分怪物设置为无性别即可。
如果模型信息缺失,游戏会使用默认值,可能导致碰撞检测异常或攻击距离不正确。
SELECT DISTINCT ct.modelid1
FROM creature_template ct
LEFT JOIN creature_model_info cmi ON ct.modelid1 = cmi.DisplayID
WHERE cmi.DisplayID IS NULL AND ct.modelid1 > 0;
SELECT cmi.DisplayID, cmi.BoundingRadius, cmi.CombatReach, COUNT(ct.entry) as usage_count
FROM creature_model_info cmi
LEFT JOIN creature_template ct ON (ct.modelid1 = cmi.DisplayID OR ct.modelid2 = cmi.DisplayID OR ct.modelid3 = cmi.DisplayID OR ct.modelid4 = cmi.DisplayID)
GROUP BY cmi.DisplayID
ORDER BY usage_count DESC;