角色
介绍
角色组件
配置项
名称 | 类型 | 必填 | 说明 |
类型 | 文本 | true | 固定值:角色 表示这是一个角色组件 |
名称 | 文本 | true | 全局唯一标识 |
显示名 | 文本 | false | |
默认主角 | 逻辑 | false | 是否是可操控的主角,同时只能存在一个主角 |
等级 | 整数 | false | 配合成长组件使用 |
经验值 | 整数 | false | 被其他角色杀死后,对方可以获得的经验值 |
成长 | 文本 | false | 填写成长组件名称,可以自动获得对应等级的基础属性。 |
hp | 整数 | false | 生命值 |
maxhp | 整数 | false | 最大生命值 |
mp | 整数 | false | 法力值 |
maxmp | 整数 | false | 最大法力值 |
威望 | 整数 | false | 低威望角色无法发现,攻击高威望角色。默认:0 |
扩展属性... | 整数 | false | 可配置自己的扩展属性值 |
内观 | table {} | false | 会自动显示到角色框控件中 |
外观 | table {} | false | 地图上的角色动画外观 |
外观次序 | table {} | false | |
触发器 | table {} | false | |
包围盒 | table | false | {宽度,高度,x偏移,y偏移} 用于鼠标焦点判断,高度会影响技能命中位置 F12可以查看 |
移动帧速 | 整数 | false | 配合角色移动动画设置一个基础值,设定后不再改变,后续移速相关的属性都将以他为基础。 |
攻击间隔 | 整数 | false | 默认值:3000 单位:毫秒 <0 无法攻击 |
移动间隔 | 整数 | false | 默认值:1500 单位:毫秒 <0 无法移动 |
跑动 | 逻辑 | false | 是否允许跑动,一次移动2格 |
方向 | 整数 | false | 出生时的方向 0为上 8个方向按顺时针为0-7 -1为随机 |
动作模式 | 整数 | false | 0:8方向 1:2方向 默认:0 |
巡逻范围 | 整数/table | false | 角色巡逻功能 |
自动隐藏 | 文本 | false | 角色是否会自动隐藏 |
视野范围 | 整数 | false | 主动寻怪时最远的寻找距离 |
追击距离 | 整数 | false | 追击时,超出距离放弃当前目标,建议设置超过视野范围。 |
保持距离 | 整数 | false | 与敌方保持一定距离。 |
主动攻击 | 逻辑 | false | 是否主动寻怪 |
自动战斗 | 逻辑 | false | 主角的自动战斗开关 |
自动反击 | 整数 | false | |
尸体保留时间 | 整数 | false | 死亡倒地后后开始计时 |
出生效果 | 整数 | false | |
死亡效果 | 整数 | false | |
重生间隔 | 整数 | false | <0 不重生 |
重生范围 | 整数 | false | 以刷新点为中心的范围 |
战斗警戒 | 整数 | false | 0:攻击后转停止动作 1:攻击后停留在攻击动作第一帧 |
出现音效 | table {} | false | 触发后随机播放数组中的音效标识 |
攻击音效 | table {} | false | 触发后随机播放数组中的音效标识 |
命中音效 | table {} | false | 触发后随机播放数组中的音效标识 |
受伤音效 | table {} | false | 触发后随机播放数组中的音效标识 |
死亡音效 | table {} | false | 触发后随机播放数组中的音效标识 |
血条效果 | table | false | |
掉血效果 | table | false | |
名称效果 | table | false | |
光影效果 | table | false | |
影子大小 | 数值 | false | 影子缩放的比例,如果配置角色脚底会有一个影子效果 |
角色大小 | 数值 | false | 角色外观的缩放的比例,默认:1.0 |
装备 | table | false | |
掉落 | table {} | false | |
掉落几率 | 整数 | false | 百分比属性 为掉落表中的几率进行增幅 默认:100 |
技能表 | table {} | false | |
附加 | table | false | 自定义变量 |
资源表 | table | false | { {标识="",文件=""}, {标识="",文件=""}, .. } |
系统事件 | table | false |
威望
- 角色无法发现和攻击高于自身威望的敌对阵营目标。
- 角色组件的配置项中可以设置默认威望,状态组件可以改变状态时间内角色威望。
- 当攻击目标的威望发生变动,威望高于自身时仇恨会被清0。
- 利用好
威望
和仇恨
,可以丰富扩展游戏玩法。
扩展属性
这里可以配置 在App.lua
入口配置项中设置的扩展属性
的具体数值。
{
hp = 100,
maxhp = 100,
mp = 100,
maxmp = 100,
攻击 = 10,
防御 = 0,
...
...
},
内观
当角色框
控件显示模式为内观
时显示在控件中。
内观 = {{位置="衣服",图片="图集_内观|00300",x=-216,y=-180},{位置="发型",图片="图集_内观|00401",x=-216,y=-180,颜色=RGBA(66,66,66,255)}},
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
位置 | 文本 | true | 位置为-1 时,表示图片置底显示 |
图片 | 文本 | true | |
动画 | 文本 | false | |
x | 整数 | false | 显示坐标偏移x |
y | 整数 | false | 显示坐标偏移y |
颜色 | RGBA | false |
外观
角色地图上显示的效果,可以是动画也可以是图片,当角色绑定了角色框
控件,并且显示模式为外观
时显示。
外观 = {{位置="衣服",动画="角色动画_男布衣"},{位置="染色",动画="角色动画_男布衣染色"}},
外观 = {{位置="衣服",图片="角色卡片_男默认",缩放=0.6,x=0,y=-40}},
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
位置 | 文本 | true | 通常为子类名称 |
动画 /图片 | 文本 | true | |
颜色 | RGBA | false | |
缩放 | 文本 | false | |
x | 数值 | false | 显示偏移x |
y | 数值 | false | 显示偏移y |
触发器
- 给角色绑定
触发器
组件,配置项是一个由触发器组件名称,或触发器组件配置项,组成的数组。 - 如果触发器中有相同的捕捉事件,系统按次序依次执行。
触发器 = {"怪物","怪物2"},
触发器 = {
{
类型 = "触发器",
名称 = "主角触发器",
事件 = {
__EVENT_死亡后 = function(角色对象,伤害来源)
end,
},
},
"怪物",
"怪物2"
},
外观次序
- 用于设置不同位置的外观在每个方向下的显示排序。从上开始顺时针8个方向。
- 如果你有其他位置的纸娃娃,需要填到配置里面去,显示效果为一层一层的叠加,{"内裤","秋裤","外裤",....},缺省默认次序设置如下:
外观次序 = {
{"武器","衣服","染色","发型"},
{"衣服","染色","武器","发型"},
{"衣服","染色","武器","发型"},
{"衣服","染色","武器","发型"},
{"衣服","染色","武器","发型"},
{"武器","衣服","染色","发型"},
{"武器","衣服","染色","发型"},
{"武器","衣服","染色","发型"}
}
巡逻范围
随机移动
配置为整数
时,单位是地图格子,拥有3种状态
>0
时,允许在出生点附近随机移动,被风筝超出范围后会
回到出生点附近。=0
时,不会随机移动,被风筝超出范围后会
回到出生点附近。<0
时,不会随机移动,被风筝超出范围后不会
回到出生点附近。
巡逻范围 = -1,
路径移动
- 配置为
table
时,表明按指定格子路径循环移动。 { {格子x,格子y,停留时间},{格子x,格子y,停留时间},... }
配置 | 说明 |
---|---|
格子x | 目标格子 |
格子y | 目标格子 |
停留时间 | 单位:毫秒 |
local 角色组 = 引擎.地图.创建角色("半魔人",40,72,"敌方",0,1);
角色组[1].巡逻范围 = {{40,72,5000},{49,81,5000},{56,75,5000}}
角色组[1].移动间隔 = 0
自动隐藏
- 主动攻击型的角色如果
视野范围
内没有敌方时,可以设置自动消失。如:资源库中的食人花
- 填写一个动作名,角色隐藏和出现时会播放这个动作过渡。"动作名,反向播放" 动作名后面,配置
1
时表示这个动作隐藏时反向播放。
自动隐藏 = "出生,1",
出生效果
角色在地图上出现时的效果。三种效果可选:0,1,2
配置 | 说明 |
---|---|
0 | 无效果 |
1 | 渐隐渐入 |
2 | 空中落下 |
死亡效果
角色的死亡效果。四种效果可选:0,1,2,3
配置 | 说明 |
---|---|
0 | 渐隐消失 |
1 | 直接消失 |
2 | 爆炸消失 |
3 | 溶解消失 |
自动反击
设定角色被攻击后的反击逻辑。四种效果可选:0,1,2,3
配置 | 说明 |
---|---|
0 | 目标自动变更为距离更近的角色 |
1 | 目标始终固定为第一次的造成伤害角色 |
2 | 目标变更为最后一次造成伤害的角色 |
3 | 目标变更为仇恨值更大的角色 |
血条效果
角色是否显示自带的血条效果,支持多个血条效果同时显示。
名称 | 类型 | 说明 |
---|---|---|
皮肤 | 文本 | 皮肤标识,可参考 App.lua 中的通用血条 皮肤编写自己的血条皮肤 |
显示偏移 | 整数 | 相对与角色脚底坐标的Y轴偏移 |
血条颜色 | RGBA | |
过渡色 | RGBA | 血量减少时产生过渡效果 |
血条显示 | 整数 | 0 焦点显示 1 持续显示 2 受伤显示 |
血量偏移 | 整数 | 相对血条的Y轴偏移 |
血量模式 | 整数 | 0 实际 1 百分比 |
血量显示 | 整数 | -1 不显示 0 焦点显示 1 持续显示 2 受伤显示 |
属性绑定 | {最小值,最大值} | 支持属性名绑定,默认值:{"hp","maxhp"} |
血条效果 = {
{
皮肤 = "通用血条",
显示偏移 = -110,
血条颜色 = RGBA(0,222,0,255),
血条显示 = 1,
血量显示 = 1,
属性绑定= {"hp","maxhp"}
},
{
皮肤 = "通用血条",
显示偏移 = -116,
血条颜色 = RGBA(0,100,222,255),
血条显示 = 1,
血量显示 = -1,
属性绑定= {"mp","maxmp"}
},
},
掉血效果
角色受伤时弹出一个艺术字效果。
名称 | 类型 | 说明 |
---|---|---|
艺术字 | 文本 | 资源标识 |
字体颜色 | RGBA | |
字体间距 | 整数 | |
动画效果 | 整数 | 0-4 内置5种效果 |
名称效果
让角色显示一个名称。
名称 | 类型 | 说明 |
---|---|---|
颜色 | RGBA | |
显示偏移 | 整数 | 相对于角色中心的Y轴偏移 |
名称显示 | 整数 | 0 焦点显示 1 持续显示 |
光影效果
让角色增加一个光影效果。
名称 | 类型 | 说明 |
---|---|---|
锚点x | 小数 | 光源效果锚点x |
锚点y | 小数 | 光源效果锚点y |
水平缩放 | 小数 | 光影的水平缩放倍数 |
垂直缩放 | 小数 | 光影的垂直缩放倍数 |
颜色 | RGBA | 光影的色调 |
光影效果 = {锚点x=0.5,锚点y=0.5,水平缩放=2.0,垂直缩放=2.0,颜色=RGBA(255, 220, 180,255)},
装备
- 为角色增加一些初始装备,增强角色属性,还可以关联
装备格子
控件,格子道具发生变化时角色属性同步变化, - 位置数量和位置名称都没有限制,可以随意填写。
名称 | 类型 | 说明 |
---|---|---|
名称 | 文本 | 道具的名称 |
显示外观 | 逻辑 | 如果道具有外观,会替换角色的纸娃娃 |
格子 | 文本 | 格子控件的url 写法:"窗口名称/控件名称" |
装备 = {
武器 = {名称="八荒刀",显示外观=true,格子="角色窗口/主角武器"},
衣服 = {名称="",显示外观=true,格子="角色窗口/主角衣服"},
稻草人的配饰 = {名称="木剑",显示外观=false},
青铜兽的牙齿 = {名称="铜戒指",显示外观=false},
...
...
},
掉落
- 角色死亡后是否触发道具掉落。格式为 {"道具名称 掉落数量/最大几率","道具名称 掉落数量/最大几率",...}
- 物品掉落前会触发道具事件创建,可以在这里实现随机属性。
掉落 = {"八荒刀 1/2","粗布衣 1/2","金创药小 1/2","金币100 1/2"}
掉落几率
- 为
掉落
表中的所有道具进行统一的掉落增幅。默认值:100 - 假设
木剑 1/10
掉落几率 = 200
,此时 木剑的实际效果是1/5
- 假设
木剑 1/10
掉落几率 = 50
,此时 木剑的实际效果是1/20
- 假设
木剑 1/10
掉落几率 = 0
,此时 木剑 不会掉落
技能表
- 角色自带的技能,你可以填完整的技能对象配置,也可以使用已经加入系统的公共技能组件。版本号 > 0.1
- 使用公共技能组件,可以设置不同的属性
自动释放
优先级
间隔
hp
mp
技能表 = {
{
名称 = "火球术",
自动释放 = true,
优先级 = 1,
间隔 = 2000,
mp = 5,
},
{
类型 = "技能",
名称 = "普通攻击",
显示名 = "普通攻击",
图标 = "",
攻击距离 = 1,
动作 = "攻击",
目标阵营 = "敌方",
目标位置 = 0,
伤害延迟 = 500,
伤害公式 = "a.攻击 ^ 2 / ( a.攻击 + b.防御 ) * (0.8 + math.random()*0.2)", -- a 我方 b 敌方
受伤效果 = {几率=100,动作=true,音效=true},
},
},
系统事件
🔹 创建
角色在地图中创建后触发
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 |
示例
系统事件 = {
创建 = function (角色对象)
调试输出(角色对象.名称)
end
}
🔹 受伤
- 角色对象
受伤
时触发。 - 通过
return true
可以拦截。
回调参数 | 类型 | 说明描述 |
角色对象 | 角色对象 | |
掉血值 | 整数 | |
剩余血量 | 整数 | |
总血量 | 整数 | |
伤害来源 | 角色对象 |
示例
系统事件 = {
受伤 = function (角色对象,掉血值,剩余血量,总血量,伤害来源)
调试输出(掉血值,剩余血量,总血量,伤害来源.名称)
--return true
end
}