查看: 2043|回复: 3

[已经解决] 进来看看我这个角色新加的变量该怎么改

[复制链接]
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2016-4-13 22:51:33 | 显示全部楼层 |阅读模式

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

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

×
我给角色设置了个体值努力值。
可是我角色加入选初始化,那么角色的个体值就会重复刷两次,这样当前HP和MXHP,SP,就对不上
[pre lang="ruby"]class Game_Battler
          attr_accessor :nl_zh
     attr_accessor :nl_maxhp
     attr_accessor :nl_maxsp
     attr_accessor :nl_str
     attr_accessor :nl_dex
     attr_accessor :nl_agi
     attr_accessor :nl_int
     attr_accessor :gtz_maxhp
     attr_accessor :gtz_maxsp
     attr_accessor :gtz_str
     attr_accessor :gtz_dex
     attr_accessor :gtz_agi
     attr_accessor :gtz_int

     alias initialize2016412 initialize
  def initialize
    initialize2016412
    #初始努力值   
    @nl_zh = 600
    @nl_maxhp = 0
    @nl_maxsp = 0
    @nl_str = 0
    @nl_dex = 0
    @nl_agi = 0
    @nl_int = 0
    #个体值
   @gtz_maxhp = rand(31)
   @gtz_maxsp = rand(31)
   @gtz_str = rand(31)
   @gtz_dex = rand(31)
   @gtz_agi = rand(31)
   @gtz_int = rand(31)

  end
end

class Game_Actor < Game_Battler
       attr_accessor :nl_zh
     attr_accessor :nl_maxhp
     attr_accessor :nl_maxsp
     attr_accessor :nl_str
     attr_accessor :nl_dex
     attr_accessor :nl_agi
     attr_accessor :nl_int
     attr_accessor :gtz_maxhp
     attr_accessor :gtz_maxsp
     attr_accessor :gtz_str
     attr_accessor :gtz_dex
     attr_accessor :gtz_agi
     attr_accessor :gtz_int

     alias setup2016412 setup
    def setup(actor_id)
    setup2016412(actor_id)
    #初始努力值   
    @nl_zh = 600
    @nl_maxhp = 0
    @nl_maxsp = 0
    @nl_str = 0
    @nl_dex = 0
    @nl_agi = 0
    @nl_int = 0
    #个体值
   @gtz_maxhp = rand(31)
   @gtz_maxsp = rand(31)
   @gtz_str = rand(31)
   @gtz_dex = rand(31)
   @gtz_agi = rand(31)
   @gtz_int = rand(31)

  end
end[/pre]

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-4-13 23:27:43 | 显示全部楼层
……所以你为什么要刷两遍?
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

 楼主| 发表于 2016-4-13 23:33:23 | 显示全部楼层
喵呜喵5 发表于 2016-4-13 23:27
……所以你为什么要刷两遍?

我要是不在Game_Battler里面设置,那么游戏中就P不出来,也不能在
    n = [[base_maxhp + @maxhp_plus + @gtz_maxhp +@nl_maxhp / 4, 1].max, 999999].min
会是没有定义@gtz_maxhp。
要是没在Game_Actor < Game_Battler里面设置,初始化角色入队就不会刷新@gtz_maxhp
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-4-13 23:36:47 | 显示全部楼层
那你刷新第二遍结束之后再重新计算一下会出错的能力值不就好了

点评

另外删掉1~36行,然后将Game_Actor#setup方法里面的执行顺序换一下不就行了吗?  发表于 2016-4-13 23:47
楼主是怎么莫名其妙解决的?  发表于 2016-4-13 23:44

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部