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

Project1

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

[已经解决] 关于「带着立绘的截图存档」脚本

[复制链接]

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2015-2-14 17:42:14 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x

请问这个是什么问题呢?  @喵呜喵5
一运行游戏就弹出这个……
  1. $_PS0 = {} if $_PS0 == nil  
  2. $_PS0["Window_SaveFile_Plus"] = 20120216
  3. module PS0
  4.   module Window_SaveFile_Plus

  5.     # 最大存档数(范围正整数)
  6.     MAX_SAVE = 30

  7.     # 存档目录(默认值 "Saves/";根目录 "")
  8.     SAVE_DIR = "Saves/"   

  9.     # 无存档时显示的文字
  10.     NO_DATA  = "无存档"

  11.     # 保存时显示的信息
  12.     SAVE_NOW = "存档中..."

  13.     # 复制存档时的帮助文字
  14.     HELP_COPY = "要复制到哪个位置?"

  15.     # 移动存档时的帮助文字
  16.     HELP_MOVE = "要移动到哪个位置?"

  17.     # 是否显示存档中窗口(true:显示;false:不显示)
  18.     # - 分辨率较大时建议显示
  19.     SHOW_SAVE_NOW = true

  20.     # 截图缩放使用的插值算法
  21.     # - "NN" 最邻近(速度最快,质量最差,RM默认算法)
  22.     # - "NZ" 不缩放(速度快,质量好,以主角为中心切边,非全屏)
  23.     Zoom_Type = "NZ"

  24.     # 双线性插值能获得更好的截图缩放质量,但所需时间较最邻近插值更长。
  25.     # 缩略图尺寸(范围整数,单位像素)
  26.     # - VA默认分辨率(544×416)推荐使用340×260
  27.     # - VA最大分辨率(640×480)推荐使用425×325
  28.     # - 本脚本兼容分辨率解放,窗口大小将自动计算。
  29.     #   请自行计算截图分辨率,注意要确保宽高比一致,
  30.     #   若使用“不缩放”模式则可以不保持一致。
  31.     Thumbnail_Width  = 340  # 宽度
  32.     Thumbnail_Height = 260  # 高度

  33.     # 缩略图位置微调(范围整数,单位像素)
  34.     Thumbnail_ox = -90    # 横向
  35.     Thumbnail_oy = -90 # 纵向

  36.     # 各窗口切换时的渐变帧数
  37.     TRANS_DURATION = 5

  38.   end
  39. end
  40. class Font
  41.   def marshal_dump
  42.   end
  43.   def marshal_load(obj)
  44.   end
  45. end
  46. class Bitmap
  47.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  48.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  49.   def _dump(limit)
  50.     data = "rgba" * width * height
  51.     RtlMoveMemory_pi.call(data, address, data.length)
  52.     [width, height, Zlib::Deflate.deflate(data)].pack("LLa*")
  53.   end
  54.   def self._load(str)
  55.     w, h, zdata = str.unpack("LLa*")
  56.     b = self.new(w, h)
  57.     RtlMoveMemory_ip.call(b.address, Zlib::Inflate.inflate(zdata), w * h * 4)
  58.     return b
  59.   end
  60.   def address
  61.     buffer, ad = "rgba", object_id * 2 + 16
  62.     RtlMoveMemory_pi.call(buffer, ad, 4)
  63.     ad = buffer.unpack("L")[0] + 8
  64.     RtlMoveMemory_pi.call(buffer, ad, 4)
  65.     ad = buffer.unpack("L")[0] + 16
  66.     RtlMoveMemory_pi.call(buffer, ad, 4)
  67.     return buffer.unpack("L")[0]
  68.   end
  69. end
  70. class Game_Temp
  71.   attr_accessor :save_bitmap
  72.   attr_accessor :save_snapshoot
  73.   alias new_initialize initialize
  74.   def initialize
  75.     new_initialize
  76.     @save_bitmap = Bitmap.new(1, 1)
  77.     @save_snapshoot = Bitmap.new(1, 1)
  78.   end
  79. end
  80. module SceneManager
  81.   def self.snapshot_for_save
  82.     $game_temp.save_bitmap = Graphics.snap_to_bitmap
  83.     unless FileTest.exist?(PS0::Window_SaveFile_Plus::SAVE_DIR)
  84.       Dir.mkdir(PS0::Window_SaveFile_Plus::SAVE_DIR)
  85.     end
  86.   end
  87. end
  88. class Scene_Map < Scene_Base
  89.   alias save_terminate terminate
  90.   def terminate
  91.     SceneManager.snapshot_for_save
  92.     save_terminate
  93.   end
  94. end
  95. module DataManager
  96.   def self.save_file_exists?
  97.     !Dir.glob(PS0::Window_SaveFile_Plus::SAVE_DIR + 'Save*.rvdata2').empty?
  98.   end
  99.   def self.make_filename(index)
  100.     sprintf(PS0::Window_SaveFile_Plus::SAVE_DIR + "Save%02d.rvdata2", index + 1)
  101.   end
  102.   def self.make_save_header
  103.     d_rect = Rect.new(0, 0, PS0::Window_SaveFile_Plus::Thumbnail_Width,
  104.                             PS0::Window_SaveFile_Plus::Thumbnail_Height)
  105.     case PS0::Window_SaveFile_Plus::Zoom_Type
  106.     when "NN"
  107.       s_rect = $game_temp.save_bitmap.rect
  108.       $game_temp.save_snapshoot = Bitmap.new(d_rect.width, d_rect.height)
  109.       $game_temp.save_snapshoot.stretch_blt(d_rect, $game_temp.save_bitmap, s_rect)
  110.     when "NZ"
  111.       x = [$game_player.screen_x - d_rect.width/2, 0].max
  112.       x = [x, Graphics.width - d_rect.width].min
  113.       y = [$game_player.screen_y - d_rect.height/2, 0].max
  114.       y = [y, Graphics.height - d_rect.height].min
  115.       s_rect = Rect.new(x, y, d_rect.width, d_rect.height)
  116.       $game_temp.save_snapshoot = Bitmap.new(d_rect.width, d_rect.height)
  117.       $game_temp.save_snapshoot.blt(0, 0, $game_temp.save_bitmap, s_rect)
  118.     end
  119.     header = {}
  120.     header[:characters] = $game_party.characters_for_savefile
  121.     header[:playtime_s] = $game_system.playtime_s
  122.     header[:snapshoot]  = $game_temp.save_snapshoot
  123.     header[:lihuiname]  = $game_party.members[0].name
  124.     header
  125.   end
  126.   def self.save_game(index)
  127.     saving_window = Window_Saving.new
  128.     Graphics.update
  129.     begin
  130.       save_game_without_rescue(index)
  131.     rescue
  132.        delete_save_file(index)
  133.        false
  134.     end
  135.     saving_window.dispose
  136.     return true
  137.   end
  138. end
  139. class Window_Yes_Or_No < Window_HorzCommand
  140.   def initialize(yes, no)
  141.     [url=home.php?mod=space&uid=40913]@yes[/url] = yes
  142.     @no = no
  143.     super(130, 0)
  144.     self.x = Graphics.width - self.width - 50
  145.     self.visible = false
  146.     self.active = false
  147.     [url=home.php?mod=space&uid=370741]@Index[/url] = 0
  148.   end
  149.   def col_max
  150.     return 2
  151.   end
  152.   def make_command_list
  153.     add_command(@yes,   :yes)
  154.     add_command(@no,    :cancel)
  155.   end
  156.   def process_ok
  157.     Input.update
  158.     call_ok_handler
  159.   end
  160.   def process_cancel
  161.     Input.update
  162.     call_cancel_handler
  163.   end
  164.   def activate
  165.     temp = self.y + self.height - Graphics.height
  166.     if temp > 0
  167.       self.y -= (temp + 12)
  168.     end
  169.     self.active = true
  170.     self
  171.   end
  172. end
  173. class Window_Saving < Window_Base
  174.   def initialize
  175.     w = PS0::Window_SaveFile_Plus::SAVE_NOW.length * 16 + 32
  176.     x = (Graphics.width - w)/2
  177.     y = (Graphics.height - fitting_height(1))/2
  178.     super(x, y, w, fitting_height(1))
  179.     self.visible = PS0::Window_SaveFile_Plus::SHOW_SAVE_NOW
  180.     draw_text_ex(4, 0, PS0::Window_SaveFile_Plus::SAVE_NOW)
  181.   end
  182. end
  183. class Window_SaveManagerCommand < Window_Command
  184.   def initialize(*args)
  185.     @copy, @move, @delete, [url=home.php?mod=space&uid=9053]@cancel[/url] = args[0..3]
  186.     super(130, 0)
  187.     self.x = Graphics.width - self.width - 35
  188.     self.visible = false
  189.     self.active = false
  190.     @index = 0
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● 获取窗口的宽度
  194.   #--------------------------------------------------------------------------
  195.   def window_width
  196.     return 100
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 获取项目数
  200.   #--------------------------------------------------------------------------
  201.   def item_max
  202.     return 4
  203.   end
  204.   def make_command_list
  205.     add_command(@copy,   :copy  )
  206.     add_command(@move,   :move  )
  207.     add_command(@delete, :delete)
  208.     add_command(@cancel, :cancel)
  209.   end
  210.   def process_ok
  211.     Input.update
  212.     call_ok_handler
  213.   end
  214.   def activate
  215.     temp = self.y + self.height - Graphics.height
  216.     if temp > 0
  217.       self.y -= (temp + 12)
  218.     end
  219.     self.active = true
  220.     self
  221.   end
  222. end
  223. class Window_FileCommand < Window_Command
  224.   #--------------------------------------------------------------------------
  225.   # ● オブジェクト初期化
  226.   #--------------------------------------------------------------------------
  227.   def initialize
  228.     super(160, 0)
  229.   end
  230.   def window_height
  231.     return fitting_height(1)
  232.   end
  233.   def window_width
  234.     Graphics.width-160
  235.   end
  236.   def visible_line_number
  237.     item_max
  238.   end
  239.   def make_command_list
  240.     add_main_commands
  241.   end
  242.   def add_main_commands
  243.     for i in 1..PS0::Window_SaveFile_Plus::MAX_SAVE
  244.       if i < 10
  245.         text = Vocab::File + " 0" + i.to_s
  246.       else
  247.         text = Vocab::File + " " + i.to_s
  248.       end
  249.       add_command(text, :file)
  250.     end
  251.   end
  252.   def process_ok
  253.   end
  254. end
  255. class Window_SaveFile < Window_Base
  256.   def initialize(index)
  257.     super(160, fitting_height(1), Graphics.width-160, Graphics.height-fitting_height(3))
  258.     @file_index = index
  259.     @selected = true
  260.     refresh
  261.   end
  262.   def refresh
  263.     contents.clear
  264.     change_color(normal_color)
  265.     w = (self.width-PS0::Window_SaveFile_Plus::Thumbnail_Width-16)/2
  266.     h = (self.height-PS0::Window_SaveFile_Plus::Thumbnail_Height-16)/2
  267.     width  = w + PS0::Window_SaveFile_Plus::Thumbnail_ox
  268.     height = h + PS0::Window_SaveFile_Plus::Thumbnail_oy
  269.     draw_shadow(w-4+5, h-10+5)
  270.     draw_text((self.width-32-PS0::Window_SaveFile_Plus::NO_DATA.length*16)/2,
  271.               self.height/2-32, PS0::Window_SaveFile_Plus::NO_DATA.length*32,
  272.               line_height, PS0::Window_SaveFile_Plus::NO_DATA)
  273.     draw_snapshoot(w-4, h-15)
  274.     draw_party_characters(20, contents.height - line_height+22)
  275.     draw_playtime(-10, contents.height - line_height, contents.width - 4, 2)   
  276.   end
  277.   def draw_party_characters(x, y)
  278.     header = DataManager.load_header(@file_index)
  279.     return unless header
  280.     header[:characters].each_with_index do |data, i|
  281.       draw_character(data[0], data[1], x + i * 36, y)
  282.     end
  283.   end
  284.   def draw_playtime(x, y, width, align)
  285.     header = DataManager.load_header(@file_index)
  286.     return unless header
  287.     draw_text(x, y, width, line_height, header[:playtime_s], 2)
  288.   end
  289.   def draw_snapshoot(x, y)
  290.     header = DataManager.load_header(@file_index)
  291.     return unless header
  292.     bitmap = header[:snapshoot]
  293.     contents.blt(x, y, bitmap, bitmap.rect)
  294.     bitmap.dispose
  295.   end
  296.   def draw_shadow(x, y)
  297.     header = DataManager.load_header(@file_index)
  298.     return unless header
  299.     contents.fill_rect(x, y, PS0::Window_SaveFile_Plus::Thumbnail_Width,
  300.                              PS0::Window_SaveFile_Plus::Thumbnail_Height, Color.new(0, 0, 0))
  301.     contents.blur
  302.   end
  303. end
  304. module Cache
  305.   def self.m5lihui(filename)
  306.     load_bitmap("Graphics/m5lihui/", filename)
  307.   end
  308. end
  309. class Window_M5Lihui < Window_Base
  310.   def initialize(index)
  311.     super(0, 0, Graphics.width, Graphics.height)
  312.     self.z = 200
  313.     self.opacity = 0
  314.     @save_file_index = index
  315.     refresh
  316.   end
  317.   def standard_padding
  318.     return 0
  319.   end
  320.   def refresh
  321.     contents.clear
  322.     draw_actor_lihui
  323.   end
  324.   def draw_actor_lihui
  325.     header = DataManager.load_header(@save_file_index)
  326.     return unless header and header[:lihuiname]
  327.     bitmap = Cache.m5lihui(header[:lihuiname])
  328.     rect = Rect.new(0, 0, Graphics.width, Graphics.height)
  329.     contents.blt(0, 0, bitmap, rect, 255)
  330.     bitmap.dispose
  331.   end  
  332. end
  333. class Scene_File < Scene_MenuBase
  334.   def start
  335.     super
  336.     create_help_window
  337.     create_savefile_viewport
  338.     create_command_window
  339.     create_savefile_window
  340.     create_manager_window
  341.     create_replace_window
  342.     create_delete_window   
  343.   end
  344.   def terminate
  345.     super
  346.     @savefile_viewport.dispose
  347.     @savefile_window.dispose
  348.     @command_window.dispose
  349.     @window_manager.dispose
  350.     @window_replace.dispose
  351.     @window_delete.dispose
  352.   end
  353.   def update
  354.     super
  355.     update_savefile_selection
  356.   end
  357.   def create_replace_window
  358.     @window_replace = Window_Yes_Or_No.new("替换", "取消")
  359.     @window_replace.set_handler(:yes,    method(:do_replace))
  360.     @window_replace.set_handler(:cancel, method(:do_cancel))
  361.   end
  362.   def create_delete_window
  363.     @window_delete  = Window_Yes_Or_No.new("删除", "取消")
  364.     @window_delete.set_handler(:yes,    method(:do_delete))
  365.     @window_delete.set_handler(:cancel, method(:do_return_manager))
  366.     @window_delete.x += 40
  367.   end
  368.   def create_manager_window
  369.     @window_manager = Window_SaveManagerCommand.new("复制", "移动", "删除", "取消")
  370.     @window_manager.set_handler(:copy  , method(:on_copy?))
  371.     @window_manager.set_handler(:move  , method(:on_move?))
  372.     @window_manager.set_handler(:delete, method(:on_delete?))
  373.     @window_manager.set_handler(:cancel, method(:do_cancel))
  374.   end
  375.   def create_help_window
  376.     @help_window = Window_Help.new(1)
  377.     @help_window.set_text(help_window_text)
  378.   end
  379.   def help_window_text
  380.     return ""
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ● セーブファイルビューポートの作成
  384.   #--------------------------------------------------------------------------
  385.   def create_savefile_viewport
  386.     @savefile_viewport = Viewport.new
  387.     @savefile_viewport.rect.y = @help_window.height
  388.     @savefile_viewport.rect.height -= @help_window.height
  389.   end
  390.   def create_savefile_window
  391.     @savefile_window = Window_SaveFile.new(@index)
  392.     @savefile_window.viewport = @savefile_viewport
  393.     @window_lihui = Window_M5Lihui.new(@index)
  394.   end
  395.   def create_command_window
  396.     @command_window = Window_FileCommand.new
  397.     @command_window.index = first_savefile_index
  398.     @index = @command_window.index
  399.     @command_window.viewport = @savefile_viewport
  400.     @command_window.set_handler(:file,      method(:on_savefile_ok))
  401.   end
  402.   def update_savefile_selection
  403.     if @source_index != nil
  404.       if Input.trigger?(:C)
  405.         if @index == @source_index
  406.           Sound.play_buzzer
  407.         elsif FileTest.exist?(DataManager.make_filename(@index))
  408.           Graphics.freeze
  409.           @command_window.deactivate
  410.           @window_replace.y = 72
  411.           @window_replace.activate
  412.           @window_replace.visible = true
  413.           @window_replace.refresh
  414.           Sound.play_ok
  415.           Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  416.         else
  417.           return on_copy_ok
  418.         end
  419.       elsif Input.trigger?(:B)
  420.         return do_return_manager
  421.       end
  422.     else
  423.       if Input.trigger?(:C)
  424.         if self.is_a?(Scene_Save) and FileTest.exist?(DataManager.make_filename(@index))
  425.           Graphics.freeze
  426.           @command_window.deactivate
  427.           @window_replace.y = 72
  428.           @window_replace.activate
  429.           @window_replace.visible = true
  430.           @window_replace.refresh
  431.           Sound.play_ok
  432.           Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  433.         else
  434.           return on_savefile_ok
  435.         end
  436.       elsif Input.trigger?(:B)
  437.         return on_savefile_cancel
  438.       elsif Input.trigger?(:F5)
  439.         unless @window_manager.active == true or
  440.                @window_delete.active == true or
  441.                @window_replace.active == true
  442.           return on_manager?
  443.         end
  444.       end
  445.     end
  446.     @need_refresh = true if @index != @command_window.index
  447.     if @need_refresh
  448.       Graphics.freeze
  449.       @index = @command_window.index      
  450.       @savefile_window.dispose
  451.       @window_lihui.dispose
  452.       create_savefile_window
  453.       @need_refresh = false
  454.       Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  455.     end
  456.   end
  457.   def on_savefile_ok
  458.   end
  459.   def on_savefile_cancel
  460.     Sound.play_cancel
  461.     return_scene
  462.   end
  463.   def on_copy_ok
  464.     Graphics.freeze
  465.     source_name = DataManager.make_filename(@source_index)
  466.     new_name    = DataManager.make_filename(@index)
  467.     case @source_type
  468.     when "copy"
  469.       Win32API.new('kernel32',"CopyFileA",'ppl','').call(source_name,new_name,0)
  470.     when "move"
  471.       File.rename(source_name, new_name)
  472.     end
  473.     @help_window.set_text(help_window_text)
  474.     @source_index = nil
  475.     do_return_savelist
  476.   end
  477.   def on_copy?
  478.     Graphics.freeze
  479.     @help_window.set_text(PS0::Window_SaveFile_Plus::HELP_COPY)
  480.     @source_index = @index
  481.     @source_type = "copy"
  482.     do_return_savelist
  483.   end
  484.   def on_move?
  485.     Graphics.freeze
  486.     @help_window.set_text(PS0::Window_SaveFile_Plus::HELP_MOVE)
  487.     @source_index = @index
  488.     @source_type = "move"
  489.     do_return_savelist
  490.   end
  491.   def on_manager?
  492.     if FileTest.exist?(DataManager.make_filename(@index))
  493.       Graphics.freeze
  494.       @command_window.deactivate
  495.       @window_manager.y = 72
  496.       @window_manager.activate
  497.       @window_manager.visible = true
  498.       @window_manager.refresh
  499.       Sound.play_ok
  500.       Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  501.     else
  502.       Sound.play_buzzer
  503.     end
  504.   end
  505.   def on_delete?
  506.     Graphics.freeze
  507.     @window_manager.deactivate
  508.     @command_window.deactivate
  509.     @window_delete.y = 72 + 72
  510.     @window_delete.activate
  511.     @window_delete.visible = true
  512.     @window_delete.refresh
  513.     Sound.play_ok
  514.     Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  515.   end
  516.   def do_delete
  517.     Graphics.freeze
  518.     File.delete(DataManager.make_filename(@index))
  519.     @window_delete.index  = 0
  520.     @window_manager.index = 0
  521.     @window_delete.visible  = false
  522.     @window_manager.visible = false
  523.     @window_delete.deactivate
  524.     @window_manager.deactivate
  525.     @command_window.activate
  526.     @need_refresh = true
  527.     Sound.play_save
  528.     if DataManager.save_file_exists?
  529.       Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  530.     else
  531.       return_scene
  532.     end
  533.   end
  534.   def do_replace
  535.     Graphics.freeze
  536.     if @source_index != nil
  537.       return on_copy_ok
  538.     else
  539.       return on_savefile_ok
  540.     end
  541.     @window_replace.visible = false
  542.     @window_replace.deactivate
  543.     @need_refresh = true
  544.   end
  545.   def do_cancel
  546.     Graphics.freeze
  547.     Sound.play_cancel
  548.     @window_delete.index  = 0
  549.     @window_replace.index = 0
  550.     @window_manager.index = 0
  551.     @window_delete.visible  = false
  552.     @window_replace.visible = false
  553.     @window_manager.visible = false
  554.     @window_delete.deactivate
  555.     @window_replace.deactivate
  556.     @window_manager.deactivate
  557.     @command_window.activate
  558.     Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  559.   end
  560.   def do_return_manager
  561.     Graphics.freeze
  562.     @help_window.set_text(help_window_text)
  563.     @command_window.index = @source_index unless @source_index == nil
  564.     @source_index = nil
  565.     @source_type = nil
  566.     @command_window.deactivate
  567.     @window_delete.index  = 0
  568.     @window_replace.index = 0
  569.     @window_delete.visible  = false
  570.     @window_replace.visible = false
  571.     @window_delete.deactivate
  572.     @window_replace.deactivate
  573.     @window_manager.y = 72
  574.     @window_manager.activate
  575.     @window_manager.visible = true
  576.     @window_manager.refresh
  577.     Sound.play_cancel
  578.     Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  579.   end
  580.   def do_return_savelist
  581.     @window_manager.visible = false
  582.     @window_manager.deactivate
  583.     @command_window.activate
  584.     @need_refresh = true
  585.     Sound.play_ok
  586.   end
  587. end
复制代码
用头画头像,用脚写脚本

Lv2.观梦者

梦石
0
星屑
600
在线时间
1118 小时
注册时间
2012-12-24
帖子
831
3
发表于 2015-2-14 17:55:42 | 只看该作者
[url=home.php? mod=s pace&u id=409 13]
[ /u rl]
什么的都删掉拉

点评

谢谢。很久没来6R连这些问题都没发现……现在已经解决了~  发表于 2015-2-14 18:25

点击签名档去一个神奇的地方
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-2-14 17:43:07 | 只看该作者
见图书馆1L的Q&A
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-5 20:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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