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

Project1

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

怎么能突破VX默认人物上限?(不用有多人战斗功能)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2008-3-8
帖子
138
跳转到指定楼层
1
发表于 2008-9-14 22:34:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
最近做VX遇到一个问题...
跟XP一样,VX的队伍中只能有4个人,
想做一个7个人的R剧,而且不用战斗,也不用换领队的...

于是就上主站来搜索,
结果大家类似的问题都是有涉及到"多人战斗"的..
= =..郁闷..
就是来这里想各位高手求救~~~

再具体说一下吧..
就是1.菜单里面能显示超过4人(如果能谦容
  1. #==============================================================================
  2. # VX菜单重新排版 by 仲秋启明
  3. #------------------------------------------------------------------------------
  4. #同伴窗口可以使用左右键
  5. #如插入菜单背景音,可在第247行插入
  6. #更改图标在第118行
  7. #金钱图标在第203行定义
  8. class Window_Base < Window
  9.   #--------------------------------------------------------------------------
  10.   # ● HP的描画
  11.   #     actor : 角色
  12.   #     x     : 描画目标 X 坐标
  13.   #     y     : 描画目标 Y 坐标
  14.   #     width : 宽
  15.   #--------------------------------------------------------------------------
  16.   def draw_actor_hp(actor, x, y, width = 90)
  17.     draw_actor_hp_gauge(actor, x, y, width)
  18.     self.contents.font.color = system_color
  19.     self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
  20.     self.contents.font.color = hp_color(actor)
  21.     xr = x + width
  22.     if width < 120
  23.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
  24.     else
  25.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
  26.       self.contents.font.color = normal_color
  27.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  28.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
  29.     end
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● HP矩形的描画
  33.   #     actor : 角色
  34.   #     x     : 描画目标 X 坐标
  35.   #     y     : 描画目标 Y 坐标
  36.   #     width : 宽
  37.   #--------------------------------------------------------------------------
  38.   def draw_actor_hp_gauge(actor, x, y, width = 90)
  39.     gw = width * actor.hp / actor.maxhp
  40.     gc1 = hp_gauge_color1
  41.     gc2 = hp_gauge_color2
  42.     self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
  43.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● SP的描画
  47.   #     actor : 角色
  48.   #     x     : 描画目标 X 坐标
  49.   #     y     : 描画目标 Y 坐标
  50.   #     width : 宽
  51.   #--------------------------------------------------------------------------
  52.   def draw_actor_mp(actor, x, y, width = 90)
  53.     draw_actor_mp_gauge(actor, x, y, width)
  54.     self.contents.font.color = system_color
  55.     self.contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
  56.     self.contents.font.color = mp_color(actor)
  57.     xr = x + width
  58.     if width < 120
  59.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.mp, 2)
  60.     else
  61.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.mp, 2)
  62.       self.contents.font.color = normal_color
  63.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  64.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxmp, 2)
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● MP矩形的描画
  69.   #     actor : 角色
  70.   #     x     : 描画目标 X 坐标
  71.   #     y     : 描画目标 Y 坐标
  72.   #     width : 宽
  73.   #--------------------------------------------------------------------------
  74.   def draw_actor_mp_gauge(actor, x, y, width = 90)
  75.     gw = width * actor.mp / [actor.maxmp, 1].max
  76.     gc1 = mp_gauge_color1
  77.     gc2 = mp_gauge_color2
  78.     self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
  79.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  80.   end
  81. end
  82. #==============================================================================
  83. # ■ Window_ActorCommand
  84. #------------------------------------------------------------------------------
  85. #  菜单画面显示角色指令的窗口。
  86. #==============================================================================

  87. class Window_MenuCommand < Window_Selectable
  88.   #--------------------------------------------------------------------------
  89.   # ● 定义实例变量
  90.   #--------------------------------------------------------------------------  
  91.   attr_reader   :commands                 # 命令  
  92.   WLH = 28
  93.   #--------------------------------------------------------------------------
  94.   # ● 初始化对象
  95.   #     width      : 窗口的宽
  96.   #     commands   : 命令字符串序列
  97.   #     column_max : 行数 (2 行以上时选择)
  98.   #     row_max    : 列数 (0:列数加起来)
  99.   #     spacing : 选项横向排列时间隔空白宽度
  100.   #--------------------------------------------------------------------------
  101.   def initialize(width = 128, commands = [], column_max = 1, row_max = 8, spacing = 32)
  102.     if row_max == 0
  103.       row_max = (commands.size + column_max - 1) / column_max
  104.     end
  105.     super(0, 0, width, row_max * 32 + 32, spacing)
  106.     @commands = commands
  107.     @item_max = commands.size
  108.     @column_max = column_max
  109.     @remember_index = -1
  110.     self.index = 0
  111.     self.y = (Graphics.height - self.height) / 2 - 8
  112.     update
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 刷新
  116.   #--------------------------------------------------------------------------
  117.   def refresh
  118.     self.contents.clear
  119.       @icon_list = [2862, 2863, 2859, 2865, 2864, 2861]
  120.     for i in 0...@item_max
  121.       draw_item(i)
  122.     end
  123.   end
  124.   
  125.   #--------------------------------------------------------------------------
  126.   # ● 描绘项目
  127.   #     index : 项目编号
  128.   #     enabled : 有效标记录。是false 的时候半透明绘画
  129.   #--------------------------------------------------------------------------
  130.   def draw_item(index, enabled = true)
  131.     rect = item_rect(index)
  132.     rect.x += 4
  133.     rect.width -= 8
  134.     self.contents.clear_rect(rect)
  135.     draw_icon(@icon_list[index], rect.x, rect.y, true) if index == self.index
  136.     self.contents.font.color = normal_color   
  137.     if !enabled or self.index != index
  138.       self.contents.font.color.alpha =  64
  139.     else
  140.       self.contents.font.color.alpha =  255
  141.     end
  142.     rect.x += 26
  143.     self.contents.draw_text(rect, @commands[index])
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 获取项目描画矩形
  147.   #     index : 项目编号
  148.   #--------------------------------------------------------------------------
  149.   def item_rect(index)
  150.     rect = Rect.new(0, 0, 0, 0)
  151.     rect.width = (contents.width + @spacing) / @column_max - @spacing
  152.     rect.height = WLH
  153.     rect.x = index % @column_max * (rect.width + @spacing)
  154.     rect.y = index / @column_max * WLH
  155.     return rect
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 刷新类型
  159.   #--------------------------------------------------------------------------
  160.   def update
  161.     super
  162.     @remember_index = self.index if self.index == -1
  163.     if @remember_index != self.index
  164.       @remember_index = self.index
  165.       refresh
  166.     end
  167.   end
  168. end
  169. #==============================================================================
  170. # ■ Window_MenuStatus
  171. #------------------------------------------------------------------------------
  172. #  显示菜单画面和同伴状态的窗口。
  173. #==============================================================================

  174. class Window_MenuStatus < Window_Selectable
  175.   #--------------------------------------------------------------------------
  176.   # ● 初始化对象
  177.   #     x : 窗口的 X 坐标
  178.   #     y : 窗口的 Y 坐标
  179.   #--------------------------------------------------------------------------
  180.   def initialize(x, y)
  181.     super(x, y, 544, 416)
  182.     refresh
  183.     self.active = false
  184.     self.index = -1
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 刷新
  188.   #--------------------------------------------------------------------------
  189.   def refresh
  190.     self.contents.clear
  191.     @item_max = $game_party.members.size
  192.     for actor in $game_party.members
  193.       draw_actor_face(actor,actor.index * 96 + 2,42, 92)
  194.       x = actor.index * 96 + WLH / 2
  195.       y = 144
  196.       draw_actor_name(actor, x, y)
  197.       draw_actor_class(actor, x , y+60)
  198.       draw_actor_level(actor, x, y + WLH * 1)
  199.       draw_actor_state(actor, x , y )
  200.       draw_actor_hp(actor, x -10, y +60+ WLH*1)
  201.       draw_actor_mp(actor, x -10, y +60+ WLH*2)
  202.     end
  203.     draw_icon(252 - 58, 384+5, 284-32)
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 更新光标
  207.   #--------------------------------------------------------------------------
  208.   def update_cursor
  209.     if @index < 0               # 没有光标
  210.       self.cursor_rect.empty
  211.     elsif @index < @item_max    # 普通
  212.       self.cursor_rect.set(@index * 96,30, 96,264)
  213.     elsif @index >= 100         # 自己
  214.       self.cursor_rect.set((@index - 100) * 96,30,96,264)
  215.     else                        # 全体
  216.       self.cursor_rect.set(0, 3, @item_max * 96, 264)
  217.     end
  218.     if Input.trigger?(Input::LEFT)
  219.       @index-=1
  220.     else
  221.       if Input.trigger?(Input::RIGHT)
  222.       @index+=1
  223.     end
  224.     if @index>3
  225.       return @index=0
  226.     else
  227.      if @index<-1
  228.       return @index=3
  229.     end
  230.   end
  231. end
  232. end
  233. end
  234. #==============================================================================
  235. # ■ Scene_Menu
  236. #------------------------------------------------------------------------------
  237. #  处理菜单画面的类。
  238. #==============================================================================

  239. class Scene_Menu < Scene_Base
  240.   #--------------------------------------------------------------------------
  241.   # ● 初始化对象
  242.   #     menu_index : 指令光标初期位置
  243.   #--------------------------------------------------------------------------
  244.   def initialize(menu_index = 0)
  245.     @menu_index = menu_index
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● 开始处理
  249.   #--------------------------------------------------------------------------
  250.   def start
  251.     super
  252.     create_menu_background
  253.     create_command_window
  254.     @gold_window = Window_Gold.new(384, 284-32)
  255.     @status_window = Window_MenuStatus.new(0, 0)
  256.     @status_window.opacity = 0
  257.     @gold_window.opacity = 0
  258.     @command_window.opacity = 0
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● 结束处理
  262.   #--------------------------------------------------------------------------
  263.   def terminate
  264.     super
  265.     dispose_menu_background
  266.     @command_window.dispose
  267.     @gold_window.dispose
  268.     @status_window.dispose
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 更新画面
  272.   #--------------------------------------------------------------------------
  273.   def update
  274.     super
  275.     update_menu_background
  276.     @command_window.update
  277.     @gold_window.update
  278.     @status_window.update
  279.     if @command_window.active
  280.       update_command_selection
  281.     elsif @status_window.active
  282.       update_actor_selection
  283.     end
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 生成指令窗口
  287.   #--------------------------------------------------------------------------
  288.   def create_command_window
  289.     s1 = "使用物品"
  290.     s2 = "已学特技"
  291.     s3 = "更换装备"
  292.     s4 = "查看状态"
  293.     s5 = "储存进度"
  294.     s6 = "离开游戏"
  295.     @command_window = Window_MenuCommand.new(160, [s1, s2, s3, s4, s5, s6])
  296.     @command_window.index = @menu_index
  297.     @command_window.x = 384
  298.     @command_window.y = 40
  299.     if $game_party.members.size == 0          # 同伴人数为 0 的情况下
  300.       @command_window.draw_item(0, false)     # 物品无效化
  301.       @command_window.draw_item(1, false)     # 特技无效化
  302.       @command_window.draw_item(2, false)     # 装备无效化
  303.       @command_window.draw_item(3, false)     # 状态无效化
  304.     end
  305.     if $game_system.save_disabled             # 禁止存档的情况下
  306.       @command_window.draw_item(5, false)     # 存档无效化
  307.     end
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● 更新指令选择
  311.   #--------------------------------------------------------------------------
  312.   def update_command_selection
  313.     if Input.trigger?(Input::B)
  314.       Sound.play_cancel
  315.       $scene = Scene_Map.new
  316.     elsif Input.trigger?(Input::C)
  317.       if $game_party.members.size == 0 and @command_window.index < 4
  318.         Sound.play_buzzer
  319.         return
  320.       elsif $game_system.save_disabled and @command_window.index == 4
  321.         Sound.play_buzzer
  322.         return
  323.       end
  324.       Sound.play_decision
  325.       case @command_window.index
  326.       when 0      # 物品
  327.         $scene = Scene_Item.new
  328.       when 1,2,3  # 特技、装备、状态
  329.         start_actor_selection
  330.       when 4      # 存档
  331.         $scene = Scene_File.new(true, false, false)
  332.       when 5      # 游戏结束
  333.         $scene = Scene_End.new
  334.       end
  335.     end
  336.   end
  337.   #--------------------------------------------------------------------------
  338.   # ● アクター選択の開始
  339.   #--------------------------------------------------------------------------
  340.   def start_actor_selection
  341.     @command_window.active = false
  342.     @status_window.active = true
  343.     if $game_party.last_actor_index < @status_window.item_max
  344.       @status_window.index = $game_party.last_actor_index
  345.     else
  346.       @status_window.index = 0
  347.     end
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ● アクター選択の終了
  351.   #--------------------------------------------------------------------------
  352.   def end_actor_selection
  353.     @command_window.active = true
  354.     @status_window.active = false
  355.     @status_window.index = -1
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ● アクター選択の更新
  359.   #--------------------------------------------------------------------------
  360.   def update_actor_selection
  361.     if Input.trigger?(Input::B)
  362.       Sound.play_cancel
  363.       end_actor_selection
  364.     elsif Input.trigger?(Input::C)
  365.       $game_party.last_actor_index = @status_window.index
  366.       Sound.play_decision
  367.       case @command_window.index
  368.       when 1  # スキル
  369.         $scene = Scene_Skill.new(@status_window.index)
  370.       when 2  # 装備
  371.         $scene = Scene_Equip.new(@status_window.index)
  372.       when 3  # ステータス
  373.         $scene = Scene_Status.new(@status_window.index)
  374.       end
  375.     end
  376.   end
  377. end
复制代码

这个脚本就好了...
2.就是不能换领队..(= =..我承认我很OTZ)
3.再来就是不要和战斗沾边!!!~~~~
PS:http://rpg.blue/viewthread.php?tid=76306&page=1这个脚本我看过了,太复杂....所以就是简简单单就可以了~~~

好了...感谢大家看完我这么过分的请求...
我这样算是伸手党么...{/pz}

此贴于 2008-10-13 22:57:35 被版主八云紫提醒,请楼主看到后对本贴做出回应。
版务信息:版主帮忙结贴~
深刻体会到不会做线稿和上色的痛苦啊...
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
2
发表于 2008-9-15 01:53:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-14
帖子
72
3
发表于 2008-9-15 02:26:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2008-3-8
帖子
138
4
 楼主| 发表于 2008-9-15 08:14:52 | 只看该作者
以下引用kissye于2008-9-14 17:53:00的发言:

首先在Game_Party里找到MAX_MEMBERS =
把等号右边换成你想要的队伍最大人数

然后把下面的脚本插入到Main前面
  1. #==============================================================================
  2. # ** Window_MenuStatus
  3. #------------------------------------------------------------------------------
  4. #  本窗口显示于ESC选单画面中,用于显示在队主角们的基本状态。
  5. #==============================================================================

  6. class Window_MenuStatus < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # * 对象初始化
  9.   #     x : 窗口X坐标
  10.   #     y : 窗口Y坐标
  11.   #--------------------------------------------------------------------------
  12.   def initialize(x, y)
  13.     size = $game_party.members.size
  14.     super(x, y, 384, 96 * size + 32)
  15.     refresh
  16.     self.height = 416
  17.     self.active = false
  18.     self.index = -1
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # * 获取首个横行的资讯
  22.   #--------------------------------------------------------------------------
  23.   def top_row
  24.     return self.oy / 96
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # * 设置首个横行[在屏幕最顶部显示的横行]
  28.   #     row : 在屏幕最顶部显示的横行
  29.   #--------------------------------------------------------------------------
  30.   def top_row=(row)
  31.     row = 0 if row < 0
  32.     row = row_max - 1 if row > row_max - 1
  33.     self.oy = row * 96
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # * 获取一页可以显示的横行数
  37.   #--------------------------------------------------------------------------
  38.   def page_row_max
  39.     return (self.height - 32) / 96
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # * 更新光标绘制
  43.   #--------------------------------------------------------------------------
  44.   def update_cursor
  45.     if @index < 0               # No cursor
  46.       self.cursor_rect.empty
  47.     elsif @index < @item_max    # Normal
  48.       row = @index / @column_max
  49.       if row < top_row
  50.         self.top_row = row
  51.       end
  52.       if row > bottom_row
  53.         self.bottom_row = row
  54.       end
  55.       rect = Rect.new(0, @index * 96, contents.width, 96)
  56.       rect.y -= self.oy
  57.       self.cursor_rect = rect
  58.     elsif @index >= 100         # Self
  59.       self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
  60.     else                        # All
  61.       self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
  62.     end
  63.   end
  64. end
复制代码

弱弱的举手...如果用的
  1. #==============================================================================
  2. # VX菜单重新排版 by 仲秋启明
  3. #------------------------------------------------------------------------------
  4. #同伴窗口可以使用左右键
  5. #如插入菜单背景音,可在第247行插入
  6. #更改图标在第118行
  7. #金钱图标在第203行定义
  8. class Window_Base < Window
  9.   #--------------------------------------------------------------------------
  10.   # ● HP的描画
  11.   #     actor : 角色
  12.   #     x     : 描画目标 X 坐标
  13.   #     y     : 描画目标 Y 坐标
  14.   #     width : 宽
  15.   #--------------------------------------------------------------------------
  16.   def draw_actor_hp(actor, x, y, width = 90)
  17.     draw_actor_hp_gauge(actor, x, y, width)
  18.     self.contents.font.color = system_color
  19.     self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
  20.     self.contents.font.color = hp_color(actor)
  21.     xr = x + width
  22.     if width < 120
  23.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
  24.     else
  25.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
  26.       self.contents.font.color = normal_color
  27.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  28.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
  29.     end
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● HP矩形的描画
  33.   #     actor : 角色
  34.   #     x     : 描画目标 X 坐标
  35.   #     y     : 描画目标 Y 坐标
  36.   #     width : 宽
  37.   #--------------------------------------------------------------------------
  38.   def draw_actor_hp_gauge(actor, x, y, width = 90)
  39.     gw = width * actor.hp / actor.maxhp
  40.     gc1 = hp_gauge_color1
  41.     gc2 = hp_gauge_color2
  42.     self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
  43.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● SP的描画
  47.   #     actor : 角色
  48.   #     x     : 描画目标 X 坐标
  49.   #     y     : 描画目标 Y 坐标
  50.   #     width : 宽
  51.   #--------------------------------------------------------------------------
  52.   def draw_actor_mp(actor, x, y, width = 90)
  53.     draw_actor_mp_gauge(actor, x, y, width)
  54.     self.contents.font.color = system_color
  55.     self.contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
  56.     self.contents.font.color = mp_color(actor)
  57.     xr = x + width
  58.     if width < 120
  59.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.mp, 2)
  60.     else
  61.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.mp, 2)
  62.       self.contents.font.color = normal_color
  63.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  64.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxmp, 2)
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● MP矩形的描画
  69.   #     actor : 角色
  70.   #     x     : 描画目标 X 坐标
  71.   #     y     : 描画目标 Y 坐标
  72.   #     width : 宽
  73.   #--------------------------------------------------------------------------
  74.   def draw_actor_mp_gauge(actor, x, y, width = 90)
  75.     gw = width * actor.mp / [actor.maxmp, 1].max
  76.     gc1 = mp_gauge_color1
  77.     gc2 = mp_gauge_color2
  78.     self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
  79.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  80.   end
  81. end
  82. #==============================================================================
  83. # ■ Window_ActorCommand
  84. #------------------------------------------------------------------------------
  85. #  菜单画面显示角色指令的窗口。
  86. #==============================================================================

  87. class Window_MenuCommand < Window_Selectable
  88.   #--------------------------------------------------------------------------
  89.   # ● 定义实例变量
  90.   #--------------------------------------------------------------------------  
  91.   attr_reader   :commands                 # 命令  
  92.   WLH = 28
  93.   #--------------------------------------------------------------------------
  94.   # ● 初始化对象
  95.   #     width      : 窗口的宽
  96.   #     commands   : 命令字符串序列
  97.   #     column_max : 行数 (2 行以上时选择)
  98.   #     row_max    : 列数 (0:列数加起来)
  99.   #     spacing : 选项横向排列时间隔空白宽度
  100.   #--------------------------------------------------------------------------
  101.   def initialize(width = 128, commands = [], column_max = 1, row_max = 8, spacing = 32)
  102.     if row_max == 0
  103.       row_max = (commands.size + column_max - 1) / column_max
  104.     end
  105.     super(0, 0, width, row_max * 32 + 32, spacing)
  106.     @commands = commands
  107.     @item_max = commands.size
  108.     @column_max = column_max
  109.     @remember_index = -1
  110.     self.index = 0
  111.     self.y = (Graphics.height - self.height) / 2 - 8
  112.     update
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 刷新
  116.   #--------------------------------------------------------------------------
  117.   def refresh
  118.     self.contents.clear
  119.       @icon_list = [2862, 2863, 2859, 2865, 2864, 2861]
  120.     for i in 0...@item_max
  121.       draw_item(i)
  122.     end
  123.   end
  124.   
  125.   #--------------------------------------------------------------------------
  126.   # ● 描绘项目
  127.   #     index : 项目编号
  128.   #     enabled : 有效标记录。是false 的时候半透明绘画
  129.   #--------------------------------------------------------------------------
  130.   def draw_item(index, enabled = true)
  131.     rect = item_rect(index)
  132.     rect.x += 4
  133.     rect.width -= 8
  134.     self.contents.clear_rect(rect)
  135.     draw_icon(@icon_list[index], rect.x, rect.y, true) if index == self.index
  136.     self.contents.font.color = normal_color   
  137.     if !enabled or self.index != index
  138.       self.contents.font.color.alpha =  64
  139.     else
  140.       self.contents.font.color.alpha =  255
  141.     end
  142.     rect.x += 26
  143.     self.contents.draw_text(rect, @commands[index])
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 获取项目描画矩形
  147.   #     index : 项目编号
  148.   #--------------------------------------------------------------------------
  149.   def item_rect(index)
  150.     rect = Rect.new(0, 0, 0, 0)
  151.     rect.width = (contents.width + @spacing) / @column_max - @spacing
  152.     rect.height = WLH
  153.     rect.x = index % @column_max * (rect.width + @spacing)
  154.     rect.y = index / @column_max * WLH
  155.     return rect
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 刷新类型
  159.   #--------------------------------------------------------------------------
  160.   def update
  161.     super
  162.     @remember_index = self.index if self.index == -1
  163.     if @remember_index != self.index
  164.       @remember_index = self.index
  165.       refresh
  166.     end
  167.   end
  168. end
  169. #==============================================================================
  170. # ■ Window_MenuStatus
  171. #------------------------------------------------------------------------------
  172. #  显示菜单画面和同伴状态的窗口。
  173. #==============================================================================

  174. class Window_MenuStatus < Window_Selectable
  175.   #--------------------------------------------------------------------------
  176.   # ● 初始化对象
  177.   #     x : 窗口的 X 坐标
  178.   #     y : 窗口的 Y 坐标
  179.   #--------------------------------------------------------------------------
  180.   def initialize(x, y)
  181.     super(x, y, 544, 416)
  182.     refresh
  183.     self.active = false
  184.     self.index = -1
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 刷新
  188.   #--------------------------------------------------------------------------
  189.   def refresh
  190.     self.contents.clear
  191.     @item_max = $game_party.members.size
  192.     for actor in $game_party.members
  193.       draw_actor_face(actor,actor.index * 96 + 2,42, 92)
  194.       x = actor.index * 96 + WLH / 2
  195.       y = 144
  196.       draw_actor_name(actor, x, y)
  197.       draw_actor_class(actor, x , y+60)
  198.       draw_actor_level(actor, x, y + WLH * 1)
  199.       draw_actor_state(actor, x , y )
  200.       draw_actor_hp(actor, x -10, y +60+ WLH*1)
  201.       draw_actor_mp(actor, x -10, y +60+ WLH*2)
  202.     end
  203.     draw_icon(252 - 58, 384+5, 284-32)
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 更新光标
  207.   #--------------------------------------------------------------------------
  208.   def update_cursor
  209.     if @index < 0               # 没有光标
  210.       self.cursor_rect.empty
  211.     elsif @index < @item_max    # 普通
  212.       self.cursor_rect.set(@index * 96,30, 96,264)
  213.     elsif @index >= 100         # 自己
  214.       self.cursor_rect.set((@index - 100) * 96,30,96,264)
  215.     else                        # 全体
  216.       self.cursor_rect.set(0, 3, @item_max * 96, 264)
  217.     end
  218.     if Input.trigger?(Input::LEFT)
  219.       @index-=1
  220.     else
  221.       if Input.trigger?(Input::RIGHT)
  222.       @index+=1
  223.     end
  224.     if @index>3
  225.       return @index=0
  226.     else
  227.      if @index<-1
  228.       return @index=3
  229.     end
  230.   end
  231. end
  232. end
  233. end
  234. #==============================================================================
  235. # ■ Scene_Menu
  236. #------------------------------------------------------------------------------
  237. #  处理菜单画面的类。
  238. #==============================================================================

  239. class Scene_Menu < Scene_Base
  240.   #--------------------------------------------------------------------------
  241.   # ● 初始化对象
  242.   #     menu_index : 指令光标初期位置
  243.   #--------------------------------------------------------------------------
  244.   def initialize(menu_index = 0)
  245.     @menu_index = menu_index
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● 开始处理
  249.   #--------------------------------------------------------------------------
  250.   def start
  251.     super
  252.     create_menu_background
  253.     create_command_window
  254.     @gold_window = Window_Gold.new(384, 284-32)
  255.     @status_window = Window_MenuStatus.new(0, 0)
  256.     @status_window.opacity = 0
  257.     @gold_window.opacity = 0
  258.     @command_window.opacity = 0
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● 结束处理
  262.   #--------------------------------------------------------------------------
  263.   def terminate
  264.     super
  265.     dispose_menu_background
  266.     @command_window.dispose
  267.     @gold_window.dispose
  268.     @status_window.dispose
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 更新画面
  272.   #--------------------------------------------------------------------------
  273.   def update
  274.     super
  275.     update_menu_background
  276.     @command_window.update
  277.     @gold_window.update
  278.     @status_window.update
  279.     if @command_window.active
  280.       update_command_selection
  281.     elsif @status_window.active
  282.       update_actor_selection
  283.     end
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 生成指令窗口
  287.   #--------------------------------------------------------------------------
  288.   def create_command_window
  289.     s1 = "使用物品"
  290.     s2 = "已学特技"
  291.     s3 = "更换装备"
  292.     s4 = "查看状态"
  293.     s5 = "储存进度"
  294.     s6 = "离开游戏"
  295.     @command_window = Window_MenuCommand.new(160, [s1, s2, s3, s4, s5, s6])
  296.     @command_window.index = @menu_index
  297.     @command_window.x = 384
  298.     @command_window.y = 40
  299.     if $game_party.members.size == 0          # 同伴人数为 0 的情况下
  300.       @command_window.draw_item(0, false)     # 物品无效化
  301.       @command_window.draw_item(1, false)     # 特技无效化
  302.       @command_window.draw_item(2, false)     # 装备无效化
  303.       @command_window.draw_item(3, false)     # 状态无效化
  304.     end
  305.     if $game_system.save_disabled             # 禁止存档的情况下
  306.       @command_window.draw_item(5, false)     # 存档无效化
  307.     end
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● 更新指令选择
  311.   #--------------------------------------------------------------------------
  312.   def update_command_selection
  313.     if Input.trigger?(Input::B)
  314.       Sound.play_cancel
  315.       $scene = Scene_Map.new
  316.     elsif Input.trigger?(Input::C)
  317.       if $game_party.members.size == 0 and @command_window.index < 4
  318.         Sound.play_buzzer
  319.         return
  320.       elsif $game_system.save_disabled and @command_window.index == 4
  321.         Sound.play_buzzer
  322.         return
  323.       end
  324.       Sound.play_decision
  325.       case @command_window.index
  326.       when 0      # 物品
  327.         $scene = Scene_Item.new
  328.       when 1,2,3  # 特技、装备、状态
  329.         start_actor_selection
  330.       when 4      # 存档
  331.         $scene = Scene_File.new(true, false, false)
  332.       when 5      # 游戏结束
  333.         $scene = Scene_End.new
  334.       end
  335.     end
  336.   end
  337.   #--------------------------------------------------------------------------
  338.   # ● アクター選択の開始
  339.   #--------------------------------------------------------------------------
  340.   def start_actor_selection
  341.     @command_window.active = false
  342.     @status_window.active = true
  343.     if $game_party.last_actor_index < @status_window.item_max
  344.       @status_window.index = $game_party.last_actor_index
  345.     else
  346.       @status_window.index = 0
  347.     end
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ● アクター選択の終了
  351.   #--------------------------------------------------------------------------
  352.   def end_actor_selection
  353.     @command_window.active = true
  354.     @status_window.active = false
  355.     @status_window.index = -1
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ● アクター選択の更新
  359.   #--------------------------------------------------------------------------
  360.   def update_actor_selection
  361.     if Input.trigger?(Input::B)
  362.       Sound.play_cancel
  363.       end_actor_selection
  364.     elsif Input.trigger?(Input::C)
  365.       $game_party.last_actor_index = @status_window.index
  366.       Sound.play_decision
  367.       case @command_window.index
  368.       when 1  # スキル
  369.         $scene = Scene_Skill.new(@status_window.index)
  370.       when 2  # 装備
  371.         $scene = Scene_Equip.new(@status_window.index)
  372.       when 3  # ステータス
  373.         $scene = Scene_Status.new(@status_window.index)
  374.       end
  375.     end
  376.   end
  377. end
复制代码

那么这个脚本具体要改哪里...= =(我真的好贪啊)
(对不起对不起对不起~~~~~~~~~~~)
深刻体会到不会做线稿和上色的痛苦啊...
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
5
发表于 2008-9-15 23:01:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-10
帖子
273
6
发表于 2008-9-16 00:13:58 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-17
帖子
115
7
发表于 2008-9-16 11:16:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2008-3-8
帖子
138
9
 楼主| 发表于 2008-9-23 05:45:48 | 只看该作者
以下引用kissye于2008-9-15 15:01:13的发言:

和你那个兼容的话,问题是我不知道你的最终效果是怎么样的...
现在写着"技能""状态"等命令的那个的窗口背景还要吗?
然后,查看状态的时候,仍然显示那个带背景的命令窗口吗?

这么说
假如查看窗口时候不显示命令窗口,这个最好办,把队伍里的人物从左一直往右铺好了
假如察看窗口时候仍然显示命令窗口,因为现在的人物状态窗口是铺满整个屏幕的,解决方法一是背景用一个窗口,描绘人物再用一个窗口;二是不用全屏背景,窗口大小与描绘区域一致
然后又有个问题.假如命令窗口不显示背景的话,一次正好可以描绘4个人物;假如命令窗口显示背景,那么一次只能显示3个,第四个人物有一部分会被命令窗口的背景挡住

不好意思..最近都没能来看...
这位亲你好认真..{/ll}但是..这个是叫偶写...不改脚本么...= =..
忘了说了..我是脚本痴..
可能这个问题要蛮久才能解决吧...
就是说在亲你的脚本可以上下切换人物的基础上加上我放上去的脚本...
至于打开装备那些之后的,亲可以一概不管...= =...
谢谢..听不懂..可能因为我比较白吧..= ={/dk}
深刻体会到不会做线稿和上色的痛苦啊...
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
10
发表于 2008-9-23 06:09:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 03:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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