设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2040|回复: 6

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

[复制链接]

Lv3.寻梦者

双子人

梦石
0
星屑
3165
在线时间
3616 小时
注册时间
2009-4-4
帖子
4154

开拓者

发表于 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

Lv3.寻梦者

梦石
0
星屑
3559
在线时间
2260 小时
注册时间
2008-1-28
帖子
3193

开拓者

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

评分

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

查看全部评分

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

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3165
在线时间
3616 小时
注册时间
2009-4-4
帖子
4154

开拓者

 楼主| 发表于 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]
复制代码
却没有问题。
回复

使用道具 举报

Lv4.逐梦者

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

评分

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

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3165
在线时间
3616 小时
注册时间
2009-4-4
帖子
4154

开拓者

 楼主| 发表于 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  
复制代码
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11149
在线时间
21662 小时
注册时间
2010-10-24
帖子
308
发表于 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 认可答案

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3165
在线时间
3616 小时
注册时间
2009-4-4
帖子
4154

开拓者

 楼主| 发表于 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
复制代码
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 22:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表