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

Project1

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

求救!!我想把这个菜单拦加多4个功能

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1080
在线时间
140 小时
注册时间
2008-7-1
帖子
149
跳转到指定楼层
1
发表于 2008-11-17 03:33:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
求救!!我想把这个菜单拦加多4个功能,加多保存功能,读取功能,调整队伍位置功能与加滚动栏出来




#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make command window
    s1 = "物品使用"
    s2 = "特殊技能"
    s3 = "武器装备"
    s4 = "目标行动"
    s5 = "人物档案"
    s6 = "操作说明"
    s7 = "结束游戏"
    @command_window = Window_Command.new(120, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.x=472
    @command_window.y=48   #空出96/2=48
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(4)      
    end
    if $game_party.actors.size <= 1
      @command_window.disable_item(5)      
    end
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(5)
    end
    # Make play time window
    #@playtime_window = Window_PlayTime.new
    #@playtime_window.x = 0
    #@playtime_window.y = 256
    # Make Mapname window
    @steps_window = Window_Steps.new
    @steps_window.x = 472
    @steps_window.y = 304
    # Make gold window
    #@gold_window = Window_Gold.new
    #@gold_window.x = 0
    #@gold_window.y = 416
    # Make status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 48
    @status_window.y = 48
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    #@playtime_window.dispose
    @steps_window.dispose
    #@gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    #@playtime_window.update
    @steps_window.update
    #@gold_window.update
    @status_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 5
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      elsif $game_party.actors.size <= 1 and @command_window.index ==3
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # Tactics
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_Mession.new
      when 5  # 帮助
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到说明画面
        $scene = Scene_Gamehelp.new
      when 6  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0  # Item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Item.new(@status_window.index)
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # tactics
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Tactics.new(@status_window.index)
      end
      return
    end
  end
end

此贴于 2008-11-22 10:46:25 被版主darkten提醒,请楼主看到后对本贴做出回应。
先说明我的是ARPG来的,可以弄很多个成员加入


#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays party member status on the menu screen.
#==============================================================================

class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
   super(0, 0, 424, 475)
   self.contents = Bitmap.new(width - 32, height - 32)
   refresh
   self.active = false
   self.index = -1
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     x = 64
     y = i * 116
     actor = $game_party.actors
     draw_actor_graphic(actor, x - 40, y + 80)
     draw_actor_name(actor, x, y)
     draw_actor_class(actor, x + 86, y)
     draw_actor_level(actor, x, y + 32)
     draw_actor_state(actor, x + 90, y + 32)
     draw_actor_exp(actor, x, y + 64, 150)
     draw_actor_hp(actor, x-56 + 236, y + 32)
     draw_actor_sp(actor, x + 236-56, y + 64)
     end
end
#--------------------------------------------------------------------------
# * Cursor Rectangle Update
#--------------------------------------------------------------------------
def update_cursor_rect
   if @index < 0
     self.cursor_rect.empty
   else
     self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
   end
end
end

此贴于 2008-11-24 13:44:35 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-11-26 15:21:29 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-11-27 13:41:22 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-11-28 12:47:17 被版主darkten提醒,请楼主看到后对本贴做出回应。

Lv2.观梦者

梦石
0
星屑
594
在线时间
169 小时
注册时间
2008-10-29
帖子
431
2
发表于 2008-11-18 22:54:13 | 只看该作者
LZ的脸谱真是欠打-。-

一开始那里改成这样罗 :

s1 = "物品使用"
   s2 = "特殊技能"
   s3 = "武器装备"
   s4 = "目标行动"
   s5 = "人物档案"
   s6 = "操作说明"
   s7 = "结束游戏"
s8 ="保存"
s9 ="读取"
s10 ="调整队伍"
@command_window = Window_Command.new(120, [s1, s2, s3, s4, s5, s6, s7s8,s9,s10])



然后 在

if Input.trigger?(Input::C)
     # If command other than save or end game, and party members = 0
     if $game_party.actors.size == 0 and @command_window.index < 5
       # Play buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     elsif $game_party.actors.size <= 1 and @command_window.index ==3
       # Play buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # Branch by command window cursor position
     case @command_window.index

后面加上
when 7
如何如何
when 8
如何如何
when 9
如何如何

就这样罗
滚动功能好象自带了有 当栏数*32 超过窗口高度 就会自动滚动 好象是的
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

lov Peii 4ever

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-10-28
帖子
423
3
发表于 2008-11-18 22:57:12 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1080
在线时间
140 小时
注册时间
2008-7-1
帖子
149
4
 楼主| 发表于 2008-11-19 05:46:30 | 只看该作者
先多谢你们帮忙先,但是还是拉不到下去,帮不到最下层的成员装备之类的事,我的是ARPG,可以弄很多个队员的。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

lov Peii 4ever

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-10-28
帖子
423
5
发表于 2008-11-19 15:45:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1080
在线时间
140 小时
注册时间
2008-7-1
帖子
149
6
 楼主| 发表于 2008-11-19 19:24:36 | 只看该作者
先说明我的是ARPG来的,可以弄很多个成员加入


#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays party member status on the menu screen.
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 424, 475)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 86, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x, y + 64, 150)
      draw_actor_hp(actor, x-56 + 236, y + 32)
      draw_actor_sp(actor, x + 236-56, y + 64)
      end
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
32 小时
注册时间
2008-7-21
帖子
323
7
发表于 2008-11-22 00:14:36 | 只看该作者
还不如把工程发出来...
   一个能为你哭,为你笑,为你悲伤,为你快乐的人,就是真正爱你的人
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-12
帖子
953
8
发表于 2008-11-22 00:44:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-10-12
帖子
1276
9
发表于 2008-11-23 21:01:49 | 只看该作者
把游戏时间和所在地的那个栏位去掉地方差不多就够了吧。如果LZ还想显示所在地的话,加个地图名显示脚本就可以了,一般ARPG都是在地图上显示地图名吧(游戏时间同上)。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-21 04:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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