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

Project1

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

[已经解决] 求教啊。。。这个脚本怎么用?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
110
在线时间
210 小时
注册时间
2012-6-25
帖子
51
跳转到指定楼层
1
发表于 2013-6-15 20:13:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Ayahiyano 于 2013-6-19 18:11 编辑

就是这个
  1. =begin
  2.  ■ RGDS_Base ver 0.0.0.9
  3. 動画再生スクリプト(ベース)for DLL(ver0.0.0.8)
  4. =end
  5. module RGDS
  6.   DLL_NAME = "HNRGDS"
  7.   
  8.   module State
  9.     NO_CONNECT = 0
  10.     OPENING = 5
  11.     READY = 10
  12.     RUN   = 21
  13.     PAUSE = 22
  14.   end
  15.   
  16.   STATE_NO_CONNECT = 0
  17.   STATE_OPENING = 5
  18.   STATE_READY = 10
  19.   STATE_RUN   = 21
  20.   STATE_PAUSE = 22
  21.   
  22.   @@open = Win32API.new(DLL_NAME, 'OpenMovieA', 'ip', 'l')
  23.   @@get_size = Win32API.new(DLL_NAME, 'GetVideoSize', 'p', 'i')
  24.   @@close = Win32API.new(DLL_NAME, 'CloseMovie', 'v', 'i')
  25.   @@update_video = Win32API.new(DLL_NAME, 'UpdateVideo', 'n', 'i')
  26.   @@run = Win32API.new(DLL_NAME, 'RunMovie', 'v', 'i')
  27.   @@pause = Win32API.new(DLL_NAME, 'PauseMovie', 'v', 'i')
  28.   @@get_volume = Win32API.new(DLL_NAME, 'GetVolume', 'v', 'l')
  29.   @@set_volume = Win32API.new(DLL_NAME, 'SetVolume', 'l', 'l')
  30.   @@state = Win32API.new(DLL_NAME, 'GetState', 'v', 'i')
  31.   
  32.   @@state = 0
  33.   @@system_pause = false
  34.   @@volume = 10000
  35.   @@visible = true
  36.   @@x = 0
  37.   @@y = 0
  38.   @@width_max  = 0
  39.   @@height_max = 0
  40.   @@filename = ""

  41.   @@bitmap = Bitmap.new(16, 16)
  42.   @@bitmap.clear
  43.   class << @@bitmap
  44.     alias :_dispose :dispose unless method_defined?(:_dispose)
  45.     def dispose
  46.     end
  47.   end
  48.   @@bitmap_changed = true
  49.   
  50.   def self.open(filename)
  51.     if @@filename != filename
  52.       self.close
  53.     end
  54.     result = @@open.call(filename.size, filename);
  55.     return result if result != 0
  56.     @@state = State::OPENING
  57.     @@filename = filename
  58.     return result
  59.   end
  60.   
  61.   def self.close
  62.     @@state = State::NO_CONNECT
  63.     @@filename = ""
  64.     @@close.call()
  65.     @@bitmap.clear
  66.   end
  67.   
  68.   def self.bitmap
  69.     @@bitmap
  70.   end

  71.   def self.bitmap_changed?
  72.     @@bitmap_changed
  73.   end

  74.   def self.bitmap_changed=(value)
  75.     @@bitmap_changed = value
  76.   end
  77.   
  78.   def self.filename
  79.     @@filename
  80.   end

  81.   def self.update
  82.     return 0 if !@@visible
  83.     if @@state >= State::READY
  84.       result = @@update_video.call(@@bitmap.object_id)
  85.       if (result == 0)
  86.         return 0
  87.       else
  88.         self.close()
  89.         return result
  90.       end
  91.     else
  92.       return -1
  93.     end
  94.   end

  95.   def self.wait_opening
  96.     return unless @@state == State::OPENING
  97.     buff_size = "\000" * 8
  98.     while(@@state == State::OPENING) do
  99.       result = @@get_size.call(buff_size)
  100.       if result == 0
  101.         break;
  102.       elsif result < 0
  103.         error_code = result
  104.         error_code = result & 0xFFFF
  105.         if DSError::JP_ERROR.key?(error_code)
  106.           print "エラー(#{error_code}):#{DSError::JP_ERROR[error_code]}"
  107.         else
  108.           print "エラー(#{error_code}):#{result}"
  109.         end
  110.         return result
  111.       end
  112.       5.times {Graphics.update}
  113.     end
  114.       
  115.     width, height = buff_size.unpack("ii")
  116.     if ( (@@bitmap.width != width) or (@@bitmap.height != height) )
  117.       @@bitmap._dispose
  118.       @@bitmap = Bitmap.new(width, height)
  119.       class << @@bitmap
  120.         alias :_dispose :dispose unless method_defined?(:_dispose)
  121.         def dispose
  122.         end
  123.       end
  124.       @@bitmap_changed = true
  125.     end
  126.     @@bitmap.clear
  127.     @@state = State::READY
  128.     return 0
  129.   end
  130.   
  131.   def self.run
  132.     self.wait_opening()
  133.     if @@state >= State::READY
  134.       self.set_volume(@@volume)
  135.       @@run.call()
  136.       @@state = State::RUN
  137.     end
  138.   end
  139.   
  140.   def self.pause
  141.     if @@state == State::RUN
  142.       @@pause.call()
  143.       @@state = State::PAUSE
  144.     end
  145.   end
  146.   
  147.   def self.get_volume
  148.     if @@state >= State::READY
  149.       @@volume = @@get_volume.call()
  150.     end
  151.     return @@volume
  152.   end
  153.   
  154.   def self.set_volume(volume)
  155.     volume = 0 if volume < 0
  156.     volume = 10000 if volume > 10000
  157.     @@volume = volume
  158.     if @@state >= State::READY
  159.       @@set_volume.call(volume)
  160.     end
  161.   end
  162.   
  163.   def self.active?
  164.     (@@state >= State::READY)
  165.   end

  166.   def self.system_pause
  167.     if @@state == State::RUN
  168.       self.pause()
  169.       @@system_pause = true
  170.       @@state == State::PAUSE
  171.     end
  172.   end
  173.   
  174.   def self.system_resume
  175.     if @@system_pause
  176.       self.run()
  177.       @@system_pause = false
  178.     end
  179.   end
  180.   
  181.   def self.visible
  182.     (@@visible && self.active? )
  183.   end
  184.   
  185.   # リセット対策
  186.   self.close()
  187. end

  188. module DSError
  189.   # HNRGDS.dll で独自に定義しているエラーコード
  190.   LOCAL_ERROR = {
  191.     -100001 => "ERROR_NO_WINDOW",
  192.     -100003 => "ERROR_WINDOW_OPENED",
  193.     -100004 => "ERROR_NO_CONNECT",
  194.     -100101 => "ERROR_CANT_OPEN_FILE",
  195.     -100201 => "ERROR_MOVIE_LODING",
  196.     -100205 => "ERROR_OPEN_TIMEOUT",
  197.     -100301 => "ERROR_NOT_PLAYING",
  198.     -100303 => "ERROR_DIFFERENT_SIZE",
  199.     -101404 => "ERROR_FILTER_NOT_FOUND",
  200.     -101406 => "ERROR_FILTER_UNSUPPORTED",
  201.   }
  202.   # DirectShowから返されるエラーの下位ビット
  203.   JP_ERROR = {
  204.     554 => "このピンは、提供されたメディア タイプを使えない",
  205.     555 => "このサンプルはレンダリングできない",
  206.     558 => "タイムアウト期間が過ぎた",
  207.     559 => "ファイル フォーマットが無効",
  208.     599 => "ビデオ ストリームを再生できない(レンダラ)",
  209.     600 => "オーディオ ストリームを再生できない(レンダラ)",
  210.     603 => "DirectShow はこのプロセッサ上で MPEG ムービーを再生できない",
  211.     604 => "オーディオ ストリームを再生できない(フォーマット)",
  212.     605 => "ビデオ ストリームを再生できない(フォーマット)",
  213.     606 => "規格に準拠していないので DirectShow で再生できない",
  214.     607 => "フィルタグラフに存在しないオブジェクトに要求された関数を実行できない",
  215.     612 => "バッファが十分に満たされていない",
  216.     613 => "ファイルを再生できない(フォーマット)",
  217.     614 => "同じ転送をサポートしていないのでピンどうしを接続できない",
  218.   }
  219. end
复制代码
  1. =begin
  2.  ■ RGDS_SP ver 0.0.1.2
  3. 動画再生スクリプト(表示系)for VX Ace
  4. 動画再生スクリプト(ベース)より下に配置してください。

  5. =end
  6. module RGDS_SP
  7.   @@visible = false
  8.   
  9.   # ■ 動画設定クラス $game_system.movie_infoで使用
  10.   class MovieInfo
  11.     attr_reader :x
  12.     attr_reader :y
  13.     attr_reader :z
  14.     attr_reader :width_max
  15.     attr_reader :height_max
  16.     attr_reader :origin_center
  17.     attr_accessor :mode
  18.     attr_accessor :refresh_flag
  19.     def initialize
  20.       @x = Graphics.width / 2
  21.       @y = Graphics.height / 2
  22.       @z = 500
  23.       @width_max  = 0
  24.       @height_max = 0
  25.       @origin_center = true
  26.       @mode = 0
  27.       @refresh_flag = false
  28.     end
  29.    
  30.     # セッター
  31.     def x=(n)
  32.       @x = n
  33.       @refresh_flag = true
  34.     end
  35.     def y=(n)
  36.       @y = n
  37.       @refresh_flag = true
  38.     end
  39.     def z=(n)
  40.       @z = n
  41.       @refresh_flag = true
  42.     end
  43.     def width_max=(n)
  44.       @width_max = n
  45.       @refresh_flag = true
  46.     end
  47.     def width_max=(n)
  48.       @width_max = n
  49.       @refresh_flag = true
  50.     end
  51.     def origin_center=(flag)
  52.       @origin_center = flag
  53.       @refresh_flag = true
  54.     end

  55.     # ■ 表示位置、サイズを指定します。
  56.     #- x, y: 表示座標
  57.     #- width_max, height_max: 表示枠。この内部に収まるように拡大縮小します。
  58.     #                       : どちらかが0以下の場合拡大縮小は行われません。
  59.     #- orogin: 表示位置基準点 false(デフォ): 動画の左上, true: 動画の中心を上記
  60.     #-         の[x,y]にあわせます
  61.     def set_position(x=0,y=0,width_max=0,height_max=0,origin=false)
  62.       @x = x
  63.       @y = y
  64.       @width_max  = width_max
  65.       @height_max = height_max
  66.       @origin_center = origin
  67.       @refresh_flag = true
  68.     end
  69.    
  70.     # ■ 以降の表示位置、サイズをデフォルトに戻します。
  71.     # 拡大縮小なし、左上にあわせて表示
  72.     def reset_position
  73.       @x = Graphics.width / 2
  74.       @y = Graphics.height / 2
  75.       @width_max  = 0
  76.       @height_max = 0
  77.       @origin_center = true
  78.       @refresh_flag = true
  79.     end
  80.    
  81.   end
  82.   
  83.   
  84.   class MovieSprite < ::Sprite
  85.     # 初期化
  86.     def initialize(viewport=nil)
  87.       super
  88.       self.visible = false
  89.       self.bitmap = RGDS.bitmap
  90.       fix_position()
  91.     end

  92.     # 拡大縮小処理
  93.     def change_zoom
  94.       zoom = 1.0
  95.       bw = self.bitmap.width
  96.       bh = self.bitmap.height
  97.       return if bw <= 0 or bh <= 0
  98.       if $game_system.movie_info.width_max > 0 and $game_system.movie_info.height_max > 0
  99.         zoom_w = $game_system.movie_info.width_max.to_f / bw.to_f
  100.         zoom_h = $game_system.movie_info.height_max.to_f / bh.to_f
  101.         zoom = [zoom_w, zoom_h].min
  102.       end
  103.       self.zoom_x = zoom
  104.       self.zoom_y = zoom
  105.     end

  106.     # 表示位置変更
  107.     def fix_position
  108.       self.x = $game_system.movie_info.x
  109.       self.y = $game_system.movie_info.y
  110.       self.z = $game_system.movie_info.z
  111.       if $game_system.movie_info.origin_center
  112.         self.ox = self.bitmap.width / 2
  113.         self.oy = self.bitmap.height / 2
  114.       end
  115.       change_zoom()
  116.     end
  117.    
  118.     def update
  119.       if (self.visible = RGDS.visible)
  120.         if RGDS.bitmap_changed? or self.bitmap.disposed?
  121.           self.bitmap = RGDS.bitmap
  122.           fix_position()
  123.           RGDS.bitmap_changed = false
  124.           $game_system.movie_info.refresh_flag = false
  125.         elsif $game_system.movie_info.refresh_flag
  126.           fix_position()
  127.           $game_system.movie_info.refresh_flag = false
  128.         end
  129.       end
  130.       super
  131.     end
  132.   end

  133.   module_function

  134.   # ■ 動画をオープンします。初回は1~2秒ほどかかる場合もあります。
  135.   def open(filename)
  136.     RGDS.open(filename)
  137.   end
  138.   
  139.   # ■ 動画を停止しクローズします。
  140.   def close
  141.     RGDS.close()
  142.   end
  143.   
  144.   # ■ openされた動画を再生します。一時停止中なら再開します。
  145.   # 再生が終わると自動的にクローズします。
  146.   def run
  147.     RGDS.run()
  148.   end
  149.   
  150.   # ■ 動画を一時停止します。再開はrunで行います。
  151.   def pause
  152.     RGDS.pause()
  153.   end

  154.   # ■ 動画をオープンして自動再生します。
  155.   #- 決定キーでスキップします。
  156.   def start_movie(filename, option={})
  157.    
  158.     # スキップ検出オプション
  159.     if option.key?(:skip_sw)
  160.       skip_sw = option[:skip_sw].to_i
  161.     else
  162.       skip_sw = 0
  163.     end
  164.    
  165.     # スキップ禁止モードオプション
  166.     if option.key?(:nsm)
  167.       nsm_mode = option[:nsm]
  168.     else
  169.       nsm_mode = false
  170.     end
  171.    
  172.     if skip_sw > 0
  173.       $game_switches[skip_sw] = true
  174.     end
  175.     scene_temp = SceneManager.scene
  176.     if scene_temp.is_a?(Scene_Map) or scene_temp.is_a?(Scene_Battle)
  177.       msgv = SceneManager.scene.instance_variable_get(:@message_window)
  178.       msgv.update
  179.       tempv = msgv.visible
  180.       msgv.visible = false
  181.       # オープン
  182.       RGDS.open(filename)
  183.       RGDS.run()
  184.       # 終了またはボタンが押されるまでループ
  185.       loop do
  186.         break if scene_temp != SceneManager.scene

  187.         # 画面の更新
  188.         if SceneManager.scene.is_a?(Scene_Map)
  189.           SceneManager.scene.update_for_fade
  190.         else
  191.           SceneManager.scene.update_basic
  192.         end
  193.         
  194.         if !RGDS.active? # 再生終了
  195.           if skip_sw > 0
  196.             $game_switches[skip_sw] = false
  197.           end
  198.           break
  199.         end
  200.         unless nsm_mode
  201.           if Input.trigger?(Input::C) or Input.trigger?(Input::B)
  202.             break
  203.           end
  204.         end
  205.       end
  206.       RGDS.close()
  207.       msgv.visible = tempv
  208.     end
  209.   end
  210.   

  211.   # ■ 以降の表示位置、サイズを指定します。
  212.   #- x, y: 表示座標
  213.   #- width_max, height_max: 表示枠。この内部に収まるように拡大縮小します。
  214.   #                       : どちらかが0以下の場合拡大縮小は行われません。
  215.   #- origin: 表示位置基準点 false: 動画の左上, true: 動画の中心を上記
  216.   #-         の[x,y]にあわせます
  217.   def set_position(x=0,y=0,width_max=0,height_max=0,origin=false)
  218.     $game_system.movie_info.set_position(x,y,width_max,height_max,origin)
  219.   end
  220.   
  221.   # ■ 以降の表示位置、サイズをデフォルトに戻します。
  222.   # 拡大縮小なし、中央にあわせて表示
  223.   def reset_position
  224.     $game_system.movie_info.reset_position()
  225.   end
  226.   
  227.   # 再生音量取得
  228.   def get_volume
  229.     return RGDS.get_volume()
  230.   end

  231.   # 再生音量設定
  232.   def set_volume(volume)
  233.     return RGDS.set_volume(volume)
  234.   end
  235.   
  236. end

  237. class Game_System
  238.   def init_movie_info
  239.     @movie_info = RGDS_SP::MovieInfo.new
  240.   end
  241.   def movie_info
  242.     init_movie_info() if @movie_info.nil?
  243.     return @movie_info
  244.   end
  245. end


  246. class Spriteset_Map
  247.   alias :_hn_movie__initialize :initialize unless private_method_defined?(:_hn_movie__initialize)
  248.   def initialize
  249.     # 元の処理
  250.     _hn_movie__initialize
  251.     # 追加処理
  252.     create_movie
  253.     update_movie
  254.   end

  255.   alias :_hn_movie__dispose :dispose unless method_defined?(:_hn_movie__dispose)
  256.   def dispose
  257.     dispose_movie
  258.     _hn_movie__dispose
  259.   end

  260.   alias :_hn_movie__update :update unless method_defined?(:_hn_movie__update)
  261.   def update
  262.     update_movie
  263.     _hn_movie__update
  264.   end

  265.   # ■ シーン移行時に動画を待機モードにします。
  266.   def create_movie
  267.     @sp_movie = RGDS_SP::MovieSprite.new()
  268.     @sp_movie.viewport = @viewport1
  269.     RGDS.system_resume
  270.   end

  271.   # ■ シーン移行時に動画を待機モードにします。
  272.   def dispose_movie
  273.     RGDS.system_pause
  274.     @sp_movie.viewport = nil
  275.     @sp_movie.dispose
  276.     @sp_movie = nil
  277.   end

  278.   def update_movie
  279.     if RGDS.active?
  280.       RGDS.update
  281.     end
  282.     @sp_movie.update unless @sp_movie.nil?
  283.   end
  284. end

  285. class Spriteset_Battle
  286.   alias :_hn_movie__initialize :initialize unless private_method_defined?(:_hn_movie__initialize)
  287.   def initialize
  288.     # 元の処理
  289.     _hn_movie__initialize
  290.     # 追加処理
  291.     create_movie
  292.     update_movie
  293.   end

  294.   alias :_hn_movie__dispose :dispose unless method_defined?(:_hn_movie__dispose)
  295.   def dispose
  296.     dispose_movie
  297.     _hn_movie__dispose
  298.   end

  299.   alias :_hn_movie__update :update unless method_defined?(:_hn_movie__update)
  300.   def update
  301.     update_movie
  302.     _hn_movie__update
  303.   end

  304.   # ■ シーン移行時に動画を待機モードにします。
  305.   def create_movie
  306.     @sp_movie = RGDS_SP::MovieSprite.new()
  307.     @sp_movie.viewport = @viewport1
  308.     RGDS.system_resume
  309.   end

  310.   # ■ シーン移行時に動画を待機モードにします。
  311.   def dispose_movie
  312.     RGDS.system_pause
  313.     @sp_movie.viewport = nil
  314.     @sp_movie.dispose
  315.     @sp_movie = nil
  316.   end

  317.   def update_movie
  318.     if RGDS.active?
  319.       RGDS.update
  320.     end
  321.     @sp_movie.update unless @sp_movie.nil?
  322.   end
  323. end
复制代码
求大神教教我吧

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2013-6-15 21:23:59 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
210 小时
注册时间
2012-6-25
帖子
51
3
 楼主| 发表于 2013-6-16 02:35:57 | 只看该作者
喵呜喵5 发表于 2013-6-15 21:23
范例工程:

http://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=314361&pid=2198174&fromui ...

你好,那怎么样使用自己喜欢的视频啊,我改了后,他都是直接取消事件的
还有如果我想用MP4格式的话,要怎么样改呢?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

4
发表于 2013-6-16 09:11:16 | 只看该作者
Ayahiyano 发表于 2013-6-16 02:35
你好,那怎么样使用自己喜欢的视频啊,我改了后,他都是直接取消事件的
还有如果我想用MP4格式 ...



1.看到这句没有?修改它就好了

2.请使用格式转换软件把mp4转换成mpg
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
210 小时
注册时间
2012-6-25
帖子
51
5
 楼主| 发表于 2013-6-16 09:19:38 | 只看该作者
喵呜喵5 发表于 2013-6-16 09:11
1.看到这句没有?修改它就好了

2.请使用格式转换软件把mp4转换成mpg

是改成这样吗?比如视频文件名为A。。那就改成("movies/1.mpg")吗?
我这样改了,他还是显示不了

点评

并且得是MPG格式,注意附带的dll也要放到你游戏的目录下  发表于 2013-6-16 09:28
视频文件名为A。。那请改成("movies/A.mpg")…………  发表于 2013-6-16 09:28
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
210 小时
注册时间
2012-6-25
帖子
51
6
 楼主| 发表于 2013-6-16 09:43:39 | 只看该作者
本帖最后由 Ayahiyano 于 2013-6-16 09:52 编辑
Ayahiyano 发表于 2013-6-16 09:19
是改成这样吗?比如视频文件名为A。。那就改成("movies/1.mpg")吗?
我这样改了,他还是显示不了 ...


你好,按照你的方法改后就会出现
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
210 小时
注册时间
2012-6-25
帖子
51
7
 楼主| 发表于 2013-6-16 09:51:45 | 只看该作者
喵呜喵5 发表于 2013-6-16 09:11
1.看到这句没有?修改它就好了

2.请使用格式转换软件把mp4转换成mpg

你好,我按照你的方法改了,还是直接取消事件,但是范例的视频又播放的了,是转码的问题吗,
你用的是什么转码器
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

8
发表于 2013-6-16 10:13:53 | 只看该作者
Ayahiyano 发表于 2013-6-16 09:51
你好,我按照你的方法改了,还是直接取消事件,但是范例的视频又播放的了,是转码的问题吗,
你用的是什 ...

测试了一下发现确实有些视频播放不了,大概和格式有关吧
我用格式工厂随便转码了一个视频倒是可以用

(不要在意视频的内容……)

呼唤@tseyik 解答……

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 下次请记得打码

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
210 小时
注册时间
2012-6-25
帖子
51
9
 楼主| 发表于 2013-6-16 11:04:26 | 只看该作者
喵呜喵5 发表于 2013-6-16 10:13
测试了一下发现确实有些视频播放不了,大概和格式有关吧
我用格式工厂随便转码了一个视频倒是可以用

我给他跪了。。求视频转换配置截图啊
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22958
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
10
发表于 2013-6-16 12:53:54 | 只看该作者
本帖最后由 tseyik 于 2013-6-16 12:56 编辑

MP4可使用

(不要在意视频的内容……)

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 04:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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