触发器
介绍
通过触发器,可以捕获扩展角色组件运行时的逻辑,系统事件名称以 __EVENT_
开头。
local 触发器配置 =
{
类型 = "触发器",
名称 = "传送员",
事件 = {
__EVENT_左键点击 = function(角色对象)
引擎.对话(0,0,"",
[[
你要干什么?
#Y#@传送@去下个地图@
#Y#@exit@没事@
]])
end,
传送 = function ()
if (引擎.地图.名称 == "暗殿密室2") then
引擎.地图.主角.瞬移(22,19,0,"泡点图")
else
引擎.地图.主角.瞬移(24,26,0,"暗殿密室2")
end
return true
end,
},
}
return 触发器配置
配置项
名称 | 类型 | 必填 | 说明 |
类型 | 文本 | true | 固定值:触发器 表示这是一个触发器组件 |
名称 | 文本 | true | 全局唯一的触发器标识 |
事件 | table | false |
事件
🔹 __EVENT_左键点击
角色被鼠标左键点击时触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 |
示例
事件 = {
__EVENT_左键点击 = function (角色对象)
调试输出(角色对象.名称)
end
}
🔹 __EVENT_丢弃道具
从包裹往地图上丢道具物品时触发,可以通过3
种返回结果改变掉落行为。
- 返回逻辑值
false
表示不允许丢弃 - 返回1个数值
-1
表示直接销毁这个道具 - 返回2个数值
格子x,格子y
表示把物品丢弃到指定地图格子中 - 无返回值,系统按默认逻辑掉落。
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
道具对象 | 道具对象 |
示例
事件 = {
__EVENT_丢弃道具 = function(角色对象,道具对象)
local 地图对象 = 角色对象.地图
if (地图对象.地图信息.焦点) then -- 喂东西吃
地图对象.地图信息.焦点.添加状态("持续恢复",角色对象,{拖尾=10,移动速度=200, 变身={动画="角色动画_半魔人",移动帧速 = 200}})
return -1
end
if (道具对象.名称 == "小瓶金创药") then
引擎.地图.主角.发动技能("冰咆哮")
道具对象.数量 = 道具对象.数量 - 1
return false
end
return 地图对象.地图信息.鼠标格子x,地图对象.地图信息.鼠标格子y
end,
}
🔹 __EVENT_移动完成
角色调用接口 移动到 抵达目标点触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
格子x | 整数 | |
格子y | 整数 |
示例
事件 = {
__EVENT_移动完成 = function (角色对象,x,y)
调试输出(角色对象.名称,x,y)
end
}
🔹 __EVENT_出生后
角色出生后触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 |
示例
事件 = {
__EVENT_出生后 = function (角色对象)
调试输出(角色对象.名称)
end
}
🔹 __EVENT_死亡前
角色死亡前触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
伤害来源 | 角色对象 | 只有被角色对象杀死才会有伤害来源 |
示例
事件 = {
__EVENT_死亡前 = function(角色对象,伤害来源)
调试输出("死亡了", 角色对象.名称)
end,
}
🔹 __EVENT_死亡后
角色死亡后触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
伤害来源 | 角色对象 | 只有被角色对象杀死才会有伤害来源 |
示例
事件 = {
__EVENT_死亡后 = function(角色对象,伤害来源)
调试输出("增加经验" , 角色对象.附加.经验值)
end,
}
🔹 __EVENT_重生后
角色重生后触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 |
示例
事件 = {
__EVENT_重生后 = function (角色对象)
调试输出(角色对象.名称)
end
}
🔹 __EVENT_获得经验
角色经验值变化后触发,可以返回整数值修改
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
经验值 | 整数 |
示例
事件 = {
__EVENT_获得经验 = function(角色对象,经验值)
引擎.屏幕提示("#G经验 +" .. 经验值)
-- return 经验值 * 2 -- 双倍经验
end
}
🔹 __EVENT_升级
角色升级后触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
等级 | 整数 |
示例
事件 = {
__EVENT_升级 = function(角色对象,等级)
引擎.屏幕提示("#G升到" .. 等级 .. "级了!")
end
}