道具
介绍
道具组件
local 道具配置 =
{
类型 = "道具",
名称 = "八荒刀",
显示名 = "八荒刀",
颜色 = RGBA(255,255,255,255),
图标 = "图集_道具|00009",
气泡提示 = "八荒刀",
分类 = "装备",
子类 = "武器",
最大叠加 = 1,
禁止丢弃 = false,
扩展属性 = {
攻击 = 10,
},
内观 = {{位置="武器",图片="图集_内观|00009",x=-216,y=-180}},
外观 = {{位置="武器",动画="角色动画_八荒刀"}},
音效 = {发现="道具音效_武器",使用="道具音效_武器",攻击="音效_八荒挥舞"},
资源表 = {
{标识="图集_内观",文件="dmstore_JKZCDOiJlgJtaEAmDvwA"},
{标识="图集_道具",文件="dmstore_JKJ6DdgJlKKi4D2cJvKA"},
{标识="角色动画_八荒刀",文件="dmstore_JJtqDuMKASKAKCbAKIcA"},
{标识="道具音效_武器",文件="dmstore_WJtmKhOD36DfODdoDdkA"},
{标识="音效_八荒挥舞",文件="dmstore_WD2cKAUEI4Ch0DfQD2UA"},
}
}
return 道具配置
配置项
| 名称 | 类型 | 必填 | 说明 |
| 类型 | 文本 | true | 固定值:道具 表示这是一个道具组件 |
| 名称 | 文本 | true | 全局唯一的道具标识 |
| 显示名 | 文本 | true | |
| 颜色 | RGBA | false | 显示名颜色值 |
| 图标 | 文本 | false | |
| 气泡提示 | 文本 | false | 支持丰富文本 |
| 分类 | 文本 | false | 道具 装备 特殊 |
| 子类 | 文本 | false | 衣服 武器 项链 手镯 戒指 消耗 其他 允许自定义 |
| 冷却 | table | false | {标识,间隔} |
| 最大叠加 | 整数 | false | |
| 禁止丢弃 | 整数 | false | |
| 等级 | 整数 | false | 道具使用的等级限制 |
| hp | 整数 | false | |
| mp | 整数 | false | |
| hp_百分比 | 整数 | false | |
| mp_百分比 | 整数 | false | |
| maxhp | 整数 | false | |
| maxmp | 整数 | false | |
| maxhp_百分比 | 整数 | false | |
| maxmp_百分比 | 整数 | false | |
| 攻击速度 | 整数 | false | 百分比增幅,正值表示加速,负值表示减速 |
| 移动速度 | 整数 | false | 百分比增幅,正值表示加速,负值表示减速 |
| 扩展属性... | 整数 | false | 同样包含 _百分比 模式 |
| 附加 | table | false | 自定义变量 |
| 内观 | table {} | false | |
| 外观 | table {} | false | |
| 音效 | table {} | false | |
| 格子效果 | table {} | false | |
| 地面效果 | table {} | false | |
| 自动拾取 | table | false | |
| 资源表 | table | false | { {标识="",文件=""}, {标识="",文件=""}, .. } |
分类
- 系统保留的分类名称有
装备道具特殊。 装备类是指可以穿戴,会影响角色属性的道具。道具类通常是可以消耗的道具。特殊类是指会触发拾取事件,拾取后消失。但是不会进入包裹的物品,比如地面的金币。
子类
- 系统保留的子类名称有
消耗当分类为道具时,使用会触发数量减少相关逻辑。 - 通常分类为
装备时,子类取名衣服武器项链手镯戒指。 - 道具的
分类和子类,会与角色装备格子道具格子有关联。
冷却
如果设置此项,使用道具后,游戏中同类标识的道具都会有一个冷却CD效果。
冷却 = {标识="药水",间隔=1000},
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
标识 | 文本 | true | 自定义的冷却类型标识 |
间隔 | 整数 | true | 单位毫秒 |
内观
当角色框控件显示模式为内观时显示。
内观 = {{位置="武器",图片="井中月图集|井中月内观",x=70,y=-24},{位置="武器",动画="井中月特效,特效2", x=70,y=-24}},
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
位置 | 文本 | true | 位置为"-1"时,表示图片置底显示 |
图片 | 文本 | true | |
动画 | 文本 | false | |
x | 整数 | false | 显示坐标偏移x |
y | 整数 | false | 显示坐标偏移y |
颜色 | RGBA | false | |
唯一 | 逻辑 | false | 同部位的内观仅显示自己 |
外观
角色穿戴后替换纸娃娃动画效果,当角色框控件显示模式为外观时显示。
外观 = {{位置="衣服",动画="角色动画_男布衣"},{位置="染色",动画="角色动画_男布衣染色"}},
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
位置 | 文本 | true | 通常为子类名称 |
动画 | 文本 | true | |
颜色 | RGBA | false | |
缩放 | 文本 | false |
音效
发现:掉落时 进入包裹 触发使用:使用时触发攻击:子类为武器时,可以替换掉角色的攻击音效命中:子类为武器时,可以替换掉角色的命中音效
音效 = {发现="道具音效_武器",使用="道具音效_武器",攻击="音效_八荒挥舞"},
格子效果
当道具在格子中的时候,这个配置项可以让显示更加丰富。
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
资源名称 | 文本/table | true | 动画,图片或是组件配置项,动画写法同样是:动画,动作,缩放,速度 |
拿起显示 | 整数 | false | 鼠标拿起这个道具的时候,鼠标上是否显示这个元素。0 不显示 1 显示 |
x | 整数 | false | 显示偏移x 相对格子中心点的偏移坐标 |
y | 整数 | false | 显示偏移y 相对格子中心点的偏移坐标 |
格子效果 = {
{"格子动画包,稀有",0},
{"图集_道具|00009",1},
{{
名称 = "个性标志",
类型 = "精灵",
默认可视 = true,
x = 0,
y = 0,
锚点x = 0.5,
锚点y = 0.5,
图片 = "个性标志图标"
},1},
{"装备锁",0,10,10}
},
提示
节点对象可以通过取出节点获得。
地面效果
当道具掉落在地面上时显示的动画效果。
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
资源名称 | 文本 | true | 动画标识,动画写法同样是:动画,动作,缩放,速度 |
显示层次 | 整数 | false | 0 地表层 1 物件排序层 |
地面效果 = {{"掉宝特效,地表选中,0.6",0},{"掉宝特效,光柱特效,0.4",1}},
自动拾取
物品掉落在地图时,可以设置自动拾取效果。
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
距离 | 整数 | true | 最远拾取距离 |
效果 | 整数 | false | 0 直接消失 1 飞向主角 |
自动拾取 = {距离=3,效果=1},
系统事件
提示
道具对象属性脚本中可以直接修改。
🔹 创建
怪物掉落或者通过接口增加物品,都会触发创建事件。通过接口创建道具还可以传递一个附加参数。
| 回调参数 | 类型 | 说明描述 |
| 道具对象 | 道具对象 | |
| 附加 | table |
示例
系统事件 = {
创建 = function(道具对象,附加)
local 需要等级 = 1
-- 修改一下气泡提示
local 富文本 = "#z(140,0,1)\n#z(2,-12)#f(宋体14粗)#c(".. 道具对象.颜色 ..")".. 道具对象.显示名.."#z(0,10,1)\n#p(默认皮肤|格子底图)#p(".. 道具对象.图标 ..",-44,0,42,42)#f(宋体12)#W#z(4,-42)\n"
富文本 = 富文本 .. "类型:" .. 道具对象.分类 .. "\n等级:" .. 需要等级 .. "\n限制:无\n#z(0,0)"
if(道具对象.攻击 > 0) then 富文本 = 富文本 .. "\n#W攻击 " .. 道具对象.攻击 end
if(道具对象.防御 > 0) then 富文本 = 富文本 .. "\n#W防御 " .. 道具对象.防御 end
富文本 = 富文本 .. "\n\n#br(140)#H普普通通的".. 道具对象.显示名 .. "#z(0,2,1)"
道具对象.气泡提示 = 富文本
end
},
🔹 使用
道具使用时触发,返回 false 可拦截。
| 回调参数 | 类型 | 说明描述 |
| 道具对象 | 道具对象 |
示例
系统事件 = {
使用 = function(道具对象) -- 返回 false 拦截使用
调试输出(道具对象.名称,道具对象.数量)
-- return false
end,
},
🔹 拾取
道具拾取时触发,返回 false 可拦截。
| 回调参数 | 类型 | 说明描述 |
| 道具对象 | 道具对象 |
示例
系统事件 = {
拾取 = function(道具对象) -- 返回 false 可拦截
调试输出(道具对象.名称,道具对象.数量)
-- return false
end,
},
🔹 掉落
道具掉落到地图上时触发,返回 false 可拦截并且销毁道具。
| 回调参数 | 类型 | 说明描述 |
| 地图坐标x | 掉落点坐标 | |
| 地图坐标y | 掉落点坐标 | |
| 道具对象 | 道具对象 | |
| 来源角色 | 角色对象 | 来源 |
示例
系统事件 = {
掉落 = function(地图坐标x,地图坐标y,道具对象,来源角色)
道具对象.显示名 = 道具对象.名称 .. "[" .. 来源角色.名称 .. "]"
-- return false
end
},
提示
主角丢弃物品,角色身上装备掉落都会触发。
🔹 丢弃
从包裹往地图上丢弃时触发,可以通过3种返回结果改变掉落行为。
- 返回逻辑值
false表示不允许丢弃 - 返回1个数值
-1表示直接销毁这个道具 - 返回2个数值
格子x,格子y表示把物品丢弃到指定地图格子中 - 无返回值,系统按默认逻辑掉落。
| 回调参数 | 类型 | 说明描述 |
| 道具对象 | 道具对象 |
示例
事件 = {
丢弃 = function(道具对象)
local 地图对象 = 引擎.地图
if (地图对象.地图信息.焦点) then -- 喂东西吃
地图对象.地图信息.焦点.添加状态("持续恢复",角色对象,{拖尾=10,移动速度=200, 变身={动画="角色动画_半魔人",移动帧速 = 200}})
return -1
end
if (道具对象.名称 == "小瓶金创药") then
地图对象.主角.发动技能("冰咆哮")
道具对象.数量 = 道具对象.数量 - 1
return false
end
return 地图对象.地图信息.鼠标格子x,地图对象.地图信息.鼠标格子y
end,
}
