Project1

标题: 怎么永久增加人物特殊的属性【已解决】 [打印本页]

作者: sq333333    时间: 2016-10-15 07:56
标题: 怎么永久增加人物特殊的属性【已解决】
本帖最后由 sq333333 于 2016-10-24 22:34 编辑

事件里只能增加 力量 智力 敏捷这些数值
怎么可以永久增加特殊的能力。比如必杀 闪避 命中 TP增长率... 这些

听说有一种【状态法】可惜页面找不到了...  不太清楚。
希望有一种不要太繁琐的方法  谢谢老大们!
作者: 紫苍焰    时间: 2016-10-15 11:33
……
做一个不显示图标的状态。
事件附加该状态。
你要的效果分别添加在这些状态里。
只要你不设置自动解除它们就永不解除。
记得如果你不需要解除则永远不要给任何技能解除对应状态的效果。
以上。
作者: sq333333    时间: 2016-10-15 12:13
紫苍焰 发表于 2016-10-15 11:33
……
做一个不显示图标的状态。
事件附加该状态。

住宿那种全回复会解除状态吧
作者: sq333333    时间: 2016-10-16 21:06
sq333333 发表于 2016-10-15 12:13
住宿那种全回复会解除状态吧

七重老大   这个连接打不开...{:2_251:}
作者: RaidenInfinity    时间: 2016-10-16 21:46
本帖最后由 RaidenInfinity 于 2016-10-16 22:15 编辑

RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.  
  3.   alias :xparam_add_initialize :initialize
  4.   def initialize(actor_id)
  5.     xparam_add_initialize(actor_id)
  6.     xparam_extra_clear
  7.   end
  8.  
  9.   def xparam(xparam_id)
  10.     features_sum(FEATURE_XPARAM, xparam_id) + @xparam_extra[xparam_id]
  11.   end
  12.  
  13.   def xparam_plus(xparam_id, value)
  14.     @xparam_extra[xparam_id] += value  
  15.   end
  16.  
  17.   def xparam_add(type,value) #百分比 比如1%是0.01
  18.     case(type)
  19.       when :hit; xparam_plus(0,value) #HIT 命中率
  20.       when :eva; xparam_plus(1,value) #EVAsion 回避率
  21.       when :cri; xparam_plus(2,value) #CRItical 暴击率
  22.       when :cev; xparam_plus(3,value) #Critical EVasion 暴击回避率
  23.       when :mev; xparam_plus(4,value) #Magic EVasion 魔法回避率
  24.       when :mrf; xparam_plus(5,value) #Magic ReFlect 魔法反弹率
  25.       when :cnt; xparam_plus(6,value) #CouNTerattack 物理反击率
  26.       when :hrg; xparam_plus(7,value) #Hp ReGen 生命恢复率
  27.       when :mrg; xparam_plus(8,value) #Mp ReGen 魔法恢复率
  28.       when :trg; xparam_plus(9,value) #Tp ReGen 特技值恢复率
  29.     end
  30.   end  
  31.  
  32.   def xparam_extra_clear
  33.    @xparam_extra = [0,0,0,0,0,0,0,0,0,0]
  34.   end
  35. end


插入此插件脚本,然后记得要开启新的游戏。 如果想要继续现有的存档(不建议),请用触发一个事件脚本指令然后存档:
  1. $data_actors.count.times{|i|
  2.   next if i == 0
  3.   $game_actors[i].xparam_extra_clear
  4. }
复制代码


要增加或减少特殊属性,就要使用事件脚本指令
  1. $game_actors[人物ID].xparam_add(特殊属性代号,百分比的数值)
复制代码

或者
  1. $game_actors[人物ID].xparam_plus(特殊属性ID,百分比的数值)
复制代码


例子:
增加3号角色的回避率5%
  1. $game_actors[3].xparam_add(:eva,0.05)
复制代码

作者: sq333333    时间: 2016-10-19 08:36
RaidenInfinity 发表于 2016-10-16 21:46
class Game_Actor < Game_Battler
  
  alias :xparam_add_initialize :initialize

一直没上线,今天看到了大神的 脚本,万分感谢!!
作者: sq333333    时间: 2016-10-19 09:06
大神  插入这个插件会报错, 如果没有插入这个。  上面的脚本也能用,就是反击时是攻击自己,不知道这个插件是什么作用啊? 感谢大神!

【引用:

插入此插件脚本,然后记得要开启新的游戏。 如果想要继续现有的存档(不建议),请用触发一个事件脚本指令然后存档:

    $data_actors.count.times{|i|
      next if i == 0
      $game_actors[i].xparam_extra_clear
    }

复制代码】
作者: RaidenInfinity    时间: 2016-10-19 10:33
本帖最后由 RaidenInfinity 于 2016-10-19 10:36 编辑
  1. $data_actors.count.times{|i|
  2.       next if i == 0
  3.       $game_actors[i].xparam_extra_clear
  4.     }
复制代码


这段“事件脚本指令”(事件的第三页右下角,在事件内插入一段脚本)的用途是修复已有的存档,避免新定义的数值/变量因不存在存档中而报错。如果你并没有这种需求,而是重新开始游戏,就不需要这个了。

另外如果有报错或其他状况,请附上出错的讯息,和出错的脚本部分,以便获得协助。

作者: sq333333    时间: 2016-10-19 23:19
RaidenInfinity 发表于 2016-10-19 10:33
这段“事件脚本指令”(事件的第三页右下角,在事件内插入一段脚本)的用途是修复已有的存档,避免新定义 ...

原来是这样的啊,多谢大神




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