多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
>[danger] 目前pxrpg[4.5.1+]自带的词条有6种 > 词条(Entry)能应用到 `装备(随机词条/固定词条)` `buff` `套装` `宝石(随机词条/固定词条)` `怪物数据(随机词条/固定词条)`上 [TOC] <br><br><br> # 技能等级(skill) **[4.5.1+]** (只适用于玩家) >[danger] 技能等级词条需要配合一款可以保存技能等级的插件,目前自带兼容 [**PxSkilldrive**](../../PxSkillDrive/%E4%BB%8B%E7%BB%8D.md) > 可以做出 `武器附带无法学习的技能` 效果,也可以做出一个职业对队友施加临时提升技能等级的BUFF ``` entries: 单个技能模式: type: skill data: skill: [伏虎决] level: 1 display: '"伏虎决提升1级"' order: 11 show: true 列表模式: type: skill data: skill: - 伏虎决 - 裂空斩 - 罗汉式 - 排阳阵法 - 清虚剑 - 识兵符 - 神影迷踪 level: |- //这里支持java模式 return 1; display: |- return "职业所有技能等级+1"; order: 12 show: true java列表模式: type: skill data: skill: |- //这里支持java模式 List list = new ArrayList(); list.add("伏虎决"); list.add("裂空斩"); list.add("罗汉式"); return list; level: 2 display: '"职业Lv35以下的技能等级+2"' order: 13 show: true ``` <br><br><br> # 属性(attribute) ``` 防御: type: attribute data: id: 防御 min: |- int level = data.get("level"); double value = 10 + level * 5; UMap caster = data.get("caster"); if(caster != null){ //可以做一些加成等属性 Att att = caster.get("att"); double 状态加成 = att.s("状态加成"); value *= 1 + 状态加成; } UMap recipient = data.get("recipient"); Att att = recipient.get("att"); double 状态受益加成 = att.s("状态受益加成"); value *= 1 + 状态受益加成; return value; float: 0.0 sign: false #是否显示 show: true #词条显示的内容 #4.3.2之后词条支持java解译器模式, 返回 List 或者 String 都行 display: - '&e临时提升&f{attribute.value}&e的{attribute.name}属性' ``` <br><br><br> # 持续间隔效果(只适用于buff) >[danger] 可以制作类似于原版的 燃烧,中毒,凋零等效果 <br><br><br> ## 伤害(tick damage) **[4.3.2+]** ``` 每10tick造成灼烧伤害: type: tick damage data: #基于 释放者的 怪物/职业 内的 战斗公式 路径为: `formula.fight.custom.灼烧伤害` 结果进行计算 #可能没有释放者(如指令释放), 没有释放者时失效 custom: 灼烧伤害 show: true #每 X tick触发一次, 必须 > 0才生效 #注意: 这里的触发次数并不是 buff时长/(tick*20) #如: 10秒的BUFF 每10tick触发一次的话, 就很大可能是只会触发 19次 而不是 20次 #支持 java 解译器,传递的参数有: #UMap caster = 谁给的buff(可能为null), 可能是玩家/非玩家 #UMap recipient = 谁有这个buff就是谁, 可能是玩家/非玩家 #int level = buff的等级 tick: 10 #支持java解译器,传递的参数有 #UMap caster = 谁给的buff(可能为null), 可能是玩家/非玩家 #UMap recipient = 谁有这个buff就是谁, 可能是玩家/非玩家 #long tick = 由上面计算出的值 #int times = 当前触发的第几次(从0开始) #double value = 记录的上次结果 display: - '来自于 {caster} , 每 {tick} tick {value} 的灼烧伤害' #是否在buff开始的一瞬间就计算伤害并记录(默认 true,没特殊要求推荐true) #true: 每次伤害都是一样的 #false: 每次都会计算一次战斗公式,如没变化的可为true notes-value: false ``` <br><br><br> ## 治疗(tick heal) **[4.3.2+]** ``` 每10tick恢复生命: #4.3.2新增的buff词条(只在buff内生效) type: tick heal data: custom: 恢复生命 tick: 10 display: - '来自于 {caster} , 每 {tick} tick恢复 {value} 血' notes-value: true show: true ``` <br><br><br> ## 回蓝(tick mana) **[4.3.2+]** ``` 每10tick恢复蓝量: #4.3.2新增的buff词条(只在buff内生效) type: tick mana data: custom: 恢复蓝量 tick: 10 display: - '来自于 {caster} , 每 {tick} tick恢复 {value} 蓝' notes-value: true show: true ``` <br><br><br> ## 掉蓝(tick sub mana) **[4.3.2+]** ``` 每10tick掉蓝量: #4.3.2新增的buff词条(只在buff内生效) type: tick sub mana data: custom: 掉蓝量 tick: 10 display: - '来自于 {caster} , 每 {tick} tick损失 {value} 蓝' notes-value: true show: true ``` <br><br><br> ## 脚本(tick) **[4.5.6+]** ``` 每10tick执行一次脚本: #4.5.6新增的buff词条(只在buff内生效) type: tick data: tick: 10 display: - '来自于 {caster} , 每 {tick} tick执行一次' exe: |- System.out.println("BUFF脚本执行");         for(String key:data.keys()){           System.out.println("参数: " + key + " = " + data.get(key));         } return true; //返回true执行成功,false为失败,内部计次用的 show: true ```