Project1

标题: 高等连击即时制 [打印本页]

作者: 冥影帝    时间: 2008-10-13 02:37
标题: 高等连击即时制
玩幻想三国志的人应该知道吧
当速度条满了以后,可以不出招,等待其他队员的CP一起满;如果不出招,敌人的CP还是在动,而且即使是我方的CP条满后,是我方回合,敌人还是可以攻击,如果我方队员的CP都满的时候,可以一起进行攻击,敌人也一样。
我这个的CP制,帮忙改成这个样子,我是怎么也调不好,帮帮忙
  1. #==============================================================================
  2. # □ カスタマイズポイント
  3. #==============================================================================
  4. module XRXS_BP1
  5. #
  6. # 对齐方式。0:左 1:中央 2:右
  7. #
  8. ALIGN = 0
  9. #
  10. # 人数
  11. #
  12. MAX = 4
  13. end
  14. class Scene_Battle_CP
  15. #
  16. # 战斗速度
  17. #
  18. BATTLE_SPEED = 2.0
  19. #
  20. # 战斗开始的时候气槽百分比
  21. #
  22. START_CP_PERCENT = 0
  23. end

  24. class Scene_Battle

  25. # 效果音效,可以自己添加
  26. DATA_SYSTEM_COMMAND_UP_SE = ""

  27. # 各项数值功能消耗的CP值
  28. CP_COST_BASIC_ACTIONS = 0 # 基础共同
  29. CP_COST_SKILL_ACTION = 65535 # 技能
  30. CP_COST_ITEM_ACTION = 65535 # 物品
  31. CP_COST_THROW_ACTION = 65535 # 投掷
  32. CP_COST_BASIC_ATTACK = 65535 # 攻撃
  33. CP_COST_BASIC_GUARD = 32768 # 防御
  34. CP_COST_BASIC_NOTHING = 65535 # 不做任何事情
  35. CP_COST_BASIC_ESCAPE = 65535 # 逃跑
  36. end

  37. #==============================================================================
  38. # --- XRXS.コマンドウィンドウ?コマンド追加機構 ---
  39. #------------------------------------------------------------------------------
  40. # Window_Commandクラスに add_command メソッドを追加します。
  41. #==============================================================================
  42. module XRXS_Window_Command_Add_Command
  43. #--------------------------------------------------------------------------
  44. # ○ コマンドを追加
  45. #--------------------------------------------------------------------------
  46. def add_command(command)
  47. # 初期化されていない場合、無効化判別用の配列 @disabled の初期化
  48. #
  49. if @disabled == nil
  50. @disabled = []
  51. end
  52. if @commands.size != @disabled.size
  53. for i in [email protected]
  54. @disabled[i] = false
  55. end
  56. end
  57. #
  58. # 追加
  59. #
  60. #@commands.push(command)
  61. @disabled.push(false)
  62. @item_max = @commands.size
  63. self.y -= 32
  64. self.height += 32
  65. self.contents.dispose
  66. self.contents = nil
  67. self.contents = Bitmap.new(self.width - 32, @item_max * 32)
  68. refresh
  69. for i in [email protected]
  70. if @disabled[i]
  71. disable_item(i)
  72. end
  73. end
  74. end
  75. #--------------------------------------------------------------------------
  76. # ○ 項目の無効化
  77. # index : 項目番号
  78. #--------------------------------------------------------------------------
  79. def disable_item(index)
  80. if @disabled == nil
  81. @disabled = []
  82. end
  83. @disabled[index] = true
  84. draw_item(index, disabled_color)
  85. end
  86. end
  87. class Window_Command < Window_Selectable
  88. #--------------------------------------------------------------------------
  89. # ○ インクルード
  90. #--------------------------------------------------------------------------
  91. include XRXS_Window_Command_Add_Command
  92. #--------------------------------------------------------------------------
  93. # ● 項目の無効化
  94. # index : 項目番号
  95. #--------------------------------------------------------------------------
  96. def disable_item(index)
  97. super
  98. end
  99. end
  100. #==============================================================================
  101. # □ Scene_Battle_CP
  102. #==============================================================================
  103. class Scene_Battle_CP
  104. #--------------------------------------------------------------------------
  105. # ○ 公開インスタンス変数
  106. #--------------------------------------------------------------------------
  107. attr_accessor :stop # CP加算ストップ
  108. #----------------------------------------------------------------------------
  109. # ○ オブジェクトの初期化
  110. #----------------------------------------------------------------------------
  111. def initialize
  112. @battlers = []
  113. @cancel = false
  114. @stop = false
  115. @agi_total = 0
  116. # 配列 count_battlers を初期化
  117. count_battlers = []
  118. # エネミーを配列 count_battlers に追加
  119. for enemy in $game_troop.enemies
  120. count_battlers.push(enemy)
  121. end
  122. # アクターを配列 count_battlers に追加
  123. for actor in $game_party.actors
  124. count_battlers.push(actor)
  125. end
  126. for battler in count_battlers
  127. @agi_total += battler.agi
  128. end
  129. for battler in count_battlers
  130. battler.cp = [[65535 * START_CP_PERCENT * (rand(15) + 85) * 4 * battler.agi / @agi_total / 10000, 0].max, 65535].min
  131. end
  132. end
  133. #----------------------------------------------------------------------------
  134. # ○ CPカウントアップ
  135. #----------------------------------------------------------------------------
  136. def update
  137. # ストップされているならリターン
  138. return if @stop
  139. #
  140. for battler in $game_party.actors + $game_troop.enemies
  141. # 行動出来なければ無視
  142. if battler.dead? == true
  143. battler.cp = 0
  144. next
  145. end
  146. battler.cp = [[battler.cp + BATTLE_SPEED * 4096 * battler.agi / @agi_total, 0].max, 65535].min
  147. end
  148. end
  149. #----------------------------------------------------------------------------
  150. # ○ CPカウントの開始
  151. #----------------------------------------------------------------------------
  152. def stop
  153. @cancel = true
  154. if @cp_thread != nil then
  155. @cp_thread.join
  156. @cp_thread = nil
  157. end
  158. end
  159. end

  160. #==============================================================================
  161. # ■ Game_Battler
  162. #==============================================================================
  163. class Game_Battler
  164. attr_accessor :now_guarding # 現在防御中フラグ
  165. attr_accessor :cp # 現在CP
  166. attr_accessor :slip_state_update_ban # スリップ?ステート自動処理の禁止
  167. #--------------------------------------------------------------------------
  168. # ○ CP の変更
  169. #--------------------------------------------------------------------------
  170. def cp=(p)
  171. @cp = [[p, 0].max, 65535].min
  172. end
  173. #--------------------------------------------------------------------------
  174. # ● 防御中判定 [ 再定義 ]
  175. #--------------------------------------------------------------------------
  176. def guarding?
  177. return @now_guarding
  178. end
  179. #--------------------------------------------------------------------------
  180. # ● コマンド入力可能判定
  181. #--------------------------------------------------------------------------
  182. alias xrxs_bp1_inputable? inputable?
  183. def inputable?
  184. bool = xrxs_bp1_inputable?
  185. return (bool and (@cp >= 65535))
  186. end
  187. #--------------------------------------------------------------------------
  188. # ● ステート自然解除 (ターンごとに呼び出し)
  189. #--------------------------------------------------------------------------
  190. alias xrxs_bp1_remove_states_auto remove_states_auto
  191. def remove_states_auto
  192.   return if @slip_state_update_ban
  193.   xrxs_bp1_remove_states_auto
  194. end
  195. end
  196. #==============================================================================
  197. # ■ Game_Actor
  198. #==============================================================================
  199. class Game_Actor < Game_Battler
  200. #--------------------------------------------------------------------------
  201. # ● セットアップ
  202. #--------------------------------------------------------------------------
  203. alias xrxs_bp1_setup setup
  204.   def setup(actor_id)
  205.     xrxs_bp1_setup(actor_id)
  206.     @cp = 0
  207.     @now_guarding = false
  208.     @slip_state_update_ban = false
  209.   end
  210. end
  211. #==============================================================================
  212. # ■ Game_Enemy
  213. #==============================================================================
  214. class Game_Enemy < Game_Battler
  215. #--------------------------------------------------------------------------
  216. # ● オブジェクト初期化
  217. #--------------------------------------------------------------------------
  218. alias xrxs_bp1_initialize initialize
  219.   def initialize(troop_id, member_index)
  220.     xrxs_bp1_initialize(troop_id, member_index)
  221.     @cp = 0
  222.     @now_guarding = false
  223.     @slip_state_update_ban = false
  224.   end
  225. end
  226. #==============================================================================
  227. # ■ Window_All
  228. #==============================================================================
  229. class Window_All < Window_Base
  230.   def initialize
  231.     #super(0,0,640,480)
  232.     #..........................................................................
  233.     @enemy_cp_sprite = []
  234.     @enemy_cp_sprite_back = []
  235.     @enemy_cp_sprite_count = []
  236.     for actor in $game_troop.enemies
  237.       next if !actor.exist?
  238.       @enemy_cp_sprite_count.push(actor.index)
  239.       @enemy_cp_sprite[actor.index] = Sprite.new
  240.       @enemy_cp_sprite[actor.index].bitmap = Bitmap.new("Graphics/system/battle/hmcp/sprite/" + actor.name)
  241.       @enemy_cp_sprite[actor.index].x = 450
  242.       @enemy_cp_sprite[actor.index].y = 25 + 11
  243.       @enemy_cp_sprite[actor.index].z = 102
  244.       @enemy_cp_sprite_back[actor.index] = Sprite.new
  245.       @enemy_cp_sprite_back[actor.index].bitmap = Bitmap.new("Graphics/system/battle/hmcp/cp_sprite")
  246.       @enemy_cp_sprite_back[actor.index].x = 450
  247.       @enemy_cp_sprite_back[actor.index].y = 25
  248.       @enemy_cp_sprite_back[actor.index].z = 102
  249.     end
  250.     refresh
  251.   end
  252.   def dispose
  253.     for actor_index in @enemy_cp_sprite_count
  254.       @enemy_cp_sprite[actor_index].bitmap.dispose
  255.       @enemy_cp_sprite[actor_index].dispose
  256.       @enemy_cp_sprite_back[actor_index].bitmap.dispose
  257.       @enemy_cp_sprite_back[actor_index].dispose
  258.     end
  259.   end
  260.   def refresh
  261.     for actor in $game_troop.enemies
  262.       next if !actor.exist?
  263.       if actor.cp == nil
  264.         actor.cp = 0
  265.       end
  266.       @enemy_cp_sprite[actor.index].x = 450 + actor.cp * 140 /65535
  267.       @enemy_cp_sprite_back[actor.index].x = 450 + actor.cp * 140 /65535
  268.     end
  269.   end
  270. end

  271. #==============================================================================
  272. # ■ Window_BattleStatus
  273. #==============================================================================
  274. class Window_BattleStatus < Window_Base
  275.   #--------------------------------------------------------------------------
  276.   # ○ 公開インスタンス変数
  277.   #--------------------------------------------------------------------------
  278.   attr_accessor :update_cp_only # CPメーターのみの更新
  279.   #--------------------------------------------------------------------------
  280.   # ● オブジェクト初期化
  281.   #--------------------------------------------------------------------------
  282.   alias xrxs_bp1_initialize initialize
  283.   def initialize
  284.     @update_cp_only = false
  285.     @wall = Window_All.new
  286.     xrxs_bp1_initialize
  287.    
  288.   end
  289.   def dispose
  290.     super
  291.     @wall.dispose
  292.     @hp_bitmap.dispose
  293.     @mp_bitmap.dispose
  294.     @cp_bitmap.dispose
  295.     @cp_back_bar.dispose
  296.     for actor in $game_party.actors
  297.       @actor_cp_sprite[actor.index].bitmap.dispose
  298.       @actor_cp_sprite[actor.index].dispose
  299.       @actor_cp_sprite_back[actor.index].bitmap.dispose
  300.       @actor_cp_sprite_back[actor.index].dispose
  301.     end
  302.     for actor_index in 1..$game_party.actors.size
  303.       @sta_back[actor_index].bitmap.dispose
  304.       @sta_back[actor_index].dispose
  305.       @sta_output[actor_index].bitmap.dispose
  306.       @sta_output[actor_index].dispose
  307.       @cp_output[actor_index].bitmap.dispose
  308.       @cp_output[actor_index].dispose
  309.     end
  310.   end
  311.   #--------------------------------------------------------------------------
  312.   # ● リフレッシュ
  313.   #--------------------------------------------------------------------------
  314.   alias xrxs_bp1_refresh refresh
  315.   def refresh
  316.     unless @update_cp_only
  317.       xrxs_bp1_refresh
  318.     end
  319.     refresh_cp
  320.     @wall.refresh
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ○ リフレッシュ(CPのみ)
  324.   #--------------------------------------------------------------------------
  325.   def refresh_cp
  326.     #........................................................................
  327.     for actor in $game_party.actors
  328.       next if !actor.exist?
  329.       if actor.cp == nil
  330.         actor.cp = 0
  331.       end
  332.       @actor_cp_sprite[actor.index].x = 450 + actor.cp * 140 /65535
  333.       @actor_cp_sprite_back[actor.index].x = 450 + actor.cp * 140 /65535
  334.     end
  335.     for i in 0...$game_party.actors.size
  336.       actor = $game_party.actors[i]
  337.       if actor.cp == nil
  338.         actor.cp = 0
  339.       end
  340.       @cp_output[i + 1].bitmap.clear
  341.       @cp_output[i + 1].bitmap.font.size = 11
  342.       @cp_output[i + 1].bitmap.font.name = "宋体"
  343.       @cp_output[i + 1].bitmap.font.color.set(50, 50, 50)
  344.       cp_height = actor.cp * @cp_bitmap.height / 65535
  345.       cp_rect = Rect.new(0, @cp_bitmap.height - cp_height, @cp_bitmap.width, cp_height)
  346.       @cp_output[i + 1].bitmap.blt(9, 6 + @cp_bitmap.height - cp_height, @cp_bitmap, cp_rect)
  347.     end
  348.     #........................................................................
  349.   end
  350. end
  351. #==============================================================================
  352. # ■ Scene_Battle
  353. #==============================================================================
  354. class Scene_Battle
  355. #--------------------------------------------------------------------------
  356. # ● フレーム更新
  357. #--------------------------------------------------------------------------
  358. alias xrxs_bp1_update update
  359. def update
  360. xrxs_bp1_update
  361. # CP更新
  362. @cp_thread.update
  363. end
  364. #--------------------------------------------------------------------------
  365. # ● バトル終了
  366. # result : 結果 (0:勝利 1:敗北 2:逃走)
  367. #--------------------------------------------------------------------------
  368. alias xrxs_bp1_battle_end battle_end
  369. def battle_end(result)
  370. # CPカウントを停止する
  371. @cp_thread.stop
  372. # 呼び戻す
  373. xrxs_bp1_battle_end(result)
  374. end
  375. #--------------------------------------------------------------------------
  376. # ● プレバトルフェーズ開始
  377. #--------------------------------------------------------------------------
  378. alias xrxs_bp1_start_phase1 start_phase1
  379. def start_phase1
  380. @agi_total = 0
  381. # CP加算を開始する
  382. @cp_thread = Scene_Battle_CP.new
  383. # インデックスを計算
  384. @cp_escape_actor_command_index = @actor_command_window.height/32 - 1
  385. # アクターコマンドウィンドウに追加
  386. #@actor_command_window.add_command("逃跑")
  387. if !$game_temp.battle_can_escape
  388. #@actor_command_window.disable_item(@cp_escape_actor_command_index)
  389. end
  390. # 呼び戻す
  391. xrxs_bp1_start_phase1
  392. end
  393. #--------------------------------------------------------------------------
  394. # ● パーティコマンドフェーズ開始
  395. #--------------------------------------------------------------------------
  396. alias xrxs_bp1_start_phase2 start_phase2
  397. def start_phase2
  398. xrxs_bp1_start_phase2
  399. @party_command_window.active = false
  400. @party_command_window.visible = false
  401. # CP加算を再開する
  402. @cp_thread.stop = false
  403. # 次へ
  404. start_phase3
  405. end
  406. #--------------------------------------------------------------------------
  407. # ● アクターコマンドウィンドウのセットアップ
  408. #--------------------------------------------------------------------------
  409. alias xrxs_bp1_phase3_setup_command_window phase3_setup_command_window
  410. def phase3_setup_command_window
  411. # CPスレッドを一時停止する
  412. @cp_thread.stop = true
  413. # ウィンドウのCP更新
  414. @status_window.refresh_cp
  415. # @active_battlerの防御を解除
  416. @active_battler.now_guarding = false
  417. # 効果音の再生
  418. Audio.se_play(DATA_SYSTEM_COMMAND_UP_SE) if DATA_SYSTEM_COMMAND_UP_SE != ""
  419. # 呼び戻す
  420. xrxs_bp1_phase3_setup_command_window
  421. end
  422. #--------------------------------------------------------------------------
  423. # ● フレーム更新 (アクターコマンドフェーズ : 基本コマンド)
  424. #--------------------------------------------------------------------------
  425. alias xrxs_bsp1_update_phase3_basic_command update_phase3_basic_command
  426. def update_phase3_basic_command
  427. # C ボタンが押された場合
  428. if Input.trigger?(Input::C)
  429. # アクターコマンドウィンドウのカーソル位置で分岐
  430. case @actor_command_window.index
  431. when @cp_escape_actor_command_index # 逃げる
  432. if $game_temp.battle_can_escape
  433. # 決定 SE を演奏
  434. $game_system.se_play($data_system.decision_se)
  435. # アクションを設定
  436. @active_battler.current_action.kind = 0
  437. @active_battler.current_action.basic = 4
  438. # 次のアクターのコマンド入力へ
  439. end_atk(@active_battler.index)
  440. phase3_next_actor
  441. else
  442. # ブザー SE を演奏
  443. $game_system.se_play($data_system.buzzer_se)
  444. end
  445. return
  446. end
  447. end
  448. xrxs_bsp1_update_phase3_basic_command
  449. end
  450. #--------------------------------------------------------------------------
  451. # ● メインフェーズ開始
  452. #--------------------------------------------------------------------------
  453. alias xrxs_bp1_start_phase4 start_phase4
  454. def start_phase4
  455. # 呼び戻す
  456. xrxs_bp1_start_phase4
  457. # CPスレッドを一時停止する
  458. unless @action_battlers.empty?
  459. @cp_thread.stop = true
  460. end
  461. end
  462. #--------------------------------------------------------------------------
  463. # ● 行動順序作成
  464. #--------------------------------------------------------------------------
  465. alias xrxs_bp1_make_action_orders make_action_orders
  466. def make_action_orders
  467.   xrxs_bp1_make_action_orders
  468.   # 全員のCPを確認
  469.   exclude_battler = []
  470.   for battler in @action_battlers
  471.   # CPが不足している場合は @action_battlers から除外する
  472.     if battler.cp < 65535
  473.     exclude_battler.push(battler)
  474.     end
  475.   end
  476.   @action_battlers -= exclude_battler
  477. end
  478. #--------------------------------------------------------------------------
  479. # ● フレーム更新 (メインフェーズ ステップ 1 : アクション準備)
  480. #--------------------------------------------------------------------------
  481. alias xrxs_bp1_update_phase4_step1 update_phase4_step1
  482. def update_phase4_step1
  483. # 初期化
  484. @phase4_act_continuation = 0
  485. # 勝敗判定
  486. if judge
  487. @cp_thread.stop
  488. # 勝利または敗北の場合 : メソッド終了
  489. return
  490. end
  491. # 未行動バトラー配列の先頭から取得
  492. @active_battler = @action_battlers[0]
  493. # ステータス更新をCPだけに限定。
  494. @status_window.update_cp_only = true
  495. # ステート更新を禁止。
  496. # 戻す
  497. xrxs_bp1_update_phase4_step1
  498. # @status_windowがリフレッシュされなかった場合は手動でリフレッシュ(CPのみ)
  499. if @phase4_step != 2
  500. # リフレッシュ
  501. @status_window.refresh
  502. # 軽量化:たったコレだけΣ(?w?
  503. Graphics.frame_reset
  504. end
  505. # 禁止を解除
  506. @status_window.update_cp_only = false
  507. end
  508. #--------------------------------------------------------------------------
  509. # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
  510. #--------------------------------------------------------------------------
  511. alias xrxs_bp1_update_phase4_step2 update_phase4_step2
  512. def update_phase4_step2
  513. # 強制アクションでなければ
  514. unless @active_battler.current_action.forcing
  515. # 制約が [敵を通常攻撃する] か [味方を通常攻撃する] の場合
  516. if @active_battler.restriction == 2 or @active_battler.restriction == 3
  517. # アクションに攻撃を設定
  518. @active_battler.current_action.kind = 0
  519. @active_battler.current_action.basic = 0
  520. end
  521. # 制約が [行動できない] の場合
  522. if @active_battler.restriction == 4
  523. # アクション強制対象のバトラーをクリア
  524. $game_temp.forcing_battler = nil
  525. if @phase4_act_continuation == 0 and @active_battler.cp >= 65535
  526. # ステート自然解除
  527. @active_battler.remove_states_auto
  528. # CP消費
  529. @active_battler.cp -= 65535
  530. # ステータスウィンドウをリフレッシュ
  531. @status_window.refresh
  532. end
  533. # ステップ 1 に移行
  534. @phase4_step = 1
  535. return
  536. end
  537. end
  538. # アクションの種別で分岐
  539. case @active_battler.current_action.kind
  540. when 0
  541. # 攻撃?防御?逃げる?何もしない時の共通消費CP
  542. @active_battler.cp -= CP_COST_BASIC_ACTIONS if @phase4_act_continuation == 0
  543. when 1
  544. # スキル使用時の消費CP
  545. @active_battler.cp -= CP_COST_SKILL_ACTION if @phase4_act_continuation == 0
  546. when 2
  547. # アイテム使用時の消費CP
  548. @active_battler.cp -= CP_COST_ITEM_ACTION if @phase4_act_continuation == 0
  549. when 11
  550. @active_battler.cp -= CP_COST_THROW_ACTION if @phase4_act_continuation == 0
  551. end
  552. # ステート自然解除
  553. @active_battler.remove_states_auto
  554. # 呼び戻す
  555. xrxs_bp1_update_phase4_step2
  556. end
  557.   #--------------------------------------------------------------------------
  558.   # ● 基本アクション 結果作成
  559.   #--------------------------------------------------------------------------
  560.   alias xrxs_bp1_make_basic_action_result make_basic_action_result
  561.   def make_basic_action_result
  562.     # 攻撃の場合
  563.     if @active_battler.current_action.basic == 0 and @phase4_act_continuation == 0
  564.       @active_battler.cp -= CP_COST_BASIC_ATTACK # 攻撃時のCP消費
  565.     end
  566.     # 防御の場合
  567.     if @active_battler.current_action.basic == 1 and @phase4_act_continuation == 0
  568.       @active_battler.cp -= CP_COST_BASIC_GUARD # 防御時のCP消費
  569.       # @active_battlerの防御をON
  570.       @active_battler.now_guarding = true
  571.     end
  572.     # 敵の逃げるの場合
  573.     if @active_battler.is_a?(Game_Enemy) and
  574.       @active_battler.current_action.basic == 2 and @phase4_act_continuation == 0
  575.       @active_battler.cp -= CP_COST_BASIC_ESCAPE # 逃走時のCP消費
  576.     end
  577.     # 何もしないの場合
  578.     if @active_battler.current_action.basic == 3 and @phase4_act_continuation == 0
  579.       @active_battler.cp -= CP_COST_BASIC_NOTHING # 何もしない時のCP消費
  580.     end
  581.     # 逃げるの場合
  582.     if @active_battler.current_action.basic == 4 and @phase4_act_continuation == 0
  583.       @active_battler.cp -= CP_COST_BASIC_ESCAPE # 逃走時のCP消費
  584.       # 逃走可能ではない場合
  585.       if $game_temp.battle_can_escape == false
  586.         # ブザー SE を演奏
  587.         $game_system.se_play($data_system.buzzer_se)
  588.         return
  589.       end
  590.       # 逃走処理
  591.       update_phase2_escape
  592.       return
  593.     end
  594.     # 呼び戻す
  595.     xrxs_bp1_make_basic_action_result
  596.   end
  597. end
复制代码

[LINE]1,#dddddd[/LINE]此贴于 2008-10-15 11:36:33 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: pinko    时间: 2008-10-15 01:09
你用RTAB系统就可以实现。
www.66rpg.com搜索RTAB即可. [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~




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