Project1

标题: maxhp 血条 问题 [打印本页]

作者: sblkhgm    时间: 2012-12-14 13:43
标题: maxhp 血条 问题
本帖最后由 sblkhgm 于 2012-12-14 20:02 编辑

我自己设置了个血条  neihp  ,想把他  替换 maxhp,
  1.   # ● 更改 HP
  2.   #     hp : 新的 HP
  3.   #--------------------------------------------------------------------------
  4.   def hp=(hp)
  5.    # @hp = [[hp, maxhp].min, 0].max   原来的#############
  6.     @hp = [[hp, neihp].min, 0].max      改的##########
  7.     # 解除附加的战斗不能状态
复制代码
在事件里加血没问题  可是在战斗中  攻击敌人是 就出错




这样怎么改
作者: j433463    时间: 2012-12-14 16:06
本帖最后由 j433463 于 2012-12-14 16:10 编辑

maxhp 是内定就有的,neihp 战斗的脚本并没有定义它吧?

undefined local variable or method 'neihp' #<--未定义的局部变量或方法

不是把 maxhp 改成 neihp 就可以了,内定没有的要自己定义,譬如:
  1. def neihp
  2.   retuen 200
  3. end
复制代码
这样执行时游戏才知道 neihp 的值是 200,
不然 rm 是不认识 neihp 是什么东东。

作者: 凌空飘雪    时间: 2012-12-14 17:26
服了,LZ  “@hp = [[hp, maxhp].min, 0].max”和血条一毛钱的关系都没有,OK?
这部分的内容是用在【战斗者HP变化时】,先把 [变更的血量] 和 [战斗者的MAXHP] 相比,然后取其中的最小值(保证HP不会超过MAXHP) 之后在和 [0] 比较,取最大值(保证HP不会比0小),你改成什么neihp,不出问题才怪!
作者: cinderelmini    时间: 2012-12-14 17:51
设置了这个neihp不知道是写在哪里呢?
如果是Game_Actor的话,最好是搬到Game_Battler里~
因为敌人和角色都有HP,都要用到这个函数~
不然就在Game_Enemy里也写一个一样的设置neihp的函数~

以上~大概是关键吧……(目测
作者: sblkhgm    时间: 2012-12-14 20:02
cinderelmini 发表于 2012-12-14 17:51
设置了这个neihp不知道是写在哪里呢?
如果是Game_Actor的话,最好是搬到Game_Battler里~
因为敌人和角色都 ...

我是想加血的时候  控制在 neihp 这个变量范围  就是把maxhp 换成 neihp    不过我在战场里 一直刷新 [hp,neihp].min  就没问题了
作者: cinderelmini    时间: 2012-12-14 20:14
sblkhgm 发表于 2012-12-14 20:02
我是想加血的时候  控制在 neihp 这个变量范围  就是把maxhp 换成 neihp    不过我在战场里 一直刷新 [hp ...

呃……
总之哀家只是觉得出错的地方应该是把Actor和Enemy两方都要用到的:neihp
这个函数只写给了Actor,导致再刷新敌人HP的时候没有找到neihp这个作为判定的函数值,
所以弹窗了……

试试把:
def neihp
这一段放到Game_Battler里面去,
或者在Game_Enemy也写一个~
这样应该不用一直刷新……

ps:话说在战场里一直刷新这两个值是什么意思咧……




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