状态
介绍
状态组件
提示
- 状态中的属性变化拥有
属性名
属性名_百分比
两种模式。包括自定义的扩展属性。 - 角色的攻击速度范围:-200 - 200 出生时默认值:100
- 角色的移动速度范围:-200 - 200 出生时默认值:100
local 状态配置 =
{
类型 = "状态",
名称 = "持续恢复",
持续时间 = -1,
触发间隔 = 2000,
hp_百分比 = 10,
mp_百分比 = 10,
攻击_百分比 = 5
}
return 状态配置
配置项
名称 | 类型 | 必填 | 说明 | |
类型 | 文本 | true | 固定值:状态 表示这是一个状态组件 | |
名称 | 文本 | true | 全局唯一的状态标识,如果发生重复旧状态会被覆盖 | |
显示名 | 文本 | true | 状态用于描述的名称 | |
图标 | 文本 | false | 如果设置,会在屏幕上按照App.lua中的状态图标设置显示, | |
持续时间 | 整数 | false | 状态的持续时间。 -1 表示无限时间 | |
触发间隔 | 整数 | false | 单位毫秒 0 只触发一次 | |
死亡消失 | 逻辑 | false | 角色死亡后状态是否消失 默认 true | |
移动消失 | 逻辑 | false | 角色移动后状态是否消失 默认 false | |
攻击消失 | 逻辑 | false | 角色发动攻击后状态是否消失 默认 false | |
受伤消失 | 逻辑 | false | 角色受伤后状态是否消失 默认 false | |
hp | 整数 | false | ||
mp | 整数 | false | ||
hp_百分比 | 整数 | false | ||
mp_百分比 | 整数 | false | ||
攻击速度 | 整数 | false | 角色的攻击速度范围:-200 - 200 | |
移动速度 | 整数 | false | 角色的移动速度范围:-200 - 200 | |
怒气 | 整数 | false | ||
威望 | 整数 | false | ||
拖尾 | 整数 | false | 值越小幻影生成越密 推荐:50 默认:0 不显示 | |
扩展属性 ... | 整数 | false | 同样包含 _百分比 模式 | |
禁止移动 | 逻辑 | false | ||
禁止攻击 | 逻辑 | false | ||
致盲 | 逻辑 | false | 立即失去目标且在状态时间内无法获得目标 | |
开始动画 | table {} | false | ||
触发动画 | table {} | false | ||
结束动画 | table {} | false | ||
开始音效 | table {} | false | ||
触发音效 | table {} | false | ||
结束音效 | table {} | false | ||
受伤效果 | table | false | 如果状态造成伤害,目标的受伤效果 | |
滤镜 | table | false | 滤镜效果 | |
变身 | table | false | 变身效果 | |
动作转移 | table | false | ||
table | false | 持续型状态有效 | ||
资源表 | table | false | { {标识="",文件=""}, {标识="",文件=""}, .. } |
开始动画
状态启动时候播放的动画。
开始动画 = {{动画="治疗术,命中",跟随=true}},
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
动画 | 文本 | true | 动画资源标识 动画标识语法:动画,动作,缩放,速度,位置 其中缩放,速度,位置可以不写位置 设置为1 且有角色被命中,播放点是角色中心,例:"奔雷动画,命中,1,1,1" |
跟随 | 逻辑 | false | 是否跟随角色 |
持续动作 | 文本 | false | 动作名称 如果有会形成动画连接播放效果 |
受伤动作 | 文本 | false | 动作名称 如果有会形成动画连接播放效果 |
消失动作 | 文本 | false | 动作名称 如果有会形成动画连接播放效果 |
层次 | 整数 | false | 0:地面层 1:身体层 |
开始音效
状态启动时候播放的音效,系统随机从数组中选取一个播放。
开始音效 = {"音效A","音效B","音效C",...},
如果音效需要循环播放,请在素材标识
后加,1
,例如:{"旋风斩音效,1"}
受伤效果
状态如果产生伤害,可以配置目标的受伤效果。
受伤效果 = {几率=100,动作=true,音效=true,闪烁=RGBA(255,255,255,255)},
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
几率 | 数值 | true | 触发受伤动作,音效的几率 |
动作 | 逻辑 | true | 目标角色动画有受伤 动作时有效 |
音效 | 逻辑 | true | 目标角色动画有受伤 音效时有效 |
闪烁 | RGBA | true | 是否进行一次闪烁,不闪烁填0 |
滤镜
可以设置一个颜色滤镜。
滤镜 = {1,1.0, 1.0, 2.5},
滤镜 = {0,0,0,0} -- 半透明效果
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
模式 | 数值 | true | 0 1 2 |
R | 数值 | true | 红色分量 |
G | 数值 | true | 绿色分量 |
B | 数值 | true | 蓝色分量 |
变身
设置变身效果后, 会强制开启 受伤消失
禁止攻击
。
变身 = {动画="角色动画_山羊",x=0,y=60,移动帧速 = 50},
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
动画 | 文本 | true | 同 角色组件 外观 中配置项 |
x | 数值 | false | 显示x 同 角色组件 外观 中配置项 |
y | 数值 | false | 显示y 同 角色组件 外观 中配置项 |
移动帧速 | 数值 | false | 同 角色组件 中配置项 |
动作转移
状态持续过程中用指定动作替换掉角色动画外观中默认动作。
动作转移 = {移动="停止",跑动="停止"}, -- 角色的移动和跑动动作都会显示为停止动作
系统事件
🔹 创建
- 角色被添加状态时触发。
- 通过返回值
false
可以拦截。
回调参数 | 类型 | 说明描述 |
目标角色 | 角色对象 | |
状态对象 | 状态对象 | |
附加 | table | 添加状态时传递进来的属性表 |
示例
系统事件 = {
创建 = function(目标角色,状态对象,附加) -- 可以返回逻辑型 false拦截掉
调试输出(状态对象.名称,状态对象.hp)
状态对象.气泡提示 = 目标角色.名称 .. "#Y" .. 状态对象.显示名
end,
}
提示
只有 显示名
气泡提示
这2个属性,可以通过状态对象动态修改, 其他属性的初始化,只能通过接口添加状态
的属性表一次性设置。
🔹 触发
- 到达触发间隔时触发。
回调参数 | 类型 | 说明描述 |
目标角色 | 角色对象 | |
状态对象 | 状态对象 |
示例
系统事件 = {
--===========================================================
触发 = function(目标角色,状态对象)
local 治疗术 = 目标角色.技能.治疗术
if (治疗术 and 治疗术.进度 == 100) then
local 角色组 = 目标角色.地图.取出角色(目标角色.格子x,目标角色.格子y,6,目标角色.阵营)
if(#角色组 > 0) then
table.sort(角色组,function(a,b) -- 血量排序
return a.hp < b.hp
end)
if(角色组[1].hp < 角色组[1].maxhp * 0.8) then
目标角色.发动技能("治疗术",角色组[1])
end
end
end
end,
}
🔹 结束
- 状态结束时触发。
回调参数 | 类型 | 说明描述 |
目标角色 | 角色对象 | |
状态对象 | 状态对象 |
示例
系统事件 = {
结束 = function(目标角色,状态对象)
调试输出(状态对象.名称)
end,
}
🔹 受伤
- 拥有此buff的角色对象
受伤
时触发。 - 通过返回值可以修改伤害结果。
回调参数 | 类型 | 说明描述 |
目标角色 | 角色对象 | |
状态对象 | 状态对象 | |
掉血值 | 整数 |
示例
系统事件 = {
受伤 = function(目标角色,状态对象,伤害) -- 降低50%伤害
return 伤害 * 0.5
end,
}