Project1

标题: 地图上的状态自动解除可不可以与变量相关? [打印本页]

作者: lirn    时间: 2015-5-15 14:21
标题: 地图上的状态自动解除可不可以与变量相关?
一般来说,在地图上的状态是走多少步后自动解除。那可不可以改成某变量变化多少才解除?
作者: 三途亚梦    时间: 2015-5-15 16:41
本帖最后由 三途亚梦 于 2015-5-15 17:58 编辑

默认是20步等于一回合。
↓变量2或常量“1”其中值较大者。

RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   def steps_for_turn
  3.     return [$game_variables[2], 1].max
  4.   end
  5. end


#=======================================================

在Game_BattlerBase的refresh里,仿造附加“战斗不能”状态的方式写你需要的效果。
即类似
  1.     $game_variables[2] > 0 ? add_state(2) : remove_state(2)
复制代码
限制回复量的部分可以考虑直接调整药理知识来实现。

无法使用则比较麻烦一些咯。
也是在Game_BattlerBase中,对usable?(item)方法加一些细节,在人物如果处于饱食状态时case when 一下物品id,然后return false。
也可以通过备注。
作者: lirn    时间: 2015-5-15 17:36
三途亚梦 发表于 2015-5-15 16:41
默认是20步等于一回合。
↓变量2或常量“1”其中值较大者。
class Game_Actor < Game_Battler


可能是我得不够清楚。

举个例子,就是我在游戏里设置里时间变量,吃了饭之后,附加一个“吃饱了”的状态,就无法再吃东西,或者吃东西不再有效果。

之后有两个思路。

1个是时间变量:比如小时变量增加了3之后,该变量解除。

2个是食物增加饱食度变量,该变量随同时间变量变化而变化,当饱食度变量低于某一个值,自动解决该状态。
作者: lirn    时间: 2015-5-15 18:55
三途亚梦 发表于 2015-5-15 16:41
默认是20步等于一回合。
↓变量2或常量“1”其中值较大者。

class Game_Actor < Game_Battler

谢谢,我想我明白了。你举的例子适合使用饱食度,不过我觉得改成这样行不?

if $game_variables[2] > 70  
    add_state(2)
end
if $game_variables[2] < 30
remove_state(2)
end






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