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

Project1

 找回密码
 注册会员
搜索
查看: 1981|回复: 19
打印 上一主题 下一主题

[已经解决] 怎么永久增加人物特殊的属性【已解决】

[复制链接]

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
跳转到指定楼层
1
发表于 2016-10-15 07:56:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 sq333333 于 2016-10-24 22:34 编辑

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

听说有一种【状态法】可惜页面找不到了...  不太清楚。
希望有一种不要太繁琐的方法  谢谢老大们!

评分

参与人数 1星屑 +9 收起 理由
李牧羊 + 9 >A<不知道

查看全部评分

Lv1.梦旅人

梦石
0
星屑
120
在线时间
486 小时
注册时间
2007-5-27
帖子
807
2
发表于 2016-10-15 11:33:06 | 只看该作者
……
做一个不显示图标的状态。
事件附加该状态。
你要的效果分别添加在这些状态里。
只要你不设置自动解除它们就永不解除。
记得如果你不需要解除则永远不要给任何技能解除对应状态的效果。
以上。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
3
 楼主| 发表于 2016-10-15 12:13:06 手机端发表。 | 只看该作者
紫苍焰 发表于 2016-10-15 11:33
……
做一个不显示图标的状态。
事件附加该状态。

住宿那种全回复会解除状态吧

点评

全回復無効ステート脚本  发表于 2016-10-15 12:38
http://usagimask.web.fc2.com/vxace_material.htm  发表于 2016-10-15 12:38
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
4
 楼主| 发表于 2016-10-16 21:06:56 | 只看该作者
sq333333 发表于 2016-10-15 12:13
住宿那种全回复会解除状态吧

七重老大   这个连接打不开...{:2_251:}
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6886
在线时间
7027 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

5
发表于 2016-10-16 21:46:20 | 只看该作者
本帖最后由 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)
复制代码

点评

在用事件的初始化之后补这行事件脚本指令  发表于 2018-3-5 08:03
$game_actors[人物ID].xparam_extra_clear  发表于 2018-3-5 08:02
请问版主大大,这样加了后即使初始化角色也不会初始化加的能力,有办法初始化加的能力吗,或者强制能力等于多少!!!  发表于 2018-3-5 01:45
读档的时候$data_actors.count.times{|i| next if i == 0 $game_actors[i].xparam_extra_clear }也可以吧···  发表于 2016-10-24 00:48

评分

参与人数 2星屑 +300 梦石 +1 收起 理由
怪蜀黍 + 250 + 1 楼主认可的解答
鑫晴 + 50 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
6
 楼主| 发表于 2016-10-19 08:36:13 | 只看该作者
RaidenInfinity 发表于 2016-10-16 21:46
class Game_Actor < Game_Battler
  
  alias :xparam_add_initialize :initialize

一直没上线,今天看到了大神的 脚本,万分感谢!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
7
 楼主| 发表于 2016-10-19 09:06:38 | 只看该作者
大神  插入这个插件会报错, 如果没有插入这个。  上面的脚本也能用,就是反击时是攻击自己,不知道这个插件是什么作用啊? 感谢大神!

【引用:

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

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

复制代码】
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6886
在线时间
7027 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

8
发表于 2016-10-19 10:33:31 | 只看该作者
本帖最后由 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.     }
复制代码


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

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

点评

谢谢,已经解决!!:-)  发表于 2017-12-27 23:59
后面那个*是要乘(*)还是加(+)就看你自己了。  发表于 2017-12-27 20:07
解决方法是把第10行(假设除了x换成s之外没有任何其他更动)换成 features_pi(FEATURE_SPARAM, sparam_id) * @sparam_extra[sparam_id]  发表于 2017-12-27 20:06
sparam是乘算而不是加算。直接改我在5楼贴的脚本是绝对会出事的。  发表于 2017-12-27 20:04
大大我想增加特殊能力,我把xparam改成sparam,其他功能都正常,就是战斗时候使用药品不能回血了?求帮帮我吧  发表于 2017-12-27 19:27
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
9
 楼主| 发表于 2016-10-19 23:19:59 | 只看该作者
RaidenInfinity 发表于 2016-10-19 10:33
这段“事件脚本指令”(事件的第三页右下角,在事件内插入一段脚本)的用途是修复已有的存档,避免新定义 ...

原来是这样的啊,多谢大神
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-4-19 15:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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