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

Project1

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

[已经解决] 帮我改改菜单

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
跳转到指定楼层
1
发表于 2012-1-20 20:27:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
.......这个其实蛮容易的(至少我这么觉得),但我对脚本一无所知,所以请别人帮帮忙
我试了试,这个应该(注意,是应该)只要调长宽就好了,我盗用了那位叫“赵灵儿”的菜单稍作修改后把“加点”
去掉了,这是脚本
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Window_PlayTime
  6. #------------------------------------------------------------------------------
  7. #  メニュー画面でプレイ時間を表示するウィンドウです。
  8. #==============================================================================

  9. $fontface = "微软雅黑"
  10. $fontsize = 20

  11. class Window_PlayTime < Window_Base
  12. #--------------------------------------------------------------------------
  13. # ● オブジェクト初期化
  14. #--------------------------------------------------------------------------
  15. def initialize
  16.    super(0, 0, 160, 70)
  17.    self.contents = Bitmap.new(width - 32, height - 32)
  18.    self.contents.font.name = $fontface
  19.    self.contents.font.size = $fontsize
  20.    refresh
  21. end
  22. #--------------------------------------------------------------------------
  23. # ● リフレッシュ
  24. #--------------------------------------------------------------------------
  25. def refresh
  26.    self.contents.clear
  27.    self.contents.font.color = system_color
  28.    self.contents.draw_text(0, -8, 120, 32, "游戏时间")
  29.    @total_sec = Graphics.frame_count / Graphics.frame_rate
  30.    hour = @total_sec / 60 / 60
  31.    min = @total_sec / 60 % 60
  32.    sec = @total_sec % 60
  33.    text = sprintf("%02d:%02d:%02d", hour, min, sec)
  34.    self.contents.font.color = normal_color
  35.    self.contents.draw_text(0, 12, 120, 32, text, 2)
  36. end
  37. #--------------------------------------------------------------------------
  38. # ● フレーム更新
  39. #--------------------------------------------------------------------------
  40. def update
  41.    super
  42.    if Graphics.frame_count / Graphics.frame_rate != @total_sec
  43.      refresh
  44.    end
  45. end
  46. end

  47. #==============================================================================
  48. # ■ Window_MapName
  49. # Location Script by Sunrunner
  50. #------------------------------------------------------------------------------
  51. #  メニュー画面で歩数を表示するウィンドウです。
  52. #==============================================================================

  53. class Window_MapName < Window_Base
  54. #--------------------------------------------------------------------------
  55. # ● オブジェクト初期化
  56. #--------------------------------------------------------------------------
  57. def initialize
  58.   super(0, 0, 160, 70)
  59.   self.contents = Bitmap.new(width - 32, height - 32)
  60.   self.contents.font.name = $fontface
  61.    self.contents.font.size = $fontsize
  62.   refresh
  63. end
  64. #--------------------------------------------------------------------------
  65. # ● リフレッシュ
  66. #--------------------------------------------------------------------------
  67. def refresh
  68.   self.contents.clear
  69.   self.contents.font.color = system_color
  70.   self.contents.draw_text(0, -8, 120, 32, "当前位置")
  71.   self.contents.font.color = normal_color
  72.   $maps = load_data("Data/MapInfos.rxdata")
  73. @map_id = $game_map.map_id
  74. @currentmap = $maps[@map_id].name
  75. self.contents.font.size = 18
  76. self.contents.draw_text(40,-5,440,64,@currentmap)

  77. end
  78. end

  79. #==============================================================================
  80. # ■ Window_Gold
  81. #------------------------------------------------------------------------------
  82. #  ゴールドを表示するウィンドウです。
  83. #==============================================================================

  84. class Window_Gold < Window_Base
  85. #--------------------------------------------------------------------------
  86. # ● オブジェクト初期化
  87. #--------------------------------------------------------------------------
  88. def initialize
  89.    super(0, 0, 160, 70)
  90.    self.contents = Bitmap.new(width - 32, height - 32)
  91.    self.contents.font.name = $fontface
  92.    self.contents.font.size = $fontsize
  93.    refresh
  94. end
  95. #--------------------------------------------------------------------------
  96. # ● リフレッシュ
  97. #--------------------------------------------------------------------------
  98. def refresh
  99.    self.contents.clear
  100.    self.contents.font.color = system_color
  101.    self.contents.draw_text(0, -8, 120, 32, "¥")
  102. cx = contents.text_size($data_system.words.gold).width
  103.    self.contents.font.color = normal_color
  104.    self.contents.draw_text(0, 12, 120-cx-2, 32, $game_party.gold.to_s, 2)
  105. end
  106. end


  107. #==============================================================================
  108. # ■ Window_MenuStatus
  109. #------------------------------------------------------------------------------
  110. #  メニュー画面でパーティメンバーのステータスを表示するウィンドウです。
  111. #==============================================================================

  112. class Window_MenuStatus < Window_Selectable
  113. #--------------------------------------------------------------------------
  114. # ● オブジェクト初期化
  115. #--------------------------------------------------------------------------
  116. def initialize
  117.    super(0, 0, 480, 415)
  118.    self.contents = Bitmap.new(width - 32, height - 32)
  119.    self.contents.font.name = $fontface
  120.    self.contents.font.size = $fontsize
  121.      refresh
  122.    self.active = false
  123.    self.index = -1
  124. end
  125. #--------------------------------------------------------------------------
  126. # ● リフレッシュ
  127. #--------------------------------------------------------------------------
  128. def refresh
  129.    self.contents.clear
  130.    @item_max = $game_party.actors.size
  131.    for i in 0...$game_party.actors.size
  132.      x = 64
  133.      y = i * 95
  134.      actor = $game_party.actors[i]
  135.      draw_actor_graphic(actor, x - 30, y + 70)
  136.      draw_actor_name(actor, x, y)
  137.      draw_actor_class(actor, x + 134, y)
  138.      draw_actor_level(actor, x, y + 30)
  139.      draw_actor_state(actor, x + 80, y + 30)
  140.      draw_actor_exp(actor, x, y + 60)
  141.      draw_actor_hp(actor, x + 226, y + 30)
  142.      draw_actor_sp(actor, x + 226, y + 60)
  143.    end
  144. end
  145. #--------------------------------------------------------------------------
  146. # ● カーソルの矩形更新
  147. #--------------------------------------------------------------------------
  148. def update_cursor_rect
  149.    if @index < 0
  150.      self.cursor_rect.empty
  151.          else
  152.      self.cursor_rect.set(0, @index * 95, self.width - 32, 95)
  153.    end
  154. end
  155. end

  156. #==============================================================================
  157. # ■ Scene_Menu
  158. #------------------------------------------------------------------------------
  159. #  メニュー画面の処理を行うクラスです。
  160. #==============================================================================
  161. class Window_Title < Window_Base
  162. #--------------------------------------------------------------------------
  163. # ● オブジェクト初期化
  164. #--------------------------------------------------------------------------
  165. def initialize
  166.    super(38, 60, 156, 70)
  167.    self.contents = Bitmap.new(width - 32, height - 32)
  168.    self.contents.font.name = $fontface
  169.    self.contents.font.size = $fontsize
  170.    refresh
  171. end
  172.   def refresh
  173.    self.contents.clear
  174.     self.contents.font.color = system_color
  175.      self.contents.font.color = normal_color
  176.    self.contents.draw_text(30, 5, 100, 30, "菜单")
  177. end
  178. end
  179. #--------------------------------
  180. class Scene_Menu
  181. #--------------------------------------------------------------------------
  182. # ● オブジェクト初期化
  183. #     menu_index : コマンドのカーソル初期位置
  184. #--------------------------------------------------------------------------
  185. def initialize(menu_index = 0)
  186.   @menu_index = menu_index
  187. end
  188. #--------------------------------------------------------------------------
  189. # ● メイン処理
  190. #--------------------------------------------------------------------------
  191. def main
  192.        # ステータスウィンドウを作成
  193.   @scene_menu = Window_Title.new
  194.   @scene_menu.x = 6
  195.   @scene_menu.y = 0
  196.   @scene_menu.back_opacity = 160
  197.   # コマンドウィンドウを作成
  198.   @sprite = Spriteset_Map.new
  199.     s1 = "背包"
  200.     s2 = "技能"
  201.     s3 = "装备"
  202.     s4 = "状态"
  203.     s5 = "记载"
  204.     s6 = "载入"
  205.     s7 = "换人"
  206.     s8 = "结束"
  207.   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8])
  208.   @command_window.index = @menu_index
  209.   @command_window.x = 5
  210.   @command_window.y = 66
  211.   @command_window.back_opacity = 160
  212.   # パーティ人数が 0 人の場合
  213.   if $game_party.actors.size == 0
  214.     # アイテム、スキル、装備、ステータスを無効化
  215.     @command_window.disable_item(0)
  216.     @command_window.disable_item(1)
  217.     @command_window.disable_item(2)
  218.     @command_window.disable_item(3)
  219.   end
  220.   # セーブ禁止の場合
  221.   if $game_system.save_disabled
  222.     # セーブを無効にする
  223.     @command_window.disable_item(4)
  224.   end
  225.   # プレイ時間ウィンドウを作成
  226.   @playtime_window = Window_PlayTime.new
  227.   @playtime_window.x = 320
  228.   @playtime_window.y = 0
  229.   @playtime_window.back_opacity = 160
  230.   # 歩数ウィンドウを作成
  231.   @steps_window = Window_MapName.new
  232.   @steps_window.x = 480
  233.   @steps_window.y = 0
  234.   @steps_window.back_opacity = 160
  235.   # ゴールドウィンドウを作成
  236.   @gold_window = Window_Gold.new
  237.   @gold_window.x = 162
  238.   @gold_window.y = 0
  239.   @gold_window.back_opacity = 160
  240.   # ステータスウィンドウを作成
  241.   @status_window = Window_MenuStatus.new
  242.   @status_window.x = 160
  243.   @status_window.y = 65
  244.   @status_window.back_opacity = 160
  245.     # トランジション実行
  246.      Graphics.transition
  247.   # メインループ
  248.   loop do
  249.     # ゲーム画面を更新
  250.     Graphics.update
  251.     # 入力情報を更新
  252.     Input.update
  253.     # フレーム更新
  254.     update
  255.     # 画面が切り替わったらループを中断
  256.     if $scene != self
  257.       break
  258.     end
  259.   end
  260.   # トランジション準備
  261.   Graphics.freeze
  262.   # ウィンドウを解放
  263.   @command_window.dispose
  264.   @playtime_window.dispose
  265.   @steps_window.dispose
  266.   @gold_window.dispose
  267.   @status_window.dispose
  268.   @scene_menu.dispose
  269.   @sprite.dispose
  270. end
  271. #--------------------------------------------------------------------------
  272. # ● フレーム更新
  273. #--------------------------------------------------------------------------
  274. def update
  275.   # ウィンドウを更新
  276.   @command_window.update
  277.   @playtime_window.update
  278.   @steps_window.update
  279.   @gold_window.update
  280.   @status_window.update
  281.   # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
  282.   if @command_window.active
  283.     update_command
  284.     return
  285.   end
  286.   # ステータスウィンドウがアクティブの場合: update_status を呼ぶ
  287.   if @status_window.active
  288.     update_status
  289.     return
  290.   end
  291. end
  292. #--------------------------------------------------------------------------
  293. # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  294. #--------------------------------------------------------------------------
  295. def update_command
  296.   # B ボタンが押された場合
  297.   if Input.trigger?(Input::B)
  298.     # キャンセル SE を演奏
  299.     $game_system.se_play($data_system.cancel_se)
  300.     # マップ画面に切り替え
  301.     $scene = Scene_Map.new
  302.     return
  303.   end
  304.   # C ボタンが押された場合
  305.   if Input.trigger?(Input::C)
  306.     # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
  307.     if $game_party.actors.size == 0 and @command_window.index < 4
  308.       # ブザー SE を演奏
  309.       $game_system.se_play($data_system.buzzer_se)
  310.       return
  311.     end
  312.     # コマンドウィンドウのカーソル位置で分岐
  313.       case @command_window.index
  314.       when 0  # アイテム
  315.         $game_system.se_play($data_system.decision_se)
  316.         # 切换到物品画面
  317.         $scene = Scene_Item.new
  318.       when 1  # スキル
  319.         $game_system.se_play($data_system.decision_se)
  320.         # 激活状态窗口
  321.         @command_window.active = false
  322.         @status_window.active = true
  323.         @status_window.index = 0
  324.       when 2  # 装備
  325.         $game_system.se_play($data_system.decision_se)
  326.         # 激活状态窗口
  327.         @command_window.active = false
  328.         @status_window.active = true
  329.         @status_window.index = 0
  330.       when 3  # ステータス
  331.         $game_system.se_play($data_system.decision_se)
  332.         # 激活状态窗口
  333.         @command_window.active = false
  334.         @status_window.active = true
  335.         @status_window.index = 0
  336.         
  337.       when 4  # セーブ
  338.         # セーブ禁止の場合
  339.         if $game_system.save_disabled
  340.           # 演奏冻结 SE
  341.           $game_system.se_play($data_system.buzzer_se)
  342.           return
  343.         end
  344.         # 演奏确定 SE
  345.         $game_system.se_play($data_system.decision_se)
  346.         # 切换到存档画面
  347.         $scene = Scene_Save.new
  348.       when 5  # ロード
  349.         Input.update
  350.         # 決定 SE を演奏
  351.         @continue_enabled = false
  352.     for i in 0..3
  353.       if FileTest.exist?("Save#{i+1}.rxdata")
  354.         @continue_enabled = true
  355.       end
  356.     end
  357.     if @continue_enabled
  358.       # 演奏决定音效
  359.       $game_system.se_play($data_system.decision_se)
  360.       # 写个“火翼鸟”
  361.       $menu_load = "火翼鸟"
  362.       # 切换到读档画面
  363.       $scene = Scene_Load.new
  364.     else
  365.       # 冻结音效
  366.       $game_system.se_play($data_system.buzzer_se)
  367.     end
  368.       when 8
  369.         if $game_party.actors.size > 0
  370.           $game_system.se_play($data_system.decision_se)
  371.           $scene = Scene_Lvup.new(0,5)
  372.         else
  373.           $game_system.se_play($data_system.buzzer_se)
  374.         end
  375.       when 6
  376.         $scene = Chaochao_Scene_Party.new
  377.       when 7  # ゲーム終了
  378.         # 決定 SE を演奏
  379.         $game_system.se_play($data_system.decision_se)
  380.         # ゲーム終了画面に切り替え
  381.         $scene = Scene_End.new
  382.       else
  383.         
  384.       end
  385.       return
  386.   end
  387. end
  388. #--------------------------------------------------------------------------
  389. # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  390. #--------------------------------------------------------------------------
  391. def update_status
  392.   # B ボタンが押された場合
  393.   if Input.trigger?(Input::B)
  394.     # キャンセル SE を演奏
  395.     $game_system.se_play($data_system.cancel_se)
  396.     # コマンドウィンドウをアクティブにする
  397.     @command_window.active = true
  398.     @status_window.active = false
  399.     @status_window.index = -1
  400.     return
  401.   end
  402.   # C ボタンが押された場合
  403.   if Input.trigger?(Input::C)
  404.     # コマンドウィンドウのカーソル位置で分岐
  405.     case @command_window.index
  406.     when 1  # スキル
  407.       # このアクターの行動制限が 2 以上の場合
  408.       if $game_party.actors[@status_window.index].restriction >= 2
  409.         # ブザー SE を演奏
  410.         $game_system.se_play($data_system.buzzer_se)
  411.         return
  412.       end
  413.       # 決定 SE を演奏
  414.       $game_system.se_play($data_system.decision_se)
  415.       # スキル画面に切り替え
  416.       $scene = Scene_Skill.new(@status_window.index)
  417.     when 2  # 装備
  418.       # 決定 SE を演奏
  419.       $game_system.se_play($data_system.decision_se)
  420.       # 装備画面に切り替え
  421.       $scene = Scene_Equip.new(@status_window.index)
  422.     when 3  # ステータス
  423.       # 決定 SE を演奏
  424.       $game_system.se_play($data_system.decision_se)
  425.       # ステータス画面に切り替え
  426.       $scene = Scene_Status.new(@status_window.index)
  427.     end
  428.     return
  429.   end
  430. end
  431. end

  432. #==============================================================================
  433. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  434. #==============================================================================
  435. #==============================================================================
  436. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  437. #==============================================================================
  438. #==============================================================================
  439. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  440. #==============================================================================

  441. #==============================================================================
  442. # ■ chaochao的人物仓库ver1.02正式版
  443. # 修改了Game_Party
  444. # 功能:
  445. # 用来存放角色的仓库……
  446. # 召唤画面用$scene = Chaochao_Scene_Party.new
  447. # 其它使用说明在代码里已经备注。
  448. #------------------------------------------------------------------------------
  449. # 作者:chaochao
  450. # http://zhuchao.go1.icpcn.com
  451. #==============================================================================
  452. class Chaochao_Window_PartyLeft < Window_Selectable
  453.   def initialize
  454.     super(0, 0, 320, 224)
  455.     self.contents = Bitmap.new(width - 32, height - 32)
  456.     self.index = 0
  457.     refresh
  458.   end
  459.   def actor
  460.     return @actors[self.index]
  461.   end
  462.   def refresh
  463.     if self.contents != nil
  464.       self.contents.dispose
  465.       self.contents = nil
  466.     end
  467.     @actors = []
  468.     for i in 0...$game_party.actors.size
  469.       @actors.push($game_party.actors[i])
  470.     end
  471.    
  472.     @item_max = 4
  473.     if @item_max > 0
  474.       self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
  475.       for i in 0...@item_max
  476.         draw_item(i)
  477.       end
  478.     end
  479.   end
  480.   def draw_item(index)
  481.     if @actors[index] != nil
  482.       actor = @actors[index]
  483.       text = @actors[index].name
  484.       lv = @actors[index].level.to_s + " "
  485.       if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
  486.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  487.       else
  488.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  489.       end
  490.       self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
  491.       self.contents.font.color = normal_color
  492.       self.contents.font.size = 16
  493.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  "等级:   ", 2)
  494.       colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  495.       colory = [255.0000 / 60 * @actors[index].level,255].min
  496.       self.contents.font.color = Color.new(colorx, colory, 0)
  497.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
  498.       self.contents.font.color = normal_color
  499.       self.contents.font.size = 22
  500.     else
  501.       self.contents.draw_text(4, index * 32 + 32, 288, 32,  "没有人物!")
  502.     end
  503.   end
  504.   def update_cursor_rect
  505.     if @index < 0
  506.       self.cursor_rect.empty
  507.       return
  508.     end
  509.     row = @index / @column_max
  510.     if row < self.top_row
  511.       self.top_row = row
  512.     end
  513.     if row > self.top_row + (self.page_row_max - 1)
  514.       self.top_row = row - (self.page_row_max - 1)
  515.     end
  516.     cursor_width = self.width / @column_max - 32
  517.     x = @index % @column_max * (cursor_width + 32)
  518.     y = @index / @column_max * 32 - self.oy + 32
  519.     self.cursor_rect.set(x, y, cursor_width, 32)
  520.   end
  521.   def item_max
  522.     return @item_max
  523.   end
  524.   def actor?(index)
  525.     return @actors[index] == nil ? false : true
  526.   end
  527.   def set_index(x)
  528.     @index = x
  529.   end
  530. end

  531. #------------------------------------------------------------------------------

  532. class Chaochao_Window_PartyRight < Window_Selectable
  533.   def initialize
  534.     super(320, 0, 320, 224)
  535.     self.contents = Bitmap.new(width - 32, height - 32)
  536.     self.index = -1
  537.     refresh
  538.   end
  539.   def actor
  540.     return @actors[self.index]
  541.   end
  542.   def refresh
  543.     if self.contents != nil
  544.       self.contents.dispose
  545.       self.contents = nil
  546.     end
  547.     @actors = []
  548.     for i in 0...$game_party.actors2.size
  549.       @actors.push($game_party.actors2[i])
  550.     end
  551.    
  552.     @item_max = $game_party.actors2.size
  553.     if @item_max > 0
  554.       self.contents = Bitmap.new(width - 32, row_max * 32)
  555.       for i in 0...@item_max
  556.         draw_item(i)
  557.       end
  558.     elsif @item_max == 0
  559.      
  560.     end
  561.   end
  562.   def draw_item(index)
  563.     actor = @actors[index]
  564.     text = @actors[index].name
  565.     lv = @actors[index].level.to_s + " "
  566.     if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
  567.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  568.       else
  569.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  570.       end
  571.     self.contents.draw_text(4, index * 32, 288, 32, text)
  572.     self.contents.font.color = normal_color
  573.     self.contents.font.size = 16
  574.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  "等级:   ", 2)
  575.     colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  576.     colory = [255.0000 / 60 * @actors[index].level,255].min
  577.     self.contents.font.color = Color.new(colorx, colory, 0)
  578.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  lv, 2)
  579.     self.contents.font.color = normal_color
  580.     self.contents.font.size = 22
  581.   end
  582.   def update_cursor_rect
  583.     if @index < 0
  584.       self.cursor_rect.empty
  585.       return
  586.     end
  587.     row = @index / @column_max
  588.     if row < self.top_row
  589.       self.top_row = row
  590.     end
  591.     if row > self.top_row + (self.page_row_max - 1)
  592.       self.top_row = row - (self.page_row_max - 1)
  593.     end
  594.     cursor_width = self.width / @column_max - 32
  595.     x = @index % @column_max * (cursor_width + 32)
  596.     y = @index / @column_max * 32 - self.oy
  597.     self.cursor_rect.set(x, y, cursor_width, 32)
  598.   end
  599.   def item_max
  600.     return @item_max
  601.   end
  602.   def actor?(index)
  603.     return @actors[index] == nil ? false : true
  604.   end
  605.   def set_index(x)
  606.     @index = x
  607.   end
  608. end

  609. #------------------------------------------------------------------------------

  610. class Chaochao_Window_PartyData < Window_Base

  611.   def initialize
  612.     super(0, 224, 640, 256)
  613.     self.contents = Bitmap.new(width - 32, height - 32)
  614.     @actor = nil
  615.   end

  616.   def set_actor(actor)
  617.     self.contents.clear
  618.     draw_actor_name(actor, 4, 0)
  619.     draw_actor_state(actor, 140, 0)
  620.     draw_actor_hp(actor, 284, 0)
  621.     draw_actor_sp(actor, 460, 0)
  622.     @actor = actor
  623.     self.visible = true
  624.   end
  625.   def clear
  626.     self.contents.clear
  627.   end
  628. end

  629. #------------------------------------------------------------------------------

  630. class Game_Party
  631.   attr_reader   :actors2
  632.   attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  633.   attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  634.   def initialize
  635.     @actors = []
  636.     @gold = 0
  637.     @steps = 0
  638.     @items = {}
  639.     @weapons = {}
  640.     @armors = {}
  641.     @actors2 = []
  642.     @chaochao = []
  643.     @chaochao2 = []
  644.   end
  645.   def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
  646.     case type
  647.     when 1
  648.       if $game_actors[actor_id] != nil
  649.         actor = $game_actors[actor_id]
  650.         #如果队伍没有满和队伍中没有此角色
  651.         if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
  652.           @actors.push(actor)
  653.           $game_player.refresh
  654.         end
  655.       end
  656.     when 2
  657.       if $game_actors[actor_id] != nil
  658.         actor = $game_actors[actor_id]
  659.         #如果角色不在队伍中和不在备用角色队伍中的情况下
  660.         #向备用角色中添加角色
  661.         if not @actors.include?(actor) and not @actors2.include?(actor)
  662.           @actors2.push(actor)
  663.           $game_player.refresh
  664.         end
  665.       end
  666.     end
  667.   end

  668.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  669.     actor = $game_actors[index]
  670.     case type
  671.     when 1
  672.       if @actors.size < 4 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor)
  673.         @actors.push(actor)
  674.         @actors2.delete(actor)
  675.         $game_system.se_play($data_system.decision_se)
  676.         $game_player.refresh
  677.       end
  678.     when 2
  679.       if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor)
  680.         @actors2.push(actor)
  681.         @actors.delete(actor)
  682.         $game_system.se_play($data_system.decision_se)
  683.         $game_player.refresh
  684.       end
  685.     end
  686.   end

  687.   #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  688.   #type2,1是添加不能移动的,2是删除不能移动的。
  689.   def yidong(actor_id,type1,type2=1)
  690.     case type2
  691.     when 1
  692.       case type1
  693.       when 1
  694.         @chaochao.push(actor_id)
  695.       when 2
  696.         @chaochao2.push(actor_id)
  697.       end
  698.     when 2
  699.       case type1
  700.       when 1
  701.         @chaochao.delete(actor_id)
  702.       when 2
  703.         @chaochao2.delete(actor_id)
  704.       end
  705.     end
  706.   end

  707.   #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  708.   def remove_actor(actor_id,type=1)
  709.     actor = $game_actors[actor_id]
  710.     case type
  711.     when 1
  712.       @actors.delete(actor)
  713.       $game_player.refresh
  714.     when 2
  715.       @actors2.delete(actor)
  716.       $game_player.refresh
  717.     when 3
  718.       @actors.delete(actor)
  719.       @actors2.delete(actor)
  720.       $game_player.refresh
  721.     end
  722.   end

  723.   def refresh
  724.     new_actors = []
  725.     new_actors2 = []
  726.     for i in [email protected]
  727.       if $data_actors[@actors[i].id] != nil
  728.         new_actors.push($game_actors[@actors[i].id])
  729.       end
  730.     end
  731.     @actors = new_actors
  732.     for i in [email protected]
  733.       if $data_actors[@actors2[i].id] != nil
  734.         new_actors2.push($game_actors[@actors2[i].id])
  735.       end
  736.     end
  737.     @actors2 = new_actors2
  738.   end
  739. end

  740. #------------------------------------------------------------------------------

  741. class Chaochao_Scene_Party
  742.   def main
  743.     @left_temp_command = 0
  744.     @right_temp_command = 0
  745.     @temp = 0
  746.     @left_window = Chaochao_Window_PartyLeft.new
  747.     @left_window.active = true
  748.     @right_window = Chaochao_Window_PartyRight.new
  749.     @right_window.active = false
  750.     @data_window = Chaochao_Window_PartyData.new
  751.     update_data
  752.     Graphics.transition
  753.     loop do
  754.       Graphics.update
  755.       Input.update
  756.       update
  757.       if $scene != self
  758.         break
  759.       end
  760.     end
  761.     Graphics.freeze
  762.     @left_window.dispose
  763.     @right_window.dispose
  764.     @data_window.dispose
  765.   end

  766.   def update
  767.     @left_window.update
  768.     @right_window.update
  769.     @data_window.update
  770.     update_command
  771.     update_data
  772.   end

  773.   def update_command
  774.     if Input.trigger?(Input::B)
  775.       $game_system.se_play($data_system.cancel_se)
  776.       #画面切换
  777.       $scene = Scene_Map.new
  778.       return
  779.     end
  780.     if @left_window.active
  781.       update_left
  782.       return
  783.     end
  784.     if @right_window.active
  785.       update_right
  786.       return
  787.     end
  788.   end

  789.   def update_left
  790.     if Input.trigger?(Input::RIGHT)
  791.       if @right_window.item_max > 0
  792.         @left_temp_command = @left_window.index
  793.         @left_window.set_index(-1)
  794.         $game_system.se_play($data_system.cursor_se)
  795.         @left_window.active = false
  796.         @right_window.active = true
  797.         @left_window.refresh
  798.         @right_window.refresh
  799.         @right_window.set_index(@right_temp_command)
  800.         return
  801.       else
  802.         $game_system.se_play($data_system.buzzer_se)
  803.         return
  804.       end
  805.     end
  806.     if Input.trigger?(Input::C)
  807.       if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
  808.         $game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。
  809.         @left_window.refresh
  810.         @right_window.refresh
  811.       else
  812.         $game_system.se_play($data_system.buzzer_se)
  813.       end
  814.     end
  815.     return
  816.   end

  817.   def update_right
  818.     if Input.trigger?(Input::LEFT)
  819.       if @left_window.item_max > 0
  820.         @right_temp_command = @right_window.index
  821.         @right_window.set_index(-1)
  822.         $game_system.se_play($data_system.cursor_se)
  823.         @left_window.active = true
  824.         @right_window.active = false
  825.         @left_window.refresh
  826.         @right_window.refresh
  827.         @left_window.set_index(@left_temp_command)
  828.         return
  829.       else
  830.         $game_system.se_play($data_system.buzzer_se)
  831.         return
  832.       end
  833.     end
  834.     if Input.trigger?(Input::C)
  835.       if $game_party.actors.size >= 4
  836.         $game_system.se_play($data_system.buzzer_se)
  837.         return
  838.       end
  839.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  840.         $game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。
  841.         if $game_party.actors2.size == 0
  842.           @right_temp_command = @right_window.index
  843.           @right_window.set_index(-1)
  844.           $game_system.se_play($data_system.cursor_se)
  845.           @left_window.active = true
  846.           @right_window.active = false
  847.           @left_window.refresh
  848.           @right_window.refresh
  849.           @left_window.set_index(@left_temp_command)
  850.         end
  851.         if @right_window.index > 0
  852.           @right_window.set_index(@right_window.index-1)
  853.         end
  854.         @left_window.refresh
  855.         @right_window.refresh
  856.       else
  857.         $game_system.se_play($data_system.buzzer_se)
  858.       end
  859.     end
  860.     return
  861.   end

  862.   def update_data
  863.     if @left_window.active
  864.       if $game_party.actors[@left_window.index] != nil
  865.         @data_window.set_actor($game_party.actors[@left_window.index])
  866.       else
  867.         @data_window.clear
  868.       end
  869.       return
  870.     end
  871.     if @right_window.active
  872.       if $game_party.actors2[@right_window.index] != nil
  873.         @data_window.set_actor($game_party.actors2[@right_window.index])
  874.       else
  875.         @data_window.clear
  876.       end
  877.       return
  878.     end
  879.   end
  880. end

  881. #==============================================================================
  882. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  883. #=============================================================================
  884. #==============================================================================
  885. # ■ Interpreter (分割定义 4)
  886. #------------------------------------------------------------------------------
  887. #  执行事件命令的解释器。本类在 Game_System 类
  888. # 和 Game_Event 类的内部使用。
  889. #==============================================================================
  890. class Interpreter
  891.   #--------------------------------------------------------------------------
  892.   # ● 角色的替换
  893.   #--------------------------------------------------------------------------
  894.   def command_129
  895.     # 获取角色
  896.     actor = $game_actors[@parameters[0]]
  897.     # 角色有效的情况下
  898.     if actor != nil
  899.       # 操作分支
  900.       if @parameters[1] == 0
  901.         if @parameters[2] == 1
  902.           $game_actors[@parameters[0]].setup(@parameters[0])
  903.         end
  904.         if $game_party.actors.size == 4
  905.           $game_party.add_actor(@parameters[0],2)
  906.         else
  907.           $game_party.add_actor(@parameters[0])
  908.         end
  909.       else
  910.         $game_party.remove_actor(@parameters[0],3)
  911.       end
  912.     end
  913.     # 继续
  914.     return true
  915.   end
  916. end

  917. #==============================================================================
  918. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  919. #==============================================================================  
复制代码
我硬是塞,把第五个人塞到菜单里去:


发现第五个人被挤到最下面,只露出了个头,这菜单又不能翻页,所以,请高手帮我改一改菜单中“人物选项”(就是这块)

的长宽,让第五个人也完全出来

评分

参与人数 1星屑 +2 收起 理由
阿尔西斯的马甲 + 2 这菜单为何这么熟悉。。。是主站上的吧.

查看全部评分

Lv3.寻梦者

梦石
0
星屑
3176
在线时间
1442 小时
注册时间
2009-7-27
帖子
1454
2
发表于 2012-1-21 01:42:41 | 只看该作者
本帖最后由 爆焰 于 2012-1-21 02:07 编辑

改好了。排版真是乱七八糟的
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Window_PlayTime
  6. #------------------------------------------------------------------------------
  7. #  メニュー画面でプレイ時間を表示するウィンドウです。
  8. #==============================================================================

  9. $fontface = "微软雅黑"
  10. $fontsize = 20

  11. class Window_PlayTime < Window_Base
  12. #--------------------------------------------------------------------------
  13. # ● オブジェクト初期化
  14. #--------------------------------------------------------------------------
  15. def initialize
  16.    super(0, 0, 160, 70)
  17.    self.contents = Bitmap.new(width - 32, height - 32)
  18.    self.contents.font.name = $fontface
  19.    self.contents.font.size = $fontsize
  20.    refresh
  21. end
  22. #--------------------------------------------------------------------------
  23. # ● リフレッシュ
  24. #--------------------------------------------------------------------------
  25. def refresh
  26.    self.contents.clear
  27.    self.contents.font.color = system_color
  28.    self.contents.draw_text(0, -8, 120, 32, "游戏时间")
  29.    @total_sec = Graphics.frame_count / Graphics.frame_rate
  30.    hour = @total_sec / 60 / 60
  31.    min = @total_sec / 60 % 60
  32.    sec = @total_sec % 60
  33.    text = sprintf("%02d:%02d:%02d", hour, min, sec)
  34.    self.contents.font.color = normal_color
  35.    self.contents.draw_text(0, 12, 120, 32, text, 2)
  36. end
  37. #--------------------------------------------------------------------------
  38. # ● フレーム更新
  39. #--------------------------------------------------------------------------
  40. def update
  41.    super
  42.    if Graphics.frame_count / Graphics.frame_rate != @total_sec
  43.      refresh
  44.    end
  45. end
  46. end

  47. #==============================================================================
  48. # ■ Window_MapName
  49. # Location Script by Sunrunner
  50. #------------------------------------------------------------------------------
  51. #  メニュー画面で歩数を表示するウィンドウです。
  52. #==============================================================================

  53. class Window_MapName < Window_Base
  54. #--------------------------------------------------------------------------
  55. # ● オブジェクト初期化
  56. #--------------------------------------------------------------------------
  57. def initialize
  58.   super(0, 0, 160, 70)
  59.   self.contents = Bitmap.new(width - 32, height - 32)
  60.   self.contents.font.name = $fontface
  61.    self.contents.font.size = $fontsize
  62.   refresh
  63. end
  64. #--------------------------------------------------------------------------
  65. # ● リフレッシュ
  66. #--------------------------------------------------------------------------
  67. def refresh
  68.   self.contents.clear
  69.   self.contents.font.color = system_color
  70.   self.contents.draw_text(0, -8, 120, 32, "当前位置")
  71.   self.contents.font.color = normal_color
  72.   $maps = load_data("Data/MapInfos.rxdata")
  73. @map_id = $game_map.map_id
  74. @currentmap = $maps[@map_id].name
  75. self.contents.font.size = 18
  76. self.contents.draw_text(40,-5,440,64,@currentmap)

  77. end
  78. end

  79. #==============================================================================
  80. # ■ Window_Gold
  81. #------------------------------------------------------------------------------
  82. #  ゴールドを表示するウィンドウです。
  83. #==============================================================================

  84. class Window_Gold < Window_Base
  85. #--------------------------------------------------------------------------
  86. # ● オブジェクト初期化
  87. #--------------------------------------------------------------------------
  88. def initialize
  89.    super(0, 0, 160, 70)
  90.    self.contents = Bitmap.new(width - 32, height - 32)
  91.    self.contents.font.name = $fontface
  92.    self.contents.font.size = $fontsize
  93.    refresh
  94. end
  95. #--------------------------------------------------------------------------
  96. # ● リフレッシュ
  97. #--------------------------------------------------------------------------
  98. def refresh
  99.    self.contents.clear
  100.    self.contents.font.color = system_color
  101.    self.contents.draw_text(0, -8, 120, 32, "¥")
  102. cx = contents.text_size($data_system.words.gold).width
  103.    self.contents.font.color = normal_color
  104.    self.contents.draw_text(0, 12, 120-cx-2, 32, $game_party.gold.to_s, 2)
  105. end
  106. end


  107. #==============================================================================
  108. # ■ Window_MenuStatus
  109. #------------------------------------------------------------------------------
  110. #  メニュー画面でパーティメンバーのステータスを表示するウィンドウです。
  111. #==============================================================================

  112. class Window_MenuStatus < Window_Selectable
  113. #--------------------------------------------------------------------------
  114. # ● オブジェクト初期化
  115. #--------------------------------------------------------------------------
  116. def initialize
  117.    super(0, 0, 480, 415)
  118.    self.contents = Bitmap.new(width - 32, height - 32)
  119.    self.contents.font.name = $fontface
  120.    self.contents.font.size = $fontsize
  121.      refresh
  122.    self.active = false
  123.    self.index = -1
  124. end
  125. #--------------------------------------------------------------------------
  126. # ● リフレッシュ
  127. #--------------------------------------------------------------------------
  128. def refresh
  129.    self.contents.clear
  130.    @item_max = $game_party.actors.size
  131.    for i in 0...$game_party.actors.size
  132.      x = 64
  133.      y = i * 75
  134.      actor = $game_party.actors[i]
  135.       draw_actor_graphic(actor, x - 40, y + 70)
  136.      draw_actor_name(actor, x, y)
  137.      draw_actor_class(actor, x + 144, y)
  138.      draw_actor_level(actor, x, y + 24)
  139.      draw_actor_state(actor, x + 90, y + 24)
  140.      draw_actor_exp(actor, x, y + 48)
  141.      draw_actor_hp(actor, x + 236, y + 24)
  142.      draw_actor_sp(actor, x + 236, y + 48)
  143.    end
  144. end
  145. #--------------------------------------------------------------------------
  146. # ● カーソルの矩形更新
  147. #--------------------------------------------------------------------------
  148. def update_cursor_rect
  149.    if @index < 0
  150.      self.cursor_rect.empty
  151.          else
  152.      self.cursor_rect.set(0, @index * 75, self.width - 32, 75)
  153.    end
  154. end
  155. end

  156. #==============================================================================
  157. # ■ Scene_Menu
  158. #------------------------------------------------------------------------------
  159. #  メニュー画面の処理を行うクラスです。
  160. #==============================================================================
  161. class Window_Title < Window_Base
  162. #--------------------------------------------------------------------------
  163. # ● オブジェクト初期化
  164. #--------------------------------------------------------------------------
  165. def initialize
  166.    super(38, 60, 156, 70)
  167.    self.contents = Bitmap.new(width - 32, height - 32)
  168.    self.contents.font.name = $fontface
  169.    self.contents.font.size = $fontsize
  170.    refresh
  171. end
  172.   def refresh
  173.    self.contents.clear
  174.     self.contents.font.color = system_color
  175.      self.contents.font.color = normal_color
  176.    self.contents.draw_text(30, 5, 100, 30, "菜单")
  177. end
  178. end
  179. #--------------------------------
  180. class Scene_Menu
  181. #--------------------------------------------------------------------------
  182. # ● オブジェクト初期化
  183. #     menu_index : コマンドのカーソル初期位置
  184. #--------------------------------------------------------------------------
  185. def initialize(menu_index = 0)
  186.   @menu_index = menu_index
  187. end
  188. #--------------------------------------------------------------------------
  189. # ● メイン処理
  190. #--------------------------------------------------------------------------
  191. def main
  192.        # ステータスウィンドウを作成
  193.   @scene_menu = Window_Title.new
  194.   @scene_menu.x = 6
  195.   @scene_menu.y = 0
  196.   @scene_menu.back_opacity = 160
  197.   # コマンドウィンドウを作成
  198.   @sprite = Spriteset_Map.new
  199.     s1 = "背包"
  200.     s2 = "技能"
  201.     s3 = "装备"
  202.     s4 = "状态"
  203.     s5 = "记载"
  204.     s6 = "载入"
  205.     s7 = "换人"
  206.     s8 = "结束"
  207.   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8])
  208.   @command_window.index = @menu_index
  209.   @command_window.x = 5
  210.   @command_window.y = 66
  211.   @command_window.back_opacity = 160
  212.   # パーティ人数が 0 人の場合
  213.   if $game_party.actors.size == 0
  214.     # アイテム、スキル、装備、ステータスを無効化
  215.     @command_window.disable_item(0)
  216.     @command_window.disable_item(1)
  217.     @command_window.disable_item(2)
  218.     @command_window.disable_item(3)
  219.   end
  220.   # セーブ禁止の場合
  221.   if $game_system.save_disabled
  222.     # セーブを無効にする
  223.     @command_window.disable_item(4)
  224.   end
  225.   # プレイ時間ウィンドウを作成
  226.   @playtime_window = Window_PlayTime.new
  227.   @playtime_window.x = 320
  228.   @playtime_window.y = 0
  229.   @playtime_window.back_opacity = 160
  230.   # 歩数ウィンドウを作成
  231.   @steps_window = Window_MapName.new
  232.   @steps_window.x = 480
  233.   @steps_window.y = 0
  234.   @steps_window.back_opacity = 160
  235.   # ゴールドウィンドウを作成
  236.   @gold_window = Window_Gold.new
  237.   @gold_window.x = 162
  238.   @gold_window.y = 0
  239.   @gold_window.back_opacity = 160
  240.   # ステータスウィンドウを作成
  241.   @status_window = Window_MenuStatus.new
  242.   @status_window.x = 160
  243.   @status_window.y = 65
  244.   @status_window.back_opacity = 160
  245.     # トランジション実行
  246.      Graphics.transition
  247.   # メインループ
  248.   loop do
  249.     # ゲーム画面を更新
  250.     Graphics.update
  251.     # 入力情報を更新
  252.     Input.update
  253.     # フレーム更新
  254.     update
  255.     # 画面が切り替わったらループを中断
  256.     if $scene != self
  257.       break
  258.     end
  259.   end
  260.   # トランジション準備
  261.   Graphics.freeze
  262.   # ウィンドウを解放
  263.   @command_window.dispose
  264.   @playtime_window.dispose
  265.   @steps_window.dispose
  266.   @gold_window.dispose
  267.   @status_window.dispose
  268.   @scene_menu.dispose
  269.   @sprite.dispose
  270. end
  271. #--------------------------------------------------------------------------
  272. # ● フレーム更新
  273. #--------------------------------------------------------------------------
  274. def update
  275.   # ウィンドウを更新
  276.   @command_window.update
  277.   @playtime_window.update
  278.   @steps_window.update
  279.   @gold_window.update
  280.   @status_window.update
  281.   # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
  282.   if @command_window.active
  283.     update_command
  284.     return
  285.   end
  286.   # ステータスウィンドウがアクティブの場合: update_status を呼ぶ
  287.   if @status_window.active
  288.     update_status
  289.     return
  290.   end
  291. end
  292. #--------------------------------------------------------------------------
  293. # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  294. #--------------------------------------------------------------------------
  295. def update_command
  296.   # B ボタンが押された場合
  297.   if Input.trigger?(Input::B)
  298.     # キャンセル SE を演奏
  299.     $game_system.se_play($data_system.cancel_se)
  300.     # マップ画面に切り替え
  301.     $scene = Scene_Map.new
  302.     return
  303.   end
  304.   # C ボタンが押された場合
  305.   if Input.trigger?(Input::C)
  306.     # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
  307.     if $game_party.actors.size == 0 and @command_window.index < 4
  308.       # ブザー SE を演奏
  309.       $game_system.se_play($data_system.buzzer_se)
  310.       return
  311.     end
  312.     # コマンドウィンドウのカーソル位置で分岐
  313.       case @command_window.index
  314.       when 0  # アイテム
  315.         $game_system.se_play($data_system.decision_se)
  316.         # 切换到物品画面
  317.         $scene = Scene_Item.new
  318.       when 1  # スキル
  319.         $game_system.se_play($data_system.decision_se)
  320.         # 激活状态窗口
  321.         @command_window.active = false
  322.         @status_window.active = true
  323.         @status_window.index = 0
  324.       when 2  # 装備
  325.         $game_system.se_play($data_system.decision_se)
  326.         # 激活状态窗口
  327.         @command_window.active = false
  328.         @status_window.active = true
  329.         @status_window.index = 0
  330.       when 3  # ステータス
  331.         $game_system.se_play($data_system.decision_se)
  332.         # 激活状态窗口
  333.         @command_window.active = false
  334.         @status_window.active = true
  335.         @status_window.index = 0
  336.         
  337.       when 4  # セーブ
  338.         # セーブ禁止の場合
  339.         if $game_system.save_disabled
  340.           # 演奏冻结 SE
  341.           $game_system.se_play($data_system.buzzer_se)
  342.           return
  343.         end
  344.         # 演奏确定 SE
  345.         $game_system.se_play($data_system.decision_se)
  346.         # 切换到存档画面
  347.         $scene = Scene_Save.new
  348.       when 5  # ロード
  349.         Input.update
  350.         # 決定 SE を演奏
  351.         @continue_enabled = false
  352.     for i in 0..3
  353.       if FileTest.exist?("Save#{i+1}.rxdata")
  354.         @continue_enabled = true
  355.       end
  356.     end
  357.     if @continue_enabled
  358.       # 演奏决定音效
  359.       $game_system.se_play($data_system.decision_se)
  360.       # 写个“火翼鸟”
  361.       $menu_load = "火翼鸟"
  362.       # 切换到读档画面
  363.       $scene = Scene_Load.new
  364.     else
  365.       # 冻结音效
  366.       $game_system.se_play($data_system.buzzer_se)
  367.     end
  368.       when 8
  369.         if $game_party.actors.size > 0
  370.           $game_system.se_play($data_system.decision_se)
  371.           $scene = Scene_Lvup.new(0,5)
  372.         else
  373.           $game_system.se_play($data_system.buzzer_se)
  374.         end
  375.       when 6
  376.         $scene = Chaochao_Scene_Party.new
  377.       when 7  # ゲーム終了
  378.         # 決定 SE を演奏
  379.         $game_system.se_play($data_system.decision_se)
  380.         # ゲーム終了画面に切り替え
  381.         $scene = Scene_End.new
  382.       else
  383.         
  384.       end
  385.       return
  386.   end
  387. end
  388. #--------------------------------------------------------------------------
  389. # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  390. #--------------------------------------------------------------------------
  391. def update_status
  392.   # B ボタンが押された場合
  393.   if Input.trigger?(Input::B)
  394.     # キャンセル SE を演奏
  395.     $game_system.se_play($data_system.cancel_se)
  396.     # コマンドウィンドウをアクティブにする
  397.     @command_window.active = true
  398.     @status_window.active = false
  399.     @status_window.index = -1
  400.     return
  401.   end
  402.   # C ボタンが押された場合
  403.   if Input.trigger?(Input::C)
  404.     # コマンドウィンドウのカーソル位置で分岐
  405.     case @command_window.index
  406.     when 1  # スキル
  407.       # このアクターの行動制限が 2 以上の場合
  408.       if $game_party.actors[@status_window.index].restriction >= 2
  409.         # ブザー SE を演奏
  410.         $game_system.se_play($data_system.buzzer_se)
  411.         return
  412.       end
  413.       # 決定 SE を演奏
  414.       $game_system.se_play($data_system.decision_se)
  415.       # スキル画面に切り替え
  416.       $scene = Scene_Skill.new(@status_window.index)
  417.     when 2  # 装備
  418.       # 決定 SE を演奏
  419.       $game_system.se_play($data_system.decision_se)
  420.       # 装備画面に切り替え
  421.       $scene = Scene_Equip.new(@status_window.index)
  422.     when 3  # ステータス
  423.       # 決定 SE を演奏
  424.       $game_system.se_play($data_system.decision_se)
  425.       # ステータス画面に切り替え
  426.       $scene = Scene_Status.new(@status_window.index)
  427.     end
  428.     return
  429.   end
  430. end
  431. end

  432. #==============================================================================
  433. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  434. #==============================================================================
  435. #==============================================================================
  436. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  437. #==============================================================================
  438. #==============================================================================
  439. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  440. #==============================================================================

  441. #==============================================================================
  442. # ■ chaochao的人物仓库ver1.02正式版
  443. # 修改了Game_Party
  444. # 功能:
  445. # 用来存放角色的仓库……
  446. # 召唤画面用$scene = Chaochao_Scene_Party.new
  447. # 其它使用说明在代码里已经备注。
  448. #------------------------------------------------------------------------------
  449. # 作者:chaochao
  450. # http://zhuchao.go1.icpcn.com
  451. #==============================================================================
  452. class Chaochao_Window_PartyLeft < Window_Selectable
  453.   def initialize
  454.     super(0, 0, 320, 224)
  455.     self.contents = Bitmap.new(width - 32, height - 32)
  456.     self.index = 0
  457.     refresh
  458.   end
  459.   def actor
  460.     return @actors[self.index]
  461.   end
  462.   def refresh
  463.     if self.contents != nil
  464.       self.contents.dispose
  465.       self.contents = nil
  466.     end
  467.     @actors = []
  468.     for i in 0...$game_party.actors.size
  469.       @actors.push($game_party.actors[i])
  470.     end
  471.    
  472.     @item_max = 5
  473.     if @item_max > 0
  474.       self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
  475.       for i in 0...@item_max
  476.         draw_item(i)
  477.       end
  478.     end
  479.   end
  480.   def draw_item(index)
  481.     if @actors[index] != nil
  482.       actor = @actors[index]
  483.       text = @actors[index].name
  484.       lv = @actors[index].level.to_s + " "
  485.       if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
  486.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  487.       else
  488.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  489.       end
  490.       self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
  491.       self.contents.font.color = normal_color
  492.       self.contents.font.size = 16
  493.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  "等级:   ", 2)
  494.       colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  495.       colory = [255.0000 / 60 * @actors[index].level,255].min
  496.       self.contents.font.color = Color.new(colorx, colory, 0)
  497.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
  498.       self.contents.font.color = normal_color
  499.       self.contents.font.size = 22
  500.     else
  501.       self.contents.draw_text(4, index * 32 + 32, 288, 32,  "没有人物!")
  502.     end
  503.   end
  504.   def update_cursor_rect
  505.     if @index < 0
  506.       self.cursor_rect.empty
  507.       return
  508.     end
  509.     row = @index / @column_max
  510.     if row < self.top_row
  511.       self.top_row = row
  512.     end
  513.     if row > self.top_row + (self.page_row_max - 1)
  514.       self.top_row = row - (self.page_row_max - 1)
  515.     end
  516.     cursor_width = self.width / @column_max - 32
  517.     x = @index % @column_max * (cursor_width + 32)
  518.     y = @index / @column_max * 32 - self.oy + 32
  519.     self.cursor_rect.set(x, y, cursor_width, 32)
  520.   end
  521.   def item_max
  522.     return @item_max
  523.   end
  524.   def actor?(index)
  525.     return @actors[index] == nil ? false : true
  526.   end
  527.   def set_index(x)
  528.     @index = x
  529.   end
  530. end

  531. #------------------------------------------------------------------------------

  532. class Chaochao_Window_PartyRight < Window_Selectable
  533.   def initialize
  534.     super(320, 0, 320, 224)
  535.     self.contents = Bitmap.new(width - 32, height - 32)
  536.     self.index = -1
  537.     refresh
  538.   end
  539.   def actor
  540.     return @actors[self.index]
  541.   end
  542.   def refresh
  543.     if self.contents != nil
  544.       self.contents.dispose
  545.       self.contents = nil
  546.     end
  547.     @actors = []
  548.     for i in 0...$game_party.actors2.size
  549.       @actors.push($game_party.actors2[i])
  550.     end
  551.    
  552.     @item_max = $game_party.actors2.size
  553.     if @item_max > 0
  554.       self.contents = Bitmap.new(width - 32, row_max * 32)
  555.       for i in 0...@item_max
  556.         draw_item(i)
  557.       end
  558.     elsif @item_max == 0
  559.      
  560.     end
  561.   end
  562.   def draw_item(index)
  563.     actor = @actors[index]
  564.     text = @actors[index].name
  565.     lv = @actors[index].level.to_s + " "
  566.     if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 5
  567.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  568.       else
  569.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  570.       end
  571.     self.contents.draw_text(4, index * 32, 288, 32, text)
  572.     self.contents.font.color = normal_color
  573.     self.contents.font.size = 16
  574.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  "等级:   ", 2)
  575.     colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  576.     colory = [255.0000 / 60 * @actors[index].level,255].min
  577.     self.contents.font.color = Color.new(colorx, colory, 0)
  578.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  lv, 2)
  579.     self.contents.font.color = normal_color
  580.     self.contents.font.size = 22
  581.   end
  582.   def update_cursor_rect
  583.     if @index < 0
  584.       self.cursor_rect.empty
  585.       return
  586.     end
  587.     row = @index / @column_max
  588.     if row < self.top_row
  589.       self.top_row = row
  590.     end
  591.     if row > self.top_row + (self.page_row_max - 1)
  592.       self.top_row = row - (self.page_row_max - 1)
  593.     end
  594.     cursor_width = self.width / @column_max - 32
  595.     x = @index % @column_max * (cursor_width + 32)
  596.     y = @index / @column_max * 32 - self.oy
  597.     self.cursor_rect.set(x, y, cursor_width, 32)
  598.   end
  599.   def item_max
  600.     return @item_max
  601.   end
  602.   def actor?(index)
  603.     return @actors[index] == nil ? false : true
  604.   end
  605.   def set_index(x)
  606.     @index = x
  607.   end
  608. end

  609. #------------------------------------------------------------------------------

  610. class Chaochao_Window_PartyData < Window_Base

  611.   def initialize
  612.     super(0, 224, 640, 256)
  613.     self.contents = Bitmap.new(width - 32, height - 32)
  614.     @actor = nil
  615.   end

  616.   def set_actor(actor)
  617.     self.contents.clear
  618.     draw_actor_name(actor, 4, 0)
  619.     draw_actor_state(actor, 140, 0)
  620.     draw_actor_hp(actor, 284, 0)
  621.     draw_actor_sp(actor, 460, 0)
  622.     @actor = actor
  623.     self.visible = true
  624.   end
  625.   def clear
  626.     self.contents.clear
  627.   end
  628. end

  629. #------------------------------------------------------------------------------

  630. class Game_Party
  631.   attr_reader   :actors2
  632.   attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  633.   attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  634.   def initialize
  635.     @actors = []
  636.     @gold = 0
  637.     @steps = 0
  638.     @items = {}
  639.     @weapons = {}
  640.     @armors = {}
  641.     @actors2 = []
  642.     @chaochao = []
  643.     @chaochao2 = []
  644.   end
  645.   def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
  646.     case type
  647.     when 1
  648.       if $game_actors[actor_id] != nil
  649.         actor = $game_actors[actor_id]
  650.         #如果队伍没有满和队伍中没有此角色
  651.         if @actors.size < 5 and not @actors.include?(actor) and not @actors2.include?(actor)
  652.           @actors.push(actor)
  653.           $game_player.refresh
  654.         end
  655.       end
  656.     when 2
  657.       if $game_actors[actor_id] != nil
  658.         actor = $game_actors[actor_id]
  659.         #如果角色不在队伍中和不在备用角色队伍中的情况下
  660.         #向备用角色中添加角色
  661.         if not @actors.include?(actor) and not @actors2.include?(actor)
  662.           @actors2.push(actor)
  663.           $game_player.refresh
  664.         end
  665.       end
  666.     end
  667.   end

  668.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  669.     actor = $game_actors[index]
  670.     case type
  671.     when 1
  672.       if @actors.size < 5 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor)
  673.         @actors.push(actor)
  674.         @actors2.delete(actor)
  675.         $game_system.se_play($data_system.decision_se)
  676.         $game_player.refresh
  677.       end
  678.     when 2
  679.       if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor)
  680.         @actors2.push(actor)
  681.         @actors.delete(actor)
  682.         $game_system.se_play($data_system.decision_se)
  683.         $game_player.refresh
  684.       end
  685.     end
  686.   end

  687.   #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  688.   #type2,1是添加不能移动的,2是删除不能移动的。
  689.   def yidong(actor_id,type1,type2=1)
  690.     case type2
  691.     when 1
  692.       case type1
  693.       when 1
  694.         @chaochao.push(actor_id)
  695.       when 2
  696.         @chaochao2.push(actor_id)
  697.       end
  698.     when 2
  699.       case type1
  700.       when 1
  701.         @chaochao.delete(actor_id)
  702.       when 2
  703.         @chaochao2.delete(actor_id)
  704.       end
  705.     end
  706.   end

  707.   #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  708.   def remove_actor(actor_id,type=1)
  709.     actor = $game_actors[actor_id]
  710.     case type
  711.     when 1
  712.       @actors.delete(actor)
  713.       $game_player.refresh
  714.     when 2
  715.       @actors2.delete(actor)
  716.       $game_player.refresh
  717.     when 3
  718.       @actors.delete(actor)
  719.       @actors2.delete(actor)
  720.       $game_player.refresh
  721.     end
  722.   end

  723.   def refresh
  724.     new_actors = []
  725.     new_actors2 = []
  726.     for i in [email protected]
  727.       if $data_actors[@actors[i].id] != nil
  728.         new_actors.push($game_actors[@actors[i].id])
  729.       end
  730.     end
  731.     @actors = new_actors
  732.     for i in [email protected]
  733.       if $data_actors[@actors2[i].id] != nil
  734.         new_actors2.push($game_actors[@actors2[i].id])
  735.       end
  736.     end
  737.     @actors2 = new_actors2
  738.   end
  739. end

  740. #------------------------------------------------------------------------------

  741. class Chaochao_Scene_Party
  742.   def main
  743.     @left_temp_command = 0
  744.     @right_temp_command = 0
  745.     @temp = 0
  746.     @left_window = Chaochao_Window_PartyLeft.new
  747.     @left_window.active = true
  748.     @right_window = Chaochao_Window_PartyRight.new
  749.     @right_window.active = false
  750.     @data_window = Chaochao_Window_PartyData.new
  751.     update_data
  752.     Graphics.transition
  753.     loop do
  754.       Graphics.update
  755.       Input.update
  756.       update
  757.       if $scene != self
  758.         break
  759.       end
  760.     end
  761.     Graphics.freeze
  762.     @left_window.dispose
  763.     @right_window.dispose
  764.     @data_window.dispose
  765.   end

  766.   def update
  767.     @left_window.update
  768.     @right_window.update
  769.     @data_window.update
  770.     update_command
  771.     update_data
  772.   end

  773.   def update_command
  774.     if Input.trigger?(Input::B)
  775.       $game_system.se_play($data_system.cancel_se)
  776.       #画面切换
  777.       $scene = Scene_Map.new
  778.       return
  779.     end
  780.     if @left_window.active
  781.       update_left
  782.       return
  783.     end
  784.     if @right_window.active
  785.       update_right
  786.       return
  787.     end
  788.   end

  789.   def update_left
  790.     if Input.trigger?(Input::RIGHT)
  791.       if @right_window.item_max > 0
  792.         @left_temp_command = @left_window.index
  793.         @left_window.set_index(-1)
  794.         $game_system.se_play($data_system.cursor_se)
  795.         @left_window.active = false
  796.         @right_window.active = true
  797.         @left_window.refresh
  798.         @right_window.refresh
  799.         @right_window.set_index(@right_temp_command)
  800.         return
  801.       else
  802.         $game_system.se_play($data_system.buzzer_se)
  803.         return
  804.       end
  805.     end
  806.     if Input.trigger?(Input::C)
  807.       if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
  808.         $game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。
  809.         @left_window.refresh
  810.         @right_window.refresh
  811.       else
  812.         $game_system.se_play($data_system.buzzer_se)
  813.       end
  814.     end
  815.     return
  816.   end

  817.   def update_right
  818.     if Input.trigger?(Input::LEFT)
  819.       if @left_window.item_max > 0
  820.         @right_temp_command = @right_window.index
  821.         @right_window.set_index(-1)
  822.         $game_system.se_play($data_system.cursor_se)
  823.         @left_window.active = true
  824.         @right_window.active = false
  825.         @left_window.refresh
  826.         @right_window.refresh
  827.         @left_window.set_index(@left_temp_command)
  828.         return
  829.       else
  830.         $game_system.se_play($data_system.buzzer_se)
  831.         return
  832.       end
  833.     end
  834.     if Input.trigger?(Input::C)
  835.       if $game_party.actors.size >= 5
  836.         $game_system.se_play($data_system.buzzer_se)
  837.         return
  838.       end
  839.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  840.         $game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。
  841.         if $game_party.actors2.size == 0
  842.           @right_temp_command = @right_window.index
  843.           @right_window.set_index(-1)
  844.           $game_system.se_play($data_system.cursor_se)
  845.           @left_window.active = true
  846.           @right_window.active = false
  847.           @left_window.refresh
  848.           @right_window.refresh
  849.           @left_window.set_index(@left_temp_command)
  850.         end
  851.         if @right_window.index > 0
  852.           @right_window.set_index(@right_window.index-1)
  853.         end
  854.         @left_window.refresh
  855.         @right_window.refresh
  856.       else
  857.         $game_system.se_play($data_system.buzzer_se)
  858.       end
  859.     end
  860.     return
  861.   end

  862.   def update_data
  863.     if @left_window.active
  864.       if $game_party.actors[@left_window.index] != nil
  865.         @data_window.set_actor($game_party.actors[@left_window.index])
  866.       else
  867.         @data_window.clear
  868.       end
  869.       return
  870.     end
  871.     if @right_window.active
  872.       if $game_party.actors2[@right_window.index] != nil
  873.         @data_window.set_actor($game_party.actors2[@right_window.index])
  874.       else
  875.         @data_window.clear
  876.       end
  877.       return
  878.     end
  879.   end
  880. end

  881. #==============================================================================
  882. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  883. #=============================================================================
  884. #==============================================================================
  885. # ■ Interpreter (分割定义 4)
  886. #------------------------------------------------------------------------------
  887. #  执行事件命令的解释器。本类在 Game_System 类
  888. # 和 Game_Event 类的内部使用。
  889. #==============================================================================
  890. class Interpreter
  891.   #--------------------------------------------------------------------------
  892.   # ● 角色的替换
  893.   #--------------------------------------------------------------------------
  894.   def command_129
  895.     # 获取角色
  896.     actor = $game_actors[@parameters[0]]
  897.     # 角色有效的情况下
  898.     if actor != nil
  899.       # 操作分支
  900.       if @parameters[1] == 0
  901.         if @parameters[2] == 1
  902.           $game_actors[@parameters[0]].setup(@parameters[0])
  903.         end
  904.         if $game_party.actors.size == 5
  905.           $game_party.add_actor(@parameters[0],2)
  906.         else
  907.           $game_party.add_actor(@parameters[0])
  908.         end
  909.       else
  910.         $game_party.remove_actor(@parameters[0],3)
  911.       end
  912.     end
  913.     # 继续
  914.     return true
  915.   end
  916. end

  917. #==============================================================================
  918. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  919. #==============================================================================  
复制代码

博客:我的博客
回复

使用道具 举报

Lv2.观梦者 (版主)

迷途知返,恍如隔世

梦石
0
星屑
488
在线时间
1355 小时
注册时间
2011-2-17
帖子
1216

开拓者

3
发表于 2012-1-21 09:33:14 | 只看该作者
menustatus的问题,自己调整就行。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
132 小时
注册时间
2012-1-21
帖子
512
4
发表于 2012-1-21 16:32:25 | 只看该作者
本帖最后由 零の使魔 于 2012-1-21 16:33 编辑

这个脚本的第144行的95改成80或者更小的数字,自己调整试试就行了
心情大好呢
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
5
 楼主| 发表于 2012-1-21 17:12:29 | 只看该作者
零の使魔虽然也解决了我的问题,但只是告诉了我方法,还是爆炎大哥的更好一些
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 09:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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