Project1

标题: 让某队伍编号范围内的队员不能附带某状态 [打印本页]

作者: typhon_524    时间: 2008-11-17 18:27
标题: 让某队伍编号范围内的队员不能附带某状态
比如队伍编号为:$game_party.actors[0]、$game_party.actors[1]、$game_party.actors[2]、$game_party.actors[3]的队员不允许附带33号状态,如果带了就自动去除。

但是如果通过交换队伍编号的方法把前面的队员换到后面,就又可以附带33号状态了 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 3nξhα0_lim    时间: 2008-11-17 19:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 19:09
我用了人数上限脚本,队伍里一共可以带八个角色,上面的脚本应该放在哪里啊?


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

  4. # ▼▲▼ XRXS26. 人物扩张系统 ver..05 ▼▲▼
  5. # by 桜雅 在土

  6. #==============================================================================
  7. # □ 初始化定义
  8. #==============================================================================
  9. module XRXS26
  10. FRONT_MEMBER_LIMIT    = 8        # 战斗参战人数最大值
  11. BACKWARD_MEMBER_LIMIT = 0        # 待机人数最大值
  12. BACKWARD_EXP_GAINABLE = false     # 待机人物是否获得经验
  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 = 26
  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             = []           # 不能移动的角色编号
  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.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT]
  128.    $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
  129.    $game_party.actors.compact!
  130.    # メイン処理
  131.    xrxs26_main
  132.    # 待機メンバーから復帰
  133.    $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  134.    $game_party.backword_actors.clear
  135. end
  136. #--------------------------------------------------------------------------
  137. # ● アフターバトルフェーズ開始
  138. #--------------------------------------------------------------------------
  139. alias xrxs26_start_phase5 start_phase5
  140. def start_phase5
  141.    # 「待機メンバー経験値獲得」が有効 and 待機アクターが一人以上いる
  142.    if BACKWARD_EXP_GAINABLE and $game_party.backword_actors.size >= 1
  143.      # 待機メンバーから復帰
  144.      $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  145.      $game_party.backword_actors.clear
  146.      # 呼び戻す
  147.      xrxs26_start_phase5
  148.      # 待機メンバーへ退避----------
  149.      $game_party.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT]
  150.      $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
  151.      $game_party.actors.compact!
  152.    else
  153.      # 呼び戻す
  154.      xrxs26_start_phase5
  155.    end
  156. end
  157. end
  158. # ▽△▽ XRXL 4. 第二カーソル 機構 ▽△▽
  159. # by 桜雅 在土

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

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

  395.       
  396.        # メンバーの入れ替え二人目の決定と入れ替えの実行
  397.        actor2 = $game_party.actors[@status_window.index]
  398.        actor = $game_party.actors[@status_window.index2]
  399.        $game_party.actors[@status_window.index2] = actor2
  400.        $game_party.actors[@status_window.index] = actor
  401.        @status_window.index = @status_window.index2
  402.        @status_window.index2 = -1
  403.        # プレイヤーをリフレッシュ
  404.        $game_player.refresh
  405.        # ステータスウィンドウをリフレッシュ
  406.        @status_window.refresh
  407.      end
  408.      return
  409.    end
  410. end
  411. end


  412. # 菜单界面脚本全部内容:

  413. #============================================================================================
  414. # 本脚本来自www.66RPG.com,转载和使用请保留此信息
  415. #============================================================================================

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

  418. #==============================================================================
  419. # □ 初始化定义
  420. #==============================================================================
  421. class Window_MenuStatus < Window_Selectable
  422. #
  423. # 不显示能力值的角色编号
  424. #
  425. NO_PARAMETER_ACTORS = []
  426. end
  427. #==============================================================================
  428. # ■ Window_MenuStatus
  429. #==============================================================================
  430. class Window_MenuStatus < Window_Selectable
  431. #--------------------------------------------------------------------------
  432. # ○ インクルード
  433. #--------------------------------------------------------------------------
  434. include XRXS26
  435. #--------------------------------------------------------------------------
  436. # ● 公開インスタンス変数
  437. #--------------------------------------------------------------------------
  438. attr_reader   :newitem_window
  439. attr_reader   :bottomkeyhelp_window
  440. #--------------------------------------------------------------------------
  441. # ● オブジェクト初期化
  442. #--------------------------------------------------------------------------
  443. alias xrxs26bx_initialize initialize
  444. def initialize
  445.    # 呼び戻す
  446.    xrxs26bx_initialize
  447.    # 寄生してウィンドウを作成
  448.    # ボトルキーヘルプウィンドウ
  449.    @bottomkeyhelp_window = Window_BottomKeyHelp.new
  450.    @bottomkeyhelp_window.visible = false
  451.    # 設定変更
  452.    self.height   = 448
  453.    self.contents = Bitmap.new(width - 32, height - 32)
  454.    refresh
  455. end
  456. #--------------------------------------------------------------------------
  457. # ● リフレッシュ
  458. #--------------------------------------------------------------------------
  459. def refresh
  460.    self.contents.clear
  461.    @item_max = $game_party.actors.size
  462.    @column_max = 2
  463.    y = (FRONT_MEMBER_LIMIT+1)/2 * 64 + 28
  464.    self.contents.font.size = 16
  465.    self.contents.font.color = system_color
  466.    self.contents.draw_text(4, 0, 92, 28, "战斗人数")
  467.    self.contents.draw_text(4, 160, 92, 28, "待机人数")
  468.    for i in 0...$game_party.actors.size
  469.      x = 64 + i%2 * 224
  470.      y = i/2 *  72 + 24
  471.      actor = $game_party.actors[i]
  472.      if i >= FRONT_MEMBER_LIMIT
  473.        y += 32
  474.        self.contents.font.color = disabled_color
  475.        self.contents.draw_text(x, y, 120, 32, actor.name)
  476.      else
  477.        draw_actor_name(actor   , x     , y     )
  478.      end
  479.      
  480.      if actor.pet_id != 0
  481.        draw_actor_graphic(actor, x - 40, y + 64)
  482.        self.contents.font.color = Color.new(255,255,0,255)
  483.        self.contents.draw_text(x - 80,y + 48,64,32,"[带宠]",2)
  484.        self.contents.font.color = normal_color
  485.      else
  486.        draw_actor_graphic(actor, x - 40, y + 64)
  487.      end
  488.    
  489.      unless NO_PARAMETER_ACTORS.include?(actor.id)
  490.        draw_actor_level(actor  , x + 94, y     )
  491.        draw_actor_hp(actor     , x, y + 16)
  492.        draw_actor_sp(actor     , x, y + 32)
  493.        draw_actor_state(actor  , x, y + 48)
  494.      end
  495.    end
  496. end

  497. #--------------------------------------------------------------------------
  498. # ○ フレーム更新
  499. #--------------------------------------------------------------------------
  500. def update
  501.    # ウィンドウを更新
  502.    @bottomkeyhelp_window.update
  503.    super
  504. end
  505. #--------------------------------------------------------------------------
  506. # ○ 解放
  507. #--------------------------------------------------------------------------
  508. def dispose
  509.    @bottomkeyhelp_window.dispose
  510.    super
  511. end
  512. #--------------------------------------------------------------------------
  513. # ● カーソルの矩形更新
  514. #--------------------------------------------------------------------------
  515. def update_cursor_rect
  516.    if @index < 0
  517.      self.cursor_rect.empty
  518.    else
  519.      y = @index/2 * 72 + 28
  520.      if @index >= FRONT_MEMBER_LIMIT
  521.        y += 32
  522.      end
  523.      self.cursor_rect.set(@index%2 * 224, y, 224, 72)
  524.    end
  525. end
  526. end
  527. #==============================================================================
  528. # ■ Scene_Menu
  529. #==============================================================================
  530. class Scene_Menu
  531. #--------------------------------------------------------------------------
  532. # ● フレーム更新
  533. #--------------------------------------------------------------------------
  534. alias xrxs26bx_update update
  535. def update
  536.    # 登録
  537.    if @bottomkeyhelp_window.nil?
  538.      @bottomkeyhelp_window = @status_window.bottomkeyhelp_window
  539.      @bottomkeyhelp_window.visible = true
  540.      set_keyhelp1
  541.    end
  542.    # 呼び戻す
  543.    xrxs26bx_update
  544. end
  545. #--------------------------------------------------------------------------
  546. # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  547. #--------------------------------------------------------------------------
  548. alias xrxs26bx_update_command update_command
  549. def update_command
  550.    # 呼び戻す
  551.    xrxs26bx_update_command
  552.    # 入れ替え移行キーが押されたとき
  553.    if @command_window.index == -1 and @status_window.active
  554.      set_keyhelp2
  555.    end
  556. end
  557. #--------------------------------------------------------------------------
  558. # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  559. #--------------------------------------------------------------------------
  560. alias xrxs26bx_update_status update_status
  561. def update_status
  562.    # 保存
  563.    last_index = @status_window.index2
  564.    # 呼び戻す
  565.    xrxs26bx_update_status
  566.    #
  567.    if last_index != @status_window.index2
  568.      # 一人目を選択した場合
  569.      if @status_window.index2 >= 0
  570.        set_keyhelp3
  571.      else
  572.        set_keyhelp2
  573.      end
  574.    end
  575.    # 戻った場合
  576.    unless @status_window.active
  577.      set_keyhelp1
  578.    end
  579. end
  580. #--------------------------------------------------------------------------
  581. # ○ キーヘルプを設定 1
  582. #--------------------------------------------------------------------------
  583. def set_keyhelp1
  584.    @bottomkeyhelp_window.clear
  585.    @bottomkeyhelp_window.add("B","关闭本窗口")
  586.    @bottomkeyhelp_window.add("C","确定")
  587.    @bottomkeyhelp_window.add("→","人物顺序调整")
  588. end
  589. #--------------------------------------------------------------------------
  590. # ○ キーヘルプを設定 2
  591. #--------------------------------------------------------------------------
  592. def set_keyhelp2
  593.    @bottomkeyhelp_window.clear
  594.    @bottomkeyhelp_window.add("←,B","返回")
  595.    @bottomkeyhelp_window.add("C","第一个人物确定")
  596. end
  597. #--------------------------------------------------------------------------
  598. # ○ キーヘルプを設定 3
  599. #--------------------------------------------------------------------------
  600. def set_keyhelp3
  601.    @bottomkeyhelp_window.clear
  602.    @bottomkeyhelp_window.add("B","返回")
  603.    @bottomkeyhelp_window.add("C","第二个人物确定")
  604. end
  605. end



  606. #==============================================================================
  607. # □ Window_BottomKeyHelp
  608. #------------------------------------------------------------------------------
  609. #     画面下で操作説明をする透明なウィンドウです。
  610. #==============================================================================
  611. class Window_BottomKeyHelp < Window_Base
  612. #--------------------------------------------------------------------------
  613. # ○ オブジェクト初期化
  614. #--------------------------------------------------------------------------
  615. def initialize
  616.    super(0, 432, 640, 64)
  617.    self.contents = Bitmap.new(width - 32, height - 32)
  618.    self.opacity = 0
  619.    clear
  620. end
  621. #--------------------------------------------------------------------------
  622. # ○ クリア
  623. #--------------------------------------------------------------------------
  624. def clear
  625.    self.contents.clear
  626.    @now_x = 608
  627. end
  628. #--------------------------------------------------------------------------
  629. # ○ 追加
  630. #--------------------------------------------------------------------------
  631. def add(key, explanation)
  632.    # 計算
  633.    self.contents.font.size = 20
  634.    x  = self.contents.text_size(key).width
  635.    self.contents.font.size = 16
  636.    x += self.contents.text_size(explanation).width + 8
  637.    @now_x -= x
  638.    # 描写
  639.    self.contents.font.size = 20
  640.    self.contents.font.color = system_color
  641.    self.contents.draw_text(@now_x, 0, x, 32, key, 0)
  642.    self.contents.font.size = 16
  643.    self.contents.font.color = normal_color
  644.    self.contents.draw_text(@now_x, 0, x, 32, explanation, 2)
  645.    # 余白
  646.    @now_x -= 32
  647. end
  648. end
复制代码

作者: 3nξhα0_lim    时间: 2008-11-17 19:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 19:22
就是我用了人数上限脚本,队伍人数最多是八个,队伍中$game_party.actors[3]编号以上的角色给一个状态叫“待命”,如果游戏中队伍编号在0~3以内的角色有一个离队,能不能让后面编号上移到0~3以内的角色自动去除“待命”状态?

作者: 3nξhα0_lim    时间: 2008-11-17 19:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 20:00
主要是3过后的角色如果换到前面就自动去除待命的状态。。

PS:楼上的是enghao_lim么?你的打造脚本太好了,让我给整出了一个随机掉装备系统,太感谢了!
作者: 鸟神乌鸦    时间: 2008-11-17 20:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 3nξhα0_lim    时间: 2008-11-17 20:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 20:11
我是在八人战斗开始前给超出四人以外的角色加个待命,作为替补队员,该状态无敌、敌人无视、前四人败了战斗就判为失败。但是前四人战斗中又设置了一定条件下队友会逃跑,这样一来后面的角色就自动顶上来了,所以希望自动顶上来的队员能自动去除待命状态。。

我先试下谢谢
作者: 3nξhα0_lim    时间: 2008-11-17 20:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 20:19
对了,只在战斗中

那个“待命”状态是在每次进入战斗的 Scene_Battle 1 主处理下添加的,战斗结束解除

作者: 鸟神乌鸦    时间: 2008-11-17 20:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 20:25
以下引用鸟神乌鸦于2008-11-17 12:22:01的发言:

for actor in $game_party.actors[4,7]
if not actor.state?(33)
actor.add_state(33)
end
end
for actor in $game_party.actors[0,3]
if actor.state?(33)
actor.remove_state(33)
end
end




写在战斗事件里?能写在脚本里么
作者: 鸟神乌鸦    时间: 2008-11-17 20:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: typhon_524    时间: 2008-11-17 20:31
Scene_Battle 1 的刷新画面下的def update ?
作者: 鸟神乌鸦    时间: 2008-11-17 20:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 鸟神乌鸦    时间: 2008-11-17 20:35
提示: 作者被禁止或删除 内容自动屏蔽




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