赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 0 |
最后登录 | 2013-10-25 |
在线时间 | 6 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 610
- 在线时间
- 6 小时
- 注册时间
- 2013-8-24
- 帖子
- 1
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 lshy1993 于 2013-8-26 13:54 编辑
我想做一个查看任务的系统,其实就是在菜单里面看,分为上窗口列表下窗口解释
因为与道具窗口十分相似,所以我打算在道具的脚本里面修改。
但是修改几次后一直出现这种错误
或者
求帮助指出脚本编辑哪里出错?
或者是我从根本上考虑出错了。
以下是代码
首先是菜单里面按下后转到 Scene_Quest- class Scene_Quest
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- def main
- # 生成帮助窗口、任务窗口
- @help2_window = Window_Help.new
- @quest_window = Window_Quest.new
- # 关联帮助窗口
- @quest_window.help_window = @help2_window
- # 生成目标窗口 (设置为不可见・不活动)
- @target_window = Window_Target.new
- @target_window.visible = false
- @target_window.active = false
- # 执行过度
- Graphics.transition
- # 设置光标位置
- #@quest_window.index = @quest_index
- # 执行过渡
- Graphics.transition
- # 主循环
- loop do
- # 刷新游戏画面
- Graphics.update
- # 刷新输入信息
- Input.update
- # 刷新画面
- update
- # 如果画面切换的话的就中断循环
- if $scene != self
- break
- end
- end
- # 准备过渡
- Graphics.freeze
- # 释放窗口
- @help2_window.dispose
- @quest_window.dispose
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- # 刷新窗口
- @quest_window.update
- @help2_window.update
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 切换到菜单画面
- $scene = Scene_Menu.new(1)
- return
- end
- if Input.trigger?(Input::C)
- # 演奏无效 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- end
- end
复制代码 然后是Window_Quest- #==============================================================================
- # ■ Window_Quest
- #------------------------------------------------------------------------------
- # 任务介绍的窗口。
- #==============================================================================
- class Window_Quest < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 640, 352)
- @column_max = 1
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 获取物品
- #--------------------------------------------------------------------------
- def item
- return @data[self.index]
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- if self.contents != nil
- self.contents.dispose
- self.contents = nil
- end
- @data = []
- # 添加物品
- for i in 0...$game_quest.id.size
- @data.push($game_quest.name[i])
- end
- # 如果项目数不是 0 就生成位图、重新描绘全部项目
- @item_max = @data.size - 1
- if @item_max > 0
- #self.contents = Bitmap.new(width - 32, row_max * 32)
- for i in 0...@item_max
- draw_item(i)
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 描绘项目
- # index : 项目编号
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
- if $game_quest.done[index] == 1
- self.contents.font.color = normal_color
- else
- self.contents.font.color = disabled_color
- end
- x = 4 + index % 2 * (288 + 32)
- y = index / 2 * 32
- rect = Rect.new(x, y, self.width / @column_max - 32, 32)
- self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
- self.contents.draw_text(x + 28, y, 212, 32, item, 0)
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- item = @data.size
- @help_window.set_text($game_quest.help[item] == nil ? "" : $game_quest.help[item])
- end
- end
复制代码 最后是Game_Quest 用于储存任务的信息- #==============================================================================
- # ■ Game_Quest
- #------------------------------------------------------------------------------
- # 处理任务的类。本类的实例
- # 请参考 $game_quest。
- #==============================================================================
- class Game_Quest
- #--------------------------------------------------------------------------
- # ● 定义实例变量
- #--------------------------------------------------------------------------
- attr_reader :id # 序号
- attr_reader :name # 名称
- attr_reader :help # 说明
- attr_reader :done # 完成度
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # 建立任务序列
- @id = []
- @name = []
- @help = []
- @done = []
- end
- #--------------------------------------------------------------------------
- # ● 判断任务是否完成
- # iquest_id : 任务 ID
- #--------------------------------------------------------------------------
- def quest_done?(id)
- if @done[id] == 1
- # 已经完成
- return true
- end
- end
- end
复制代码 其中 我是想通过事件中的写入脚本来达到增加任务的目的
具体就是在接任务的地方 写入脚本比如
$game_quest.id[0] = 1
$game_quest.name[0] = "寻找木柴"
$game_quest.help[0] = "去杨家的柴房找找看"
$game_quest.done[0] = 0 #0 未完成 1 完成
$game_quest.id[1] = 2
$game_quest.name[1] = "生火"
$game_quest.help[1] = "去杨家的厨房 厨房在大院的北边"
$game_quest.done[1] = 0
但是运行测试后出现最初的截图 请大家指出错误 |
|