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

Project1

 找回密码
 注册会员
搜索
查看: 2422|回复: 8
打印 上一主题 下一主题

[已经解决] 关于柳柳脚本的综合任务菜单栏的脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
41
在线时间
1026 小时
注册时间
2011-9-10
帖子
1415
跳转到指定楼层
1
发表于 2012-5-25 19:56:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
就是下面这个脚本:(修改过...)

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================  
#==============================================================================
# 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.rxdata")  
    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
    carol3_update
    if $支线 != nil
      for i in 0...$game_system.partmission.size
        if $game_system.partmission == $支线
          $支线 = 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 == $支线完成
          $game_system.partmission.delete($game_system.partmission)
          break
        end
      end
      $支线完成 = nil
    end
  end
end  
#==============================================================================
# Window_MenuStatus
#------------------------------------------------------------------------------
# 显示菜单画面和同伴状态的窗口。
#==============================================================================
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化目标
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 480, 384)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.active = false
    self.index = -1
    @position = 0
    @count = 0
    @oldposition = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 90
      actor = $game_party.actors
      self.contents.font.size = 18
      draw_actor_active_graphic(actor, x - 40, y + 50)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x, y + 25)
      draw_actor_state(actor, x + 90, y + 25)
      draw_actor_exp(actor, x, y + 50)
      draw_actor_hp(actor, x + 236, y + 25)
      draw_actor_sp(actor, x + 236, y + 50)
    end
  end
  #--------------------------------------------------------------------------
  # ● 绘制行走图
  #--------------------------------------------------------------------------
  def draw_actor_active_graphic(actor, x, y)
    bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
    cw = bitmap.width / 4
    ch = bitmap.height / 4
    p = @position * cw
    src_rect = Rect.new(p, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end
  #--------------------------------------------------------------------------
  # ● 刷新光标矩形
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index *90-5, self.width - 32, 90)
    end
  end   
  def update
    super
    @count += 1
    @count %= 15
    if @count == 0
      @position = (@position + 1) % 4
    end
    if @position != @oldposition
      @oldposition = @position
      refresh
    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(160, 384, 480, 480)
    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
    self.contents.font.color = normal_color
    cx = self.contents.text_size("当前地点").width + 24
    self.contents.draw_text(4, 0, cx, 24, "当前地点")
    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
    for i in 0...$game_system.partmission.size
      self.contents.draw_text(4 + cx, 96 + i * 32, 444 - cx, 24, $game_system.partmission.to_s)
    end
  end
end
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  处理菜单画面的类。
#==============================================================================
class Scene_Menu
  #--------------------------------------------------------------------------
  # ● 初始化对像
  # menu_index : 命令光标的初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
    @切换状态暂停 = ""
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 生成命令窗口
    s1 = " 人物背包"#$data_system.words.item
    s2 = " 领悟技能"#$data_system.words.skill
    s3 = " 更换装备"#$data_system.words.equip
    s4 = " 人物状态"
    s5 = " 任务列表"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5,])
    @command_window.index = @menu_index
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0
      # 物品、特技、装备、状态无效化
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # 生成游戏时间窗口
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 193
    # 生成金钱窗口
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 320
    # 生成状态窗口
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    #—— 生成天书窗口
    @recordbook_window = Window_RecordBook.new
    @recordbook_window.z = 1000
    #—— 生成外边框窗口
    @outside_window = Window_Outside.new
    @outside_window.visible = true
    @outside_window.z = 1001
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果切换画面就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
    @playtime_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @outside_window.dispose
    @recordbook_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新窗口
    @command_window.update
    @playtime_window.update
    @gold_window.update
    @status_window.update
    # 命令窗口被激活的情况下: 调用 update_command
    if @command_window.active
      update_command
      return
    end
    # 状态窗口被激活的情况下: 调用 update_status
    if @status_window.active
      update_status
      return
    end
    if @outside_window.visible == false
      update_recordbook
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (命令窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_command
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换的地图画面
      $scene = Scene_Map.new
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 同伴人数为 0、存档、游戏结束以外的场合
      if $game_party.actors.size == 0 and @command_window.index < 4
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 命令窗口的光标位置分支
      case @command_window.index
      when 0 # 物品
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到物品画面
        $scene = Scene_Item.new
      when 1 # 特技
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2 # 装备
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3 # 状态
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
      when 4 # 查看任务
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @outside_window.visible = false
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (查看天书的情况下)
  #--------------------------------------------------------------------------
  def update_recordbook
    if @切换状态暂停 == "天书消失"
      if @recordbook_window.y < 384
        @recordbook_window.y +=64
        @status_window.y -= 16
        return
      else
        @切换状态暂停 = ""
        @outside_window.visible = true
        @command_window.active = true
      end
    else
      if @recordbook_window.y >0
        @recordbook_window.y -= 32
        @status_window.y += 8
        return
      else
        @status_window.visible = false
        if Input.trigger?(Input::B)
          @切换状态暂停 = "天书消失"
          $game_system.se_play($data_system.cancel_se)
          @status_window.visible = true
          return
        end
      end
    end
  end   
  #--------------------------------------------------------------------------
  # ● 刷新画面 (状态窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_status
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 激活命令窗口
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 命令窗口的光标位置分支
      case @command_window.index
      when 1 # 特技
        # 本角色的行动限制在 2 以上的情况下
        if $game_party.actors[@status_window.index].restriction >= 2
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到特技画面
        $scene = Scene_Skill.new(@status_window.index)
      when 2 # 装备
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换的装备画面
        $scene = Scene_Equip.new(@status_window.index)
      when 3 # 状态
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到状态画面
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end
#==============================================================================
# Window_Outside
#------------------------------------------------------------------------------
# 外边框窗口
#==============================================================================
class Window_Outside < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(160, 384, 480, 96)
    self.back_opacity = 0
  end
end
#==============================================================================
# ■ Window_PlayTime
#------------------------------------------------------------------------------
# 菜单画面的系统时间表示
#==============================================================================
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 18
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.font.color = text_color(6)
    time = Time.now
    text = time.strftime("%x %X")
    self.contents.draw_text(-2, 32, 130, 32, text, 2)
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 160, 32, "在线时间为:")
    self.contents.draw_text(-2, 64, 130, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
  
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


请求高手回答,就是呼叫下面这个版面的脚本是什么?

还有,请求高手在告诉我呼叫这个版面的脚本的同时,能不能把它的大小改变一下,就是把他的大小改成像其他选项的面积一样(如状态、装备)这么大...

请求高手指点!

点评

$scene = Scene_Status.new  发表于 2012-5-26 16:48
另一個問題在原帖回覆了  发表于 2012-5-26 16:33
請另開一個問題問或是在我下面回覆 不然我回帖的話就連帖了@@ 會被罰  发表于 2012-5-26 16:27
請重新複製  发表于 2012-5-26 16:04
修正了!  发表于 2012-5-26 16:04

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
2
发表于 2012-5-25 20:47:32 | 只看该作者
本帖最后由 sai90306 于 2012-5-25 20:53 编辑

如果只是乎出視窗的話...可以試試看
$scene =Scene_Menu.new

大小的話可能是調整
RUBY 代码复制
  1. class Window_RecordBook < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对象
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     super(160, 384, 480, 480)
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.     if $任务 == ""
  9.       $任务 = $game_system.mission
  10.     else  
  11.       $game_system.mission = $任务
  12.     end
  13.     refresh
  14.   end

的super(160, 384, 480, 480)
為super(160, 384, 480, LZ要的高度)

另外
如果要只乎出任務視窗必須重寫一個Scene_Menu了@@

点评

我就只要任务的板块,你给我的视窗是菜单的  发表于 2012-5-25 23:02
我试试看,如果可以的话,这悬赏就是你的了!  发表于 2012-5-25 21:42
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
41
在线时间
1026 小时
注册时间
2011-9-10
帖子
1415
3
 楼主| 发表于 2012-5-25 23:05:29 | 只看该作者
sai90306 发表于 2012-5-25 20:47
如果只是乎出視窗的話...可以試試看
$scene =Scene_Menu.new

那个super,你能调好给我吗?我不知道怎么调,我调了,也似乎没有任何的改动...
还有,我要出现任务窗口,不是出现菜单

点评

能發下工程嗎?我想直接在裡面改和測試比較方便  发表于 2012-5-25 23:35
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
4
发表于 2012-5-25 23:46:14 | 只看该作者
本帖最后由 sai90306 于 2012-5-26 00:08 编辑

先試試看這個好了
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================  
  4. #==============================================================================
  5. # Game_System
  6. #------------------------------------------------------------------------------
  7. # 添加内容
  8. #==============================================================================
  9. class Game_System
  10.   attr_accessor :mission #现在执行的任务
  11.   attr_accessor :partmission
  12.   alias carol3_ini initialize
  13.   def initialize
  14.     carol3_ini
  15.     @mission = ""
  16.     @partmission = []
  17.   end
  18. end
  19. #==============================================================================
  20. # ■ Scene_Title
  21. #------------------------------------------------------------------------------
  22. #  处理标题画面的类。
  23. #==============================================================================
  24. class Scene_Title
  25.   alias carol3_title1 main
  26.   def main
  27.     $map_infos = load_data("Data/MapInfos.rxdata")  
  28.     for key in $map_infos.keys  
  29.       $map_infos[key] = $map_infos[key].name  
  30.     end  
  31.     $任务 = ""
  32.     $支线 = nil
  33.     $支线完成 = nil
  34.     carol3_title1
  35.   end
  36. end
  37. class Scene_Map
  38.   alias carol3_update update
  39.   def update
  40.     carol3_update
  41.     if $支线 != nil
  42.       for i in 0...$game_system.partmission.size
  43.         if $game_system.partmission == $支线
  44.           $支线 = nil
  45.           break
  46.         end
  47.       end
  48.       if $支线 != nil
  49.         $game_system.partmission.push($支线)
  50.         $支线 = nil
  51.       end
  52.     end
  53.     if $支线完成 != nil
  54.       for i in 0...$game_system.partmission.size
  55.         if $game_system.partmission == $支线完成
  56.           $game_system.partmission.delete($game_system.partmission)
  57.           break
  58.         end
  59.       end
  60.       $支线完成 = nil
  61.     end
  62.   end
  63. end  
  64. #==============================================================================
  65. # Window_MenuStatus
  66. #------------------------------------------------------------------------------
  67. # 显示菜单画面和同伴状态的窗口。
  68. #==============================================================================
  69. class Window_MenuStatus < Window_Selectable
  70.   #--------------------------------------------------------------------------
  71.   # ● 初始化目标
  72.   #--------------------------------------------------------------------------
  73.   def initialize
  74.     super(0, 0, 480, 384)
  75.     self.contents = Bitmap.new(width - 32, height - 32)
  76.     self.active = false
  77.     self.index = -1
  78.     @position = 0
  79.     @count = 0
  80.     @oldposition = 0
  81.     refresh
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 刷新
  85.   #--------------------------------------------------------------------------
  86.   def refresh
  87.     self.contents.clear
  88.     @item_max = $game_party.actors.size
  89.     for i in 0...$game_party.actors.size
  90.       x = 64
  91.       y = i * 90
  92.       actor = $game_party.actors
  93.       self.contents.font.size = 18
  94.       draw_actor_active_graphic(actor, x - 40, y + 50)
  95.       draw_actor_name(actor, x, y)
  96.       draw_actor_class(actor, x + 144, y)
  97.       draw_actor_level(actor, x, y + 25)
  98.       draw_actor_state(actor, x + 90, y + 25)
  99.       draw_actor_exp(actor, x, y + 50)
  100.       draw_actor_hp(actor, x + 236, y + 25)
  101.       draw_actor_sp(actor, x + 236, y + 50)
  102.     end
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 绘制行走图
  106.   #--------------------------------------------------------------------------
  107.   def draw_actor_active_graphic(actor, x, y)
  108.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  109.     cw = bitmap.width / 4
  110.     ch = bitmap.height / 4
  111.     p = @position * cw
  112.     src_rect = Rect.new(p, 0, cw, ch)
  113.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 刷新光标矩形
  117.   #--------------------------------------------------------------------------
  118.   def update_cursor_rect
  119.     if @index < 0
  120.       self.cursor_rect.empty
  121.     else
  122.       self.cursor_rect.set(0, @index *90-5, self.width - 32, 90)
  123.     end
  124.   end   
  125.   def update
  126.     super
  127.     @count += 1
  128.     @count %= 15
  129.     if @count == 0
  130.       @position = (@position + 1) % 4
  131.     end
  132.     if @position != @oldposition
  133.       @oldposition = @position
  134.       refresh
  135.     end
  136.   end
  137. end
  138. #==============================================================================
  139. # ■ Game_Map
  140. #------------------------------------------------------------------------------
  141. #  处理地图的类。包含卷动以及可以通行的判断功能。
  142. # 本类的实例请参考 $game_map 。
  143. #==============================================================================
  144. class Game_Map
  145.   def name  
  146.     return $map_infos[@map_id]  
  147.   end  
  148. end
  149. #==============================================================================
  150. #==============================================================================
  151. # Window_RecordBook
  152. #------------------------------------------------------------------------------
  153. # 菜单界面表示信息的窗口
  154. #==============================================================================
  155. class Window_RecordBook < Window_Base
  156.   #--------------------------------------------------------------------------
  157.   # ● 初始化对象
  158.   #--------------------------------------------------------------------------
  159.   def initialize
  160.     super(160, 0, 480, 480)
  161.     self.contents = Bitmap.new(width - 32, height - 32)
  162.     if $任务 == ""
  163.       $任务 = $game_system.mission
  164.     else  
  165.       $game_system.mission = $任务
  166.     end
  167.     refresh
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● 刷新画面
  171.   #--------------------------------------------------------------------------
  172.   def refresh
  173.     self.contents.clear
  174.     self.contents.font.color = system_color
  175.     self.contents.font.size = 20
  176.     self.contents.font.color = normal_color
  177.     cx = self.contents.text_size("当前地点").width + 24
  178.     self.contents.draw_text(4, 0, cx, 24, "当前地点")
  179.     self.contents.draw_text(4 + cx, 0, 444 - cx, 24, $game_map.name.to_s)   
  180.     self.contents.font.color = system_color
  181.     cx = self.contents.text_size("主线任务").width + 24
  182.     self.contents.draw_text(4, 32, cx, 24, "主线任务")
  183.     self.contents.font.color = Color.new(240,250,75,255)
  184.     self.contents.draw_text(4 + cx, 32, 444 - cx, 24, $game_system.mission.to_s)   
  185.     self.contents.font.color = system_color
  186.     cx = self.contents.text_size("支线任务").width + 24
  187.     self.contents.draw_text(4, 96, cx, 24, "支线任务")
  188.     self.contents.font.color = normal_color
  189.     for i in 0...$game_system.partmission.size
  190.       self.contents.draw_text(4 + cx, 96 + i * 32, 444 - cx, 24, $game_system.partmission.to_s)
  191.     end
  192.   end
  193. end
  194. #==============================================================================
  195. # ■ Scene_Task
  196. #------------------------------------------------------------------------------
  197. #  处理菜单画面的类。
  198. #==============================================================================
  199. class Scene_Task
  200.   #--------------------------------------------------------------------------
  201.   # ● 初始化对像
  202.   # menu_index : 命令光标的初期位置
  203.   #--------------------------------------------------------------------------
  204.   def initialize(menu_index = 0)
  205.     @menu_index = menu_index
  206.     @切换状态暂停 = ""
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 主处理
  210.   #--------------------------------------------------------------------------
  211.   def main
  212.     #—— 生成天书窗口
  213.     @recordbook_window = Window_RecordBook.new
  214.     @recordbook_window.z = 1000
  215.     #—— 生成外边框窗口
  216.     @outside_window = Window_Outside.new
  217.     @outside_window.visible = false
  218.     @outside_window.z = 1001
  219.     # 执行过渡
  220.     Graphics.transition
  221.     # 主循环
  222.     loop do
  223.       # 刷新游戏画面
  224.       Graphics.update
  225.       # 刷新输入信息
  226.       Input.update
  227.       # 刷新画面
  228.       update
  229.       # 如果切换画面就中断循环
  230.       if $scene != self
  231.         break
  232.       end
  233.     end
  234.     # 准备过渡
  235.     Graphics.freeze
  236.     # 释放窗口

  237.     @outside_window.dispose
  238.     @recordbook_window.dispose
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ● 刷新画面
  242.   #--------------------------------------------------------------------------
  243.   def update
  244.     # 刷新窗口

  245.     if @outside_window.visible == false
  246.       update_recordbook
  247.       return
  248.     end
  249.   end

  250.   #--------------------------------------------------------------------------
  251.   # ● 刷新画面 (查看天书的情况下)
  252.   #--------------------------------------------------------------------------
  253.   def update_recordbook
  254.     if @切换状态暂停 == "天书消失"
  255.       if @recordbook_window.y < 384
  256.         @recordbook_window.y +=64
  257.         @status_window.y -= 16
  258.         return
  259.       else
  260.         @切换状态暂停 = ""
  261.         @outside_window.visible = true
  262.         @command_window.active = true
  263.       end
  264.     else
  265.       if @recordbook_window.y >0
  266.         @recordbook_window.y -= 32
  267.         @status_window.y += 8
  268.         return
  269.       else
  270. #        @status_window.visible = false
  271.         if Input.trigger?(Input::B)
  272.           @切换状态暂停 = "天书消失"
  273.           $game_system.se_play($data_system.cancel_se)
  274.           @status_window.visible = true
  275.           return
  276.         end
  277.       end
  278.     end
  279.   end   
  280. end
  281. #==============================================================================
  282. # Window_Outside
  283. #------------------------------------------------------------------------------
  284. # 外边框窗口
  285. #==============================================================================
  286. class Window_Outside < Window_Base
  287.   #--------------------------------------------------------------------------
  288.   # ● 初始化对象
  289.   #--------------------------------------------------------------------------
  290.   def initialize
  291.     super(160, 384, 480, 96)
  292.     self.back_opacity = 0
  293.   end
  294. end

  295. #==============================================================================
  296. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  297. #==============================================================================
复制代码
然後在
    @recordbook_window.z = 1000
下面加入
    @recordbook_window.height = LZ要的高度(下圖設480)
最後用 $scene = Scene_Task.new呼叫

效果圖
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
发表于 2012-5-26 13:07:13 | 只看该作者
LZ的任务脚本很多问题的说···建议这个
  1. ==============================================================================
  2. #           任务系统v0.3 by EngShun                                          
  3. #                                                                              
  4. #    设置方法请参考范例                                                        
  5. #                                                                              
  6. #    效果说明:                                                               
  7. #    支持普通对话框效果                                                        
  8. #    a[号码]     :更改对齐方式(0,1,2)。                                    
  9. #    itm[物品id] :物品数量                                                   
  10. #    wpn[武器id] :武器数量                                                   
  11. #    amr[防具id] :防具数量                                                   
  12. #    eval{脚本}  :运行脚本                                                   
  13. #    old        :字体加粗,插入多一次关闭                                    
  14. #    italic      :字体打斜,插入多一次关闭                                    
  15. #    f[字体名称] :更改字体                                                   
  16. #    s[号码]     :更改字体大小                                                
  17. #    p[名称]     :插入图片                                                   
  18. #    icon[名称]  :插入图标                                                   
  19. #任务全由注释来设置
  20. #设置标识有:
  21. #  1.任务设置
  22. #  2.完成任务[任务名]
  23. # 3.放弃任务[任务名]
  24. # 4.恢复任务[任务名]
  25. # 5.删除任务[任务名]
  26. #  6.完成所有任务
  27. #  7.恢复所有任务
  28. #  8.删除所有任务
  29. #  注释内容至少要有三行,第一行未标识,第二行为任务名字,第三行及以下为任务说明
  30. #  ,若一页注释无法完成所有的说明没关系,可以延伸到下一页。
  31. #  完成匹配的任务,若已放弃的任务便无法完成。
  32. #  放弃匹配的任务,若已完成的任务便无法放弃。
  33. #  恢复匹配已放弃的任务。
  34. #  删除匹配的任务。
  35. #  完成所有的任务,若已放弃的任务便无法完成。
  36. #  恢复所有已放弃的任务。
  37. #  删除所有的任务
  38. #  *注意*所有的标识必须在注释的第一行*
  39. #==============================================================================

  40. class Game_Mission
  41.   attr_reader :doned
  42.   attr_reader :failed
  43.   def initialize
  44.     @mission = []
  45.     @info = []
  46.     @doned = []
  47.     @failed = []
  48.   end
  49.   def none?
  50.     return @mission == []
  51.   end
  52.   def mission
  53.     if @mission == []
  54.       return ["当前没有任何任务"]
  55.     end
  56.     return @mission
  57.   end
  58.   def info
  59.     if @info == []
  60.       return ["a[1]c[2]s[50]f[楷体]当前没有任何任务"]
  61.     end
  62.     return @info
  63.   end
  64.   def get(mission,info)
  65.     unless @mission.include?(mission)
  66.       @mission.push(mission)
  67.       @info.push(info)
  68.     end
  69.   end
  70.   def done(done_mission)
  71.     for i in [email protected]
  72.       if @mission[i] == done_mission and [email protected]?(i)
  73.         @doned.delete(i) if @doned.include?(i)
  74.         @doned.push(i)
  75.       end
  76.     end
  77.   end
  78.   def delete(delete_mission)
  79.     for i in [email protected]
  80.       if @mission[i] == delete_mission
  81.         @mission.delete(delete_mission)
  82.         delete_info = @info[i]
  83.         @info.delete(delete_info)
  84.         @doned.delete(i) if @doned.include?(i)
  85.       end
  86.     end
  87.   end
  88.   def fail(mission)
  89.     for i in [email protected]
  90.       if @mission[i] == mission and [email protected]?(i)
  91.         @failed.delete(i) if @failed.include?(i)
  92.         @failed.push(i)
  93.       end
  94.     end
  95.   end
  96.   def resume(mission)
  97.     for i in [email protected]
  98.       if @mission[i] == mission and
  99.         @failed.delete(i)
  100.       end
  101.     end
  102.   end
  103.   def done_all
  104.     for i in [email protected]
  105.       @doned.delete(i) if @doned.include?(i)
  106.       @doned.push(i)
  107.     end
  108.   end
  109.   def delete_all
  110.     @mission = []
  111.     @info = []
  112.     @doned = []
  113.     @failed = []
  114.   end
  115.   def resume_all
  116.     @failed = []
  117.   end
  118. end

  119. class Window_Mission < Window_Selectable
  120.   def initialize
  121.     super(0, 64, 200, 416)
  122.     self.index = 0
  123.     @item_max = $game_party.mission.mission.size
  124.     if self.contents != nil
  125.       self.contents.dispose
  126.       self.contents = nil
  127.     end
  128.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  129.     for i in 0...$game_party.mission.mission.size
  130.       t = ($game_party.mission.doned.include?(i) or $game_party.mission.failed.include?(i))
  131.       self.contents.font.color = t ? disabled_color : normal_color
  132.       text = $game_party.mission.mission[i]
  133.       self.contents.draw_text(4, i * 32, 160, 32, text.to_s)
  134.       self.contents.font.color = system_color
  135.       self.contents.draw_text(self.contents.width-32, i * 32, 32, 32, "□",1) unless $game_party.mission.none?
  136.       if $game_party.mission.doned.include?(i)
  137.         self.contents.font.color = crisis_color
  138.         self.contents.draw_text(self.contents.width-32, i * 32, 32, 32, "√",1)
  139.       elsif $game_party.mission.failed.include?(i)
  140.         self.contents.font.color = knockout_color
  141.         self.contents.draw_text(self.contents.width-32, i * 32, 32, 32, "×",1)
  142.       end
  143.     end
  144.   end
  145. end
  146. class Window_Info < Window_Base
  147.   def initialize
  148.     super(200,64,440,416)
  149.     self.contents =  Bitmap.new(408, 384)
  150.   end
  151.   def refresh(str)
  152.     self.contents = Bitmap.new(408, 384) if self.contents == nil
  153.     self.contents.clear
  154.     y = 0
  155.     align = 0
  156.     begin
  157.       last_text = str.clone
  158.       str.gsub!(/[Vv][([0-9]+)]/) { $game_variables[$1.to_i] }
  159.       str.gsub!(/[Gg]/) { $game_party.gold.to_s }
  160.       str.gsub!(/[Ii][Tt][Mm][(d+)]/) { $game_party.item_number($1.to_i) }
  161.       str.gsub!(/[Ww][Pp][Nn][(d+)]/) { $game_party.weapon_number($1.to_i) }
  162.       str.gsub!(/[Aa][Mm][Rr][(d+)]/) { $game_party.armor_number($1.to_i) }
  163.       str.gsub!(/[Ee][Vv][Aa][Ll]{([.,
    ,
  164. ]+)}/) { eval($1) }
  165.     end until str == last_text
  166.       str.gsub!(/[Nn][([0-9]+)]/) do
  167.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  168.     end
  169.     lines = str.split("
  170. ")
  171.     for line in lines
  172.       bitmap,align = bitmap_line(line,align)
  173.       w = bitmap.width
  174.       h = bitmap.height
  175.       case align
  176.       when 0
  177.         x = 4
  178.       when 1
  179.         x = 204 - w / 2
  180.       when 2
  181.         x = 404 - w
  182.       end
  183.       self.contents.blt(x,y,bitmap,Rect.new(0,0,w,h))
  184.       y += h
  185.     end
  186.   end
  187.   def bitmap_line(str,old_align)
  188.     w,h = get_wh(str.clone)
  189.     w = 1 if w == 0
  190.     bitmap = Bitmap.new(w,h)
  191.     text = str
  192.     align = old_align
  193.     x = 0
  194.     text.gsub!(//) { "\000" }
  195.     text.gsub!(/[Aa][(d+)]/){
  196.       align = $1.to_i
  197.       ""
  198.     }
  199.     text.gsub!(/[Cc][([0-9]+)]/) { "\001[#{$1}]" }
  200.     text.gsub!(/[Bb][Oo][Ll][Dd]/) { "\002" }
  201.     text.gsub!(/[Ii][Tt][Aa][Ll][Ii][Cc]/) { "\003" }
  202.     text.gsub!(/[Ff][(w+)]/) { "\004[#{$1}]" }
  203.     text.gsub!(/[Bb][Dd][(w+)]/) { "\005[#{$1}]" }
  204.     text.gsub!(/[Ss][(d+)]/) { "\006[#{$1}]" }
  205.     text.gsub!(/[Pp][([w,-]+)]/) { "\007[#{$1}]" }
  206.     text.gsub!(/[Ii][Cc][Oo][Nn][([w,-]+)]/){ "201[#{$1}]" }
  207.     while ((c = text.slice!(/./m)) != nil)
  208.       if c == "\000"
  209.         c = ""
  210.       end
  211.       if c == "\001"
  212.         text.sub!(/[([0-9]+)]/, "")
  213.         color = $1.to_i
  214.         if color >= 0 and color <= 9
  215.           bitmap.font.color = text_color(color)
  216.         elsif color == 8
  217.           bitmap.font.color = disabled_color
  218.         elsif color == 9
  219.           bitmap.font.color = system_color
  220.         end
  221.         next
  222.       end
  223.       if c == "\002"
  224.         bitmap.font.bold = bitmap.font.bold ? false : true
  225.         next
  226.       end
  227.       if c == "\003"
  228.         bitmap.font.italic = bitmap.font.italic ? false : true
  229.         next
  230.       end
  231.       if c == "\004"
  232.         text.sub!(/[(w+)]/,"")
  233.         bitmap.font.name = $1
  234.         next
  235.       end
  236.       if c == "\005"
  237.         text.sub!(/[(w+)]/,"")
  238.         color = bitmap.font.color.clone
  239.         w = bitmap.text_size($1).width
  240.         bitmap.font.color = Color.new(0,0,0,255)
  241.         bitmap.draw_text((4 + x)-1, y-1, w, 32, $1)
  242.         bitmap.draw_text((4 + x)-1, y+1, w, 32, $1)
  243.         bitmap.draw_text((4 + x)+1, y-1, w, 32, $1)
  244.         bitmap.draw_text((4 + x)+1, y+1, w, 32, $1)
  245.         bitmap.font.color = color
  246.         bitmap.draw_text(4 + x, y, w, 32, $1)
  247.         x += bitmap.text_size($1).width
  248.         next
  249.       end
  250.       if c == "\006"
  251.         text.sub!(/[(d+)]/,"")
  252.         bitmap.font.size = $1.to_i
  253.         next
  254.       end
  255.       if c == "\007"
  256.         text.sub!(/[([w,-]+)]/,"")
  257.         pic = RPG::Cache.picture($1)
  258.         r = Rect.new(0,0,pic.width,pic.height)
  259.         y = h / 2 - pic.height / 2
  260.         bitmap.blt(x+2,y,pic,r)
  261.         x += pic.width + 4
  262.         next
  263.       end
  264.       if c == "201"
  265.         text.sub!(/[([w,-]+)]/,"")
  266.         pic = RPG::Cache.icon($1)
  267.         r = Rect.new(0,0,pic.width,pic.height)
  268.         y = h / 2 - pic.height / 2
  269.         bitmap.blt(x+2,y,pic,r)
  270.         x += pic.width + 4
  271.         next
  272.       end
  273.       bitmap.draw_text(x,0,w,h,c)
  274.       x += bitmap.text_size(c).width
  275.     end
  276.     return bitmap.clone,align
  277.   end
  278.   def get_wh(str)
  279.     bitmap = Bitmap.new(160,160)
  280.     w = 0
  281.     h = 32
  282.     text = str
  283.     text.gsub!(//) { "\000" }
  284.     text.gsub!(/[Aa][(d+)]/) { "" }
  285.     text.gsub!(/[Cc][([0-9]+)]/) { "" }
  286.     text.gsub!(/[Bb][Oo][Ll][Dd]/) { "" }
  287.     text.gsub!(/[Ii][Tt][Aa][Ll][Ii][Cc]/) { "" }
  288.     text.gsub!(/[Ff][(w+)]/) { "\001[#{$1}]" }
  289.     text.gsub!(/[Bb][Dd][(w+)]/) { $1 }
  290.     text.gsub!(/[Ss][(d+)]/) { "\002[#{$1}]" }
  291.     text.gsub!(/[Pp][([w,-]+)]/) { "\003[#{$1}]" }
  292.     text.gsub!(/[Ii][Cc][Oo][Nn][(w,[A-Za-z0-9_-]+)]/) { "\004[#{$1}]" }
  293.     while ((c = text.slice!(/./m)) != nil)
  294.       if c == "\000"
  295.         c = ""
  296.       end
  297.       if c == "\001"
  298.         text.sub!(/[(w+)]/,"")
  299.         bitmap.font.name = $1
  300.         next
  301.       end
  302.       if c == "\002"
  303.         text.sub!(/[(d+)]/,"")
  304.         bitmap.font.size = $1.to_i
  305.         next
  306.       end
  307.       if c == "\003"
  308.         text.sub!(/[([w,-]+)]/,"")
  309.         w += RPG::Cache.picture($1).width+4
  310.         h = RPG::Cache.picture($1).height if RPG::Cache.picture($1).height > 32 and RPG::Cache.picture($1).height > h
  311.         next
  312.       end
  313.       if c == "\004"
  314.         text.sub!(/[([w,-]+)]/,"")
  315.         w += RPG::Cache.icon($1).width+4
  316.         h = RPG::Cache.icon($1).height if RPG::Cache.icon($1).height > 32 and RPG::Cache.icon($1).height > h
  317.         next
  318.       end
  319.       w += bitmap.text_size(c).width
  320.       h = bitmap.text_size(c).height if bitmap.text_size(c).height > 32 and bitmap.text_size(c).height > h
  321.     end
  322.     return w,h
  323.   end
  324. end
  325. class Scene_Mission
  326.   def main
  327.     @window1 = Window_Base.new(0,0,200,64)
  328.     @window1.contents = Bitmap.new(168,32)
  329.     @window1.contents.draw_text(0,0,168,32,"任务概述",1)
  330.     @window2 = Window_Base.new(200,0,440,64)
  331.     @window2.contents = Bitmap.new(408,32)
  332.     @window2.contents.draw_text(0,0,408,32,"任务简介",1)
  333.     @mission_window = Window_Mission.new
  334.     @mission_window.index = $game_party.mission.mission.size - 1
  335.     @info_window = Window_Info.new
  336.     info = $game_party.mission.info[@mission_window.index].clone
  337.     @info_window.refresh(info)
  338.     Graphics.transition
  339.     loop do
  340.       Graphics.update
  341.       Input.update
  342.       update
  343.       if $scene != self
  344.         break
  345.       end
  346.     end
  347.     Graphics.freeze
  348.     @window1.dispose
  349.     @window2.dispose
  350.     @mission_window.dispose
  351.     @info_window.dispose
  352.   end
  353.   def update
  354.     @mission_window.update
  355.     @info_window.update
  356.     if Input.trigger?(Input::B)
  357.       $game_system.se_play($data_system.cancel_se)
  358.       $scene = Scene_Map.new
  359.       return
  360.     end
  361.     if Input.repeat?(Input::UP) or
  362.        Input.repeat?(Input::DOWN)
  363.       info = $game_party.mission.info[@mission_window.index].clone
  364.       @info_window.refresh(info)
  365.     end
  366.   end
  367. end
  368. class Game_Party
  369.   attr_accessor :mission
  370.   alias orig_init initialize
  371.   def initialize
  372.     @mission = Game_Mission.new
  373.     orig_init
  374.   end
  375. end
  376. class Interpreter
  377.   alias orig_ec execute_command
  378.   def execute_command
  379.     if @index >= @list.size - 1
  380.       command_end
  381.       return true
  382.     end
  383.     @parameters = @list[@index].parameters
  384.     return command_108 if @list[@index].code == 108
  385.     return orig_ec
  386.   end
  387.   def command_108
  388.     text = @list[@index].parameters[0]
  389.     if text.sub!(/删除任务[(w+)]/,"") != nil
  390.       $game_party.mission.delete($1)
  391.       return true
  392.     elsif text.sub!(/完成任务[(w+)]/,"") != nil
  393.       $game_party.mission.done($1)
  394.       return true
  395.     elsif text.sub!(/删除所有任务/,"") != nil
  396.       $game_party.mission.delete_all
  397.       return true
  398.     elsif text.sub!(/完成所有任务/,"") != nil
  399.       $game_party.mission.done_all
  400.       return true
  401.     elsif text.sub!(/放弃任务[(w+)]/,"") != nil
  402.       $game_party.mission.fail($1)
  403.       return true
  404.     elsif text.sub!(/恢复任务[(w+)]/,"") != nil
  405.       $game_party.mission.resume($1)
  406.       return true
  407.     elsif text.sub!(/恢复所有任务/,"") != nil
  408.       $game_party.mission.resume_all
  409.       return true
  410.     end
  411.     loop do
  412.       if @list[@index+1].code == 108 or @list[@index+1].code == 408
  413.         text += "
  414. " + @list[@index+1].parameters[0]
  415.       else
  416.         break
  417.       end
  418.       @index += 1
  419.     end
  420.     split = text.split("
  421. ")
  422.     if split[0] == "任务设置" and split.size >= 3
  423.       info , name = split[2] , split[1]
  424.       if split.size >= 4
  425.         for i in 3...split.size
  426.           info += "
  427. " + split[i]
  428.         end
  429.       end
  430.       $game_party.mission.get(name,info)
  431.     end
  432.     return true
  433.   end
  434. end
复制代码


‘‘──chd114于2012-5-26 14:42补充以下内容
  1. 任务设置
  2. 寻找恢复剂
  3. a[1]s[26]寻找恢复剂s[22]
  4. a[0]
  5. 必须寻找五个 icon[021-Potion01]回复剂。
  6. 进度 itm[1]/5
复制代码
收集任务在注释这样放

长介绍任务这样
  1. 任务设置
  2. 不可能的任务
  3. 这是一个c[2]不可能的任务c[0]
  4. 这个任务的说明很长
  5. a[1]很长很长很长很长很长很长
  6. 很长很长很长很长很长很长
复制代码
上面是注释第一部分,第二部分
  1. 很长很长很长很长很长很长
  2. 很长很长很长很长很长很长
  3. a[2]很长很长很长很长很长很长
  4. 很长很长很长很长很长很长
  5. 很长很长很长很长很长很长
  6. 很长很长很长很长很长很长
复制代码
这样就算再长的任务介绍也能放下

完成任务是这样
  1. 完成任务[寻找恢复剂]
复制代码
放弃任务(暂时)
  1. 放弃任务[不可能的任务]
复制代码
彻底删除一个任务
  1. 删除任务[不可能的任务]
复制代码
就是这样!
’’


‘‘──chd114于2012-5-26 14:43补充以下内容

这些短的代码是放到注释里用
’’


‘‘──chd114于2012-5-26 14:43补充以下内容

说白了就是可以在游戏中临时创建任何任务!而且不需要额外在脚本编辑器设定
’’

点评

话说,我要在哪里查看这些任务呢?  发表于 2012-5-26 14:58
听起来蛮好的,不过不知道要用什么脚本呼叫这个栏板  发表于 2012-5-26 14:55
这个脚本是怎么用的说?  发表于 2012-5-26 14:32
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
41
在线时间
1026 小时
注册时间
2011-9-10
帖子
1415
6
 楼主| 发表于 2012-5-26 14:53:54 | 只看该作者
sai90306 发表于 2012-5-25 23:46
先試試看這個好了然後在
    @recordbook_window.z = 1000
下面加入

似乎还有点问题:
[我要整个屏幕,不要只要右边...左边空着干嘛呢...]

----------------------------------------------------------------------
[当我返回的时候,就出现了问题,不是返回游戏而是出现了BUG...]

----------------------------------------------------------------------
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
7
发表于 2012-5-26 14:56:45 | 只看该作者
本帖最后由 sai90306 于 2012-5-26 16:32 编辑

  1.       #==============================================================================
  2.     # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3.     #==============================================================================  
  4.     #==============================================================================
  5.     # Game_System
  6.     #------------------------------------------------------------------------------
  7.     # 添加内容
  8.     #==============================================================================
  9.     class Game_System
  10.       attr_accessor :mission #现在执行的任务
  11.       attr_accessor :partmission
  12.       alias carol3_ini initialize
  13.       def initialize
  14.         carol3_ini
  15.         @mission = ""
  16.         @partmission = []
  17.       end
  18.     end
  19.     #==============================================================================
  20.     # ■ Scene_Title
  21.     #------------------------------------------------------------------------------
  22.     #  处理标题画面的类。
  23.     #==============================================================================
  24.     class Scene_Title
  25.       alias carol3_title1 main
  26.       def main
  27.         $map_infos = load_data("Data/MapInfos.rxdata")  
  28.         for key in $map_infos.keys  
  29.           $map_infos[key] = $map_infos[key].name  
  30.         end  
  31.         $任务 = ""
  32.         $支线 = nil
  33.         $支线完成 = nil
  34.         carol3_title1
  35.       end
  36.     end
  37.     class Scene_Map
  38.       alias carol3_update update
  39.       def update
  40.         carol3_update
  41.         if $支线 != nil
  42.           for i in 0...$game_system.partmission.size
  43.             if $game_system.partmission == $支线
  44.               $支线 = nil
  45.               break
  46.             end
  47.           end
  48.           if $支线 != nil
  49.             $game_system.partmission.push($支线)
  50.             $支线 = nil
  51.           end
  52.         end
  53.         if $支线完成 != nil
  54.           for i in 0...$game_system.partmission.size
  55.             if $game_system.partmission == $支线完成
  56.               $game_system.partmission.delete($game_system.partmission)
  57.               break
  58.             end
  59.           end
  60.           $支线完成 = nil
  61.         end
  62.       end
  63.     end  
  64.     #==============================================================================

  65.     #==============================================================================
  66.     # ■ Game_Map
  67.     #------------------------------------------------------------------------------
  68.     #  处理地图的类。包含卷动以及可以通行的判断功能。
  69.     # 本类的实例请参考 $game_map 。
  70.     #==============================================================================
  71.     class Game_Map
  72.       def name  
  73.         return $map_infos[@map_id]  
  74.       end  
  75.     end
  76.     #==============================================================================
  77.     #==============================================================================
  78.     # Window_RecordBook
  79.     #------------------------------------------------------------------------------
  80.     # 菜单界面表示信息的窗口
  81.     #==============================================================================
  82.     class Window_RecordBook < Window_Base
  83.       #--------------------------------------------------------------------------
  84.       # ● 初始化对象
  85.       #--------------------------------------------------------------------------
  86.       def initialize
  87.         super(0, 0, 640, 480)
  88.         self.contents = Bitmap.new(width - 32, height - 32)
  89.         if $任务 == ""
  90.           $任务 = $game_system.mission
  91.         else  
  92.           $game_system.mission = $任务
  93.         end
  94.         refresh
  95.       end
  96.       #--------------------------------------------------------------------------
  97.       # ● 刷新画面
  98.       #--------------------------------------------------------------------------
  99.       def refresh
  100.         self.contents.clear
  101.         self.contents.font.color = system_color
  102.         self.contents.font.size = 20
  103.         self.contents.font.color = normal_color
  104.         cx = self.contents.text_size("当前地点").width + 24
  105.         self.contents.draw_text(4, 0, cx, 24, "当前地点")
  106.         self.contents.draw_text(4 + cx, 0, 444 - cx, 24, $game_map.name.to_s)   
  107.         self.contents.font.color = system_color
  108.         cx = self.contents.text_size("主线任务").width + 24
  109.         self.contents.draw_text(4, 32, cx, 24, "主线任务")
  110.         self.contents.font.color = Color.new(240,250,75,255)
  111.         self.contents.draw_text(4 + cx, 32, 444 - cx, 24, $game_system.mission.to_s)   
  112.         self.contents.font.color = system_color
  113.         cx = self.contents.text_size("支线任务").width + 24
  114.         self.contents.draw_text(4, 96, cx, 24, "支线任务")
  115.         self.contents.font.color = normal_color
  116.         for i in 0...$game_system.partmission.size
  117.           self.contents.draw_text(4 + cx, 96 + i * 32, 444 - cx, 24, $game_system.partmission.to_s)
  118.         end
  119.       end
  120.     end
  121.     #==============================================================================
  122.     # ■ Scene_Task
  123.     #------------------------------------------------------------------------------
  124.     #  处理菜单画面的类。
  125.     #==============================================================================
  126.     class Scene_Task
  127.       #--------------------------------------------------------------------------
  128.       # ● 初始化对像
  129.       # menu_index : 命令光标的初期位置
  130.       #--------------------------------------------------------------------------
  131.       def initialize(menu_index = 0)
  132.         @menu_index = menu_index
  133.         @切换状态暂停 = ""
  134.       end
  135.       #--------------------------------------------------------------------------
  136.       # ● 主处理
  137.       #--------------------------------------------------------------------------
  138.       def main
  139.         #—— 生成天书窗口
  140.         @recordbook_window = Window_RecordBook.new
  141.         @recordbook_window.z = 1000
  142.         #—— 生成外边框窗口
  143.         @outside_window = Window_Outside.new
  144.         @outside_window.visible = false
  145.         @outside_window.z = 1001
  146.         # 执行过渡
  147.         Graphics.transition
  148.         # 主循环
  149.         loop do
  150.           # 刷新游戏画面
  151.           Graphics.update
  152.           # 刷新输入信息
  153.           Input.update
  154.           # 刷新画面
  155.           update
  156.           # 如果切换画面就中断循环
  157.           if $scene != self
  158.             break
  159.           end
  160.         end
  161.         # 准备过渡
  162.         Graphics.freeze
  163.         # 释放窗口

  164.         @outside_window.dispose
  165.         @recordbook_window.dispose
  166.       end
  167.       #--------------------------------------------------------------------------
  168.       # ● 刷新画面
  169.       #--------------------------------------------------------------------------
  170.       def update
  171.         # 刷新窗口

  172.         if @outside_window.visible == false
  173.           update_recordbook
  174.           return
  175.         end
  176.       end

  177.       #--------------------------------------------------------------------------
  178.       # ● 刷新画面 (查看天书的情况下)
  179.       #--------------------------------------------------------------------------
  180.       def update_recordbook
  181.         if @切换状态暂停 == "天书消失"
  182.           if @recordbook_window.y < 384
  183.             @recordbook_window.y +=64
  184.             #@status_window.y -= 16
  185.             return
  186.           else
  187.             @切换状态暂停 = ""
  188.             @outside_window.visible = true
  189.             #@command_window.active = true
  190.           end
  191.         else
  192.           if @recordbook_window.y >0
  193.             @recordbook_window.y -= 32
  194.             #@status_window.y += 8
  195.             return
  196.           else
  197.     #        #@status_window.visible = false
  198.     if Input.trigger?(Input::B)
  199.       # 演奏取消 SE
  200.       $game_system.se_play($data_system.cancel_se)
  201.       # 切換的地圖畫面
  202.       $scene = Scene_Map.new
  203.       return
  204.           end
  205.         end
  206.       end   
  207.     end
  208.     end
  209.     #==============================================================================
  210.     # Window_Outside
  211.     #------------------------------------------------------------------------------
  212.     # 外边框窗口
  213.     #==============================================================================
  214.     class Window_Outside < Window_Base
  215.       #--------------------------------------------------------------------------
  216.       # ● 初始化对象
  217.       #--------------------------------------------------------------------------
  218.       def initialize
  219.         super(0, 0, 0, 0)
  220.         self.back_opacity = 0
  221.       end
  222.     end

  223.     #==============================================================================
  224.     # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  225.     #==============================================================================
复制代码
我忘了修改帖子就行了...= =

關於LZ的裝備返回地圖

Scene_Equip
  1.     if Input.trigger?(Input::B)
  2.       # 演奏取消 SE
  3.       $game_system.se_play($data_system.cancel_se)
  4.       # 切換到選單畫面
  5.       $scene = Scene_Menu.new(2)
  6.       return
  7.     end
复制代码
  1.     if Input.trigger?(Input::B)
  2.       # 演奏取消 SE
  3.       $game_system.se_play($data_system.cancel_se)
  4.       # 切換的地圖畫面
  5.       $scene = Scene_Map.new
  6.       return
  7.     end
复制代码

点评

不然我就連帖了>>不然我回答你就連帖了  发表于 2012-5-26 16:27
請另開一個問題問或是在我下面回覆 不然我就連帖了@@ 會被罰  发表于 2012-5-26 16:26
再麻烦你一下,能不能改成在我呼叫装备画面的时候,返回时是直接返回游戏而不是菜单,这个能做到吗?  发表于 2012-5-26 16:08
脚本还是有问题,虽然可以打开与关闭任务栏,但是其他的(状态、装备)只能打开,如果关闭的话,就会出现这个脚本的108行出现问题  发表于 2012-5-26 15:57
可以了  发表于 2012-5-26 15:53
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
41
在线时间
1026 小时
注册时间
2011-9-10
帖子
1415
8
 楼主| 发表于 2012-5-26 16:40:59 | 只看该作者
sai90306 发表于 2012-5-26 14:56
我忘了修改帖子就行了...= =

關於LZ的裝備返回地圖

还有BUG,再打开状态和物品的时候,还是会返回菜单...其他的不会,顺便问一句,呼叫状态画面的脚本是什么?

点评

$scene = Scene_Status.new  发表于 2012-5-26 16:44
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
9
发表于 2012-5-26 16:43:20 | 只看该作者
y610407721 发表于 2012-5-26 16:40
还有BUG,再打开状态和物品的时候,还是会返回菜单...其他的不会,顺便问一句,呼叫状态画面的脚本是什么 ...

Scene_Equip
Scene_Status
Scene_Item
  1.     if Input.trigger?(Input::B)
  2.       # 演奏取消 SE
  3.       $game_system.se_play($data_system.cancel_se)
  4.       # 切換到選單畫面
  5.       $scene = Scene_Menu.new(2)
  6.       return
  7.     end
复制代码
都改為
  1.     if Input.trigger?(Input::B)
  2.       # 演奏取消 SE
  3.       $game_system.se_play($data_system.cancel_se)
  4.       # 切換的地圖畫面
  5.       $scene = Scene_Map.new
  6.       return
  7.     end
复制代码

点评

$scene = Scene_Status.new  发表于 2012-5-26 16:48
呼叫状态画面的脚本是什么  发表于 2012-5-26 16:47
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 19:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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