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

Project1

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

[已经解决] 请问有随机任务系统吗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
37 小时
注册时间
2011-9-11
帖子
1
跳转到指定楼层
1
发表于 2012-3-22 22:33:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我想做一个接任务的版面
主线固定做完一个接下来另一个。
然后其它设置几个随机出来的任务。
T.T请问现在有大神研究出来了吗?

Lv3.寻梦者

灌水局大小姐

梦石
0
星屑
4155
在线时间
1690 小时
注册时间
2012-3-10
帖子
2469
2
发表于 2012-3-23 22:10:07 | 只看该作者
  1. =begin
  2. --------------------------------------------------------------------------
  3. 详尽任务显示界面 v2.1
  4. --------------------------------------------------------------------------
  5. By 叶子

  6. 日期与更新
  7. 3-29-2006 -v1.0
  8. 4-3-2006  -v2.0
  9. -可以改变文字颜色,显示变量,显示图标,显示图片
  10. -大幅简化了编写任务内容的过程,加入自动换行功能
  11. -精简了窗口,使其还可以用作图鉴系统、日记系统等等
  12. 4-6-2006  -v2.1
  13. -增加了获得全部任务与删除全部任务命令
  14. -改正通假字,修改了示例任务3
  15. --------------------------------------------------------------------------
  16. 改版 by snstar2006

  17. 修改部分:
  18. - 将XP的一些脚本改成VX版的
  19. - 将窗口大小缩放成VX的大小(依照比例)
  20. - 将一些会变成很长的脚本精简
  21.    (如:用$game_pary.item_no(物品编号)
  22.         代替原来的$game_party.item_number($data_items[物品编号]) = ="好长)
  23. - 精简一些代码,将 Window_Task_Name 和Window_Task 重合部分用继承方式精简
  24. - 依照VX的 RGSS2 规范编写 Scene_Task
  25. - 增加使用16进位颜色代码变换字体颜色功能
  26. - 修改Scene_Menu的召唤方式,使脚本新手使用起来更容易

  27. --------------------------------------------------------------------------
  28. 顾名思义,就是显示任务数据的界面
  29. 任务数据要预先在这里设定好
  30. 下载范例工程,能帮助你更快更好地掌握使用方法
  31. --------------------------------------------------------------------------
  32. 使用方法:

  33. 1、召唤任务显示界面:$scene = Scene_Task.new

  34. 可以在事件中的「脚本」指令加入这段东西,
  35. 又或者修改 Scene_Menu 来增加一个显示任务的选项。
  36. 如果是修改 Scene_Menu 增加選項的話,请使用

  37.     $scene = Scene_Task.new(任务在菜单的index)

  38. 例如:$scene = Scene_Task.new(7)

  39. 2、设置任务数据

  40.   2.1、相关内容解析
  41.   
  42.   所有内容文字必须用双引号括住
  43.   
  44.   名称:任务的名字(显示在左边窗口中),大小为172×32,如果全部为文字的话,
  45.         够放九个全角字符
  46.         
  47.   简介:任务的介绍(显示在右边窗口中),宽308,高不限
  48.   
  49.         文字可以自动换行
  50.   
  51.    2.1.1、控制码解析
  52.    
  53.    名称和内容均可用控制码,注意两条反斜杠都要打!
  54.    
  55.    \\v[n] 显示n号变量
  56.    \\c[n] 改变字体颜色。n 为窗口外观图片中所设定的颜色,可为0-31

  57.    \\c[HRRGGBB]设定字体颜色为RRGGBB色, RRGGBB 为16进位颜色代码
  58.    \\n[i] 显示i号角色名字
  59.    \\i[图标编号] 显示图标    # 图标编号为图标在IconSet里的顺序
  60.    \\p[文件名] 显示图片
  61.    
  62.    2.1.2、高级:内嵌表达式
  63.         
  64.    请参考帮助-脚本入门-字符串-内嵌表达式相关内容。
  65.    它可以用来在任务的名称和简介那里显示变量。
  66.    常用的表达式(注意不要漏了井号和大括号):
  67.    #{$game_variables[n]}       ——插入n号变量的值
  68.    #{$game_party.item_no(n)}  —— 插入持有n号物品数量
  69.                                   同理还有 weapon_no,armor_no

  70.    还可以预先定义一个变量,再插入(例子见示例任务3-灵魂线)
  71.    
  72.   2.2、注意事项
  73.   
  74.    2.2.1、括号、逗号和双引号 [ ] , " 必须使用半角符号(英文输入),
  75.           引号内的内容则没有关系
  76.          
  77.    2.2.2、单引号 ' 和双引号 " 的区别:
  78.           为了不出错误,全部用双引号吧!当然如果你对Ruby很熟悉,那就没所谓了
  79.   
  80.   2.3、开始设置吧!
  81.   从107行开始设置任务数据,可以参考示例任务来设置,请仔细阅读附加讲解
  82.   
  83. 3、接受任务

  84. 事件里的「脚本」指令输入:get_task(任务ID)
  85. 例如 get_task(1) 就是接受1号任务

  86.   3.1、获得全部任务
  87.   
  88.   事件里的「脚本」指令输入:get_all_task
  89.   这个功能基本上是用来在编写好所有任务数据后测试排版的
  90.   

  91. 4、完成/删除任务

  92. 事件里的「脚本」指令输入:finish_task(任务ID)
  93. 例如 finish_task(1) 就是完成1号任务

  94. 注意:本脚本不负责完成任务后的奖励之类的东西,请自行在事件中判断,
  95.        这里的完成任务指的是从任务列表中删去此任务

  96.   4.1、删除全部任务
  97.   
  98.   事件里的「脚本」指令输入:finish_all_task
  99.   作为获得全部任务的对应功能存在,似乎不会怎么用到
  100. =end

  101. class Scene_Task
  102.   # 这里设置任务内容翻页音效
  103.   CHANGE_PAGE_SE = "Audio/SE/Switch2"
  104. end

  105. class Game_Party
  106.   #--------------------------------------------------------------------------
  107.   # ● 设置任务资料
  108.   #--------------------------------------------------------------------------
  109.   def get_tasks_info
  110.     @tasks_info = []

  111. #~   ■■■■■■■■■■■■■■■■■■■■■■■■
  112.     名称 = "\\c[6]闲逛小镇"
  113.    
  114.     简介 = "\\c[2]任务地点:小镇
  115.    
  116. \\c[5]任务内容:
  117. 跟镇上的每一个人对话。

  118. \\c[0]对话:\\v[3]/5

  119. \\c[3]任务奖励:100铜币"

  120.     @tasks_info[1] = Game_Task.new(名称, 简介)
  121. #~   ■■■■■■■■■■■■■■■■■■■■■■■■
  122.    
  123.   end
  124. end
  125. #==============================================================================
  126. # ■ Interpreter
  127. #------------------------------------------------------------------------------
  128. #  执行事件命令的解释器。本类在 Game_System 类
  129. # 与 Game_Event 类的内部使用。
  130. #==============================================================================

  131. class Game_Interpreter
  132.   #--------------------------------------------------------------------------
  133.   # ● 接受任务
  134.   #--------------------------------------------------------------------------
  135.   def get_task(id)
  136.     task = $game_party.tasks_info[id]
  137.     return true if (task.nil? or $game_party.current_tasks.include?(task.id))
  138.     $game_party.current_tasks.unshift(task.id)
  139.     return true
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 获得全部任务
  143.   #--------------------------------------------------------------------------
  144.   def get_all_task
  145.     # 清空当前任务
  146.     $game_party.current_tasks.clear
  147.     for task in $game_party.tasks_info
  148.       next if task.nil?
  149.       $game_party.current_tasks.unshift(task.id)
  150.     end
  151.     return true
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 完成/放弃任务
  155.   #--------------------------------------------------------------------------
  156.   def finish_task(id)
  157.     task = $game_party.tasks_info[id]
  158.     return true if task.nil?
  159.     $game_party.current_tasks.delete(task.id)
  160.     return true
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● 删除全部任务
  164.   #--------------------------------------------------------------------------
  165.   def finish_all_task
  166.     $game_party.current_tasks.clear
  167.     return true
  168.   end
  169. end

  170. #==============================================================================
  171. # ■ Game_Party
  172. #------------------------------------------------------------------------------
  173. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  174. # 请参考 $game_party。
  175. #==============================================================================

  176. class Game_Party
  177.   #--------------------------------------------------------------------------
  178.   # ● 定义实例变量
  179.   #--------------------------------------------------------------------------
  180.   attr_writer     :latest_task                  # 上次查看的任务
  181.   #--------------------------------------------------------------------------
  182.   # ● 取得任务资料
  183.   #--------------------------------------------------------------------------
  184.   def tasks_info
  185.     if @tasks_info.nil?
  186.       get_tasks_info
  187.     end
  188.     return @tasks_info
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ● 取得当前任务
  192.   #--------------------------------------------------------------------------
  193.   def current_tasks
  194.     if @current_tasks.nil?
  195.       @current_tasks = []
  196.     end
  197.     return @current_tasks
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 上次查看的任务
  201.   #--------------------------------------------------------------------------
  202.   def latest_task
  203.     if !current_tasks.include?(@latest_task)
  204.       @latest_task = current_tasks[0]
  205.     end
  206.     return @latest_task
  207.   end
  208. end

  209. #==============================================================================
  210. # ■ Game_Task
  211. #------------------------------------------------------------------------------
  212. #  处理任务的类。包含任务的信息。
  213. #==============================================================================

  214. class Game_Task
  215.   attr_accessor   :name                   # 名称
  216.   attr_accessor   :briefing               # 简介
  217.   def initialize(name, briefing)
  218.     @name = name
  219.     @briefing = briefing
  220.   end
  221.   def height
  222.     text = @briefing.clone
  223.     x = 0
  224.     y = 64
  225.     min_y = 0
  226.     # 限制文字处理
  227.     begin
  228.       last_text = text.clone
  229.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  230.     end until text == last_text
  231.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  232.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  233.     end
  234.     # 为了方便、将 "\\\\" 变换为 "\000"
  235.     text.gsub!(/\\\\/) { "\000" }
  236.     # "\C" 变为 "\001"
  237.     text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  238.     # "\I" 变为 "\002"
  239.     text.gsub!(/\\[Ii]/) { "\002" }
  240.     # "\P" 变为 "\003"
  241.     text.gsub!(/\\[Pp]/) { "\003" }
  242.     # c 获取 1 个字 (如果不能取得文字就循环)
  243.     while ((c = text.slice!(/./m)) != nil)
  244.       # \\ 的情况下
  245.       if c == "\000"
  246.         # 还原为本来的文字
  247.         c = "\\"
  248.       end
  249.       # \C[n] 的情况下
  250.       if c == "\001"
  251.         # 更改文字色
  252.         text.sub!(/\[([0-9a-zA-Z]+)\]/, "")
  253.         # 下面的文字
  254.         next
  255.       end
  256.       # 图标的情况下
  257.       if c == "\002"
  258.         icon_name = ''
  259.         while ((cha = text.slice!(/./m)) != ']')
  260.           next if cha == '['
  261.           icon_name += cha
  262.         end
  263.         if x + 24 > 368
  264.           x = 0
  265.           y += [24, min_y].max
  266.           min_y = 0
  267.         end
  268.         x += 28
  269.         next
  270.       end
  271.       # 图片的情况下
  272.       if c == "\003"
  273.         pic_name = ''
  274.         while ((cha = text.slice!(/./m)) != ']')
  275.           next if cha == '['
  276.           pic_name += cha
  277.         end
  278.         pic = Cache.picture(pic_name)
  279.         if x + pic.width > 368
  280.           x = 0
  281.           y += [24, min_y].max
  282.           min_y = 0
  283.         end
  284.         x += pic.width
  285.         min_y = [pic.height, 24].max
  286.         next
  287.       end
  288.       # 另起一行文字的情况下
  289.       if c == "\n"
  290.         y += [24, min_y].max
  291.         min_y = 0
  292.         x = 0
  293.         # 下面的文字
  294.         next
  295.       end
  296.       # 自动换行处理
  297.       if x + 22 > 368
  298.         y += [24, min_y].max
  299.         min_y = 0
  300.         x = 0
  301.       end
  302.       # x 为要描绘文字的加法运算
  303.       x += 22
  304.     end
  305.     return (y + [24, min_y].max)
  306.   end
  307.   def id
  308.     return $game_party.tasks_info.index(self)
  309.   end
  310. end

  311. #==============================================================================
  312. # ■ Window_Task_Name
  313. #------------------------------------------------------------------------------
  314. #  任务名称显示窗口。
  315. #==============================================================================

  316. class Window_Task_Name < Window_Selectable
  317.   #--------------------------------------------------------------------------
  318.   # ● 初始化对像
  319.   #--------------------------------------------------------------------------
  320.   def initialize(tasks)
  321.     super(0, 0, 204, 416)
  322.     @tasks = []
  323.     for id in tasks
  324.       @tasks.push($game_party.tasks_info[id])
  325.     end
  326.     @item_max = tasks.size
  327.     self.contents = Bitmap.new(
  328.     self.width - 32, @item_max == 0 ? 32 : @item_max * 32)
  329.     refresh
  330.     self.index = 0
  331.   end
  332.   #--------------------------------------------------------------------------
  333.   # ● 刷新
  334.   #--------------------------------------------------------------------------
  335.   def refresh
  336.     self.contents.clear
  337.     if @tasks != []
  338.       for task in @tasks
  339.         draw_item(task)
  340.       end
  341.     else
  342.       draw_blank
  343.     end
  344.   end
  345.   #--------------------------------------------------------------------------
  346.   # ● 描绘项目
  347.   #--------------------------------------------------------------------------
  348.   def draw_item(task)
  349.     text = task.name.clone
  350.     y = @tasks.index(task) * WLH
  351.     chenge_special_character(text, 0, y)
  352.   end
  353.   #--------------------------------------------------------------------------
  354.   # ● 描绘空行
  355.   #--------------------------------------------------------------------------
  356.   def draw_blank
  357.     self.contents.font.color = Color.new(255, 255, 255, 128)
  358.     rect = Rect.new(4, 0, self.contents.width - 8, 32)
  359.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  360.     self.contents.draw_text(rect, '当前没有任何任务')
  361.   end
  362.   #--------------------------------------------------------------------------
  363.   # ● 获取任务
  364.   #--------------------------------------------------------------------------
  365.   def task
  366.     return @tasks[self.index]
  367.   end
  368. end
  369.   
  370. #==============================================================================
  371. # ■ Window_Task
  372. #------------------------------------------------------------------------------
  373. #  任务内容显示窗口。
  374. #==============================================================================

  375. class Window_Task < Window_Base
  376.   #--------------------------------------------------------------------------
  377.   # ● 初始化对像
  378.   #--------------------------------------------------------------------------
  379.   def initialize(task_id)
  380.     super(204, 0, 340, 416)
  381.     refresh(task_id)
  382.   end
  383.   #--------------------------------------------------------------------------
  384.   # ● 刷新内容
  385.   #--------------------------------------------------------------------------
  386.   def refresh(task_id)
  387.     self.oy = 0
  388.     self.visible = true
  389.     return if task_id.nil?
  390.     task = $game_party.tasks_info[task_id]
  391.     if !task.nil?
  392.       self.contents = Bitmap.new(self.width - 32, task.height)
  393.     else
  394.       self.contents = Bitmap.new(self.width - 32, self.height - 32)
  395.       return
  396.     end
  397.     self.contents.font.color = normal_color
  398.     # 描绘任务内容
  399.     draw_task_info(task)
  400.   end
  401.   #--------------------------------------------------------------------------
  402.   # ● 描绘任务内容
  403.   #--------------------------------------------------------------------------
  404.   def draw_task_info(task)
  405.     self.contents.font.color = normal_color
  406.     # 描绘任务简介
  407.     chenge_special_character(task.briefing.clone)
  408.   end
  409. end

  410. class Window_Base < Window
  411.   def chenge_special_character(text, x=0, y=0)
  412.     # 记录换行时y坐标最小加值
  413.     min_y = 0
  414.     # 限制文字处理
  415.     begin
  416.       last_text = text.clone
  417.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  418.     end until text == last_text
  419.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  420.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  421.     end
  422.     # 为了方便、将 "\\\\" 变换为 "\000"
  423.     text.gsub!(/\\\\/) { "\000" }
  424.     # "\C" 变为 "\001"
  425.     text.gsub!(/\\[Cc]\[([0-9a-zA-Z]+)\]/)  { "\001[#{$1}]" }
  426.     # "\I" 变为 "\002"
  427.     text.gsub!(/\\[Ii]/) { "\002" }
  428.     # "\P" 变为 "\003"
  429.     text.gsub!(/\\[Pp]/) { "\003" }
  430.     # c 获取 1 个字 (如果不能取得文字就循环)
  431.     while ((c = text.slice!(/./m)) != nil)
  432.       # \\ 的情况下
  433.       if c == "\000"
  434.         # 还原为本来的文字
  435.         c = "\\"
  436.       end
  437.       # \C[n] 的情況下
  438.       if c == "\001"
  439.         # 更改文字色
  440.         text.sub!(/\[([0-9a-zA-Z]+)\]/, "")
  441.         # 如果是设定RGB颜色
  442.         if $1[0,1]=="H"
  443.           # 先拷贝一下文字
  444.           c=$1.dup
  445.           # 分3段分别取出R,G,B颜色
  446.           c.sub!(/H([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/, "")
  447.           # 设定文字颜色
  448.           self.contents.font.color = Color.new($1.to_i(16), $2.to_i(16), $3.to_i(16))
  449.         else
  450.           color = $1.to_i
  451.           if color >= 0 and color <= 31
  452.             self.contents.font.color = text_color(color)
  453.           elsif color == 32
  454.             self.contents.font.color = disabled_color
  455.           elsif color == 33
  456.             self.contents.font.color = system_color
  457.           end
  458.         end
  459.         # 下面的文字
  460.         next
  461.       end
  462.       # 图标的情况下
  463.       if c == "\002"
  464.         icon_name = ''
  465.         while ((cha = text.slice!(/./m)) != ']')
  466.           next if cha == '['
  467.           icon_name += cha
  468.         end
  469.         if x + 24 > self.contents.width
  470.           x = 0
  471.           y += [WLH, min_y].max
  472.           min_y = 0
  473.         end
  474.         draw_icon(icon_name.to_i, x+4, y+4, true)
  475.         x += 28
  476.         next
  477.       end
  478.       # 图片的情况下
  479.       if c == "\003"
  480.         pic_name = ''
  481.         while ((cha = text.slice!(/./m)) != ']')
  482.           next if cha == '['
  483.           pic_name += cha
  484.         end
  485.         pic = Cache.picture(pic_name)
  486.         if x + pic.width > self.contents.width
  487.           x = 0
  488.           y += [WLH, min_y].max
  489.           min_y = 0
  490.         end
  491.         self.contents.blt(x + 4, y, pic, Rect.new(0, 0, pic.width, pic.height))
  492.         x += pic.width
  493.         min_y = [pic.height, WLH].max
  494.         next
  495.       end
  496.       # 另起一行文字的情况下
  497.       if c == "\n"
  498.         y += [WLH, min_y].max
  499.         min_y = 0
  500.         x = 0
  501.         # 下面的文字
  502.         next
  503.       end
  504.       # 自动换行处理
  505.       if x + self.contents.text_size(c).width > self.contents.width
  506.         y += [WLH, min_y].max
  507.         min_y = 0
  508.         x = 0
  509.       end
  510.       # 描绘文字
  511.       self.contents.draw_text(4 + x, y, 40, WLH, c)
  512.       # x 为要描绘文字的加法运算
  513.       x += self.contents.text_size(c).width
  514.     end
  515.   end
  516. end

  517. class Game_Party < Game_Unit
  518.   def item_no(n)
  519.     return item_number($data_items[n])
  520.   end
  521.   def weapon_no(n)
  522.     return item_number($data_weapons[n])
  523.   end
  524.   def armor_no(n)
  525.     return item_number($data_armors[n])
  526.   end
  527. end

  528. #==============================================================================
  529. # ■ Scene_Task
  530. #------------------------------------------------------------------------------
  531. #  处理任务画面的类。
  532. #==============================================================================

  533. class Scene_Task < Scene_Base
  534.   def initialize(index=nil)
  535.     @menu_index = index
  536.   end
  537.   #--------------------------------------------------------------------------
  538.   # ● 主处理
  539.   #--------------------------------------------------------------------------
  540.   def start
  541.     # 刷新任务资料
  542.     $game_party.get_tasks_info
  543.     # 生成任务名称窗口
  544.     @task_names_window = Window_Task_Name.new($game_party.current_tasks)
  545.     @task_names_window.active = true
  546.     if $game_party.current_tasks != []
  547.       @task_names_window.index = $game_party.current_tasks.index($game_party.latest_task)
  548.     end
  549.     # 生成任务内容窗口
  550.     @task_info_window = Window_Task.new($game_party.latest_task)
  551.     @task_info_window.active = true
  552.   end

  553.   def terminate
  554.     # 释放窗口
  555.     @task_names_window.dispose
  556.     @task_info_window.dispose
  557.   end
  558.   #--------------------------------------------------------------------------
  559.   # ● 刷新画面
  560.   #--------------------------------------------------------------------------
  561.   def update
  562.     # 刷新窗口
  563.     @task_names_window.update
  564.     @task_info_window.update
  565.     update_task_names_window
  566.   end
  567.   #--------------------------------------------------------------------------
  568.   # ● 刷新任务名称窗口
  569.   #--------------------------------------------------------------------------
  570.   def update_task_names_window
  571.     # 按下 B 键的情况下
  572.     if Input.trigger?(Input::B)
  573.       # 演奏取消 SE
  574.       Sound.play_cancel
  575.       # 这里设置返回的场景,返回地图是Scene_Map.new,菜单是Scene_Menu.new(任务界面index)
  576.       if @menu_index == nil
  577.         $scene = Scene_Menu.new(5)
  578.       else
  579.         $scene = Scene_Menu.new(@menu_index)
  580.       end
  581.       return
  582.     end
  583.     # 按下 C 键的情况下
  584.     if Input.trigger?(Input::C)
  585.       # 无任务可显示的话
  586.       if @task_names_window.task == nil
  587.         # 演奏冻结 SE
  588.         Sound.play_buzzer
  589.         return
  590.       end
  591.       # 如果光标没有移动的话,翻页
  592.       if $game_party.latest_task == @task_names_window.task.id
  593.         if @task_info_window.oy + @task_info_window.height - 32 > @task_info_window.contents.height
  594.           @task_info_window.oy = 0
  595.         else
  596.           @task_info_window.oy += 480-32
  597.         end
  598.         if @task_info_window.contents.height > @task_info_window.height - 32
  599.           # 演奏翻页 SE
  600.           Sound.se_play(CHANGE_PAGE_SE)
  601.         end
  602.       else
  603.         @task_info_window.refresh(@task_names_window.task.id)
  604.         $game_party.latest_task = @task_names_window.task.id
  605.         # 演奏确定 SE
  606.         Sound.play_decision
  607.       end
  608.     end
  609.   end
  610. end
复制代码
使用方法脚本上有详细说明!
关于随机任务,这还得自己用变量来设置,用脚本来写是相当费神的
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 01:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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