Project1

标题: 不在脚本库的脚本能够修改吗? [打印本页]

作者: alianlord    时间: 2022-5-15 23:19
标题: 不在脚本库的脚本能够修改吗?
我说的就是帮助中的默认脚本。
原来的脚本想改成图中红框的功能。但是在脚本库新加似乎不能盖掉原本的功能。

请问默认的脚本能不能更动?

2022-05-15_231235.png (9.96 KB, 下载次数: 40)

2022-05-15_231235.png

作者: alexncf125    时间: 2022-5-15 23:24
这改来有什么意义?
直接在备注栏写正则不香么?
作者: 喵呜喵5    时间: 2022-5-16 00:27
也能猴子补丁
直接新建一个下面这样的脚本就是你想要的需求

  1. class RPG::EquipItem
  2.   alias m5_20220516_initialize initialize
  3.   def initialize
  4.     m5_20220516_initialize
  5.     @params = [0] * 11
  6.   end
  7. end
复制代码

作者: alianlord    时间: 2022-5-16 07:41
喵呜喵5 发表于 2022-5-16 00:27
也能猴子补丁
直接新建一个下面这样的脚本就是你想要的需求

反覆试了许多次。错误信息是:默认类错误

2022-05-16_073954.png (4.54 KB, 下载次数: 40)

2022-05-16_073954.png

作者: 喵呜喵5    时间: 2022-5-16 13:22
alianlord 发表于 2022-5-16 07:41
反覆试了许多次。错误信息是:默认类错误

你的代码是怎么写的?我这边开了个新工程试了试是没有这个报错的

当然,正常来说这个代码是不会生效的,因为 RPG::EquipItem 在编辑器中已经生成出来了,所以数据库中的那些数据不会走到 initialize 这个方法,只有在游戏中使用 RPG::EquipItem.new 新创建出来的那些装备才会走新的 initialize
作者: guoxiaomi    时间: 2022-5-16 13:40
不打猴子补丁也行,直接复制到脚本最前面,就会覆盖之前的定义
作者: alianlord    时间: 2022-5-16 13:48
喵呜喵5 发表于 2022-5-16 13:22
你的代码是怎么写的?我这边开了个新工程试了试是没有这个报错的

当然,正常来说这个代码是不会生效的, ...

啊?奇怪?我也是开了个新工程试的?
这个在【游戏中使用 RPG::EquipItem.new 新创建出来装备】这个步骤如何实现?
我推测是系统锁了【@params = [0] * 8 】这句编码不能改动。
装备的伤害公式指定的就是这8个元素。
作者: 喵呜喵5    时间: 2022-5-16 20:16
alianlord 发表于 2022-5-16 13:48
啊?奇怪?我也是开了个新工程试的?
这个在【游戏中使用 RPG::EquipItem.new 新创建出来装备】这个步骤 ...

或者你描述一下你的实际需求吧,修改 RPG::EquipItem 增加 params 是想要实现什么功能?
作者: alianlord    时间: 2022-5-16 20:44
喵呜喵5 发表于 2022-5-16 20:16
或者你描述一下你的实际需求吧,修改 RPG::EquipItem 增加 params 是想要实现什么功能? ...

主要是想设计一个功能,命中值  ( 攻方的agi + 武器的补正值  ) - 回避值 (守方的agi + 防具的补正值  )
这两个值是显示在情报面版上,个人能力和装备补正是相加的关系,而非相乘。
在 param(n) / xparam(n) / param(n)  这三个能力块中,只有  param(n) 是相加计算的。
所以想把 命中值 和 回避值 放入  param(n) 数组中。
脚本库中 Game_BattlerBase  => @params = [0] *8  改成 @params = [0] * 11 没有问题。
而在预制帮助脚本中 class RPG::EquipItem  的 @params = [0] *8  改成 @params = [0] * 11 始终无果。
作者: 喵呜喵5    时间: 2022-5-16 21:14
alianlord 发表于 2022-5-16 20:44
主要是想设计一个功能,命中值  ( 攻方的agi + 武器的补正值  ) - 回避值 (守方的agi + 防具的补正值  )
...

装备新加的那3个param你打算在哪里配置?RM编辑器里只有8个输入框可以让你填
作者: alianlord    时间: 2022-5-16 21:44
本帖最后由 alianlord 于 2022-5-16 21:46 编辑
喵呜喵5 发表于 2022-5-16 21:14
装备新加的那3个param你打算在哪里配置?RM编辑器里只有8个输入框可以让你填 ...


命中率的公式可以在脚本中改。(我猜应该可行)
class Game_ActionResult
  #--------------------------------------------------------------------------
  # ● 判定最后是否命中
  #--------------------------------------------------------------------------
  def hit?
    @used && !@missed && !@evaded  #这是原句,可以从这里下手。
  end

主要还是想在情报面版直观显示 命中值

作者: alianlord    时间: 2022-5-16 21:53
alianlord 发表于 2022-5-16 13:48
啊?奇怪?我也是开了个新工程试的?
这个在【游戏中使用 RPG::EquipItem.new 新创建出来装备】这个步骤 ...

呃……我的工程脚本就是个大型垃圾车祸现场。
不如你发个可以实现功能的范例工程给我。
由我来互相比对,找找我是那出了问题吧。
不胜感谢。

作者: 喵呜喵5    时间: 2022-5-16 22:19
alianlord 发表于 2022-5-16 21:44
命中率的公式可以在脚本中改。(我猜应该可行)
class Game_ActionResult
  #---------------------------- ...

我的意思是每个装备的命中值和回避值你打算怎么配置到装备上
作者: alianlord    时间: 2022-5-16 22:32
本帖最后由 alianlord 于 2022-5-16 22:39 编辑


我的意思是每个装备的命中值和回避值你打算怎么配置到装备上[/quote]

可以在装备的note中,用@base_hit = $1.to_i if actor.note =~ /<HIT =\s*(\d+)\s*>/i
这种方法附值。
命中率计算并不需要如伤害计算那么复杂,压根可以不过公式框。
[quote]喵呜喵5 发表于 2022-5-16 22:19

2022-05-16_223809.png (4.2 KB, 下载次数: 23)

2022-05-16_223809.png

作者: 喵呜喵5    时间: 2022-5-17 00:03
alianlord 发表于 2022-5-16 22:32
我的意思是每个装备的命中值和回避值你打算怎么配置到装备上


可以在装备的note中,用@base_hit = ...[/quote]

那直接猴补params方法

  1. class RPG::EquipItem
  2.   alias m5_20220516_params params
  3.   def params
  4.     p = m5_20220516_params
  5.     return p if p.length == 11
  6.     p[8] = 读取备注的代码XXX
  7.     p[9] = 读取备注的代码XXX
  8.     p[10] = 读取备注的代码XXX
  9.     p
  10.   end
  11. end
复制代码

作者: alianlord    时间: 2022-5-17 08:16
本帖最后由 alianlord 于 2022-5-17 08:34 编辑
喵呜喵5 发表于 2022-5-17 00:03
可以在装备的note中,用@base_hit = ...


那直接猴补params方法[/quote]

这个方法可行

2022-05-17_083152.png (7.12 KB, 下载次数: 27)

2022-05-17_083152.png





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1