Project1

标题: 关于战斗换人脚本的问题 [打印本页]

作者: 无忧谷主幻    时间: 2012-6-10 20:57
标题: 关于战斗换人脚本的问题
战斗前有8名队员(4名战斗人员,4名待机人员)

经历了一场战斗后待机人员为什么全部离队了

这是脚本
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================  

  4. # ▼▲▼ XRXS26. 人物扩张系统 ver..05 ▼▲▼
  5. # by 桜雅 在土 (哆啦溯修改!)

  6. #==============================================================================
  7. # □ 初始化定义
  8. #==============================================================================
  9. module XRXS26
  10.   FRONT_MEMBER_LIMIT    = 4        # 战斗参战人数最大值
  11.   BACKWARD_MEMBER_LIMIT = 4        # 待机人数最大值
  12.   BACKWARD_EXP_GAINABLE = true     # 待机人物是否获得经验
  13.   MENU_STATUS_STRETCH   = true    # 3人以下的时候,菜单是否拉伸大小
  14. end
  15. #------------------------------------------------------------------------------
  16. # 菜单页面状态
  17. #------------------------------------------------------------------------------
  18. class Window_MenuStatus < Window_Selectable
  19.   # 列数
  20.   COLUMN_MAX = 1
  21.   # 光标高度
  22.   CURSOR_HEIGHT = 96
  23.   # 一行的高度
  24.   LINE_HEIGHT = 232
  25. end
  26. #------------------------------------------------------------------------------
  27. # 菜单场景
  28. #------------------------------------------------------------------------------
  29. class Scene_Menu
  30.   MENU_MEMBER_CHANGE_KEY_GO    = Input::RIGHT # 进入键
  31.   MENU_MEMBER_CHANGE_KEY_END   = Input::LEFT  # 离开键
  32.   MENU_MEMBER_CHANGE_INDEX_MIN = 0            # 可更换角色最小编号
  33.   FORCETOBATTLE_ACTORS         = []           # 不能待机的角色编号
  34.   UMBATTLABLE_ACTORS           = []           # 不能加入战斗的角色编号
  35.   UNMOVABLE_ACTORS             = []           # 不能移动的角色编号
  36. end
  37. #------------------------------------------------------------------------------
  38. #
  39. # 解説
  40. #    Game_Partyの @actors のうち先頭から↑FRONT_MEMBER_LIMIT番目までのアクターを
  41. #   戦闘メンバーとして、それ以上を待機メンバーとして扱います。
  42. #
  43. #==============================================================================
  44. # ■ Game_Party
  45. #==============================================================================
  46. class Game_Party
  47.   #--------------------------------------------------------------------------
  48.   # ○ インクルード
  49.   #--------------------------------------------------------------------------
  50.   include XRXS26
  51.   #--------------------------------------------------------------------------
  52.   # ○ 公開インスタンス変数
  53.   #--------------------------------------------------------------------------
  54.   attr_reader   :backword_actors          # 待機アクター
  55.   #--------------------------------------------------------------------------
  56.   # ● オブジェクト初期化
  57.   #--------------------------------------------------------------------------
  58.   alias xrxs26_initialize initialize
  59.   def initialize
  60.     xrxs26_initialize
  61.     # 待機メンバー配列を初期化
  62.     @backword_actors = []
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● アクターを加える
  66.   #--------------------------------------------------------------------------
  67.   def add_actor(actor_id)
  68.     # アクターを取得
  69.     actor = $game_actors[actor_id]
  70.     # このアクターがパーティにいない場合
  71.     if not @actors.include?(actor)
  72.       # 満員でないならメンバーに追加
  73.       if @actors.size < (FRONT_MEMBER_LIMIT + BACKWARD_MEMBER_LIMIT)
  74.         # アクターを追加
  75.         @actors.push(actor)
  76.         # プレイヤーをリフレッシュ
  77.         $game_player.refresh
  78.       end
  79.     end
  80.   end
  81. end
  82. #==============================================================================
  83. # ■ Spriteset_Battle
  84. #==============================================================================
  85. class Spriteset_Battle
  86.   #--------------------------------------------------------------------------
  87.   # ● インクルード
  88.   #--------------------------------------------------------------------------
  89.   include XRXS26
  90.   #--------------------------------------------------------------------------
  91.   # ● フレーム更新
  92.   #--------------------------------------------------------------------------
  93.   alias xrxs26_initialize initialize
  94.   def initialize
  95.     xrxs26_initialize
  96.     #
  97.     # 以下、五人目以降のアクタースプライトの追加処理---
  98.     #
  99.     # アクターが表示されるビューポートを、とりあえず先頭の人から取得しとく(素
  100.     actor_viewport = @actor_sprites[0].viewport
  101.     # 戦闘参加メンバーが5人以上の場合
  102.     if FRONT_MEMBER_LIMIT > 4
  103.       for i in 5..FRONT_MEMBER_LIMIT
  104.         # アクタースプライトを追加
  105.         @actor_sprites.push(Sprite_Battler.new(actor_viewport))
  106.         @actor_sprites[i-1].battler = $game_party.actors[i-1]
  107.       end
  108.     end
  109.     # ビューポートを更新
  110.     actor_viewport.update
  111.   end
  112. end
  113. #==============================================================================
  114. # ■ Scene_Battle
  115. #==============================================================================
  116. class Scene_Battle
  117.   #--------------------------------------------------------------------------
  118.   # ● インクルード
  119.   #--------------------------------------------------------------------------
  120.   include XRXS26
  121.   #--------------------------------------------------------------------------
  122.   # ● メイン処理 をパーティメンバー処理ではさむ
  123.   #--------------------------------------------------------------------------
  124.   alias xrxs26_main main
  125.   def main
  126.     # 待機メンバーへ退避----------
  127.     $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
  128.     $game_party.actors.compact!
  129.     # メイン処理
  130.     xrxs26_main
  131.     # 待機メンバーから復帰
  132.     $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  133.     $game_party.actors.compact!
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● アフターバトルフェーズ開始
  137.   #--------------------------------------------------------------------------
  138.   alias xrxs26_start_phase5 start_phase5
  139.   def start_phase5
  140.     # 「待機メンバー経験値獲得」が有効 and 待機アクターが一人以上いる
  141.     if BACKWARD_EXP_GAINABLE and $game_party.backword_actors.size >= 1
  142.       # 待機メンバーから復帰
  143.       $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  144.       $game_party.backword_actors.clear
  145.       # 呼び戻す
  146.       xrxs26_start_phase5
  147.       # 待機メンバーへ退避----------
  148.       $game_party.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT]
  149.       $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
  150.       $game_party.actors.compact!
  151.     else
  152.       # 呼び戻す
  153.       xrxs26_start_phase5
  154.     end
  155.   end
  156. end
  157. # ▽△▽ XRXL 4. 第二カーソル 機構 ▽△▽
  158. # by 桜雅 在土

  159. #==============================================================================
  160. # --- XRXS. 第二カーソル 機構 ---
  161. #------------------------------------------------------------------------------
  162. #     ウィンドウに .index2 プロパティを追加します。
  163. #==============================================================================
  164. module XRXS_Cursor2
  165.   #--------------------------------------------------------------------------
  166.   # ● オブジェクト初期化
  167.   #--------------------------------------------------------------------------
  168.   def initialize(x, y, w, h)
  169.     super(x, y, h, w)
  170.     # 補助ウィンドウ(透明)を作成:カーソル専用
  171.     @xrxsc2_window = Window_Selectable.new(self.x, self.y, self.width, self.height)
  172.     @xrxsc2_window.opacity = 0
  173.     @xrxsc2_window.active = false
  174.     @xrxsc2_window.index = -1
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ○ 第二カーソルの設置
  178.   #--------------------------------------------------------------------------
  179.   def index2
  180.     return @xrxsc2_window.index
  181.   end
  182.   def index2=(index)
  183.     @xrxsc2_window.index = index
  184.     if index == -1
  185.       @xrxsc2_window.cursor_rect.empty
  186.     else
  187.       @xrxsc2_window.x = self.x
  188.       @xrxsc2_window.y = self.y
  189.       @xrxsc2_window.cursor_rect = self.cursor_rect
  190.     end
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ○ 先頭の行の設定
  194.   #--------------------------------------------------------------------------
  195.   def top_row=(row)
  196.     super
  197.     # 補助ウィンドウの oy を更新
  198.     pre_oy = @xrxsc2_window.oy
  199.     @xrxsc2_window.oy = self.oy
  200.     @xrxsc2_window.cursor_rect.y -= self.oy - pre_oy
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ○ 解放
  204.   #--------------------------------------------------------------------------
  205.   def dispose
  206.     @xrxsc2_window.dispose
  207.     super
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ○ X, Y 座標
  211.   #--------------------------------------------------------------------------
  212.   def x=(n)
  213.     super
  214.     @xrxsc2_window.x = self.x unless @xrxsc2_window.nil?
  215.   end
  216.   def y=(n)
  217.     super
  218.     @xrxsc2_window.y = self.y unless @xrxsc2_window.nil?
  219.   end
  220. end
  221. # ▼▲▼ XRXS26AX. +入れ替えメニュー ver.2 ▼▲▼ built 081113
  222. # by 桜雅 在土

  223. #==============================================================================
  224. # ■ Window_MenuStatus
  225. #==============================================================================
  226. class Window_MenuStatus < Window_Selectable
  227.   #--------------------------------------------------------------------------
  228.   # ○ インクルード
  229.   #--------------------------------------------------------------------------
  230.   include XRXS26
  231.   include XRXS_Cursor2
  232.   #--------------------------------------------------------------------------
  233.   # ● 公開インスタンス変数
  234.   #--------------------------------------------------------------------------
  235.   attr_reader   :column_max             # 列数
  236.   #--------------------------------------------------------------------------
  237.   # ● オブジェクト初期化
  238.   #--------------------------------------------------------------------------
  239.   def initialize
  240.     h = 480
  241.     if MENU_STATUS_STRETCH
  242.       h = FRONT_MEMBER_LIMIT * 116 + 16
  243.     end
  244.     super(0, 0, 480, h)
  245.     h = ($game_party.actors.size - 1) * LINE_HEIGHT + CURSOR_HEIGHT
  246.     self.contents = Bitmap.new(width - 32, h)
  247.     refresh
  248.     self.active = false
  249.     self.index = -1
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ○ 1 ページに表示できる行数の取得
  253.   #--------------------------------------------------------------------------
  254.   def page_row_max
  255.     if MENU_STATUS_STRETCH
  256.       return FRONT_MEMBER_LIMIT          # 戦闘パーティ最大数
  257.     else
  258.       return [FRONT_MEMBER_LIMIT, 4].max # 戦闘パーティ最大数(最低4)
  259.     end
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ○ 先頭の行の取得
  263.   #--------------------------------------------------------------------------
  264.   def top_row
  265.     # ウィンドウ内容の転送元 Y 座標を、1 行の高さ LINE_HEIGHT で割る
  266.     return self.oy / LINE_HEIGHT
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ○ 先頭の行の設定
  270.   #--------------------------------------------------------------------------
  271.   def top_row=(row)
  272.     super
  273.     self.oy = self.oy/32 * LINE_HEIGHT
  274.   end
  275.   #--------------------------------------------------------------------------
  276.   # ● カーソルの矩形更新
  277.   #--------------------------------------------------------------------------
  278.   def update_cursor_rect
  279.     super
  280.     unless @index < 0
  281.       y = (self.cursor_rect.y + self.oy) * LINE_HEIGHT/32 - self.oy
  282.       self.cursor_rect.set(0, y, self.cursor_rect.width, CURSOR_HEIGHT)
  283.     end
  284.   end
  285. end
  286. #==============================================================================
  287. # ■ Scene_Menu
  288. #==============================================================================
  289. class Scene_Menu
  290.   #--------------------------------------------------------------------------
  291.   # ○ インクルード
  292.   #--------------------------------------------------------------------------
  293.   include XRXS26
  294.   #--------------------------------------------------------------------------
  295.   # ● フレーム更新
  296.   #--------------------------------------------------------------------------
  297.   alias xrxs26ax_update update
  298.   def update
  299.     # インデックスを保存
  300.     @status_index = @status_window.index
  301.     # 呼び戻す
  302.     xrxs26ax_update
  303.   end
  304.   #--------------------------------------------------------------------------
  305.   # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  306.   #--------------------------------------------------------------------------
  307.   alias xrxs26ax_update_command update_command
  308.   def update_command
  309.     # 呼び戻す
  310.     xrxs26ax_update_command
  311.     # 入れ替え移行キーが押されたとき、@command_window.indexが設定値以上
  312.     if Input.trigger?(MENU_MEMBER_CHANGE_KEY_GO) and
  313.        @command_window.index >= MENU_MEMBER_CHANGE_INDEX_MIN
  314.       # 決定 SE を演奏
  315.       $game_system.se_play($data_system.decision_se)
  316.       # カーソル位置を記憶
  317.       @command_index_before_menu_member_change = @command_window.index
  318.       # 入れ替えウィンドウへ移行
  319.       @command_window.active = false
  320.       @command_window.index = -1
  321.       @status_window.active = true
  322.       @status_window.index = 0
  323.     end
  324.   end
  325.   #--------------------------------------------------------------------------
  326.   # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  327.   #--------------------------------------------------------------------------
  328.   alias xrxs26ax_update_status update_status
  329.   def update_status
  330.     # 呼び戻す
  331.     if @command_window.index != -1
  332.       xrxs26ax_update_status
  333.       return
  334.     end
  335.     # B ボタンか入れ替え終了キーが押されたとき
  336.     if ((Input.trigger?(Input::B) or Input.trigger?(MENU_MEMBER_CHANGE_KEY_END)) and
  337.         @status_window.index2 == -1 and
  338.         @status_index%@status_window.column_max == 0)
  339.       # キャンセル SE を演奏
  340.       $game_system.se_play($data_system.cancel_se)
  341.       # コマンドウィンドウをアクティブにする
  342.       @command_window.active = true
  343.       @command_window.index = 0
  344.       @status_window.active = false
  345.       @status_window.index = -1
  346.       return
  347.     end
  348.     # B ボタンが押されたとき
  349.     if Input.trigger?(Input::B) and @status_window.index2 >= 0
  350.       @status_window.index = @status_window.index2
  351.       @status_window.index2 = -1
  352.       return
  353.     end
  354.     # 決定キーが押されたとき
  355.     if Input.trigger?(Input::C)
  356.       if @status_window.index2 == -1
  357.         if UNMOVABLE_ACTORS.include?($game_party.actors[@status_window.index].id)
  358.           # ブザー SE を演奏
  359.           $game_system.se_play($data_system.buzzer_se)
  360.           return
  361.         end
  362.         # 決定 SE を演奏
  363.         $game_system.se_play($data_system.decision_se)
  364.         # メンバーの入れ替え一人目の決定
  365.         @status_window.index2 = @status_window.index
  366.       else
  367.         if UNMOVABLE_ACTORS.include?($game_party.actors[@status_window.index].id)
  368.           # ブザー SE を演奏
  369.           $game_system.se_play($data_system.buzzer_se)
  370.           return
  371.         end
  372.         # どちらかが戦闘メンバー かつ どちらかが戦闘禁止アクター の場合
  373.         if (@status_window.index < FRONT_MEMBER_LIMIT or
  374.             @status_window.index2 < FRONT_MEMBER_LIMIT) and
  375.            (UMBATTLABLE_ACTORS.include?($game_party.actors[@status_window.index].id) or
  376.             UMBATTLABLE_ACTORS.include?($game_party.actors[@status_window.index2].id))
  377.           # ブザー SE を演奏
  378.           $game_system.se_play($data_system.buzzer_se)
  379.           return
  380.         end
  381.         # どちらかが待機メンバー かつ どちらかが待機禁止アクター の場合
  382.         if (@status_window.index >= FRONT_MEMBER_LIMIT or
  383.             @status_window.index2 >= FRONT_MEMBER_LIMIT) and
  384.            (FORCETOBATTLE_ACTORS.include?($game_party.actors[@status_window.index].id) or
  385.             FORCETOBATTLE_ACTORS.include?($game_party.actors[@status_window.index2].id))
  386.           # ブザー SE を演奏
  387.           $game_system.se_play($data_system.buzzer_se)
  388.           return
  389.         end
  390.         # 決定 SE を演奏
  391.         $game_system.se_play($data_system.decision_se)
  392.         # メンバーの入れ替え二人目の決定と入れ替えの実行
  393.         actor2 = $game_party.actors[@status_window.index]
  394.         actor = $game_party.actors[@status_window.index2]
  395.         $game_party.actors[@status_window.index2] = actor2
  396.         $game_party.actors[@status_window.index] = actor
  397.         @status_window.index = @status_window.index2
  398.         @status_window.index2 = -1
  399.         # プレイヤーをリフレッシュ
  400.         $game_player.refresh
  401.         # ステータスウィンドウをリフレッシュ
  402.         @status_window.refresh
  403.       end
  404.       return
  405.     end
  406.   end
  407. end

  408. #============================================================================================
  409. # 本脚本来自www.66RPG.com,转载和使用请保留此信息
  410. #============================================================================================

  411. # ▼▲▼ XRXS26BX. +BUZZデザイン ▼▲▼ built 033109
  412. # by 桜雅 在土

  413. #==============================================================================
  414. # □ 初始化定义
  415. #==============================================================================
  416. class Window_MenuStatus < Window_Selectable
  417.   #
  418.   # 不显示能力值的角色编号
  419.   #
  420.   NO_PARAMETER_ACTORS = []
  421. end
  422. #==============================================================================
  423. # ■ Window_MenuStatus
  424. #==============================================================================
  425. class Window_MenuStatus < Window_Selectable
  426.   #--------------------------------------------------------------------------
  427.   # ○ インクルード
  428.   #--------------------------------------------------------------------------
  429.   include XRXS26
  430.   #--------------------------------------------------------------------------
  431.   # ● 公開インスタンス変数
  432.   #--------------------------------------------------------------------------
  433.   attr_reader   :newitem_window
  434.   attr_reader   :bottomkeyhelp_window
  435.   #--------------------------------------------------------------------------
  436.   # ● オブジェクト初期化
  437.   #--------------------------------------------------------------------------
  438.   alias xrxs26bx_initialize initialize
  439.   def initialize
  440.     # 呼び戻す
  441.     xrxs26bx_initialize
  442.     # 寄生してウィンドウを作成
  443.     # ボトルキーヘルプウィンドウ
  444.     @bottomkeyhelp_window = Window_BottomKeyHelp.new
  445.     @bottomkeyhelp_window.visible = false
  446.     # 設定変更
  447.     self.height   = 448
  448.     self.contents = Bitmap.new(width - 32, height - 32)
  449.     refresh
  450.   end
  451.   #--------------------------------------------------------------------------
  452.   # ● リフレッシュ
  453.   #--------------------------------------------------------------------------
  454.   def refresh
  455.     self.contents.clear
  456.     @item_max = $game_party.actors.size
  457.     @column_max = 2
  458.     y = (FRONT_MEMBER_LIMIT+1)/2 * 64 + 28
  459.     self.contents.font.size = 16
  460.     self.contents.font.color = system_color
  461.     self.contents.draw_text(4, 0, 92, 28, "战斗人数")
  462.     self.contents.draw_text(4, y+17, 92, 28, "待机人数")
  463.     for i in 0...$game_party.actors.size
  464.       x = 64 + i%2 * 224
  465.       y = i/2 *  72 + 24
  466.       actor = $game_party.actors[i]
  467.       if i >= FRONT_MEMBER_LIMIT
  468.         y += 32
  469.         self.contents.font.color = disabled_color
  470.         self.contents.draw_text(x, y, 120, 32, actor.name)
  471.       else
  472.         draw_actor_name(actor   , x     , y     )
  473.       end
  474.       draw_actor_graphic(actor, x - 40, y + 64)
  475.       unless NO_PARAMETER_ACTORS.include?(actor.id)
  476.         draw_actor_level(actor  , x + 94, y     )
  477.         draw_actor_hp(actor     , x, y + 16)
  478.         draw_actor_sp(actor     , x, y + 32)
  479.         draw_actor_state(actor  , x, y + 48)
  480.       end
  481.     end
  482.   end
  483.   #--------------------------------------------------------------------------
  484.   # ○ フレーム更新
  485.   #--------------------------------------------------------------------------
  486.   def update
  487.     # ウィンドウを更新
  488.     @bottomkeyhelp_window.update
  489.     super
  490.   end
  491.   #--------------------------------------------------------------------------
  492.   # ○ 解放
  493.   #--------------------------------------------------------------------------
  494.   def dispose
  495.     @bottomkeyhelp_window.dispose
  496.     super
  497.   end
  498.   #--------------------------------------------------------------------------
  499.   # ● カーソルの矩形更新
  500.   #--------------------------------------------------------------------------
  501.   def update_cursor_rect
  502.     if @index < 0
  503.       self.cursor_rect.empty
  504.     else
  505.       y = @index/2 * 72 + 28
  506.       if @index >= FRONT_MEMBER_LIMIT
  507.         y += 32
  508.       end
  509.       self.cursor_rect.set(@index%2 * 224, y, 224, 72)
  510.     end
  511.   end
  512. end
  513. #==============================================================================
  514. # ■ Scene_Menu
  515. #==============================================================================
  516. class Scene_Menu
  517.   #--------------------------------------------------------------------------
  518.   # ● フレーム更新
  519.   #--------------------------------------------------------------------------
  520.   alias xrxs26bx_update update
  521.   def update
  522.     # 登録
  523.     if @bottomkeyhelp_window.nil?
  524.       @bottomkeyhelp_window = @status_window.bottomkeyhelp_window
  525.       @bottomkeyhelp_window.visible = true
  526.       set_keyhelp1
  527.     end
  528.     # 呼び戻す
  529.     xrxs26bx_update
  530.   end
  531.   #--------------------------------------------------------------------------
  532.   # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  533.   #--------------------------------------------------------------------------
  534.   alias xrxs26bx_update_command update_command
  535.   def update_command
  536.     # 呼び戻す
  537.     xrxs26bx_update_command
  538.     # 入れ替え移行キーが押されたとき
  539.     if @command_window.index == -1 and @status_window.active
  540.       set_keyhelp2
  541.     end
  542.   end
  543.   #--------------------------------------------------------------------------
  544.   # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  545.   #--------------------------------------------------------------------------
  546.   alias xrxs26bx_update_status update_status
  547.   def update_status
  548.     # 保存
  549.     last_index = @status_window.index2
  550.     # 呼び戻す
  551.     xrxs26bx_update_status
  552.     #
  553.     if last_index != @status_window.index2
  554.       # 一人目を選択した場合
  555.       if @status_window.index2 >= 0
  556.         set_keyhelp3
  557.       else
  558.         set_keyhelp2
  559.       end
  560.     end
  561.     # 戻った場合
  562.     unless @status_window.active
  563.       set_keyhelp1
  564.     end
  565.   end
  566.   #--------------------------------------------------------------------------
  567.   # ○ キーヘルプを設定 1
  568.   #--------------------------------------------------------------------------
  569.   def set_keyhelp1
  570.     @bottomkeyhelp_window.clear
  571.     @bottomkeyhelp_window.add("X","开启、关闭菜单")
  572.     @bottomkeyhelp_window.add("C","确定键")
  573.     @bottomkeyhelp_window.add("→","调整人物顺序")
  574.   end
  575.   #--------------------------------------------------------------------------
  576.   # ○ キーヘルプを設定 2
  577.   #--------------------------------------------------------------------------
  578.   def set_keyhelp2
  579.     @bottomkeyhelp_window.clear
  580.     @bottomkeyhelp_window.add("←、X","返回")
  581.     @bottomkeyhelp_window.add("C","第一个人物确定")
  582.   end
  583.   #--------------------------------------------------------------------------
  584.   # ○ キーヘルプを設定 3
  585.   #--------------------------------------------------------------------------
  586.   def set_keyhelp3
  587.     @bottomkeyhelp_window.clear
  588.     @bottomkeyhelp_window.add("X","返回")
  589.     @bottomkeyhelp_window.add("C","第二个人物确定")
  590.   end
  591. end



  592. #==============================================================================
  593. # □ Window_BottomKeyHelp
  594. #------------------------------------------------------------------------------
  595. #     画面下で操作説明をする透明なウィンドウです。
  596. #==============================================================================
  597. class Window_BottomKeyHelp < Window_Base
  598.   #--------------------------------------------------------------------------
  599.   # ○ オブジェクト初期化
  600.   #--------------------------------------------------------------------------
  601.   def initialize
  602.     super(0, 432, 640, 64)
  603.     self.contents = Bitmap.new(width - 32, height - 32)
  604.     self.opacity = 0
  605.     clear
  606.   end
  607.   #--------------------------------------------------------------------------
  608.   # ○ クリア
  609.   #--------------------------------------------------------------------------
  610.   def clear
  611.     self.contents.clear
  612.     @now_x = 608
  613.   end
  614.   #--------------------------------------------------------------------------
  615.   # ○ 追加
  616.   #--------------------------------------------------------------------------
  617.   def add(key, explanation)
  618.     # 計算
  619.     self.contents.font.size = 20
  620.     x  = self.contents.text_size(key).width
  621.     self.contents.font.size = 16
  622.     x += self.contents.text_size(explanation).width + 8
  623.     @now_x -= x
  624.     # 描写
  625.     self.contents.font.size = 20
  626.     self.contents.font.color = system_color
  627.     self.contents.draw_text(@now_x, 0, x, 32, key, 0)
  628.     self.contents.font.size = 16
  629.     self.contents.font.color = normal_color
  630.     self.contents.draw_text(@now_x, 0, x, 32, explanation, 2)
  631.     # 余白
  632.     @now_x -= 32
  633.   end
  634. end
复制代码
dsu_plus_rewardpost_czw
作者: 英顺的马甲    时间: 2012-6-12 16:23
http://rpg.blue/forum.php?mod=viewthread&tid=163143




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