# 事件系统 Event

# 游戏事件管理Events

直接添加要监听的事件即可,无需自行创建事件管理对象。具体例子如下:

--游戏事件---
ScriptSupportEvent:registerEvent([=[Game.Start]=], Game_StartGame)
ScriptSupportEvent:registerEvent([=[Game.Run]=], Game_Update)
ScriptSupportEvent:registerEvent([=[Game.End]=], Game_GameOver)
--玩家事件---
ScriptSupportEvent:registerEvent([=[Player.Die]=], Player_Dead)
ScriptSupportEvent:registerEvent([=[Player.Revive]=], Player_Revive)
ScriptSupportEvent:registerEvent([=[Player.AddItem]=], BackPack_AddItem)
--方块事件---
ScriptSupportEvent:registerEvent_Block([=[Block.Add]=], Block_Add)
ScriptSupportEvent:registerEvent_Block([=[Block.DestroyBy]=], Block_Destroy)
ScriptSupportEvent:registerEvent_Block([=[Block.Trigger]=], Block_Trigger)

# 游戏事件类型及描述

序号 事件类型 事件描述
1 世界事件 地图内相关的事件
2 游戏逻辑 游戏逻辑相关的事件
3 玩家事件 玩家相关的事件
4 生物事件 生物(非玩家)相关的事件
5 方块事件 游戏内方块相关的事件
6 道具事件 道具相关的事件
7 特效事件 特效相关的事件

# 世界事件 (World)

名称 用法描述 接口参数
Weather.Changed 天气发生变化 None
Backpack.ItemChange 容器内道具变化 {blockid, x, y, z, itemid, itemnum}

# 游戏逻辑 (Game)

名称 用法描述 接口参数
Game.AnyPlayer.Defeat 任一玩家战败 {eventobjid, toobjid}
Game.AnyPlayer.EnterGame 任一玩家进入游戏 {eventobjid, toobjid}
Game.AnyPlayer.LeaveGame 任一玩家离开游戏 {eventobjid, toobjid}
Game.AnyPlayer.ReadStage 任意玩家读取进度 None
Game.AnyPlayer.Victory 任一玩家胜利 {eventobjid, toobjid}
Game.End 游戏结束 None
Game.Hour 世界时间到[n]点 {hour}
Game.Load 启动游戏 None
Game.Run 游戏运行时 None
Game.RunTime 世界时间到[n]秒 {second}
Game.Start 游戏开始 None
Game.TimeOver 游戏超时 None
minitimer.change 任意计时器发生变化 {timerid, timername}1.1+

# 玩家事件 (Player)

名称 用法描述 接口参数
Player.AddItem 新增道具 {eventobjid, toobjid, itemid, itemnum}
Player.AreaIn 玩家进入区域 {eventobjid, areaid}
Player.AreaOut 玩家离开区域 {eventobjid, areaid}
Player.Attack 玩家开始攻击 {eventobjid, toobjid}
Player.AttackHit 玩家攻击命中 {eventobjid, toobjid}
Player.BackPackChange 背包栏变化 {eventobjid, toobjid, itemid, itemnum}
Player.BeHurt 玩家受到伤害 {eventobjid, toobjid}
Player.ChangeAttr 属性变化 {eventobjid, playerattr}
Player.ClickActor 点击生物 {eventobjid, toobjid}
Player.ClickBlock 点击方块 {eventobjid, blockid, x, y, z}
Player.Collide 与其他玩家发生碰撞 {eventobjid, toobjid}
Player.ConsumeItem 消耗道具 {eventobjid, toobjid, itemid, itemnum}
Player.DamageActor 给对方造成伤害 {eventobjid, toobjid}
Player.DefeatActor 打败目标 {eventobjid, toobjid}
Player.Die 玩家死亡 {eventobjid, toobjid}
Player.DiscardItem 丢弃道具 {eventobjid, toobjid, itemid, itemnum}1.1+
Player.DismountActor 取消骑乘 {eventobjid, toobjid}
Player.EquipChange 装备栏变化 {eventobjid, toobjid, itemid, itemnum}
Player.EquipOff 脱下装备 {eventobjid, toobjid, itemid, itemnum}1.1+
Player.EquipOn 穿上装备 {eventobjid, toobjid, itemid, itemnum}1.1+
Player.Init 玩家初始化 {eventobjid, toobjid}
Player.InputContent 输入字符串 {eventobjid, content}1.1+
Player.JoinTeam 加入队伍 {eventobjid, toobjid}
Player.MotionStateChange 运动状态改变 {eventobjid, playermotion}
Player.MountActor 骑乘坐骑/载具 {eventobjid, toobjid}
Player.MoveOneBlockSize 移动一格 {eventobjid, toobjid}
Player.PickUpItem 拾取掉落物 {eventobjid, toobjid, itemid, itemnum}
Player.PlayAction 动作表情改变 {eventobjid, act}
Player.Revive 玩家复活 {eventobjid, toobjid}
Player.SelectShortcut 选择快捷栏 {eventobjid, toobjid, itemid, itemnum}
Player.ShortcutChange 快捷栏变化 {eventobjid, toobjid, itemid, itemnum}
Player.UseItem 使用道具 {eventobjid, toobjid, itemid, itemnum}

# 生物事件 (Actor)

名称 用法描述 接口参数
Actor.AreaIn 生物进入区域 {eventobjid, areaid}
Actor.AreaOut 生物离开区域 {eventobjid, areaid}
Actor.Attack 开始攻击 {eventobjid, toobjid}
Actor.AttackHit 攻击命中 {eventobjid, toobjid}
Actor.BeHurt 受到伤害 {eventobjid, toobjid}
Actor.Beat 生物击败玩家/生物 {eventobjid, toobjid}
Actor.ChangeAttr 属性变化 {eventobjid, actorattr}
Actor.ChangeMotion 生物行为状态变更 {eventobjid, actormotion}
Actor.Collide 与其他玩家或生物发生碰撞 {eventobjid, toobjid}
Actor.Create 被创建 {eventobjid, toobjid}
Actor.Damage 造成对方伤害 {eventobjid, toobjid}
Actor.Die 生物死亡 {eventobjid, toobjid}
Actor.Projectile.Hit 投掷物击中 {eventobjid, toobjid(opt), blockid(opt), x, y, z}

# 方块事件 (Block)

名称 用法描述 接口参数
Block.Add 方块被创建 {blockid, x, y, z}
Block.DestroyBy 方块被破坏 {eventobjid(opt), blockid, x, y, z}
Block.Dig.Begin 开始方块挖掘 {eventobjid, blockid, x, y, z}
Block.Dig.Cancel 取消方块挖掘 {eventobjid, blockid, x, y, z}
Block.Dig.End 完成方块挖掘 {eventobjid, blockid, x, y, z}
Block.Fertilize 方块被施肥 {eventobjid, blockid, x, y, z}
Block.PlaceBy 方块被放置 {eventobjid, blockid, x, y, z}
Block.Remove 方块被移除 {blockid, x, y, z}
Block.Trigger 方块被触发 {eventobjid, blockid, x, y, z}

# 道具事件 (Item)

名称 用法描述 接口参数
DropItem.AreaIn 掉落物进入区域 {eventobjid, areaid, itemid(opt), itemnum(opt)}
DropItem.AreaOut 掉落物离开区域 {eventobjid, areaid, itemid(opt), itemnum(opt)}
Item.Disappear 道具消失 {eventobjid, toobjid, itemid, itemnum}
Item.Pickup 道具被拾取 {eventobjid, toobjid, itemid, itemnum}
Missile.AreaIn 投掷物进入区域 {eventobjid, areaid, itemid(opt), itemnum(opt)}
Missile.AreaOut 投掷物离开区域 {eventobjid, areaid, itemid(opt), itemnum(opt)}
Missile.Create 投掷物被创建 {eventobjid, toobjid, itemid, x, y, z}1.2+

# 特效事件 (Particle)

名称 用法描述 接口参数
Particle.Mob.OnCreate 任意生物身上特效被创建 {eventobjid, effectid}1.2+
Particle.Player.OnCreate 任意玩家身上特效被创建 {eventobjid, effectid}1.2+
Particle.Pos.OnCreate 任意位置上特效被创建 {x, y, z, effectid}1.2+
Particle.Projectile.OnCreate 任意投掷物特效被创建 {eventobjid, effectid}1.2+
上次更新: 2019-12-5 20:52:21