Project1

标题: 默认战斗系统,在每个回合开始前恢复固定数值的SP [打印本页]

作者: sunsega    时间: 2008-2-1 05:57
标题: 默认战斗系统,在每个回合开始前恢复固定数值的SP
为实现“在每个回合开始前恢复固定数值的SP”这一功能:
我是这样做的:
在Scene_Battle 2开头的
  def start_phase1
    # 转移到回合 1
    @phase = 1
    # 清除全体同伴的行动
    $game_party.clear_actions
    # 设置战斗事件
    setup_battle_event
  end
后追加
@active_battler.sp += 20

@active_battler.sp += @active_battler.maxsp * 0.20
时,在战斗测试时出现如下错误:
“SP”或“MAXSP”为空类,无法引用。

请教高人指点应如何修改? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 沉影不器    时间: 2008-2-1 06:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: sunsega    时间: 2008-2-1 07:11
回楼上,我把
@active_battler.sp += 20

@active_battler.sp += @active_battler.maxsp * 0.20
移动到
Scene_Battle 3的start_phase2后,依然还是报同样错误。
这个是不是其他地方还有什么不对的地方?我没有使用其他现成脚本,也没有做任何其他改动。
作者: 小角色    时间: 2008-2-1 07:14
在Scene_Battle 4
#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
#  处理战斗画面的类。
#=========================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 开始主回合
  #--------------------------------------------------------------------------
  def start_phase4
后面这里添加试试,手头没有RM,我不能肯定,抱歉
作者: sunsega    时间: 2008-2-1 08:00
谢谢楼上,我会去实验下,明天少后我会确认并回复。
作者: link006007    时间: 2008-2-1 09:22
不是可以设置每个回合执行一次公共事件吗
作者: 禾西    时间: 2008-2-1 18:19
這樣寫才對
在Scene_Battle 4
#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
#  处理战斗画面的类。
#=========================================================================
  def start_phase4
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      actor.sp += 20
    end

作者: 水迭澜    时间: 2008-2-1 21:40
  def start_phase2里边加
    for actor in $game_party.actors
    actor.sp += 20
    end

LS的方法应该也可行吧-v-反正在处理完战斗执行判断之前或者之后加都一样-v-看你喜欢哪个了
@active_battler在清空以后会等于nil的……
作者: sunsega    时间: 2008-2-3 03:25
感谢楼上几位的回答。
禾西朋友的写法无误,但是实际运行时没有任何效果出现...
水迭澜朋友提供的指点确实有效,但是实际运行的时候是在第一个角色行动指令下达后才能出现效果。
是否是默认RGSS在Scene_Battle 1时没有active_battler和actor,所以无法在那时候加?
作者: 水迭澜    时间: 2008-2-3 03:35
不是这个问题
实际上我们的写法都是用$game_party.actors的数组作判断的。所以没有@active_battler应该不影响。关键就是加在那里才有效果而已
我加在你的地方ms不行……= =
作者: 水迭澜    时间: 2008-2-3 07:38
你不会用的是即时战斗吧?
我测试是己方全体角色命令完了才出现
作者: 精灵使者    时间: 2008-2-3 09:23
默认战斗系统我想应该把恢复固定数值的SP写为公共事件,然后在每个战斗事件里面调用(0X1回合)
作者: 沉影不器    时间: 2008-2-3 19:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: sunsega    时间: 2009-6-12 08:00
回楼上的朋友:
$game_party.actors的确我也在这个功能里按您说的办法试验过了,效果是有,但是问题是效果出现的时间比较成问题:是在对己方第一个人物下达完指令后才会出现...




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