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

Project1

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

[已经解决] 关于【显示游戏进度】如何加入菜单

[复制链接]

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
跳转到指定楼层
1
发表于 2012-8-14 11:54:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我今天在66RPG闲逛,突然发现一个VX的【显示游戏进度】的脚本,
但是我不会用啊。。。。
我试着在事件中写入脚本,但是没用啊。
以下是脚本:
#==============================================================================
# ■ 显示进度脚本  by StarWatcher
#------------------------------------------------------------------------------
#  1-插入此段脚本到Main前面
#   2-仔细设置下面的变量
#   3-启用方式$Scene=Scene_Progress.new
#   4-如果有其他什么问题(如何插入菜单)请自行寻找教程
#==============================================================================

#==============================================================================
# ■ Scene_Progress
#------------------------------------------------------------------------------
#  显示进度的脚本
#==============================================================================
class Scene_Progress<Scene_Base
  def initialize(menu_index = 0)
    #下面设置返回菜单的选项序号
    $backindex=5
    #下面设置的是如何返回,false返回菜单,true返回地图
    $FromMap=false
    #下面设置总共进度的选项卡数
    $MaxIndex=5
    #下面设置控制游戏进度的变量号
    $UseIndex=101
    #介绍:变量的值-1为什么都没有达成
    #0..x则分别达成了1~x+1的进度
    #下面的请无视他
    $indexer=0
    $ConIndex=0
    #下面设置每一个进度的名称
    #=后面格式["进度1内容","进度2内容","进度3内容"……]
    $ChapNa=["序章:启程","第一章:中品法师考试"]
    #下面设置每一个进度的介绍
    #=后面格式[["进度1介绍1","进度1介绍2","进度1介绍3"],[],[]…………]
    $InfoMa=[["发现了异空间的秘密,还有幽灵阿塞米的阴谋。","于是瓦拉齐和卡西亚就踏上了恢复人类的旅途。",""],
    ["被传送到了亚玛西海域后,他们遇到了盗贼丝拉尔","都是工会的成员瓦拉齐和丝拉尔","进入了工会大门,开始解决事情……"]]
    #下面设置每一个进度如果没有达成显示的内容
    $Nothing="未达成"
    #下面设置每一个进度如果没有达成显示的介绍
    $Nothing2="未达成"
  end
  #--------------------------------------------------------------------------
  # ● 开始后处理
  #--------------------------------------------------------------------------
     
  def start
    super
    create_menu_background
    @progress = Progress.new
    @progressinf = ProgressInf.new
    @progressinf2 = ProgressInf2.new
    @progressinf.active=false
    @progressinf2.active=false
    @progress.active=true
  end
  #--------------------------------------------------------------------------
  # ● 结束后处理
  #--------------------------------------------------------------------------
   
  def terminate
    super
    dispose_menu_background
    @progress.dispose
    @progressinf.dispose
    @progressinf2.dispose
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  
  def update
    super
    update_menu_background
    [email protected]
    @progress.update
    if $indexer!=j then
      [email protected]
      @progress.refresh
      @progressinf.update
    end
    update_window_selection
  end
  #--------------------------------------------------------------------------
  # ● 更新选项卡
  #--------------------------------------------------------------------------
  
def update_window_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      if $FromMap then
        $scene = Scene_Map.new
      else
        $scene = Scene_Menu.new($backindex)  
      end
    end
  end
end

#==============================================================================
# ■ Progress
#------------------------------------------------------------------------------
#  选择进度查看的窗体
#==============================================================================

class Progress<Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  
  def initialize
    super(0,0,544,200)
    @item_max = $MaxIndex  
    @column_max = 2
    @row_max=$MaxIndex / 2 +1
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 请无视
  #--------------------------------------------------------------------------
   
  def getindex
    return @index
  end
  
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  
  def refresh
    $s=@index
    self.contents.clear  
    self.contents.font.size = 20
    self.contents.font.name = "微软雅黑"
    for i in $ConIndex..$ConIndex+7
      xx=(i-$ConIndex) % 2 * 257+30
      yy=((i-$ConIndex) / 2 ).to_i*30+20
      if i<=$game_variables[$UseIndex] then
          self.contents.draw_text(xx,yy,250,30,$ChapNa)
        else
          if i<$MaxIndex then
            self.contents.draw_text(xx,yy,250,30,$Nothing)
          end
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  
  def update
    super
  end
  #--------------------------------------------------------------------------
  # ● 更新指针
  #--------------------------------------------------------------------------
   
  def update_cursor
    $ConIndex+=2 if @index-$ConIndex>=8
    $ConIndex-=2 if @index-$ConIndex<=-1
    i= @index-$ConIndex
    xxx=i % 2 * 257+20
    yyy=(i / 2).to_i*30+20
    self.cursor_rect.set(xxx,yyy,230,30)
  end
end
#==============================================================================
# ■ ProgressInf
#------------------------------------------------------------------------------
#  进度的具体内容显示
#==============================================================================

class ProgressInf<Window_Base
  def initialize
    super(0,201,544,150)
    refresh(0)
  end
  
  #--------------------------------------------------------------------------
  # ● 刷新(参数请无视)
  #--------------------------------------------------------------------------
  
  def refresh (ab)
    self.contents.clear
    self.contents.font.size = 20
    self.contents.font.name = "微软雅黑"
    if ab<=$game_variables[$UseIndex] then
      for i in 0..2
        self.contents.draw_text(20,20+contents.text_size($InfoMa[ab]).height*i,494,contents.text_size($InfoMa[ab]).height,$InfoMa[ab])
      end
    else
      self.contents.draw_text(20,20,494,30,$Nothing2)
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
     
  def update
    super
    refresh($s)
  end
  
end

#==============================================================================
# ■ ProgressInf2
#------------------------------------------------------------------------------
#  『脚本内容』显示
#==============================================================================

class ProgressInf2<Window_Base

  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  
  
  def initialize
    super(0,352,544,64)
    refresh
  end

  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  
  def refresh
    self.contents.font.size = 20 #字体大小
    self.contents.font.name = "微软雅黑"
    self.contents.draw_text(227,5,504,24,"游戏进度")
  end
  
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
   
  def update
    super #调用父类中的方法
    refresh
  end
  
end
原址:http://rpg.blue/thread-131098-1-1.html
其实我是想加入菜单使用,我用了一个菜单脚本,我自己摸索改了一点。。。。
可能我很笨啊。。。。不过我是个脚本小白,不要笑我啊。。。。
以下是我用的菜单脚本,不晓得要不要。
#============================================================================
# ○ VX·新简易菜单
#            -By.冰舞蝶恋
#----------------------------------------------------------------------------
#    用法神马的…不解释……
#============================================================================
class Scene_Menu
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @mapwindow = Window_Draw_Mapname.new
    @status_window = Window_MenuStatus.new(160, 0)
  end
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @mapwindow.dispose
    @status_window.dispose
  end
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @mapwindow.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = "进度"# Vocab::Progress
    s7 = Vocab::game_end
    @command_window = Window_Command.new(544, [s1, s2, s3, s4, s5, s6, s7], 7)
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # 如果队伍为空
      @command_window.draw_item(0, false)     # 无效化物品选项
      @command_window.draw_item(1, false)     # 无效化技能选项
      @command_window.draw_item(2, false)     # 无效化装备选项
      @command_window.draw_item(3, false)     # 无效化状态选项
    end
    if $game_system.save_disabled             # 如果禁止存档
      @command_window.draw_item(4, false)     # 无效化存档选项
    end
  end
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # 物品
        $scene = Scene_Item.new
      when 1,2,3  # 技能、装备、状态
        start_actor_selection
      when 4      # 存档
        $scene = Scene_File.new(true, false, false)
      when 5      # 进度
        $Scene = Scene_Progress.new
      when 6      # 结束游戏
        $scene = Scene_End.new
      end
    end
  end
end
class Window_MenuStatus < Window_Selectable
  def initialize(x, y)
    super(x, y+56, 384, 416-56)
    refresh
    self.active = false
    self.index = -1
  end
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    for actor in $game_party.members
      draw_actor_shortface(actor, 2, actor.index * 82 + 2, 92)
      x = 104
      y = actor.index * 82 + WLH / 2
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 120, y)
      draw_actor_level(actor, x, y + WLH * 1)
      draw_actor_state(actor, x, y + WLH * 2)
      draw_actor_hp(actor, x + 120, y + WLH * 1)
    end
  end
  def update_cursor
    if @index < 0               
      self.cursor_rect.empty
    elsif @index < @item_max   
      self.cursor_rect.set(0, @index * 82, contents.width, 82)
    elsif @index >= 100         
      self.cursor_rect.set(0, (@index - 100) * 82, contents.width, 82)
    else                        
      self.cursor_rect.set(0, 0, contents.width, @item_max * 82)
    end
  end
end
class Window_Base
  def draw_shortface(face_name, face_index, x, y, size = 96)
    bitmap = Cache.face(face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = face_index % 4 * 96 + (96 - size) / 2
    rect.y = face_index / 4 * 96 + (96 - size) / 2 + 16
    rect.width = size
    rect.height = size - 32
    self.contents.blt(x, y+8, bitmap, rect)
    bitmap.dispose
  end
  def draw_actor_shortface(actor, x, y, size = 96)
    draw_shortface(actor.face_name, actor.face_index, x, y, size)
  end
end
class Game_Map
  attr_reader   :map_id  
  def mapname
  $mapname = load_data("Data/MapInfos.rvdata")
  $mapname[@map_id].name
  end
end
class Window_Draw_Mapname < Window_Base
  def initialize
    super(0, 56, 160, 304)
    refresh
  end  
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 4, 160, WLH, "位置:")
    self.contents.font.color = normal_color
    self.contents.draw_text(4+8, WLH + 12, 160, WLH, $game_map.mapname.to_s)
  end
end
原址:http://rpg.blue/thread-210654-1-1.html
求高手帮忙啊。。。。。

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
2
 楼主| 发表于 2012-8-14 12:07:34 | 只看该作者
我方现我可能没说清楚,
那个菜单脚本我已经改过了,不过没用就是了。。。。。

点评

讨厌拉,银家都给你解答了还不上线  发表于 2012-8-21 12:24
不要连续发帖,插入脚本请使用论坛的代码功能。  发表于 2012-8-14 18:56
回复 支持 反对

使用道具 举报

Lv2.观梦者

永无止境的旅程

梦石
0
星屑
503
在线时间
1552 小时
注册时间
2012-6-19
帖子
1226

开拓者贵宾

3
发表于 2012-8-14 12:07:50 | 只看该作者
脚本无法启动   


游戏进度的话   我道士建议你使用变量去
游戏到一定的程度变量+1

游戏进度的时候为100
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
4
 楼主| 发表于 2012-8-14 12:13:23 | 只看该作者
丿梁丶小柒 发表于 2012-8-14 12:07
脚本无法启动   

额。。。。。。
我似乎没听太懂,那你是说直接用变量搞游戏进度,
还是把脚本中的变量。。。。
还有你说脚本无法启动,我要怎么办呐。

点评

我的意思是说 不要使用进度的脚本 使用变量代替使用  发表于 2012-8-14 13:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
5
 楼主| 发表于 2012-8-14 13:59:30 | 只看该作者
怎么用变量啊?

点评

麻烦的说  发表于 2012-8-14 16:05
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
6
 楼主| 发表于 2012-8-14 17:28:16 | 只看该作者
额,那为什么脚本无法启动呢?

评分

参与人数 1星屑 -60 收起 理由
Luciffer -60 连帖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
37 小时
注册时间
2012-7-30
帖子
147
7
发表于 2012-8-14 21:06:14 | 只看该作者
进度脚本真是一个没用的脚本哈哈。。
游戏中事件搞的清楚吧?事件的出现条件有变量在多少以上,这个就可以用来调节游戏进度的呀。

评分

参与人数 1星屑 +20 收起 理由
Luciffer + 20 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
8
 楼主| 发表于 2012-8-14 22:39:38 | 只看该作者
devilg 发表于 2012-8-14 21:06
进度脚本真是一个没用的脚本哈哈。。
游戏中事件搞的清楚吧?事件的出现条件有变量在多少以上,这个就可以 ...

调节?我要的是游戏进度能在游戏中显示出来啊。。。。。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
266
在线时间
495 小时
注册时间
2012-7-6
帖子
888
9
发表于 2012-8-15 08:22:17 | 只看该作者
测试发现不能呼叫楼主给的脚本
不知道是什么原因,难道楼主的脚本是配套的?
有偿招募绘师RM脚本师,有意者请短联系我噢=V=
我的扣扣:2559286292
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
454 小时
注册时间
2012-7-31
帖子
579
10
 楼主| 发表于 2012-8-15 12:45:12 | 只看该作者
笵妮拉·亚修 发表于 2012-8-15 08:22
测试发现不能呼叫楼主给的脚本
不知道是什么原因,难道楼主的脚本是配套的? ...

不知道是什么配套啊,
我自己搞了很久也不晓得什么原因。。。。
【我是ABC君,也可以叫我“银行君”“字母君”……】
斗罗大陆—火焰篇章》重新起航!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 08:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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