Project1

标题: [应求发布]整合菜单系统 [打印本页]

作者: 雪流星    时间: 2008-3-6 08:37
标题: [应求发布]整合菜单系统
范例下载:
http://rpg.blue/upload_program/files/menu_asked_85192545.rar

物品分类设置方法:在物品、武器、防具的备注栏里打上如下格式:
      <分类 类别>
     类别以你在 「种类 识别名称」 设置的名称分类
     若是找不到分类名称,就会归在默认的物品种类下
    详细设置请看脚本里面的注释

任务系统使用方法:
    请看注释

CG背景使用方法:
    CG图放在Picture文件夹内,命名为"CG"後面接任何数字(必须连号)
    详细看范例,然後在Scene_Menu第14行设置最大数目

还有什麽要修改的?
作者: 精灵使者    时间: 2008-3-6 08:41
这个要我转到技术区么?
稍待一天以后转过去吧。
作者: 雪流星    时间: 2008-3-6 15:19
先不要转,等要求的人下载後我在自己转,谢谢{/dy}
作者: iamtenten    时间: 2008-3-6 20:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: 英俊de狗    时间: 2008-3-6 20:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-3-6 20:13
{/pz}抱歉
修改时忘了,
用这个替换掉里面的Scene_Menu
  1. #==============================================================================
  2. # ** Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  This class performs the menu screen processing.
  5. #==============================================================================

  6. class Scene_Menu < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对象
  9.   #     menu_index : 菜单命令位置
  10.   #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 0)
  12.     @menu_index = menu_index
  13.     @cg_number = 5    # CG 背景數量
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 执行开始
  17.   #--------------------------------------------------------------------------
  18.   def start
  19.     super
  20.     create_menu_background
  21.     create_command_window
  22.    
  23.     @actor_index = 0
  24.     @actor = $game_party.members[@actor_index]
  25.     # 生成金钱窗口
  26.     @gold_window = Window_Gold.new(0, 360)
  27.     # 生成状态窗口
  28.     @status_window = Window_Status.new(@actor)
  29.     # 生成时间窗口
  30.     @time_window = Window_PlayTime.new
  31.    
  32.     @viewport = Viewport.new(0, 0, 544, 416)
  33.    
  34.     # 生成帮助窗口
  35.     @help_window = Window_Help.new
  36.     @help_window.visible = false
  37.     @help_window.x = 0
  38.     @help_window.y = 360
  39.    
  40.     # 生成物品窗口
  41.     @item_window = Window_Item.new(160, 176, 384, 184)
  42.     @item_window.index = -1
  43.     @item_window.visible = false
  44.     @item_window.active = false
  45.    
  46.     # 生成物品分类窗口
  47.     @category_window = Window_ItemCategory.new
  48.     @category_window.width = 160
  49.     @category_window.height = 184
  50.     @category_window.visible = false
  51.     @category_window.active = false
  52.    
  53.     # 生成技能窗口
  54.     @skill_window = Window_Skill.new(0, 176, 544, 184, @actor)
  55.     @skill_window.index = -1
  56.     @skill_window.visible = false
  57.     @skill_window.active = false
  58.    
  59.     # 生成装备窗口
  60.     @equip_window = Window_Equip.new(208, 56, @actor)
  61.     @equip_window.index = -1
  62.     @equip_window.x = 160
  63.     @equip_window.y = 176
  64.     @equip_window.width += 48
  65.     @equip_window.height += 32
  66.     @equip_window.visible = false
  67.     @equip_window.active = false
  68.    
  69.     # 生成装备状态窗口
  70.     @equip_status_window = Window_EquipStatus.new(0, 56, @actor)
  71.     @equip_status_window.y = 176
  72.     @equip_status_window.height += 32
  73.     @equip_status_window.visible = false
  74.     create_equip_item_windows
  75.    
  76.     # 生成目标窗口
  77.     @target_window = Window_MenuStatus.new(0, 0)
  78.     @target_window.visible = false
  79.     @target_window.active = false
  80.     @target_window.z = 1500
  81.   end
  82.   def create_menu_background
  83.     # 生成CG背景
  84.     @viewport2 = Viewport.new(0, 176, 544, 184)
  85.     @menuback_sprite = Sprite.new(@viewport2)
  86.     @menuback_sprite.bitmap = Bitmap.new("Graphics/Pictures/CG#{rand(@cg_number)+1}")
  87.     update_menu_background
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 执行结束
  91.   #--------------------------------------------------------------------------
  92.   def terminate
  93.     super
  94.     # 释放背景
  95.     dispose_menu_background
  96.     # 释放所有窗口
  97.     @command_window.dispose
  98.     @gold_window.dispose
  99.     @status_window.dispose
  100.     @time_window.dispose
  101.     @help_window.dispose
  102.     @item_window.dispose
  103.     @category_window.dispose
  104.     @skill_window.dispose
  105.     @equip_window.dispose
  106.     @target_window.dispose
  107.     @equip_status_window.dispose
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 更新画面
  111.   #--------------------------------------------------------------------------
  112.   def update
  113.     super
  114.     # 刷新背景
  115.     update_menu_background
  116.     # 刷新所有窗口
  117.     @command_window.update
  118.     @gold_window.update
  119.     @status_window.update
  120.     @time_window.update
  121.     @help_window.update
  122.     @item_window.update
  123.     @category_window.update
  124.     @skill_window.update
  125.     @equip_item_window.update if @equip_item_window != nil
  126.     @equip_window.update
  127.     @target_window.update
  128.    
  129.     if @command_window.active
  130.       update_command_selection
  131.     elsif @item_window.active
  132.       update_item_selection
  133.     elsif @skill_window.active
  134.       update_skill_selection
  135.     elsif @target_window.active
  136.       update_item_target_selection  if @command_window.index == 0
  137.       update_skill_target_selection if @command_window.index == 1
  138.     elsif @category_window.active
  139.       update_category_selection
  140.     elsif @equip_window.active
  141.       update_equip_selection
  142.       update_equip_item_windows
  143.       update_equip_status_window
  144.     elsif @equip_item_window.active
  145.       update_equip_item_selection
  146.     end
  147.     if @status_window.active
  148.       prev_actor if Input.trigger?(Input::LEFT)
  149.       next_actor if Input.trigger?(Input::RIGHT)
  150.     end
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 生成命令窗口
  154.   #--------------------------------------------------------------------------
  155.   def create_command_window
  156.     s1 = Vocab::item
  157.     s2 = Vocab::skill
  158.     s3 = Vocab::equip
  159.     s4 = "任务"
  160.     s5 = Vocab::save
  161.     s6 = Vocab::game_end
  162.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
  163.     @command_window.index = @menu_index
  164.     if $game_party.members.size == 0          # 当队伍无人时
  165.       @command_window.draw_item(0, false)     # 无效化物品选项
  166.       @command_window.draw_item(1, false)     # 无效化技能选项
  167.       @command_window.draw_item(2, false)     # 无效化装备选项
  168.     end
  169.     if $game_system.save_disabled             # 禁止存档的场合
  170.       @command_window.draw_item(4, false)     # 无效化存档选项
  171.     end
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 更新命令窗口
  175.   #--------------------------------------------------------------------------
  176.   def update_command_selection
  177.     if Input.trigger?(Input::B)
  178.       Sound.play_cancel
  179.       $scene = Scene_Map.new
  180.     elsif Input.trigger?(Input::C)
  181.       if $game_party.members.size == 0 and @command_window.index < 3
  182.         Sound.play_buzzer
  183.         return
  184.       elsif $game_system.save_disabled and @command_window.index == 4
  185.         Sound.play_buzzer
  186.         return
  187.       end
  188.       Sound.play_decision
  189.       if @command_window.index < 3
  190.         @help_window.visible = true
  191.         @gold_window.visible = false
  192.         @time_window.visible = false
  193.         @command_window.active = false
  194.         @status_window.active = false
  195.       end
  196.       case @command_window.index
  197.       when 0      # 物品
  198.         @category_window.visible = true
  199.         @category_window.active = true
  200.         @category_window.help_window = @help_window
  201.         @category_window.index = 0
  202.         @item_window.visible = true
  203.         @help_window.visible = true
  204.       when 1      # 技能
  205.         @skill_window.help_window = @help_window
  206.         @skill_window.visible = true
  207.         @skill_window.active = true
  208.         @skill_window.index = 0
  209.         @help_window.visible = true
  210.       when 2      # 装备
  211.         @equip_window.help_window = @help_window
  212.         @equip_window.visible = true
  213.         @equip_status_window.visible = true
  214.         @equip_window.active = true
  215.         @equip_window.index = 0
  216.         @help_window.visible = true
  217.       when 3
  218.         $scene = Scene_Task.new(3)
  219.       when 4      # 存档
  220.         $scene = Scene_File.new(true, false, false)
  221.       when 5      # 结束
  222.         $scene = Scene_End.new
  223.       end
  224.     end
  225.   end
  226.   
  227.   def return_to_command(index)
  228.     @help_window.visible = false
  229.     @gold_window.visible = true
  230.     @time_window.visible = true
  231.     @status_window.active = true
  232.     @command_window.active = true
  233.     @command_window.index = index
  234.     case index
  235.     when 0
  236.       @item_window.visible = false
  237.       @category_window.visible = false
  238.       @category_window.active = false
  239.     when 1
  240.       @skill_window.visible = false
  241.       @skill_window.active = false
  242.     when 2
  243.       @equip_window.active = false
  244.       @equip_window.visible = false
  245.       @equip_status_window.visible = false
  246.       hide_equip_item_windows
  247.     end
  248.   end

  249.   
  250.   #--------------------------------------------------------------------------
  251.   # ● 切换到下一个角色
  252.   #--------------------------------------------------------------------------
  253.   def next_actor
  254.     Sound.play_cursor
  255.     @actor_index += 1
  256.     @actor_index %= $game_party.members.size
  257.     @status_window.dispose
  258.     @actor = $game_party.members[@actor_index]
  259.     @status_window = Window_Status.new(@actor)
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● 切换到上一个角色
  263.   #--------------------------------------------------------------------------
  264.   def prev_actor
  265.     Sound.play_cursor
  266.     @actor_index += $game_party.members.size - 1
  267.     @actor_index %= $game_party.members.size
  268.     @status_window.dispose
  269.     @actor = $game_party.members[@actor_index]
  270.     @status_window = Window_Status.new(@actor)
  271.   end
  272.   
  273.   def update_equip_selection
  274.     if Input.trigger?(Input::B)
  275.       Sound.play_cancel
  276.       return_scene
  277.     elsif Input.trigger?(Input::R)
  278.       Sound.play_cursor
  279.       next_actor
  280.     elsif Input.trigger?(Input::L)
  281.       Sound.play_cursor
  282.       prev_actor
  283.     elsif Input.trigger?(Input::C)
  284.       if @actor.fix_equipment
  285.         Sound.play_buzzer
  286.       else
  287.         Sound.play_decision
  288.         @equip_window.active = false
  289.         @item_window.active = true
  290.         @item_window.index = 0
  291.       end
  292.     end
  293.   end
  294. end
复制代码

作者: iamtenten    时间: 2008-3-6 20:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 殤。    时间: 2008-3-7 02:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: Beside    时间: 2008-3-7 05:34
同楼上。另。vx1.01似乎打开不能...
作者: 水之证    时间: 2008-3-7 06:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-3-7 08:52
1.01 不能开的话,就用记事本打开
把RPGVX 1.02 改成RPGVX 1.01就行了
作者: iamtenten    时间: 2008-3-7 15:58
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1