Project1

标题: $game_actors[1].maxhp = $game_actors[1].maxhp * 2战斗中使用出错 [打印本页]

作者: DBZ-1    时间: 2010-10-13 19:26
标题: $game_actors[1].maxhp = $game_actors[1].maxhp * 2战斗中使用出错
$game_actors[1].maxhp = $game_actors[1].maxhp * 2
战斗中一个招式附带的
报错
怎么解决
作者: DBZ-1    时间: 2010-10-13 21:22
战斗中某招式公共事件用事件写的这句
一号主角的
作者: 六祈    时间: 2010-10-13 22:31
本帖最后由 六祈 于 2010-10-13 22:36 编辑
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取 MaxHP
  3.   #--------------------------------------------------------------------------
  4.   def maxhp
  5.     n = [[base_maxhp + @maxhp_plus, 1].max, 9999].min
  6.     for i in @states
  7.       n *= $data_states[i].maxhp_rate / 100.0
  8.     end
  9.     n = [[Integer(n), 1].max, 9999].min
  10.     return n
  11.   end
复制代码
看Game_Actor的代码,很明显maxhp不是一个属性【准确的说,它不是一个实例变量的接口】

它的获取是根据成长曲线获得值【base_maxhp方法获得】和实例变量@maxhp_plus取得

这么说你明白了么?
[line]2[/line]
愚者觉得你这个想要实现的效果莫名其妙,不过考虑到xxxxx,就直接给你一个可以实现该效果的代码,你可以无视该分隔线上面部分的话
  1. class Game_Actor
  2. def maxhp=(value)
  3. @maxhp_plus += value - maxhp
  4. end
  5. end
复制代码

作者: wbsy8241    时间: 2010-10-13 23:34
本帖最后由 wbsy8241 于 2010-10-13 23:35 编辑

LS... Game_Battler 里有的啊= =
  1.   #--------------------------------------------------------------------------
  2.   # ● 设置 MaxHP
  3.   #     maxhp : 新的 MaxHP
  4.   #--------------------------------------------------------------------------
  5.   def maxhp=(maxhp)
  6.     @maxhp_plus += maxhp - self.maxhp
  7.     @maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
  8.     @hp = [@hp, self.maxhp].min
  9.   end
复制代码
请尽量将1句脚本写在同1行里
可以写成:
maxhp = $game_actors[1].maxhp * 2
$game_actors[1].maxhp = maxhp

或者带个连接符
$game_actors[1].maxhp = $game_actors\
[1].maxhp * 2


作者: 亿万星辰    时间: 2010-10-14 09:09
就事论事而言——$game_actors[1].maxhp*=2
作者: bbaugle    时间: 2010-10-14 12:33
是$game_party.actors[0].maxhp吧 - -..
作者: DBZ-1    时间: 2010-10-14 21:10
2l,value是什么意思
貌似一点没提到1号主角和*2吧
作者: DBZ-1    时间: 2010-10-14 21:16
4l解决了……谢谢




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