查看: 2281|回复: 13

默认战斗系统,在每个回合开始前恢复固定数值的SP

  [复制链接]
梦石
0
星屑
50
在线时间
8 小时
注册时间
2005-10-21
回帖
336
发表于 2008-2-1 05:57:13 | 显示全部楼层 |阅读模式

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

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

×
为实现“在每个回合开始前恢复固定数值的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”为空类,无法引用。

请教高人指点应如何修改?
版务信息:本贴由楼主自主结贴~
世界上没有英雄,所以我的故事里也没有勇者...
头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-2-1 06:06:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
50
在线时间
8 小时
注册时间
2005-10-21
回帖
336
 楼主| 发表于 2008-2-1 07:11:48 | 显示全部楼层
回楼上,我把
@active_battler.sp += 20
或
@active_battler.sp += @active_battler.maxsp * 0.20
移动到
Scene_Battle 3的start_phase2后,依然还是报同样错误。
这个是不是其他地方还有什么不对的地方?我没有使用其他现成脚本,也没有做任何其他改动。
世界上没有英雄,所以我的故事里也没有勇者...
回复

使用道具 举报

不画画就死星人

梦石
0
星屑
171
在线时间
1819 小时
注册时间
2007-6-14
回帖
3133
发表于 2008-2-1 07:14:38 | 显示全部楼层
在Scene_Battle 4
#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
#  处理战斗画面的类。
#=========================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 开始主回合
  #--------------------------------------------------------------------------
  def start_phase4
后面这里添加试试,手头没有RM,我不能肯定,抱歉
渣绘关注慎重
[url=http://www.pixiv.net/member.php?id=1160389][color=DimGray]http://www.pixiv.net/member.php?id=1160389[/color][/url]
回复

使用道具 举报

梦石
0
星屑
50
在线时间
8 小时
注册时间
2005-10-21
回帖
336
 楼主| 发表于 2008-2-1 08:00:32 | 显示全部楼层
谢谢楼上,我会去实验下,明天少后我会确认并回复。
世界上没有英雄,所以我的故事里也没有勇者...
回复

使用道具 举报

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
回帖
2437

贵宾

发表于 2008-2-1 09:22:14 | 显示全部楼层
不是可以设置每个回合执行一次公共事件吗
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2008-2-1 18:19:48 | 显示全部楼层
這樣寫才對
在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
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

御灵的宠物

梦石
12
星屑
8481
在线时间
94 小时
注册时间
2006-12-11
回帖
3101

第2届TG大赛亚军

发表于 2008-2-1 21:40:09 | 显示全部楼层
  def start_phase2里边加
    for actor in $game_party.actors
    actor.sp += 20
    end

LS的方法应该也可行吧-v-反正在处理完战斗执行判断之前或者之后加都一样-v-看你喜欢哪个了
@active_battler在清空以后会等于nil的……
我的Lofter:http://nightoye.lofter.com/

回复

使用道具 举报

梦石
0
星屑
50
在线时间
8 小时
注册时间
2005-10-21
回帖
336
 楼主| 发表于 2008-2-3 03:25:56 | 显示全部楼层
感谢楼上几位的回答。
禾西朋友的写法无误,但是实际运行时没有任何效果出现...
水迭澜朋友提供的指点确实有效,但是实际运行的时候是在第一个角色行动指令下达后才能出现效果。
是否是默认RGSS在Scene_Battle 1时没有active_battler和actor,所以无法在那时候加?
世界上没有英雄,所以我的故事里也没有勇者...
回复

使用道具 举报

御灵的宠物

梦石
12
星屑
8481
在线时间
94 小时
注册时间
2006-12-11
回帖
3101

第2届TG大赛亚军

发表于 2008-2-3 03:35:44 | 显示全部楼层
不是这个问题
实际上我们的写法都是用$game_party.actors的数组作判断的。所以没有@active_battler应该不影响。关键就是加在那里才有效果而已
我加在你的地方ms不行……= =
我的Lofter:http://nightoye.lofter.com/

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部