Appearance
组件事件管理
添加监听函数调用方式参考 : 组件函数
注意:事件中参数如果是nil,则可以用 CurEventParam 来替代获取,字段名如下:
- CurEventParam.EventTargetPos 事件中的位置
- CurEventParam.EventBuff 事件中的状态效果
- CurEventParam.EventTargetEffect 事件中的特效
- CurEventParam.EventTargetBlock 事件中的方块类型
- CurEventParam.EventShortCutIdx 事件中的快捷栏
- CurEventParam.EquipItemPos 事件中的装备栏
- CurEventParam.EventElementID 事件中的元件
- CurEventParam.EventUIID 事件中的界面
- CurEventParam.EventString 事件中的字符串
- CurEventParam.SelectUIID 当前编辑的界面
- CurEventParam.EventAreaid 事件中的区域
- CurEventParam.Hurtlv 事件中伤害值
- CurEventParam.TriggerByPlayer 触发事件的玩家
- CurEventParam.EventTargetPlayer 事件中的目标玩家
- CurEventParam.TriggerByCreature 触发事件的生物
- CurEventParam.EventTargetCreature 事件中的目标生物
- CurEventParam.Actorid 触发事件的生物类型
- CurEventParam.targetactorid 事件中的目标生物类型
- CurEventParam.EventTargetItemID 事件中的道具类型
- CurEventParam.TriggerByMissile 触发事件的投射物
- CurEventParam.EventTargetDropItem 事件中的掉落物
- CurEventParam.Itemnum 事件中的道具数量
简单示例:
lua
--这个脚本的作用是当玩家点击草块时,把草块变成钛合金
-- 官方定义的函数,不能修改变动
local Script = {}
-- 组件启动时调用
function Script:OnStart()
-- 玩家点击方块事件
self:AddEvent(ObjectEvent.PlayerClickBlock, self.Player_Click)
--AddEvent(ObjectEvent.PlayerClickBlock是官方提供的事件监听,可以在wiki中查看更多的事件
--self.Player_Click 是自定义的一个函数名,可以改成其他你喜欢的
end
-- 定义事件触发时的动作
function Script:Player_Click(event)
local param = event.CurEventParam
-- 玩家点击方块时,判断点的是否是草块
if event.blockid == 100 then
local success = Block:ReplaceBlock(452, event.x, event.y, event.z)
-- Block:ReplaceBlock是官方提供的放置方块方法,可以在wiki中查看更多的方法
-- local success 用来接收Block:ReplaceBlock运行后的结果,可以用来做是否成功放置的判断
end
end
-- 官方定义的函数,不能修改变动
return Script
游戏
序号 | 事件名 | 事件名描述 |
---|---|---|
0 | ObjectEvent.OnPropertyChange | 当对象的属性发生改变 |
当对象的属性发生改变
- 事件名: ObjectEvent.OnPropertyChange
- 事件传参: 无
玩家
当 此玩家 进入游戏
- 事件名: ObjectEvent.PlayerEnterGame
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
当 此玩家 离开游戏
- 事件名: ObjectEvent.PlayerLeaveGame
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
当 此玩家 游戏胜利
- 事件名: ObjectEvent.PlayerVictory
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
当 此玩家 游戏失败
- 事件名: ObjectEvent.PlayerDefeat
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
当 此玩家 点击任意方块
- 事件名: ObjectEvent.PlayerClickBlock
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 blockid 事件中的方块类型
当 此玩家 点击任意玩家
- 事件名: ObjectEvent.PlayerClickPlayer
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 blockid 事件中的方块类型
当 此玩家 点击任意生物
- 事件名: ObjectEvent.PlayerClickMob
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 blockid 事件中的方块类型
当 此玩家 点击任意投掷物
- 事件名: ObjectEvent.PlayerClickProjectile
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 blockid 事件中的方块类型
当 此玩家 点击任意掉落物
- 事件名: ObjectEvent.PlayerClickDropItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 blockid 事件中的方块类型
当 此玩家 点击任意实体
- 事件名: ObjectEvent.PlayerClickEntity
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 blockid 事件中的方块类型
当 此玩家 点击 按键
- 事件名: ObjectEvent.PlayerInputKeyClick
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 vkey 按键
当 此玩家 按下 按键
- 事件名: ObjectEvent.PlayerInputKeyDown
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 vkey 按键
当 此玩家 抬起 按键
- 事件名: ObjectEvent.PlayerInputKeyUp
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 vkey 按键
当 此玩家 长按 按键
- 事件名: ObjectEvent.PlayerInputKeyOnPress
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 vkey 按键
此玩家发送聊天信息
- 事件名: ObjectEvent.PlayerNewInputContent
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 content 事件中的字符串
当此玩家运动状态发生改变
- 事件名: ObjectEvent.ObjectMotionStateChange
- 事件传参:
参数名 说明 x,y,z 事件中的位置 eventobjid 触发事件的对象 | 事件中的开关
当 此玩家获得道具
- 事件名: ObjectEvent.PlayerAddItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemnum 事件中的道具数量 | 事件中的进度比例值
当 此玩家开始使用道具
- 事件名: ObjectEvent.PlayerUseItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemnum 事件中的道具数量 | 事件中的进度比例值
当 此玩家开始蓄力道具
- 事件名: ObjectEvent.PlayerChargeItemBegin
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemnum 事件中的道具数量 | 事件中的进度比例值
当 此玩家消耗道具
- 事件名: ObjectEvent.PlayerConsumeItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemnum 事件中的道具数量 | 事件中的进度比例值
当 此玩家拾取道具
- 事件名: ObjectEvent.PlayerPickUpItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemnum 事件中的道具数量 | 事件中的进度比例值
当 此玩家结束蓄力道具
- 事件名: ObjectEvent.PlayerChargeItemEnd
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemnum 事件中的道具数量 | 事件中的进度比例值
当 此玩家 快捷栏的 发生改变
- 事件名: ObjectEvent.PlayerShortcutChange
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 快捷栏的 放入道具
- 事件名: ObjectEvent.PlayerShortcutAddItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 快捷栏的 取出道具
- 事件名: ObjectEvent.PlayerShortcutRemItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 背包栏的 发生改变
- 事件名: ObjectEvent.PlayerBackPackChange
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 背包栏的 放入道具
- 事件名: ObjectEvent.PlayerBackPackAddItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 背包栏的 取出道具
- 事件名: ObjectEvent.PlayerBackPackRemItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 装备栏的 发生改变
- 事件名: ObjectEvent.PlayerEquipChange
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 装备栏的 放入道具
- 事件名: ObjectEvent.PlayerEquipAddItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 装备栏的 取出道具
- 事件名: ObjectEvent.PlayerEquipRemItem
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量 itemix 事件中的装备栏
当 此玩家 穿上 装备
- 事件名: ObjectEvent.PlayerEquipOn
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemix 事件中的装备栏
当 此玩家 脱下 装备
- 事件名: ObjectEvent.PlayerEquipOff
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 itemix 事件中的装备栏
此玩家复活
- 事件名: ObjectEvent.PlayerRevive
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
此玩家移动
- 事件名: ObjectEvent.PlayerMoveOneBlockSize
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
此玩家邀请好友
- 事件名: ObjectEvent.PlayerInvateFriend
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象
此玩家选中快捷栏
- 事件名: ObjectEvent.PlayerSelectShortcut
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 itemid 事件中的道具类型 shortix 事件中的快捷栏 itemnum 事件中的道具数量
方块
序号 | 事件名 | 事件名描述 |
---|---|---|
0 | ObjectEvent.BlockAdd | 此类方块被创建 |
1 | ObjectEvent.BlockClicked | 当此类方块被被点击 |
2 | ObjectEvent.BlockRemove | 当此类方块被被破坏 |
3 | ObjectEvent.BlockDigBegin | 当此类方块被被挖掘 |
4 | ObjectEvent.BlockDigEnd | 当此类方块被被挖掘完毕 |
5 | ObjectEvent.BlockDigCancel | 当此类方块被被挖掘中断 |
6 | ObjectEvent.OnInteract | 当此类方块开关状态发生改变 |
7 | ObjectEvent.BlockChangeColor | 当此类方块颜色发生改变 |
8 | ObjectEvent.BlockChangeDir | 当此类方块方向发生改变 |
9 | ObjectEvent.BlockContainerChange | 当 储存容器 内 发生改变 |
10 | ObjectEvent.BlockContainerPutIn | 当 储存容器 内 放入道具 |
11 | ObjectEvent.BlockContainerTakeOut | 当 储存容器 内 取出道具 |
此类方块被创建
- 事件名: ObjectEvent.BlockAdd
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象
当此类方块被被点击
- 事件名: ObjectEvent.BlockClicked
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 targetactorid 触发事件的生物类型
当此类方块被被破坏
- 事件名: ObjectEvent.BlockRemove
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 targetactorid 触发事件的生物类型
当此类方块被被挖掘
- 事件名: ObjectEvent.BlockDigBegin
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 targetactorid 触发事件的生物类型
当此类方块被被挖掘完毕
- 事件名: ObjectEvent.BlockDigEnd
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 targetactorid 触发事件的生物类型
当此类方块被被挖掘中断
- 事件名: ObjectEvent.BlockDigCancel
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 targetactorid 触发事件的生物类型
当此类方块开关状态发生改变
- 事件名: ObjectEvent.OnInteract
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型
当此类方块颜色发生改变
- 事件名: ObjectEvent.BlockChangeColor
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型
当此类方块方向发生改变
- 事件名: ObjectEvent.BlockChangeDir
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型
当 储存容器 内 发生改变
- 事件名: ObjectEvent.BlockContainerChange
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 itemid 事件中的道具类型
当 储存容器 内 放入道具
- 事件名: ObjectEvent.BlockContainerPutIn
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 itemid 事件中的道具类型
当 储存容器 内 取出道具
- 事件名: ObjectEvent.BlockContainerTakeOut
- 事件传参:
参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 itemid 事件中的道具类型
对象
序号 | 事件名 | 事件名描述 |
---|---|---|
0 | ObjectEvent.ObjectPlayAnim | 当此对象播放动画时 |
当此对象播放动画时
- 事件名: ObjectEvent.ObjectPlayAnim
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 targetactorid 触发事件的生物类型 x,y,z 事件中的位置 | 事件中的动作
角色
序号 | 事件名 | 事件名描述 |
---|---|---|
0 | ObjectEvent.ObjectCollide | 此角色发生碰撞 |
1 | ObjectEvent.ObjectBeClick | 此角色被玩家点击 |
2 | ObjectEvent.ObjectBeHurt | 当 此角色 受到伤害 |
3 | ObjectEvent.ObjectDie | 当 此角色 被击败 |
4 | ObjectEvent.ObjectAttack | 当 此角色开始攻击 |
5 | ObjectEvent.ObjectAttackHit | 当 此角色攻击命中 |
6 | ObjectEvent.ObjectDefeat | 当 此角色击败目标 |
7 | ObjectEvent.ObjectDamage | 当 此角色造成伤害 |
8 | ObjectEvent.ObjectAddBuff | 当 此角色获得 状态 |
9 | ObjectEvent.ObjectRemoveBuff | 当 此角色失去 状态 |
10 | ObjectEvent.ObjectAttrStateChange | 当此角色权限改变 |
11 | ObjectEvent.ObjectChangeAttr | 当此角色属性改变 |
12 | ObjectEvent.ObjectMountActor | 此角色骑乘 |
13 | ObjectEvent.ObjectDismountActor | 此角色取消骑乘 |
此角色发生碰撞
- 事件名: ObjectEvent.ObjectCollide
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象
此角色被玩家点击
- 事件名: ObjectEvent.ObjectBeClick
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象
当 此角色 受到伤害
- 事件名: ObjectEvent.ObjectBeHurt
- 事件传参:
参数名 说明 x,y,z 事件中的位置 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 触发事件的生物类型
当 此角色 被击败
- 事件名: ObjectEvent.ObjectDie
- 事件传参:
参数名 说明 x,y,z 事件中的位置 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 触发事件的生物类型
当 此角色开始攻击
- 事件名: ObjectEvent.ObjectAttack
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 hurtlv 事件中的伤害值
当 此角色攻击命中
- 事件名: ObjectEvent.ObjectAttackHit
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 hurtlv 事件中的伤害值
当 此角色击败目标
- 事件名: ObjectEvent.ObjectDefeat
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 hurtlv 事件中的伤害值
当 此角色造成伤害
- 事件名: ObjectEvent.ObjectDamage
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型 hurtlv 事件中的伤害值
当 此角色获得 状态
- 事件名: ObjectEvent.ObjectAddBuff
- 事件传参:
参数名 说明 x,y,z 事件中的位置 buffid 事件中的状态 eventobjid 触发事件的对象
当 此角色失去 状态
- 事件名: ObjectEvent.ObjectRemoveBuff
- 事件传参:
参数名 说明 x,y,z 事件中的位置 buffid 事件中的状态 eventobjid 触发事件的对象
当此角色权限改变
- 事件名: ObjectEvent.ObjectAttrStateChange
- 事件传参:
参数名 说明 x,y,z 事件中的位置 eventobjid 触发事件的对象 | 事件中的开关
当此角色属性改变
- 事件名: ObjectEvent.ObjectChangeAttr
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置
此角色骑乘
- 事件名: ObjectEvent.ObjectMountActor
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型
此角色取消骑乘
- 事件名: ObjectEvent.ObjectDismountActor
- 事件传参:
参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 actorid 事件中的目标生物类型