Skip to content

组件事件管理

添加监听函数调用方式参考 : 组件函数

注意:事件中参数如果是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

游戏

序号事件名事件名描述
0ObjectEvent.OnPropertyChange当对象的属性发生改变

当对象的属性发生改变

  • 事件名: ObjectEvent.OnPropertyChange
  • 事件传参: 无

玩家

序号事件名事件名描述
0ObjectEvent.PlayerEnterGame当 此玩家 进入游戏
1ObjectEvent.PlayerLeaveGame当 此玩家 离开游戏
2ObjectEvent.PlayerVictory当 此玩家 游戏胜利
3ObjectEvent.PlayerDefeat当 此玩家 游戏失败
4ObjectEvent.PlayerClickBlock当 此玩家 点击任意方块
5ObjectEvent.PlayerClickPlayer当 此玩家 点击任意玩家
6ObjectEvent.PlayerClickMob当 此玩家 点击任意生物
7ObjectEvent.PlayerClickProjectile当 此玩家 点击任意投掷物
8ObjectEvent.PlayerClickDropItem当 此玩家 点击任意掉落物
9ObjectEvent.PlayerClickEntity当 此玩家 点击任意实体
10ObjectEvent.PlayerInputKeyClick当 此玩家 点击 按键
11ObjectEvent.PlayerInputKeyDown当 此玩家 按下 按键
12ObjectEvent.PlayerInputKeyUp当 此玩家 抬起 按键
13ObjectEvent.PlayerInputKeyOnPress当 此玩家 长按 按键
14ObjectEvent.PlayerNewInputContent此玩家发送聊天信息
15ObjectEvent.ObjectMotionStateChange当此玩家运动状态发生改变
16ObjectEvent.PlayerAddItem当 此玩家获得道具
17ObjectEvent.PlayerUseItem当 此玩家开始使用道具
18ObjectEvent.PlayerChargeItemBegin当 此玩家开始蓄力道具
19ObjectEvent.PlayerConsumeItem当 此玩家消耗道具
20ObjectEvent.PlayerPickUpItem当 此玩家拾取道具
21ObjectEvent.PlayerChargeItemEnd当 此玩家结束蓄力道具
22ObjectEvent.PlayerShortcutChange当 此玩家 快捷栏的 发生改变
23ObjectEvent.PlayerShortcutAddItem当 此玩家 快捷栏的 放入道具
24ObjectEvent.PlayerShortcutRemItem当 此玩家 快捷栏的 取出道具
25ObjectEvent.PlayerBackPackChange当 此玩家 背包栏的 发生改变
26ObjectEvent.PlayerBackPackAddItem当 此玩家 背包栏的 放入道具
27ObjectEvent.PlayerBackPackRemItem当 此玩家 背包栏的 取出道具
28ObjectEvent.PlayerEquipChange当 此玩家 装备栏的 发生改变
29ObjectEvent.PlayerEquipAddItem当 此玩家 装备栏的 放入道具
30ObjectEvent.PlayerEquipRemItem当 此玩家 装备栏的 取出道具
31ObjectEvent.PlayerEquipOn当 此玩家 穿上 装备
32ObjectEvent.PlayerEquipOff当 此玩家 脱下 装备
33ObjectEvent.PlayerRevive此玩家复活
34ObjectEvent.PlayerMoveOneBlockSize此玩家移动
35ObjectEvent.PlayerInvateFriend此玩家邀请好友
36ObjectEvent.PlayerSelectShortcut此玩家选中快捷栏

当 此玩家 进入游戏

  • 事件名: 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事件中的道具数量

方块

序号事件名事件名描述
0ObjectEvent.BlockAdd此类方块被创建
1ObjectEvent.BlockClicked当此类方块被被点击
2ObjectEvent.BlockRemove当此类方块被被破坏
3ObjectEvent.BlockDigBegin当此类方块被被挖掘
4ObjectEvent.BlockDigEnd当此类方块被被挖掘完毕
5ObjectEvent.BlockDigCancel当此类方块被被挖掘中断
6ObjectEvent.OnInteract当此类方块开关状态发生改变
7ObjectEvent.BlockChangeColor当此类方块颜色发生改变
8ObjectEvent.BlockChangeDir当此类方块方向发生改变
9ObjectEvent.BlockContainerChange当 储存容器 内 发生改变
10ObjectEvent.BlockContainerPutIn当 储存容器 内 放入道具
11ObjectEvent.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事件中的道具类型

对象

序号事件名事件名描述
0ObjectEvent.ObjectPlayAnim当此对象播放动画时

当此对象播放动画时

  • 事件名: ObjectEvent.ObjectPlayAnim
  • 事件传参:
    参数名说明
    eventobjid触发事件的对象
    targetactorid触发事件的生物类型
    x,y,z事件中的位置
      |   事件中的动作
    

角色

序号事件名事件名描述
0ObjectEvent.ObjectCollide此角色发生碰撞
1ObjectEvent.ObjectBeClick此角色被玩家点击
2ObjectEvent.ObjectBeHurt当 此角色 受到伤害
3ObjectEvent.ObjectDie当 此角色 被击败
4ObjectEvent.ObjectAttack当 此角色开始攻击
5ObjectEvent.ObjectAttackHit当 此角色攻击命中
6ObjectEvent.ObjectDefeat当 此角色击败目标
7ObjectEvent.ObjectDamage当 此角色造成伤害
8ObjectEvent.ObjectAddBuff当 此角色获得 状态
9ObjectEvent.ObjectRemoveBuff当 此角色失去 状态
10ObjectEvent.ObjectAttrStateChange当此角色权限改变
11ObjectEvent.ObjectChangeAttr当此角色属性改变
12ObjectEvent.ObjectMountActor此角色骑乘
13ObjectEvent.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事件中的目标生物类型