查看: 2625|回复: 6

[推荐问答] 如何实现进入地图中之后,执行某个队伍的列表内容?

[复制链接]

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-10-10 13:00:48 | 显示全部楼层 |阅读模式

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

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

×
这个问题有一些难度。希望更高的高手来帮一下忙。

原因是执行$data_troops[troop_id].pages[0].list的时候出错了。
但是我检查不出错误来。

出错部分:

  1. @main_interpreter = Interpreter.new
  2. for troop_id in 0...encounter_list.size
  3.       @start_list = $data_troops[troop_id].pages[0].list
  4.       @main_interpreter.setup(@start_list, 0)
  5.       @main_interpreter.update
  6.     end
复制代码
这是地图设置中的队伍。
null15.jpg

我想让它执行下面战斗事件的东西。
null75.jpg
梦石
0
星屑
5179
在线时间
2260 小时
注册时间
2008-1-28
回帖
3115

开拓者

发表于 2012-10-10 20:38:15 | 显示全部楼层
我试着把怪物清空在来打的,显示的结果是还是出现战斗场景但是没有怪= =
能把具体的出错原因贴上来么?例如for nil class或者syntax error这种原因。
还有不知道你是否有没有套用过别的脚本?

评分

参与人数 1星屑 +132 收起 理由
hys111111 + 132 感谢回答

查看全部评分

[pmshow=23,31925]阿柏蛇[/pmshow]
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

 楼主| 发表于 2012-10-10 21:16:36 | 显示全部楼层
飞3a 发表于 2012-10-10 20:38
我试着把怪物清空在来打的,显示的结果是还是出现战斗场景但是没有怪= =
能把具体的出错原因贴上来么?例如f ...

pages那个nil class。

但是找不到原因。Game_Troop和RPG::Troop均没有被其他脚本套用。
而Scene_Battle1第163行附近的

  1. for index in 0...$data_troops[@troop_id].pages.size
  2.       # 获取事件页
  3.       page = $data_troops[@troop_id].pages[index]
复制代码
却没有问题。
回复

使用道具 举报

梦石
0
星屑
14595
在线时间
22063 小时
注册时间
2010-10-24
回帖
302
发表于 2012-10-10 21:21:51 | 显示全部楼层
我觉得问题应该是出在encounter_list.size身上。
改成for troop_id in 1..10表示成功执行。

评分

参与人数 1星屑 +200 收起 理由
hys111111 + 200 感谢回答

查看全部评分

噫
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

 楼主| 发表于 2012-10-10 21:28:21 | 显示全部楼层
imsy 发表于 2012-10-10 21:21
我觉得问题应该是出在encounter_list.size身上。
改成for troop_id in 1..10表示成功执行。 ...

我忘了说明下,这个我放在Game_Map里面执行……
  1.   def encounter_list
  2.     return @map.encounter_list
  3.   end
复制代码
如果局部还是查不出的话干脆整段发上来吧……

  1. #——————————————————————————————————
  2. # Game_Map
  3. #—————————————————————————————————

  4. class Game_Map
  5.   attr_reader :start_list
  6.   attr_reader :auto_list
  7.   
  8.   alias hys_map_setting_initialize initialize
  9.   alias hys_map_setting_setup setup
  10.   alias hys_map_setting_update update
  11.   
  12.   def initialize
  13.     hys_map_setting_initialize
  14.     @start_list = [RPG::EventCommand.new]
  15.     @auto_list = [RPG::EventCommand.new]
  16.     @main_interpreter = Interpreter.new
  17.   end
  18.   
  19.   def setup(map_id)
  20.     hys_map_setting_setup(map_id)
  21.     for troop_id in 0...encounter_list.size
  22.       @start_list = $data_troops[troop_id].pages[0].list
  23.       @main_interpreter.setup(@start_list, 0)
  24.       @main_interpreter.update
  25.     end
  26.   end
  27.   
  28. end  
复制代码
回复

使用道具 举报

梦石
0
星屑
14595
在线时间
22063 小时
注册时间
2010-10-24
回帖
302
发表于 2012-10-10 21:53:36 | 显示全部楼层
pages那个nil class

是因为$data_troops[0]不存在
p $data_troops[1].pages没问题
p $data_troops[0].pages就pages那个nil class了

若有口胡请无视
for troop_id in 1...encounter_list.size
应该会好

评分

参与人数 1梦石 +2 收起 理由
hys111111 + 2 认可答案

查看全部评分

噫
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

 楼主| 发表于 2012-10-11 13:31:16 | 显示全部楼层
imsy 发表于 2012-10-10 21:53
pages那个nil class

是因为$data_troops[0]不存在


多谢了。你让我终于找到了一个重要部分。
正确解法:
  1.     for troop_id in encounter_list
  2.       @start_list = $data_troops[troop_id].pages[0].list
  3.       @main_interpreter.setup(@start_list, 0)
  4.       @main_interpreter.update
  5.     end
  6.   end
复制代码
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部