设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

技能升级插件

查看数: 537 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-6-29 20:22

正文摘要:

这是一个通过调教ai写的插件,可以让技能有等级提升效果,每升一级,伤害提升一些,提升的量可以自己设定,也可以常驻为修炼技能,因为技能也可以每升一级提升一些基础属性,同样提升量可以自己设定,因为是调教ai ...

回复

3044606602 发表于 2025-7-11 18:31:11
涂九安 发表于 2025-7-2 16:45
这个怎么跟我写的有点像?我3月份就写好了!我的是根据仙剑奇侠传三的仙术写的,就是使用次数+技能等级!如 ...

这个我不知道,或许你可以问一下豆包,它写的,我起初只是想搞个功法进阶,毕竟那个仙侠题材游戏没有这个功能呢?
涂九安 发表于 2025-7-2 16:45:32
这个怎么跟我写的有点像?我3月份就写好了!我的是根据仙剑奇侠传三的仙术写的,就是使用次数+技能等级!如果技能等级2级可以学会别的技能!我自己用的插件!我还写了敌人和角色的九宫格站位插件,就跟仙剑奇侠传三那种六个站位差不多的!战斗结算也写了!
古树旋律 发表于 2025-7-1 05:54:27
蛮喜欢这个插件的思路,深化调教了一晚上。交作业了。


3044606602 发表于 2025-6-30 22:27:42
古树旋律 发表于 2025-6-30 20:53
又发现了BUG,Window_SkillList.prototype.drawItemName = function(skill, x, y, width) 部分只绘制了文字 ...

谢谢大佬的修复
古树旋律 发表于 2025-6-30 20:53:37
又发现了BUG,Window_SkillList.prototype.drawItemName = function(skill, x, y, width) 部分只绘制了文字,没有绘制icon,加入下面代码解决:
  1. this.drawIcon(skill.iconIndex, x + 2, y + 2);
复制代码
古树旋律 发表于 2025-6-30 20:33:42
发现了一个严重BUG,升级后的技能只是显示数值提高了,但是实际伤害没有改变。使用这段代码替换来修复:
JAVASCRIPT 代码复制
  1. // 修改伤害应用部分
  2. Yours.skillUpgrade.alias.Game_Action_apply = Game_Action.prototype.apply;
  3. Game_Action.prototype.apply = function(target) {
  4.     if (this.subject() instanceof Game_Actor && this.isSkill()) {
  5.         const skillId = this.item().id;
  6.         if (this.subject().getSkillConfig(skillId)) {
  7.             // 先获取伤害系数
  8.             const damageCoefficient = this.subject().getSkillDamageCoefficient(skillId);
  9.  
  10.             // 检查是否为伤害性技能
  11.             if (this.item().damage.type > 0) {
  12.                 // 临时修改技能的基础伤害公式,加入伤害系数
  13.                 const originalFormula = this.item().damage.formula;
  14.                 if (damageCoefficient !== 1) {
  15.                     // 在公式中乘以系数
  16.                     this.item().damage.formula = `(${originalFormula}) * ${damageCoefficient}`;
  17.                 }
  18.  
  19.                 // 应用伤害
  20.                 Yours.skillUpgrade.alias.Game_Action_apply.call(this, target);
  21.  
  22.                 // 恢复原始公式
  23.                 this.item().damage.formula = originalFormula;
  24.  
  25.                 // 增加经验
  26.                 this.subject().gainSkillExp(skillId);
  27.                 return;
  28.             }
  29.         }
  30.     }
  31.  
  32.     // 非技能或不需要修改的情况
  33.     Yours.skillUpgrade.alias.Game_Action_apply.call(this, target);
  34. };
  35.  
  36. // 移除之前在apply中修改伤害结果的代码,因为现在已经在公式中处理了
EXCZY 发表于 2025-6-30 10:06:05
好好好,多谢楼主分享,我最近正在收集这些非常RPG的插件
古树旋律 发表于 2025-6-30 07:26:25
古树旋律 发表于 2025-6-30 07:25
这段代码写得太妙了。我一开始的思路是拷贝dataskill,然后导致data数据越来越庞大。
这个JS新建了一个精简 ...

MZ也测试了,可以使用
古树旋律 发表于 2025-6-30 07:25:23
这段代码写得太妙了。我一开始的思路是拷贝dataskill,然后导致data数据越来越庞大。
这个JS新建了一个精简的$gameParty.skillUpgradeData(),方便调用、方便修改,又学到新知识了!
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-9-9 15:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表