Dream Mod 3.0Dream Mod 3.0
首页
快速开始
资源库
首页
快速开始
资源库
  • 进度

    • 更新日志
  • 指南

    • 快速上手
    • App.lua
    • Server.lua
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 成长
    • DmTcpClient
    • WebSocketClient
    • SqliteDB
    • 皮肤
    • 自定义组件
  • Api

    • 引擎
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 自定义组件
    • 音乐
    • 缓动
    • 全局
  • 控件

    • 标签
    • 按钮
    • 图片框
    • 动画框
    • 模型框
    • 文本框
    • 进度条
    • 技能格子
    • 快捷格子
    • 包裹格子
    • 道具格子
    • 角色框
    • 选择框
    • 选择夹
    • 容器
    • 地图框
    • 滑块条
    • 滚动条
    • 组合框
    • 输入框
    • 列表框
  • 组件

    • 文本
    • 艺术字
    • 精灵
    • 矩形
    • 圆形
    • 动画
    • 模型
  • 其他

    • 丰富文本
    • 模板变量
    • 资源格式
    • 游戏盒子
    • 资源列表
  • 自定义功能

    • 战斗血液效果
    • 地图天气
  • 状态

    介绍

    状态组件

    提示

    * 状态中的属性变化拥有 属性名 属性名_百分比 两种模式。包括自定义的扩展属性。 * 攻击速度 移动速度 命中 躲避 暴击 默认就是百分比,百分比增幅无效。

    local 状态配置 = 
    
    {
    
    	类型 = "状态",
    
    	名称 = "持续恢复",
    
    	持续时间 = -1,
    
    	触发间隔 = 2000,	
    
    	hp_百分比 = 10,	
    
    	mp_百分比 = 10,
    
        攻击_百分比 = 5
    
    
    
    }
    
    
    
    return 状态配置 
    
    

    配置项

    名称 类型 必填 说明
    类型 文本true固定值: 表示这是一个状态组件
    名称 文本true全局唯一的状态标识,如果发生重复旧状态会被覆盖
    显示名 文本true状态用于描述的名称
    图标 文本false如果设置,会在屏幕上按照 App.lua 中的状态图标设置显示;ver-12 起可通过运行时状态对象动态换图
    标题 文本false显示在图标下方的文本
    文本色 RGBAfalse标题的字体颜色
    气泡提示 文本false
    持续时间 整数false状态的持续时间。 -1 表示无限时间
    触发间隔 整数false单位毫秒 0 只触发一次
    死亡消失 逻辑false角色死亡后状态是否消失 默认 true
    移动消失 逻辑false角色移动后状态是否消失 默认 false
    攻击消失 逻辑false角色发动攻击后状态是否消失 默认 false
    受伤消失 逻辑false角色受伤后状态是否消失 默认 false
    hp [百分比] 整数false支持百分比模式设置,例:hp=5 hp_百分比=5
    mp [百分比] 整数false支持百分比模式设置
    maxhp [百分比] 整数false支持百分比模式设置
    maxmp [百分比] 整数false支持百分比模式设置
    命中 整数false
    躲避 整数false
    暴击 整数false
    攻击速度 整数false百分比增幅,正值表示加速,负值表示减速。设置-10 即表示攻击速度-10%
    移动速度 整数false百分比增幅,正值表示加速,负值表示减速。设置50 即表示移动速度+50%
    怒气 整数false
    威望 整数false
    仇恨 整数false
    拖尾 整数false值越小幻影生成越密 推荐:50 默认:0 不显示
    扩展属性 [百分比] 整数false支持百分比模式设置
    禁止移动 逻辑false
    禁止攻击 逻辑false
    致盲 逻辑false立即失去目标且在状态时间内无法获得目标
    跑动 逻辑false限制角色跑动
    开始动画 table {}false
    触发动画 table {}false
    结束动画 table {}false
    开始音效 table {}false
    触发音效 table {}false
    结束音效 table {}false
    受伤效果 tablefalse如果状态造成伤害,目标的受伤效果
    掉血效果 tablefalse命中目标后,可以覆盖目标角色配置项中的掉血效果
    滤镜 tablefalse滤镜效果
    变身 tablefalse变身效果
    动作转移 tablefalse

    光影效果

    tablefalse持续型状态有效
    资源表 tablefalse{
    {标识="",文件=""},
    {标识="",文件=""},
    ..
    }
    附加 tablefalse自定义变量

    开始动画

    状态启动时候播放的动画。

    开始动画 = {{动画="治疗术,命中",跟随=true}},
    
    
    名称类型必填说明
    动画文本true动画资源标识 动画标识语法:动画,动作,缩放,速度,位置 其中缩放,速度,位置可以不写
    位置:1 播放点在角色中心
    设置:2 播放点在角色头顶,例:"奔雷动画,命中,1,1,1"
    跟随逻辑false是否跟随角色
    持续动作文本false动作名称 如果有会形成动画连接播放效果
    受伤动作文本false动作名称 如果有会形成动画连接播放效果
    消失动作文本false动作名称 如果有会形成动画连接播放效果
    层次整数false0:地面层 1:身体层

    开始音效

    状态启动时候播放的音效,系统随机从数组中选取一个播放。

    开始音效 = {"音效A","音效B","音效C",...},
    
    

    如果音效需要循环播放,请在素材标识后加,1,例如:{"旋风斩音效,1"}

    受伤效果

    状态如果产生伤害,可以配置目标的受伤效果。

    受伤效果 = {几率=100,动作=true,音效=true,闪烁=RGBA(255,255,255,255)},
    
    
    名称类型必填说明
    几率数值true触发受伤动作,音效的几率
    动作逻辑true目标角色动画有受伤动作时有效
    音效逻辑true目标角色动画有受伤音效时有效
    闪烁RGBAtrue是否进行一次闪烁,不闪烁填0

    滤镜

    可以设置一个颜色滤镜。

    滤镜 = {1,1.0, 1.0, 2.5},
    
    滤镜 = {0,0,0,0} -- 半透明效果
    
    
    名称类型必填说明
    模式数值true0 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,
    
    }
    
    

    提示

    运行时状态对象可修改 图标、显示名、标题、文本色、气泡提示、持续时间、dt 和 透明度。其中 图标 的生效条件、还原规则及实例隔离行为见状态对象:动态修改图标。状态属性加成仍只在添加状态时由属性表初始化,不能通过修改同名状态对象字段改变。

    🔹 触发

    • 到达触发间隔时触发。
    回调参数 类型 说明描述
    目标角色 角色对象
    状态对象 状态对象

    示例

    系统事件 = {
    
        --===========================================================
    
        触发 = 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的角色对象受伤时触发。
    • 通过返回值可以修改伤害结果,返回值如果 <0, 则表示无伤害,不再触发角色[受伤]事件。
    回调参数 类型 说明描述
    目标角色 角色对象
    状态对象 状态对象
    掉血值 整数
    伤害类型 文本 默认 躲避 暴击 其他:通过受伤接口传递进来的类型
    伤害组件 技能对象/状态对象/nil哪种组件产生的伤害
    命中效果名称 文本是由技能中的哪一个命中效果触发的

    示例

    系统事件 = {
    
        受伤 = function(目标角色,状态对象,掉血值,伤害类型,伤害组件,命中效果名称)	    -- 降低50%伤害
    
            return 掉血值 * 0.5
    
        end,
    
    }
    
    

    更新记录

    • 2026-09-12:Heimei-EG-lua / ver-12 补充状态对象动态图标入口;明确该功能不改变状态属性加成的初始化与运算规则。