📋 表结构

字段名 数据类型 默认值 说明
summonerId MEDIUMINT UNSIGNED 0 召唤者ID
summonerType TINYINT UNSIGNED 0 召唤者类型(0=生物, 1=游戏对象)
groupId TINYINT UNSIGNED 0 召唤组ID
entry MEDIUMINT UNSIGNED 0 被召唤生物ID
position_x FLOAT 0 召唤位置X坐标偏移
position_y FLOAT 0 召唤位置Y坐标偏移
position_z FLOAT 0 召唤位置Z坐标偏移
orientation FLOAT 0 召唤朝向(弧度)
summonType TINYINT UNSIGNED 0 召唤类型
summonTime INT UNSIGNED 0 召唤持续时间(毫秒)

🔍 核心字段详解

summonerId - 召唤者ID

字段说明:召唤者的生物或游戏对象模板ID
取值范围:1 - 16777215
关联关系:根据summonerType对应creature_template或gameobject_template

summonerType - 召唤者类型

字段说明:决定summonerId引用的表格类型
取值范围:0 - 1
类型说明
0生物召唤者summonerId对应creature_template.entry
1游戏对象召唤者summonerId对应gameobject_template.entry

groupId - 召唤组ID

字段说明:区分同一召唤者的不同召唤组合
取值范围:0 - 255
使用建议:不同组用于不同战斗阶段或条件

entry - 被召唤生物ID

字段说明:召唤出来的具体生物类型
取值范围:1 - 16777215
关联关系:必须对应creature_template表中存在的entry

position_x/y/z - 召唤位置偏移

字段说明:相对于召唤者的坐标偏移量
单位:游戏码(yards)
坐标系:以召唤者位置为原点

orientation - 召唤朝向

字段说明:被召唤生物的朝向角度
单位:弧度(0 - 6.28)
特殊值:0表示使用召唤者的朝向
弧度方向
0北方
1.57东方
3.14南方
4.71西方

summonType - 召唤类型

字段说明:决定被召唤生物的行为和属性
取值范围:0 - 8
类型说明
0临时召唤有时间限制的召唤
1守护召唤保护召唤者的召唤
2宠物召唤可控制的宠物
3野生召唤独立行动的召唤
4载具召唤可骑乘的召唤

summonTime - 召唤持续时间

字段说明:被召唤生物的存在时间
单位:毫秒
特殊值:0表示永久存在
时间说明
0永久存在
3000030秒
600001分钟
3000005分钟

💡 实际案例

BOSS BOSS召唤小怪

BOSS 12345在战斗中召唤小怪 12346

INSERT INTO creature_summon_groups VALUES( 12345, 0, 1, 12346, 5.0, 0.0, 0.0, 0.0, 1, 60000);

组队 创建四人护卫队形

召唤者周围召唤4个护卫,形成护卫队形

-- 左侧护卫(angle=4.71) INSERT INTO creature_summon_groups VALUES(10001, 0, 1, 10002, 3, 4.71, 0, 0, 3, 0); -- 右侧护卫(angle=1.57) INSERT INTO creature_summon_groups VALUES(10001, 0, 1, 10003, 3, 1.57, 0, 0, 3, 0); -- 后方护卫(angle=3.14) INSERT INTO creature_summon_groups VALUES(10001, 0, 1, 10004, 5, 3.14, 0, 0, 3, 0); -- 前方护卫(angle=0) INSERT INTO creature_summon_groups VALUES(10001, 0, 1, 10005, 5, 0, 0, 0, 3, 0);

多组 不同阶段召唤不同组合

BOSS在不同战斗阶段召唤不同的小怪组合

-- 组1: 第一阶段召唤2个普通小怪 INSERT INTO creature_summon_groups VALUES (12345, 0, 1, 12346, 5, 0, 0, 0, 3, 60000), (12345, 0, 1, 12346, -5, 0, 0, 0, 3, 60000); -- 组2: 第二阶段召唤1个精英守卫 INSERT INTO creature_summon_groups VALUES(12345, 0, 2, 12347, 0, -10, 0, 0, 1, 120000);

对象 游戏对象触发召唤

魔法阵(游戏对象)触发时召唤守护者

-- summonerType=1表示游戏对象召唤者 INSERT INTO creature_summon_groups VALUES( 50001, 1, 1, 12348, 0, 0, 0, 0, 3, 300000);

⚙️ 脚本调用

SmartAI调用召唤组

-- 在smart_scripts表中添加召唤事件 -- action_type=32表示调用召唤组 INSERT INTO smart_scripts VALUES( 12345, 0, 1, 0, 4, 0, 100, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'BOSS - On Aggro - Call Summon Group 1');

关键参数说明

❓ 常见问题

召唤的生物不出现怎么办?

检查以下配置:

  • entry是否对应有效的creature_template
  • 召唤位置是否有障碍物
  • 确认脚本正确调用了召唤组
  • 检查summonTime是否设置合理
如何控制召唤数量?

召唤数量由脚本控制,同一组中的所有记录都会被召唤。可以通过不同的groupId来控制不同的召唤组合。

召唤位置如何计算?

召唤位置是相对于召唤者的偏移量。最终位置 = 召唤者位置 + 偏移量。

⚡ 快速参考

召唤者类型

0生物
1游戏对象

召唤类型

0临时
1守护
3野生

朝向角度

0
1.57
3.14
4.71西

🔗 相关表格