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

Project1

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

请问如何使某个角色固定不参加战斗??

 关闭 [复制链接]

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
跳转到指定楼层
1
发表于 2007-8-22 22:37:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是在游戏固定某个角色不在战斗中出现  不能修改  (未说在工程里不能修改)

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
2
 楼主| 发表于 2007-8-22 22:37:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是在游戏固定某个角色不在战斗中出现  不能修改  (未说在工程里不能修改)

Lv2.观梦者

梦石
0
星屑
431
在线时间
125 小时
注册时间
2006-11-2
帖子
1200
3
发表于 2007-8-22 22:48:41 | 只看该作者
战斗前离开,战斗结束后加入,这样?
和记忆一起封存着的ID...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
4
 楼主| 发表于 2007-8-22 22:57:29 | 只看该作者
就是跟这脚本差不多  http://rpg.blue/web/htm/news101.htm
能改为   主教不参加战斗得么  游戏里不能更改
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
431
在线时间
125 小时
注册时间
2006-11-2
帖子
1200
5
发表于 2007-8-22 22:59:18 | 只看该作者
按照我前面说的方法也能实现这个效果
既然不出战的队员是固定的,没有必要出现调整队员的界面吧。
和记忆一起封存着的ID...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
6
 楼主| 发表于 2007-8-22 22:59:51 | 只看该作者
或者比较好的  自定义战斗、待机人数
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
431
在线时间
125 小时
注册时间
2006-11-2
帖子
1200
7
发表于 2007-8-22 23:01:32 | 只看该作者
什么叫"比较好的"?{/gg}
和记忆一起封存着的ID...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
8
 楼主| 发表于 2007-8-22 23:33:24 | 只看该作者
我主要是要那个脚本   替换队员     还有就是改下那脚本  使主教不参加战斗
回复 支持 反对

使用道具 举报

Lv1.梦旅人

史上最强粉丝

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-20
帖子
5574

贵宾

9
发表于 2007-8-22 23:38:51 | 只看该作者
最终效果很像幻想传说中的剧情NPC呢!在队伍中演义剧情但不参加战斗!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
431
在线时间
125 小时
注册时间
2006-11-2
帖子
1200
10
发表于 2007-8-23 00:35:17 | 只看该作者
  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 = 5        # 待机人数最大值
  12.   BACKWARD_EXP_GAINABLE = true     # 待机人物是否获得经验
  13.   MENU_STATUS_STRETCH   = false    # 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 = 116
  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             = [1]           # 不能移动的角色编号
  36.   
  37. def update_status
  38.     # 按下 B 键的情况下
  39.     if Input.trigger?(Input::B)
  40.       # 演奏取消 SE
  41.       $game_system.se_play($data_system.cancel_se)
  42.       # 激活命令窗口
  43.       @command_window.active = true
  44.       @status_window.active = false
  45.       @status_window.index = -1
  46.       return
  47.     end
  48.     # 按下 C 键的情况下
  49.     if Input.trigger?(Input::C)
  50.       # 命令窗口的光标位置分支
  51.       case @command_window.index
  52.       when 1  # 特技
  53.         # 本角色的行动限制在 2 以上的情况下
  54.         if $game_party.actors[@status_window.index].restriction >= 2
  55.           # 演奏冻结 SE
  56.           $game_system.se_play($data_system.buzzer_se)
  57.           return
  58.         end
  59.         # 演奏确定 SE
  60.         $game_system.se_play($data_system.decision_se)
  61.         # 切换到特技画面
  62.         $scene = Scene_Skill.new(@status_window.index)
  63.       when 2  # 装备
  64.         # 演奏确定 SE
  65.         $game_system.se_play($data_system.decision_se)
  66.         # 切换的装备画面
  67.         $scene = Scene_Equip.new(@status_window.index)
  68.       when 3  # 状态
  69.         # 演奏确定 SE
  70.         $game_system.se_play($data_system.decision_se)
  71.         # 切换到状态画面
  72.         $scene = Scene_Status.new(@status_window.index+1)
  73.       end
  74.       return
  75.     end
  76.   end  


  77. end
  78. #------------------------------------------------------------------------------
  79. #
  80. # 解説
  81. #    Game_Partyの @actors のうち先頭から↑FRONT_MEMBER_LIMIT番目までのアクターを
  82. #   戦闘メンバーとして、それ以上を待機メンバーとして扱います。

  83. #
  84. #==============================================================================
  85. # ■ Game_Party
  86. #==============================================================================
  87. class Game_Party
  88.   #--------------------------------------------------------------------------
  89.   # ○ インクルード
  90.   #--------------------------------------------------------------------------
  91.   include XRXS26
  92.   #--------------------------------------------------------------------------
  93.   # ○ 公開インスタンス変数
  94.   #--------------------------------------------------------------------------
  95.   attr_reader   :backword_actors          # 待機アクター
  96.   #--------------------------------------------------------------------------
  97.   # ● オブジェクト初期化
  98.   #--------------------------------------------------------------------------
  99.   alias xrxs26_initialize initialize
  100.   def initialize
  101.     xrxs26_initialize
  102.     # 待機メンバー配列を初期化
  103.     @backword_actors = []
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● アクターを加える
  107.   #--------------------------------------------------------------------------
  108.   def add_actor(actor_id)
  109.     # アクターを取得
  110.     actor = $game_actors[actor_id]
  111.     # このアクターがパーティにいない場合
  112.     if not @actors.include?(actor)
  113.       # 満員でないならメンバーに追加
  114.       if @actors.size < (FRONT_MEMBER_LIMIT + BACKWARD_MEMBER_LIMIT)
  115.         # アクターを追加
  116.         @actors.push(actor)
  117.         # プレイヤーをリフレッシュ
  118.         $game_player.refresh
  119.       end
  120.     end
  121.   end
  122. end
  123. #==============================================================================
  124. # ■ Spriteset_Battle
  125. #==============================================================================
  126. class Spriteset_Battle
  127.   #--------------------------------------------------------------------------
  128.   # ● インクルード
  129.   #--------------------------------------------------------------------------
  130.   include XRXS26
  131.   #--------------------------------------------------------------------------
  132.   # ● フレーム更新
  133.   #--------------------------------------------------------------------------
  134.   alias xrxs26_initialize initialize
  135.   def initialize
  136.     xrxs26_initialize
  137.     #
  138.     # 以下、五人目以降のアクタースプライトの追加処理---
  139.     #
  140.     # アクターが表示されるビューポートを、とりあえず先頭の人から取得しとく(素
  141.     actor_viewport = @actor_sprites[0].viewport
  142.     # 戦闘参加メンバーが5人以上の場合
  143.     if FRONT_MEMBER_LIMIT > 4
  144.       for i in 5..FRONT_MEMBER_LIMIT
  145.         # アクタースプライトを追加
  146.         @actor_sprites.push(Sprite_Battler.new(actor_viewport))
  147.         @actor_sprites[i-1].battler = $game_party.actors[i-1]
  148.       end
  149.     end
  150.     # ビューポートを更新
  151.     actor_viewport.update
  152.   end
  153. end
  154. #==============================================================================
  155. # ■ Scene_Battle
  156. #==============================================================================
  157. class Scene_Battle
  158.   #--------------------------------------------------------------------------
  159.   # ● インクルード
  160.   #--------------------------------------------------------------------------
  161.   include XRXS26
  162.   #--------------------------------------------------------------------------
  163.   # ● メイン処理 をパーティメンバー処理ではさむ
  164.   #--------------------------------------------------------------------------
  165.   alias xrxs26_main main
  166.   def main
  167.     # 待機メンバーへ退避----------
  168.     $game_party.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT + 1 , BACKWARD_MEMBER_LIMIT]
  169.     $game_party.actors[FRONT_MEMBER_LIMIT + 1, BACKWARD_MEMBER_LIMIT] = nil
  170.     $game_party.actors.compact!
  171.     $game_party.remove_actor(1)
  172.     # メイン処理
  173.     xrxs26_main
  174.     # 待機メンバーから復帰
  175.     $game_party.actors.insert(0,$game_actors[1])
  176.     $game_player.refresh
  177.     $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  178.     $game_party.backword_actors.clear
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● アフターバトルフェーズ開始
  182.   #--------------------------------------------------------------------------
  183.   alias xrxs26_start_phase5 start_phase5
  184.   def start_phase5
  185.     # 「待機メンバー経験値獲得」が有効 and 待機アクターが一人以上いる
  186.     if BACKWARD_EXP_GAINABLE and $game_party.backword_actors.size >= 1
  187.       # 待機メンバーから復帰
  188.       $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  189.       $game_party.backword_actors.clear
  190.       # 呼び戻す
  191.       xrxs26_start_phase5
  192.       # 待機メンバーへ退避----------
  193.       $game_party.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT]
  194.       $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
  195.       $game_party.actors.compact!
  196.     else
  197.       # 呼び戻す
  198.       xrxs26_start_phase5
  199.     end
  200.   end
  201. end
  202. # ▽△▽ XRXL 4. 第二カーソル 機構 ▽△▽
  203. # by 桜雅 在土

  204. #==============================================================================
  205. # --- XRXS. 第二カーソル 機構 ---
  206. #------------------------------------------------------------------------------
  207. #     ウィンドウに .index2 プロパティを追加します。
  208. #==============================================================================
  209. module XRXS_Cursor2
  210.   #--------------------------------------------------------------------------
  211.   # ● オブジェクト初期化
  212.   #--------------------------------------------------------------------------
  213.   def initialize(x, y, w, h)
  214.     super(x, y, h, w)
  215.     # 補助ウィンドウ(透明)を作成:カーソル専用
  216.     @xrxsc2_window = Window_Selectable.new(self.x, self.y, self.width, self.height)
  217.     @xrxsc2_window.opacity = 0
  218.     @xrxsc2_window.active = false
  219.     @xrxsc2_window.index = -1
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ○ 第二カーソルの設置
  223.   #--------------------------------------------------------------------------
  224.   def index2
  225.     return @xrxsc2_window.index
  226.   end
  227.   def index2=(index)
  228.     @xrxsc2_window.index = index
  229.     if index == -1
  230.       @xrxsc2_window.cursor_rect.empty
  231.     else
  232.       @xrxsc2_window.x = self.x
  233.       @xrxsc2_window.y = self.y
  234.       @xrxsc2_window.cursor_rect = self.cursor_rect
  235.     end
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ○ 先頭の行の設定
  239.   #--------------------------------------------------------------------------
  240.   def top_row=(row)
  241.     super
  242.     # 補助ウィンドウの oy を更新
  243.     pre_oy = @xrxsc2_window.oy
  244.     @xrxsc2_window.oy = self.oy
  245.     @xrxsc2_window.cursor_rect.y -= self.oy - pre_oy
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ○ 解放
  249.   #--------------------------------------------------------------------------
  250.   def dispose
  251.     @xrxsc2_window.dispose
  252.     super
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ○ X, Y 座標
  256.   #--------------------------------------------------------------------------
  257.   def x=(n)
  258.     super
  259.     @xrxsc2_window.x = self.x unless @xrxsc2_window.nil?
  260.   end
  261.   def y=(n)
  262.     super
  263.     @xrxsc2_window.y = self.y unless @xrxsc2_window.nil?
  264.   end
  265. end
  266. # ▼▲▼ XRXS26AX. +入れ替えメニュー ver.2 ▼▲▼ built 081113
  267. # by 桜雅 在土

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

复制代码



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

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

  6. #==============================================================================
  7. # □ 初始化定义
  8. #==============================================================================
  9. class Window_MenuStatus < Window_Selectable
  10.   #
  11.   # 不显示能力值的角色编号
  12.   #
  13.   NO_PARAMETER_ACTORS = []
  14. end
  15. #==============================================================================
  16. # ■ Window_MenuStatus
  17. #==============================================================================
  18. class Window_MenuStatus < Window_Selectable
  19.   #--------------------------------------------------------------------------
  20.   # ○ インクルード
  21.   #--------------------------------------------------------------------------
  22.   include XRXS26
  23.   #--------------------------------------------------------------------------
  24.   # ● 公開インスタンス変数
  25.   #--------------------------------------------------------------------------
  26.   attr_reader   :newitem_window
  27.   attr_reader   :bottomkeyhelp_window
  28.   #--------------------------------------------------------------------------
  29.   # ● オブジェクト初期化
  30.   #--------------------------------------------------------------------------
  31.   alias xrxs26bx_initialize initialize
  32.   def initialize
  33.     # 呼び戻す
  34.     xrxs26bx_initialize
  35.     # 寄生してウィンドウを作成
  36.     # ボトルキーヘルプウィンドウ
  37.     @bottomkeyhelp_window = Window_BottomKeyHelp.new
  38.     @bottomkeyhelp_window.visible = false
  39.     # 設定変更
  40.     self.height   = 448
  41.     self.contents = Bitmap.new(width - 32, height - 32)
  42.     refresh
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● リフレッシュ
  46.   #--------------------------------------------------------------------------
  47.   def refresh
  48.     self.contents.clear
  49.     @item_max = $game_party.actors.size - 1
  50.     @column_max = 2
  51.     y = (FRONT_MEMBER_LIMIT+1)/2 * 64 + 28
  52.     self.contents.font.size = 16
  53.     self.contents.font.color = system_color
  54.     self.contents.draw_text(4, 0, 92, 28, "战斗人数")
  55.     self.contents.draw_text(4, y, 92, 28, "待机人数")
  56.     for i in 0...$game_party.actors.size
  57.       if  i == 0
  58.       x = 64 + 224
  59.       y = 72 + 24  + 240      
  60.       else
  61.       x = 64 + (i - 1)%2 * 224
  62.       y = (i - 1)/2 *  72 + 24
  63.       end
  64.       actor = $game_party.actors[i]
  65.       if i >= FRONT_MEMBER_LIMIT + 1
  66.         y += 32
  67.         self.contents.font.color = disabled_color
  68.         self.contents.draw_text(x, y, 120, 32, actor.name)
  69.       else
  70.         draw_actor_name(actor   , x     , y     )
  71.       end
  72.       draw_actor_graphic(actor, x - 40, y + 64)
  73.       unless NO_PARAMETER_ACTORS.include?(actor.id)
  74.         draw_actor_level(actor  , x + 94, y     )
  75.         draw_actor_hp(actor     , x, y + 16)
  76.         draw_actor_sp(actor     , x, y + 32)
  77.         draw_actor_state(actor  , x, y + 48)
  78.       end
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ○ フレーム更新
  83.   #--------------------------------------------------------------------------
  84.   def update
  85.     # ウィンドウを更新
  86.     @bottomkeyhelp_window.update
  87.     super
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 解放
  91.   #--------------------------------------------------------------------------
  92.   def dispose
  93.     @bottomkeyhelp_window.dispose
  94.     super
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● カーソルの矩形更新
  98.   #--------------------------------------------------------------------------
  99.   def update_cursor_rect
  100.     if @index < 0
  101.       self.cursor_rect.empty
  102.     else
  103.       y = @index/2 * 72 + 28
  104.       if @index >= FRONT_MEMBER_LIMIT
  105.         y += 32
  106.       end
  107.       self.cursor_rect.set(@index%2 * 224, y, 224, 72)
  108.     end
  109.   end
  110. end
  111. #==============================================================================
  112. # ■ Scene_Menu
  113. #==============================================================================
  114. class Scene_Menu
  115.   #--------------------------------------------------------------------------
  116.   # ● フレーム更新
  117.   #--------------------------------------------------------------------------
  118.   alias xrxs26bx_update update
  119.   def update
  120.     # 登録
  121.     if @bottomkeyhelp_window.nil?
  122.       @bottomkeyhelp_window = @status_window.bottomkeyhelp_window
  123.       @bottomkeyhelp_window.visible = true
  124.       set_keyhelp1
  125.     end
  126.     # 呼び戻す
  127.     xrxs26bx_update
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  131.   #--------------------------------------------------------------------------
  132.   alias xrxs26bx_update_command update_command
  133.   def update_command
  134.     # 呼び戻す
  135.     xrxs26bx_update_command
  136.     # 入れ替え移行キーが押されたとき
  137.     if @command_window.index == -1 and @status_window.active
  138.       set_keyhelp2
  139.     end
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  143.   #--------------------------------------------------------------------------
  144.   alias xrxs26bx_update_status update_status
  145.   def update_status
  146.     # 保存
  147.     last_index = @status_window.index2
  148.     # 呼び戻す
  149.     xrxs26bx_update_status
  150.     #
  151.     if last_index != @status_window.index2
  152.       # 一人目を選択した場合
  153.       if @status_window.index2 >= 0
  154.         set_keyhelp3
  155.       else
  156.         set_keyhelp2
  157.       end
  158.     end
  159.     # 戻った場合
  160.     unless @status_window.active
  161.       set_keyhelp1
  162.     end
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ○ キーヘルプを設定 1
  166.   #--------------------------------------------------------------------------
  167.   def set_keyhelp1
  168.     @bottomkeyhelp_window.clear
  169.     @bottomkeyhelp_window.add("B","关闭本窗口")
  170.     @bottomkeyhelp_window.add("C","确定")
  171.     @bottomkeyhelp_window.add("→","人物顺序调整")
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ○ キーヘルプを設定 2
  175.   #--------------------------------------------------------------------------
  176.   def set_keyhelp2
  177.     @bottomkeyhelp_window.clear
  178.     @bottomkeyhelp_window.add("←,B","返回")
  179.     @bottomkeyhelp_window.add("C","第一个人物确定")
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ○ キーヘルプを設定 3
  183.   #--------------------------------------------------------------------------
  184.   def set_keyhelp3
  185.     @bottomkeyhelp_window.clear
  186.     @bottomkeyhelp_window.add("B","返回")
  187.     @bottomkeyhelp_window.add("C","第二个人物确定")
  188.   end
  189. end



  190. #==============================================================================
  191. # □ Window_BottomKeyHelp
  192. #------------------------------------------------------------------------------
  193. #     画面下で操作説明をする透明なウィンドウです。
  194. #==============================================================================
  195. class Window_BottomKeyHelp < Window_Base
  196.   #--------------------------------------------------------------------------
  197.   # ○ オブジェクト初期化
  198.   #--------------------------------------------------------------------------
  199.   def initialize
  200.     super(0, 432, 640, 64)
  201.     self.contents = Bitmap.new(width - 32, height - 32)
  202.     self.opacity = 0
  203.     clear
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ○ クリア
  207.   #--------------------------------------------------------------------------
  208.   def clear
  209.     self.contents.clear
  210.     @now_x = 608
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ○ 追加
  214.   #--------------------------------------------------------------------------
  215.   def add(key, explanation)
  216.     # 計算
  217.     self.contents.font.size = 20
  218.     x  = self.contents.text_size(key).width
  219.     self.contents.font.size = 16
  220.     x += self.contents.text_size(explanation).width + 8
  221.     @now_x -= x
  222.     # 描写
  223.     self.contents.font.size = 20
  224.     self.contents.font.color = system_color
  225.     self.contents.draw_text(@now_x, 0, x, 32, key, 0)
  226.     self.contents.font.size = 16
  227.     self.contents.font.color = normal_color
  228.     self.contents.draw_text(@now_x, 0, x, 32, explanation, 2)
  229.     # 余白
  230.     @now_x -= 32
  231.   end
  232. end

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


队伍中最开始的一个角色不参加战斗,也不能移动,显示在右下角。
总人数不要超过8人,否则显示会不正常。
无法查看主角状态,加个按键分歧即可。
和记忆一起封存着的ID...
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-25 04:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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