设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 512|回复: 0

[转载发布] 萌新改造外站的多重动画脚本

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    昨天 23:21
  • 签到天数: 212 天

    连续签到: 1 天

    [LV.7]常住居民III

    9085

    主题

    867

    回帖

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    64471
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    74453

    灌水之王

    发表于 2024-4-18 18:59:01 | 显示全部楼层 |阅读模式
    转自http://mintoroom.saloon.jp/Main.html
    みんとの部屋
    作者:みんと
    大感谢
    需要和前置脚本一起使用
    这脚本功能是在播放一个动画的基础下再播放新的动画 多个动画可以同时存在
    多重动画脚本原版只能调用动画ID765以內的动画

    萌新进行了小改造改成能调用9999的动画ID
    原版调用动画ID是在SE闪烁强度为0
    RGB的合计值为动画ID

    萌新改成
    当强度为0 持续时间为2帧时
    动画ID=R+G连接成一起的值
    当强度为0 持续时间为3帧时
    动画ID=R+G+B连接成一起的值
    例1:R99 G99 =9999
    例2:R50 G0 B0 =5000
    以下放脚本
    RUBY 代码
    1. #◆◇◆◇◆  ☆ 多重追加アニメーション ver 1.02  ◇◆◇◆◇
    2. # ☆ マスタースクリプト ver 2.00 以降専用
    3. #  サポート掲示板 [url]http://www2.ezbbs.net/21/minto-aaa/[/url]
    4. #   by みんと
    5. =begin
    6. 更新履歴
    7. ver 1.02(2009/11/24)
    8. ・イベントの解放に時間がかかる仕様を変更
    9. ver 1.01(2008/09/07)
    10. ・F12リセットでエラー落ちするミスを修正
    11. セクション指定上下関係
    12. アクティブ・アニメシェイク
    13. ↓
    14. A・C・A・システム
    15. ↓
    16. このスクリプト
    17. 説明
    18. デフォルトでは、
    19. 戦闘アニメ表示中に、新たなアニメを表示した場合、
    20. 表示中のアニメが消えてしまいますが、
    21. 多重表示できるアニメ表示機能を追加します。
    22. 設定には
    23. アニメーションに「強さが 0」の「画面のフラッシュ」を設定してください。
    24. そのフレームで、アニメを追加します。
    25. アニメのIDはフラッシュの赤、青、緑の合計値になります。
    26. なので、事実上、ID_765番までのアニメを追加表示できます。
    27. フラッシュの条件も機能しますので、
    28. ヒットした場合のみの追加エフェクト、
    29. ミスした場合のみのエフェクトなど、
    30. バリエーションが広がります。
    31. なお、追加にACAシステムが反映されないのは仕様となっています。
    32. (動きがおかしくなってしまうので)
    33. またデフォルトのアニメの表示機能自体はそのままです。
    34. マップでも反映されます。
    35. =end
    36. #==============================================================================
    37. # ☆ MINTO
    38. #------------------------------------------------------------------------------
    39. #   様々なフラグを扱うメインモジュールです。
    40. #==============================================================================
    41. module MINTO
    42.   # 多重追加アニメーションを有効化( true で有効 / false で無効 )
    43.   RGSS["Array_Anima"] = true
    44. end
    45. ifMINTO::RGSS["Array_Anima"]
    46. #==============================================================================
    47. # ☆ Mint_Cache
    48. #------------------------------------------------------------------------------
    49. #   様々なキャッシュを扱うモジュールです。
    50. #==============================================================================
    51. module Mint_Cache
    52.   # キャッシュを初期化
    53.   @cache = {}
    54.   #-------------------------------------------------------------------------
    55.   # ● ビットマップのロード
    56.   #    folder_name : 読み込むフォルダ
    57.   #    filename    : 読み込むファイル
    58.   #    hue         : 色相の情報
    59.   #-------------------------------------------------------------------------
    60.   defself.load_bitmap(folder_name, filename, hue = 0)
    61.     # ハッシュ用のパスを設定
    62.     path = folder_name + filename
    63.     # 未作成のアニメかそのアニメが解放されている場合
    64.     ifnot@cache.include?(path)or@cache[path].disposed?
    65.       # ファイルネームが空文字以外の場合
    66.       if filename != ""
    67.         # ファイルからビットマップを作成
    68.         @cache[path] = Bitmap.new(path)
    69.       else
    70.         # ビットマップを作成
    71.         @cache[path] = Bitmap.new(32, 32)
    72.       end
    73.     end
    74.     # 色相の変換が無い場合
    75.     if hue == 0
    76.       # 元の画像ファイルを渡す
    77.       return@cache[path]
    78.     else
    79.       # ハッシュ用のキーを取得
    80.       key = [path, hue]
    81.       # キャッシュに存在しないかすでに解放されている場合
    82.       ifnot@cache.include?(key)or@cache[key].disposed?
    83.         # キャッシュに複製を渡す
    84.         @cache[key] = @cache[path].clone
    85.         # 色相を変更
    86.         @cache[key].hue_change(hue)
    87.       end
    88.       # 画像のファイルを渡す
    89.       return@cache[key]
    90.     end
    91.   end
    92.   #-------------------------------------------------------------------------
    93.   # ● アニメーションの読み込み
    94.   #    filename    : 読み込むファイル
    95.   #    hue         : 色相の情報
    96.   #-------------------------------------------------------------------------
    97.   defself.animation(filename, hue)
    98.     # 対象ファイルを読み込んで渡す
    99.     returnself.load_bitmap("Graphics/Animations/", filename, hue)
    100.   end
    101.   #-------------------------------------------------------------------------
    102.   # ● クリア
    103.   #-------------------------------------------------------------------------
    104.   defself.clear
    105.     # キャッシュの内容をクリア
    106.     @cache = {}
    107.   end
    108. end
    109. #==============================================================================
    110. # ■ RPG::Sprite
    111. #------------------------------------------------------------------------------
    112. #   ゲームで戦闘中に使用されるスプライト表示を管理するクラスです。
    113. #==============================================================================
    114. module RPG
    115.   class Sprite < ::Sprite
    116.     #-----------------------------------------------------------------------
    117.     # ● 配列アニメーション作成
    118.     #    animation : 渡されたアニメーション
    119.     #    hit       : ヒットフラグ
    120.     #-----------------------------------------------------------------------
    121.     def array_animation(animation, hit)
    122.       # 無効なアニメの場合
    123.       if animation == nilthen
    124.         # 処理を返す
    125.         return
    126.       end
    127.       # アニメを配列の先頭に追加
    128.       @_array_animation.unshift(animation)
    129.       # ヒットフラグの先頭に追加
    130.       @_array_animation_hit.unshift(hit)
    131.       # 更新カウントの先頭に追加
    132.       @_array_animation_duration.unshift(animation.frame_max)
    133.       # アニメの名前を取得
    134.       animation_name = animation.animation_name
    135.       # アニメの色調情報を取得
    136.       animation_hue = animation.animation_hue
    137.       # アニメの画像をキャッシュからロード
    138.       bitmap = Mint_Cache.animation(animation_name, animation_hue)
    139.       # アニメのスプライトを作成して先頭に追加
    140.       @_array_animation_sprite.unshift(sprite_set_array(bitmap))
    141.     end
    142.     #------------------------------------------------------------------------
    143.     # ● スプライトセット
    144.     #    bitmap : 読み込んだ画像
    145.     #------------------------------------------------------------------------
    146.     def sprite_set_array(bitmap)
    147.       # 配列を初期化
    148.       animation_sprites = []
    149.       # スプライトを新規作成
    150.       sprite = ::Sprite.new(self.viewport)
    151.       sprite.bitmap = bitmap
    152.       sprite.visible = false
    153.       animation_sprites.push(sprite)
    154.       sprite = ::Sprite.new(self.viewport)
    155.       sprite.bitmap = bitmap
    156.       sprite.visible = false
    157.       animation_sprites.push(sprite)
    158.       sprite = ::Sprite.new(self.viewport)
    159.       sprite.bitmap = bitmap
    160.       sprite.visible = false
    161.       animation_sprites.push(sprite)
    162.       sprite = ::Sprite.new(self.viewport)
    163.       sprite.bitmap = bitmap
    164.       sprite.visible = false
    165.       animation_sprites.push(sprite)
    166.       sprite = ::Sprite.new(self.viewport)
    167.       sprite.bitmap = bitmap
    168.       sprite.visible = false
    169.       animation_sprites.push(sprite)
    170.       sprite = ::Sprite.new(self.viewport)
    171.       sprite.bitmap = bitmap
    172.       sprite.visible = false
    173.       animation_sprites.push(sprite)
    174.       sprite = ::Sprite.new(self.viewport)
    175.       sprite.bitmap = bitmap
    176.       sprite.visible = false
    177.       animation_sprites.push(sprite)
    178.       sprite = ::Sprite.new(self.viewport)
    179.       sprite.bitmap = bitmap
    180.       sprite.visible = false
    181.       animation_sprites.push(sprite)
    182.       sprite = ::Sprite.new(self.viewport)
    183.       sprite.bitmap = bitmap
    184.       sprite.visible = false
    185.       animation_sprites.push(sprite)
    186.       sprite = ::Sprite.new(self.viewport)
    187.       sprite.bitmap = bitmap
    188.       sprite.visible = false
    189.       animation_sprites.push(sprite)
    190.       sprite = ::Sprite.new(self.viewport)
    191.       sprite.bitmap = bitmap
    192.       sprite.visible = false
    193.       animation_sprites.push(sprite)
    194.       sprite = ::Sprite.new(self.viewport)
    195.       sprite.bitmap = bitmap
    196.       sprite.visible = false
    197.       animation_sprites.push(sprite)
    198.       sprite = ::Sprite.new(self.viewport)
    199.       sprite.bitmap = bitmap
    200.       sprite.visible = false
    201.       animation_sprites.push(sprite)
    202.       sprite = ::Sprite.new(self.viewport)
    203.       sprite.bitmap = bitmap
    204.       sprite.visible = false
    205.       animation_sprites.push(sprite)
    206.       sprite = ::Sprite.new(self.viewport)
    207.       sprite.bitmap = bitmap
    208.       sprite.visible = false
    209.       animation_sprites.push(sprite)
    210.       sprite = ::Sprite.new(self.viewport)
    211.       sprite.bitmap = bitmap
    212.       sprite.visible = false
    213.       animation_sprites.push(sprite)
    214.       # スプライトを返す
    215.       return animation_sprites
    216.     end
    217.     #------------------------------------------------------------------------
    218.     # ● 配列アニメの更新
    219.     #------------------------------------------------------------------------
    220.     def update_array_anima
    221.       # 現在表示中のアニメの数だけ繰り返す
    222.       (0...@_array_animation_duration.size).eachdo |i|
    223.         # グラフィックカウントが偶数の場合
    224.         if(Graphics.frame_count % 2 == 0)then
    225.           # アニメを取得
    226.           anima = @_array_animation[i]
    227.           # 無効なアニメの場合
    228.           if anima == nilthen
    229.             # 次の処理へ以降
    230.             next
    231.           end
    232.           # アニメーションカウントを減らす
    233.           @_array_animation_duration[i] -= 1
    234.           # アニメのスプライトを取得
    235.           sprite = @_array_animation_sprite[i]
    236.           # アニメのヒットフラグを取得
    237.           hit = @_array_animation_hit[i]
    238.           # アニメカウントが1以上の場合
    239.           if@_array_animation_duration[i] >= 1then
    240.             # 現在のフレームを取得
    241.             frame_index = anima.frame_max - @_array_animation_duration[i]
    242.             # アニメのセルのデータを取得
    243.             cell_data = anima.frames[frame_index].cell_data
    244.             # アニメのポジションデータを取得
    245.             position = anima.position
    246.             # 生成先のオブジェクトに応じて分岐
    247.             caseself
    248.             # マップキャラクターの場合
    249.             when Sprite_Character then
    250.               # アニメを動かす
    251.               animation_set_sprites(sprite, cell_data, position)
    252.             # 戦闘キャラの場合
    253.             else
    254.               # ターゲット二体目以降ではない場合
    255.               ifself.battler != nilandnotself.battler.all_animethen
    256.                 # アニメを動かす
    257.                 animation_set_sprites(sprite, cell_data, position)
    258.               end
    259.             end
    260.             # アニメの効果を進める
    261.             anima.timings.eachdo |timing|
    262.               # タイミングのフレームと現在のフレームが等しい場合
    263.               if timing.frame == frame_index-1then
    264.                 # アニメの効果を適用
    265.                 animation_process_timing(timing, hit)
    266.               end
    267.             end
    268.           # アニメのカウントが0の場合
    269.           else
    270.             # アニメを解放
    271.             dispose_array_animation(i)
    272.           end
    273.         end
    274.       end
    275.     end
    276.     #-----------------------------------------------------------------------
    277.     # ● 配列アニメを解放
    278.     #    index : 求められたアニメのインデックス
    279.     #-----------------------------------------------------------------------
    280.     def dispose_array_animation(index)
    281.       # アニメが有効な場合
    282.       if@_array_animation[index] != nilthen
    283.         # セルスプライトを順番に処理
    284.         @_array_animation_sprite[index].eachdo |sprite|
    285.           # セルスプライトを解放
    286.           sprite.dispose
    287.         end
    288.         # アニメを空にする
    289.         @_array_animation[index] = nil
    290.         @_array_animation_sprite[index] = nil
    291.         @_array_animation_duration[index] = nil
    292.         @_array_animation_hit[index] = nil
    293.         # 無効な配列を除外
    294.         @_array_animation.compact!
    295.         @_array_animation_sprite.compact!
    296.         @_array_animation_duration.compact!
    297.         @_array_animation_hit.compact!
    298.       end
    299.       # インデックスが -1 の場合
    300.       if index == -1then
    301.         # 表示中のアニメ分だけ繰り返す
    302.         (0...@_array_animation_sprite.size).eachdo |i|
    303.           # 対象インデックスのアニメを解放
    304.           dispose_array_animation(i)
    305.         end
    306.       end
    307.     end
    308.     #------------------------------------------------------------------------
    309.     # ● 追加アニメの効果適用
    310.     #    timing : SEなどのタイミングデータ
    311.     #    hit    : アニメのヒットフラグ改造BY:SOULSAGA 20210314
    312.     #------------------------------------------------------------------------
    313.     def abb_anima_effect(timing, hit)
    314.       红色=timing.flash_color.red.to_s
    315.       绿色=timing.flash_color.green.to_s
    316.       蓝色=timing.flash_color.blue.to_s
    317.       动画2=红色+绿色
    318.       动画3=红色+绿色+蓝色
    319.       动画2=动画2.to_i
    320.       动画3=动画3.to_i
    321.       # 条件が ヒット で攻撃がヒットした場合か、
    322.       # 条件が ミス で攻撃がミスだった場合、
    323.       # もしくは条件が なし だった場合
    324.       if(timing.condition == 0)or
    325.         (timing.condition == 1and hit == true)or
    326.         (timing.condition == 2and hit == false)
    327.         # 強さが0の画面のフラッシュが設定されている場合
    328.         if timing.flash_color.alpha == 0and timing.flash_scope == 2then
    329.           # 追加アニメのIDを取得(フラッシュの赤、青、緑の合計値)
    330.           anima_id = timing.flash_color.red
    331.           anima_id += timing.flash_color.green
    332.           anima_id += timing.flash_color.blue
    333.           anima_id = timing.flash_duration == 2 ? 动画2 : timing.flash_duration == 3 ? 动画3 : anima_id
    334.           # アニメーションを読み込む
    335.           anima = Data_Animations.data[anima_id]
    336.           # 配列アニメを実行
    337.           array_animation(anima, hit)
    338.         end
    339.       end
    340.     end
    341.   end
    342. end
    343. #==============================================================================
    344. # ■ Game_Battler (分割定義 1)
    345. #------------------------------------------------------------------------------
    346. #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
    347. # スのスーパークラスとして使用されます。
    348. #==============================================================================
    349. class Game_Battler
    350.   #--------------------------------------------------------------------------
    351.   # ● 公開インスタンス変数
    352.   #--------------------------------------------------------------------------
    353.   attr_accessor :all_anime                # ターゲット二体目以降フラグ
    354. end
    355. #==============================================================================
    356. # ■ Sprite_Battler
    357. #------------------------------------------------------------------------------
    358. #  バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、
    359. # スプライトの状態を自動的に変化させます。
    360. #==============================================================================
    361. class Sprite_Battler < RPG::Sprite
    362.   #--------------------------------------------------------------------------
    363.   # ● オブジェクト初期化
    364.   #     viewport : ビューポート
    365.   #     battler  : バトラー (Game_Battler)
    366.   #    alias     : initialize_Array_Anima
    367.   #--------------------------------------------------------------------------
    368.   alias initialize_Array_Anima initialize
    369.   def initialize(viewport, battler = nil)
    370.     # 元の処理を実行
    371.     initialize_Array_Anima(viewport, battler)
    372.     @_array_animation = []
    373.     @_array_animation_sprite = []
    374.     @_array_animation_duration = []
    375.     @_array_animation_hit = []
    376.   end
    377.   #--------------------------------------------------------------------------
    378.   # ● 解放
    379.   #    alias : dispose_Array_Anima
    380.   #--------------------------------------------------------------------------
    381.   alias dispose_Array_Anima dispose
    382.   def dispose
    383.     # 元の処理を実行
    384.     dispose_Array_Anima
    385.     # 配列アニメを全て解放
    386.     dispose_array_animation(-1)
    387.     # キャッシュを解放
    388.     Mint_Cache.clear
    389.   end
    390.   #--------------------------------------------------------------------------
    391.   # ● フレーム更新
    392.   #    alias : update_Array_Anima
    393.   #--------------------------------------------------------------------------
    394.   alias update_Array_Anima update
    395.   def update
    396.     # 元の処理を実行
    397.     update_Array_Anima
    398.     # 配列アニメを更新
    399.     update_array_anima
    400.   end
    401.   #-------------------------------------------------------------------------
    402.   # ● エフェクト表示中判定
    403.   #-------------------------------------------------------------------------
    404.   def effect?
    405.     # スーパークラスを実行
    406.     bool = super
    407.     bool or@_array_animation_duration.size > 0
    408.   end
    409.   #--------------------------------------------------------------------------
    410.   # ● アニメーション・プロセスタイミング
    411.   #    timing : SEなどのデータ
    412.   #    hit    : ヒットフラグ
    413.   #--------------------------------------------------------------------------
    414.   def animation_process_timing(timing, hit)
    415.     # 追加アニメ判定
    416.     abb_anima_effect(timing, hit)
    417.     # スーパークラスメソッドを実行
    418.     super(timing, hit)
    419.     # アクティブ・アニメシェイクが有効ではない場合
    420.     ifnotMINTO::RGSS["Active_Shake"]then
    421.       # 処理を返す
    422.       return
    423.     end
    424.     # 条件が ヒット で攻撃がヒットした場合か、
    425.     # 条件が ミス で攻撃がミスだった場合、
    426.     # もしくは条件が なし だった場合
    427.     if(timing.condition == 0)or
    428.       (timing.condition == 1and hit == true)or
    429.       (timing.condition == 2and hit == false)
    430.       # 対象無しのフラッシュが設定されている場合
    431.       if timing.flash_scope == 0then
    432.         # フラッシュの赤と緑が0の場合
    433.         if timing.flash_color.red == 0and timing.flash_color.green == 0then
    434.           # シェイクの強さ(フラッシュの強さ)
    435.           s_alpha = [timing.flash_color.alpha.to_i, 9].min
    436.           # シェイクの早さ(フラッシュの青)
    437.           s_speed = [timing.flash_color.blue.to_i, 9].min
    438.           # シェイクの時間(フラッシュの時間)
    439.           s_thyme = timing.flash_duration.to_i * 2
    440.           # 画面をシェイク
    441.           $game_screen.start_shake(s_alpha, s_speed, s_thyme)
    442.         end
    443.       end
    444.     end
    445.   end
    446. end
    447. #==============================================================================
    448. # ■ Sprite_Character
    449. #------------------------------------------------------------------------------
    450. #  キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを
    451. # 監視し、スプライトの状態を自動的に変化させます。
    452. #==============================================================================
    453. class Sprite_Character < RPG::Sprite
    454. #--------------------------------------------------------------------------
    455.   # ● オブジェクト初期化
    456.   #     viewport  : ビューポート
    457.   #     character : キャラクター (Game_Character)
    458.   #     alias     : initialize_Array_Anima
    459.   #--------------------------------------------------------------------------
    460.   alias initialize_Array_Anima initialize
    461.   def initialize(viewport, character = nil)
    462.     @_array_animation = []
    463.     @_array_animation_sprite = []
    464.     @_array_animation_duration = []
    465.     @_array_animation_hit = []
    466.     # 元の処理を実行
    467.     initialize_Array_Anima(viewport, character)
    468.   end
    469.   #--------------------------------------------------------------------------
    470.   # ● 解放
    471.   #--------------------------------------------------------------------------
    472.   def dispose
    473.     super
    474.     # 配列アニメを全て解放
    475.     dispose_array_animation(-1)
    476.     # キャッシュを解放
    477.     Mint_Cache.clear
    478.   end
    479.   #--------------------------------------------------------------------------
    480.   # ● フレーム更新
    481.   #    alias : update_Array_Anima
    482.   #--------------------------------------------------------------------------
    483.   alias update_Array_Anima update
    484.   def update
    485.     # 元の処理を実行
    486.     update_Array_Anima
    487.     # 配列アニメを更新
    488.     update_array_anima
    489.   end
    490.   #--------------------------------------------------------------------------
    491.   # ● アニメーション・プロセスタイミング
    492.   #    timing : SEなどのデータ
    493.   #    hit    : ヒットフラグ
    494.   #--------------------------------------------------------------------------
    495.   def animation_process_timing(timing, hit)
    496.     # 追加アニメ判定
    497.     abb_anima_effect(timing, hit)
    498.     # スーパークラスメソッドを実行
    499.     super(timing, hit)
    500.     # アクティブ・アニメシェイクが有効ではない場合
    501.     ifnotMINTO::RGSS["Active_Shake"]then
    502.       # 処理を返す
    503.       return
    504.     end
    505.     # 条件が ヒット で攻撃がヒットした場合か、
    506.     # 条件が ミス で攻撃がミスだった場合、
    507.     # もしくは条件が なし だった場合
    508.     if(timing.condition == 0)or
    509.       (timing.condition == 1and hit == true)or
    510.       (timing.condition == 2and hit == false)
    511.       # 対象無しのフラッシュが設定されている場合
    512.       if timing.flash_scope == 0then
    513.         # フラッシュの赤と緑が0の場合
    514.         if timing.flash_color.red == 0and timing.flash_color.green == 0then
    515.           # シェイクの強さ(フラッシュの強さ)
    516.           s_alpha = [timing.flash_color.alpha.to_i, 9].min
    517.           # シェイクの早さ(フラッシュの青)
    518.           s_speed = [timing.flash_color.blue.to_i, 9].min
    519.           # シェイクの時間(フラッシュの時間)
    520.           s_thyme = timing.flash_duration.to_i * 2
    521.           # 画面をシェイク
    522.           $game_screen.start_shake(s_alpha, s_speed, s_thyme)
    523.         end
    524.       end
    525.     end
    526.   end
    527. end
    528. end
    复制代码

                 本帖来自P1论坛作者soulsaga,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=484983  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-9-29 07:42 , Processed in 0.113530 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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