召唤兽函数¶
管理召唤生物的函数 — 用于 Dark Lord 和 Summoner 等职业。
gObjAddSummon()¶
分配一个新的召唤兽对象槽位。使用线程安全的内存分配。
- 参数: 无
- 返回值:
integer— 召唤兽对象索引,失败时返回-1。
local summonIndex = gObjAddSummon()
if summonIndex ~= -1 then
LogAdd(LOG_GREEN, "Summon allocated at index %d", summonIndex)
end
gObjSummonSetEnemy(lpObj, targetIndex)¶
为玩家的召唤兽设置目标敌人。召唤兽将攻击指定目标。
- 参数:
lpObj(GameObject): 玩家对象(召唤兽主人)。targetIndex(integer): 目标对象索引。
- 返回值:
integer— 成功时返回目标索引,失败时返回-1。
验证
该函数会验证玩家是否拥有召唤兽、召唤兽是否已有目标,以及目标是否不是玩家自身或召唤兽本身。
local result = gObjSummonSetEnemy(player, targetIndex)
if result ~= -1 then
LogAdd(LOG_BLUE, "Summon is now attacking target %d", result)
end
gObjSummonKill(aIndex)¶
击杀并消失玩家的召唤兽。
- 参数:
aIndex(integer): 玩家索引(召唤兽主人)。
- 返回值:
void
验证
在移除之前会检查玩家是否有有效的召唤兽索引、召唤兽是否存在,以及召唤兽是否确实属于该玩家。
gObjSummonAlly(lpObj, map, x, y)¶
将玩家(盟友)召唤到指定位置。用于组队召唤技能。
- 参数:
lpObj(GameObject): 要传送的玩家。map(integer): 目标地图编号。x(integer): 目标 X 坐标。y(integer): 目标 Y 坐标。
- 返回值:
void
同地图召唤时,显示传送技能效果并移动玩家。跨地图召唤时,执行完整的地图转移,包括取消交易和服务器验证。
-- 将组队成员召唤到你的位置
local leader = GetUser(leaderIndex)
gObjSummonAlly(target, leader.Map, leader.X, leader.Y)
Help