赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 105 |
最后登录 | 2020-5-5 |
在线时间 | 1 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 1 小时
- 注册时间
- 2008-2-3
- 帖子
- 8
|
4楼
楼主 |
发表于 2009-4-28 19:45:30
|
只看该作者
修改后的脚本放出`比较粗糙`逻辑不是太好```不过`在更深入理解GRSS之前``先将就一下吧```
存档可用版清爽任务系统````再次谢谢各位大大`
- # 本脚本由主页上的[任务显示与菜单综合加强]改编的,从新整和了一下,主要功能
- # 直接通过[$scene=Scene_RecordBook.new]调用查看任务显示,方便自制菜单等游
- # 戏的利用,也是应论坛上[linguoheng]的需求做的,现在发布出来方便大家以后使
- # 用
- #~ 小提示(如果还想改造的话):
- #~ $game_system.mission.to_s 主线任务
- #~ $game_system.partmission[i].to_s 第i个支线任务
- #~ main之前右键插入,全选RGSS代码后,粘贴即可.脚本名可自己取.
- #~ 添加主线任务的方法 : 在事件中代入脚本: $任务 = "这里写你的任务" (注意输入的时候引号不要丢.)
- #~ 添加支线任务的方法 : 在事件中代入脚本: $支线 = "这里写你的任务" 完成任务的时候输入脚本: $支线完成 = "这里任务与添加时务必一样" (这里输入脚本里的任务名称务必与添加时一至,否则不起任何效果.)
- #~ 注意:添加多个支线任务时,中间必须有对话或者其他事件隔开,不能都密密麻麻写在一起,否则只会读取最后一个任务。如图
- #==============================================================================
- # Game_System
- #------------------------------------------------------------------------------
- # 添加内容
- #==============================================================================
- class Game_System
- attr_accessor :mission #现在执行的任务
- attr_accessor :partmission
- alias carol3_ini initialize
- def initialize
- carol3_ini
- @mission = ""
- @partmission = []
- end
- end
- #==============================================================================
- # ■ Scene_Title
- #------------------------------------------------------------------------------
- # 处理标题画面的类。
- #==============================================================================
- class Scene_Title
- alias carol3_title1 main
- def main
- $map_infos = load_data("Data/MapInfos.rvdata")
- for key in $map_infos.keys
- $map_infos[key] = $map_infos[key].name
- end
- $支线 = nil
- $支线完成 = nil
- $任务 = ""
- carol3_title1
- end
- end
- class Scene_Map
- alias carol3_update update
- def update
- if $game_system.partmission == nil
- $game_system = Game_System.new
- end
- carol3_update
- if $支线 != nil
- for i in 0...$game_system.partmission.size
- if $game_system.partmission[i] == $支线
- $支线 = nil
- break
- end
- end
- if $支线 != nil
- $game_system.partmission.push($支线)
- $支线 = nil
- end
- end
- if $支线完成 != nil
- for i in 0...$game_system.partmission.size
- if $game_system.partmission[i] == $支线完成
- $game_system.partmission.delete($game_system.partmission[i])
- break
- end
- end
- $支线完成 = nil
- end
- end
- end
- #==============================================================================
- # ■ Game_Map
- #------------------------------------------------------------------------------
- # 处理地图的类。包含卷动以及可以通行的判断功能。
- # 本类的实例请参考 $game_map 。
- #==============================================================================
- class Game_Map
- def name
- return $map_infos[@map_id]
- end
- end
- #==============================================================================
- # Window_RecordBook
- #------------------------------------------------------------------------------
- # 菜单界面表示信息的窗口
- #==============================================================================
- class Window_RecordBook < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对象
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 544, 416)
- self.contents = Bitmap.new(width - 32, height - 32)
- if $任务 == ""
- $任务 = $game_system.mission
- else
- $game_system.mission = $任务
- end
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- self.contents.font.color = system_color
- self.contents.font.size = 20
- cx = self.contents.text_size("现在地点").width + 24
- self.contents.draw_text(4, 0, cx, 24, "现在地点")
- self.contents.font.color = normal_color
- self.contents.draw_text(4 + cx, 0, 444 - cx, 24, $game_map.name.to_s)
- self.contents.font.color = system_color
- cx = self.contents.text_size("主线任务").width + 24
- self.contents.draw_text(4, 32, cx, 24, "主线任务")
- self.contents.font.color = Color.new(240,250,75,255)
- self.contents.draw_text(4 + cx, 32, 444 - cx, 24, $game_system.mission.to_s)
- self.contents.font.color = system_color
- cx = self.contents.text_size("支线任务").width + 24
- self.contents.draw_text(4, 96, cx, 24, "支线任务")
- self.contents.font.color = normal_color
- if $game_system.partmission != nil
- for i in 0...$game_system.partmission.size
- self.contents.draw_text(4 + cx, 96 + i * 32, 444 - cx, 24, $game_system.partmission[i].to_s)
- end
- end
- end
- end
- #----------------------------------------------------------------------------
- #
- # ● 任务书调用场景!调用方法:$scene=Scene_RecordBook.new
- #
- #----------------------------------------------------------------------------
- class Scene_RecordBook
- def main
- @command_window = Window_RecordBook.new
- Graphics.transition
- loop do
- Graphics.update
- Input.update
- update
- if $scene != self
- break
- end
- end
- Graphics.freeze
- @command_window.dispose
- if $scene.is_a?(Scene_Title)
- Graphics.transition
- Graphics.freeze
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- if $game_system.partmission == nil
- $game_system = Game_System.new
- end
- @command_window.update
- if Input.trigger?(Input::B)
- #$game_system.se_play($data_system.cancel_se)
- $scene = Scene_Map.new
- return
- end
- end
- end
复制代码 |
|