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

Project1

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

[已经过期] 关于theoallen的合成系统,怎么增加条件判定

[复制链接]

Lv1.梦旅人

梦石
0
星屑
237
在线时间
29 小时
注册时间
2018-5-8
帖子
10
跳转到指定楼层
1
发表于 2018-9-2 14:25:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题

例如我需要2号人物在队里的时候,才能对物品1号进行合成;
或者判断主角在地图里的坐标,只有在某个位置的时候才能进行合成……

请问一下这两个条件的脚本我需要怎么写?

求教orz

顺便附上源代码
RUBY 代码复制
  1. # =============================================================================
  2. # TheoAllen - (像辐射的) 合成系统
  3. # Version : 1.1
  4. # Contact : [url]www.rpgmakerid.com[/url] (or) [url]http://theolized.blogspot.com[/url]
  5. # (English documentation)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_Crafting] = true
  8. # =============================================================================
  9. # CHANGE LOGS:
  10. # -----------------------------------------------------------------------------
  11. # 2013.08.25 - Bugfix disable req text isn't working
  12. # 2013.08.22 - Bugfix at amount of item crafting
  13. #            - Added show condition
  14. #            - Added custom name
  15. # 2013.08.20 - Finished script
  16. # 2013.08.19 - Started script
  17. # =============================================================================
  18. =begin
  19.  
  20.   ---------------------------------------------------------------------------
  21.   介绍 :
  22.   本脚本可以根据原料合成物品
  23.  
  24.   ---------------------------------------------------------------------------
  25.   使用方法 :
  26.   ---------------------------------------------------------------------------
  27.   本脚本放在插件脚本之下,main之上
  28.   使用脚本来显示合成画面 :
  29.  
  30.   enter_crafting
  31.  
  32.   ---------------------------------------------------------------------------
  33.   物品/武器/护甲备注:
  34.   ---------------------------------------------------------------------------
  35.   -----------------------------------
  36.   简单的备注
  37.   -----------------------------------
  38.   <add item recipe: id,数量>
  39.   <add armor recipe: id,数量>
  40.   <add weapon recipe: id,数量>
  41.   ^
  42.   以上备注可以确定该物品/武器/护甲需要物品/护甲/武器作为合成原料,id为原料id,
  43.   数量为需要原料的数量
  44.  
  45.   <craft name: 文本>
  46.   ^
  47.   暂时改变物品名称的备注.例如,在你的合成列表中,回复剂会显示名称“合成回复剂”
  48.   但是当你成功合成回复剂,且得到它后,它的名称会变回初始名称。
  49.   -----------------------------------
  50.   复杂的备注
  51.   (如果你不懂,就不要尝试)
  52.   -----------------------------------
  53.   <craft require>
  54.   脚本
  55.   </craft require>
  56.   ^
  57.   设定物品的合成条件,由脚本作为判断条件。写作多行时会视为同一行。我在别处写了
  58.   可以调用的脚本指令,可是..用的是印尼语。
  59.  
  60.   错误的书写会使游戏崩溃,所以请确定书写规范.
  61.  
  62.   <craft req text>
  63.   文本
  64.   </craft req text>
  65.   ^
  66.   用于告诉玩家合成的条件。例如,如果合成某物品需要一把银色的锤子,则你可以这样写:
  67.  
  68.   <craft req text>
  69.   合成这个物品需要一把银色的锤子
  70.   </craft req text>
  71.  
  72.   <craft show eval>
  73.   脚本
  74.   </craft show eval>
  75.   ^
  76.   以上备注用来确定物品是否会出现在合成列表中。例如,合成圣灵药时,需要角色学会
  77.   高等级的炼金术,所以在角色学会特定技能前不会显示于合成列表中。
  78.  
  79.   错误的书写会使游戏崩溃,所以请确定书写规范.
  80.  
  81.   ---------------------------------------------------------------------------
  82.   使用规定 :
  83.   属名脚本作者, TheoAllen. 你可以自由编辑此脚本,只要你不声明你是脚本的原作者
  84.   如果你想用此脚本于商业游戏,请和我共享收益.别忘了给我一份免费的游戏拷贝.
  85.  
  86. =end
  87. # =============================================================================
  88. # 设定 :
  89. # =============================================================================
  90. module THEO
  91.   module Craft
  92.  
  93.   # --------------------------------------------------------------------------
  94.   # 通用设定 (true/false)
  95.   # --------------------------------------------------------------------------
  96.     MainMenu        = true
  97.   # 是否在菜单中显示"合成"指令
  98.  
  99.     DisplayReqText  = true
  100.   # 对于那些不想使用合成条件文本的人,你可以在这里禁用它
  101.  
  102.   # --------------------------------------------------------------------------
  103.   # 用语设置 (文本/字符串)
  104.   # --------------------------------------------------------------------------
  105.     VocabMenu      = "合成"          # 主菜单的合成指令
  106.     VocabNoReq     = "- 无 -"        # 无任何合成条件
  107.     VocabRequire   = "合成条件 :"    # 合成条件
  108.     VocabRecipes   = "原料 : "       # 原料
  109.     VocabInventory = "持有量: "      # 持有量
  110.  
  111.   # --------------------------------------------------------------------------
  112.   # 杂项 (使用数字来设定 / 0123456789)
  113.   # --------------------------------------------------------------------------
  114.     Text_Buffer_x = 12
  115.   # 文本右移距离
  116.  
  117.     AmountSize = 250
  118.   # 数量窗口的宽度
  119.  
  120.   end
  121. end
  122. # =============================================================================
  123. # 以下勿动
  124. # =============================================================================
  125. module THEO
  126.   module Craft
  127.     def self.items
  128.       items = $data_items + $data_armors + $data_weapons
  129.       items.compact!
  130.       items.select {|item| item.can_be_crafted? }
  131.     end
  132.   end
  133. end
  134.  
  135. class RPG::BaseItem
  136.   attr_accessor :item_recipes
  137.   attr_accessor :armor_recipes
  138.   attr_accessor :weapon_recipes
  139.   attr_accessor :enable_cond
  140.   attr_accessor :enable_text
  141.   attr_accessor :show_cond
  142.   attr_accessor :craft_name
  143.   attr_accessor :craft_key  # For future planned feature
  144.  
  145.   def load_recipes
  146.     @item_recipes = {}
  147.     @armor_recipes = {}
  148.     @weapon_recipes = {}
  149.     @show_cond = @enable_cond = "true"
  150.     @enable_text = []
  151.     @craft_name = ""
  152.     @craft_key = ""
  153.     read_craft_cond = read_craft_txt = read_craft_show = false
  154.     self.note.split(/[\r\n]+/).each do |line|
  155.       case line
  156.       when /<(?:ADD_ITEM_RECIPE|add item recipe): (.*)>/i
  157.         str = $1.scan(/\d+/)
  158.         @item_recipes[str[0].to_i] = str[1].to_i
  159.       when /<(?:ADD_ARMOR_RECIPE|add armor recipe): (.*)>/i
  160.         str = $1.scan(/\d+/)
  161.         @armor_recipes[str[0].to_i] = str[1].to_i
  162.       when /<(?:ADD_WEAPON_RECIPE|add WEAPON recipe): (.*)>/i
  163.         str = $1.scan(/\d+/)
  164.         @weapon_recipes[str[0].to_i] = str[1].to_i
  165.       when /<(?:CRAFT_REQUIRE|craft require)>/i
  166.         read_craft_cond = true
  167.         @enable_cond = ""
  168.       when /<\/(?:CRAFT_REQUIRE|craft require)>/i
  169.         read_craft_cond = false
  170.       when /<(?:CRAFT_REQ_TEXT|craft req text)>/i
  171.         read_craft_txt = true
  172.       when /<\/(?:CRAFT_REQ_TEXT|craft req text)>/i
  173.         read_craft_txt = false
  174.       when /<(?:CRAFT_SHOW_EVAL|craft show eval)>/i
  175.         read_craft_show = true
  176.         @show_cond = ""
  177.       when /<\/(?:CRAFT_SHOW_EVAL|craft show eval)>/i
  178.         read_craft_show = false
  179.       when /<(?:CRAFT_NAME|craft name): (.*)>/i
  180.         @craft_name = $1.to_s
  181.       when /<(?:CRAFT_KEY|craft key): [ ]*(.*)>/i
  182.         @craft_key = $1.to_s
  183.       else
  184.         if read_craft_cond
  185.           @enable_cond += line
  186.         end
  187.         if read_craft_txt
  188.           @enable_text.push(line)
  189.         end
  190.         if read_craft_show
  191.           @show_cond += line
  192.         end
  193.       end
  194.     end
  195.   end
  196.  
  197.   def recipes
  198.     [@item_recipes, @armor_recipes, @weapon_recipes]
  199.   end
  200.  
  201.   # ---------------------------------------------------------------------------
  202.   # If the error is directed you to this line. It's possible that you wrote
  203.   # craft requirement formula in a wrong way. Not this script mistake
  204.   # ---------------------------------------------------------------------------
  205.   def craft_possible?
  206.     return eval(@enable_cond) && can_be_crafted?
  207.   end
  208.  
  209.   def show_possible?
  210.     return eval(@show_cond)
  211.   end
  212.   # ---------------------------------------------------------------------------
  213.   # Determine if item can be crafted
  214.   # ---------------------------------------------------------------------------
  215.   def can_be_crafted?
  216.     recipes.any? {|recipe| !recipe.empty?} && show_possible?
  217.   end
  218.  
  219. end
  220.  
  221. class << DataManager
  222.  
  223.   alias theo_recipe_craft_load_db load_database
  224.   def load_database
  225.     theo_recipe_craft_load_db
  226.     load_item_recipes
  227.   end
  228.  
  229.   def load_item_recipes
  230.     ($data_items+$data_armors+$data_weapons).compact.each do |db|
  231.       db.load_recipes
  232.     end
  233.   end
  234.  
  235. end
  236.  
  237. class Window_CraftList < Window_ItemList
  238.  
  239.   def initialize(x,y,w,h,key)
  240.     @key = key
  241.     super(x,y,w,h)
  242.     refresh
  243.   end
  244.  
  245.   def col_max
  246.     return 1
  247.   end
  248.  
  249.   def status_window=(window)
  250.     @status_window = window
  251.     update_help
  252.   end
  253.  
  254.   def item_number_window=(window)
  255.     @inum_window = window
  256.     update_help
  257.   end
  258.  
  259.   def update_help
  260.     super
  261.     @status_window.set_item(item) if @status_window
  262.     @inum_window.set_item(item) if @inum_window
  263.   end
  264.  
  265.   def make_item_list
  266.     @data = []
  267.     items = THEO::Craft.items
  268.     items.each do |item|
  269.       @data.push(item) if @key.empty? || item.craft_key == @key
  270.     end
  271.   end
  272.  
  273.   def enable?(item)
  274.     item.craft_possible? && has_recipes?(item) && has_free_slot?(item)
  275.   end
  276.  
  277.   def has_free_slot?(item)
  278.     $game_party.item_number(item) < $game_party.max_item_number(item)
  279.   end
  280.  
  281.   def has_recipes?(item)
  282.     result1 = check_recipe(item.recipes[0], $data_items)
  283.     result2 = check_recipe(item.recipes[1], $data_armors)
  284.     result3 = check_recipe(item.recipes[2], $data_weapons)
  285.     return result1 && result2 && result3
  286.   end
  287.  
  288.   def check_recipe(recipes, data)
  289.     return true if recipes.empty?
  290.     return recipes.all? {|recipe|
  291.       $game_party.item_number(data[recipe[0]]) >= recipe[1]}
  292.   end
  293.  
  294.   def draw_item_name(item, x, y, enabled = true, width = 172)
  295.     return unless item
  296.     draw_icon(item.icon_index, x, y, enabled)
  297.     change_color(normal_color, enabled)
  298.     name = item.craft_name.empty? ? item.name : item.craft_name
  299.     draw_text(x + 24, y, width, line_height, name)
  300.   end
  301.  
  302.   def draw_item_number(rect, item)
  303.     return unless $imported[:Theo_LimInventory]
  304.     return unless THEO::LimInv::Display_ItemSize
  305.     draw_text(rect, sprintf(":%2d", item.inv_size), 2)
  306.   end
  307.  
  308. end
  309.  
  310. class Window_CraftStatus < Window_Base
  311.  
  312.   def set_item(item)
  313.     @item = item
  314.     refresh
  315.   end
  316.  
  317.   def refresh
  318.     contents.clear
  319.     return unless @item
  320.     @line_count = 0
  321.     draw_requirement
  322.     draw_recipes
  323.   end
  324.  
  325.   def draw_requirement
  326.     return unless THEO::Craft::DisplayReqText
  327.     change_color(system_color)
  328.     draw_text(line_rect(4),THEO::Craft::VocabRequire)
  329.     increase_line_count
  330.     if !@item.enable_text.empty?
  331.       change_color(normal_color, @item.craft_possible?)
  332.       @item.enable_text.each do |text|
  333.         draw_text(line_rect(buff_x),text)
  334.         increase_line_count
  335.       end
  336.       increase_line_count
  337.     else
  338.       change_color(normal_color)
  339.       draw_text(line_rect(buff_x),THEO::Craft::VocabNoReq)
  340.       2.times { increase_line_count }
  341.     end
  342.   end
  343.  
  344.   def draw_recipes
  345.     change_color(system_color)
  346.     draw_text(line_rect(4),THEO::Craft::VocabRecipes)
  347.     change_color(normal_color)
  348.     increase_line_count
  349.     draw_recipe(@item.recipes[0], $data_items)
  350.     draw_recipe(@item.recipes[1], $data_armors)
  351.     draw_recipe(@item.recipes[2], $data_weapons)
  352.   end
  353.  
  354.   def draw_recipe(hash, items)
  355.     hash.each do |id,amount|
  356.       item_num = $game_party.item_number(items[id])
  357.       enable = item_num >= amount
  358.       change_color(normal_color, enable)
  359.       rect = line_rect(buff_x + 24)
  360.       text = sprintf("%s (%d/%d)",items[id].name, item_num, amount)
  361.       draw_text(rect, text)
  362.       draw_icon(items[id].icon_index, buff_x, @line_count, enable)
  363.       increase_line_count
  364.     end
  365.   end  
  366.  
  367.   def line_rect(xpos = 0)
  368.     Rect.new(xpos,@line_count,contents.width-xpos,line_height)
  369.   end
  370.  
  371.   def increase_line_count
  372.     @line_count += line_height
  373.   end
  374.  
  375.   def buff_x
  376.     THEO::Craft::Text_Buffer_x
  377.   end
  378.  
  379. end
  380.  
  381. class Window_CraftAmount < Window_Base
  382.   attr_accessor :inv_window
  383.   attr_accessor :ok_handler
  384.   attr_accessor :cancel_handler
  385.   attr_reader :amount
  386.  
  387.   def initialize
  388.     super(0,0,window_width,fitting_height(1))
  389.     self.openness = 0
  390.     to_center
  391.     @amount = 0
  392.     @max = 0
  393.     @item = nil
  394.   end
  395.  
  396.   def window_width
  397.     return THEO::Craft::AmountSize
  398.   end
  399.  
  400.   def to_center
  401.     self.x = (Graphics.width - width)/2
  402.     self.y = (Graphics.height - height)/2
  403.   end
  404.  
  405.   def set(item, max)
  406.     change_amount(0,true)
  407.     @item = item
  408.     @max = max
  409.     open
  410.     refresh
  411.   end
  412.  
  413.   def refresh
  414.     contents.clear
  415.     return unless @item
  416.     draw_item_name(@item,0,0,true,contents.width)
  417.     draw_amount
  418.   end
  419.  
  420.   def draw_amount
  421.     text = sprintf("%d/%d",@amount,@max)
  422.     draw_text(0,0,contents.width,line_height,text,2)
  423.   end
  424.  
  425.   def update
  426.     super
  427.     if open?
  428.       change_amount(1) if Input.repeat?(:RIGHT)
  429.       change_amount(-1) if Input.repeat?(:LEFT)
  430.       change_amount(10) if Input.repeat?(:UP)
  431.       change_amount(-10) if Input.repeat?(:DOWN)
  432.       call_ok if Input.trigger?(:C)
  433.       call_cancel if Input.trigger?(:B)
  434.     end
  435.   end
  436.  
  437.   def change_amount(number, instant = false)
  438.     if instant
  439.       @amount = number
  440.     else
  441.       Sound.play_cursor
  442.       @amount = [[@amount + number,0].max,@max].min
  443.     end
  444.     refresh
  445.     @inv_window.amount = @amount if @inv_window
  446.   end
  447.  
  448.   def call_ok
  449.     Sound.play_ok
  450.     ok_handler.call
  451.     change_amount(0,true)
  452.     close
  453.   end
  454.  
  455.   def call_cancel
  456.     Sound.play_cancel
  457.     cancel_handler.call
  458.     change_amount(0,true)
  459.     close
  460.   end
  461.  
  462. end
  463.  
  464. class Window_CraftFooter < Window_Base
  465.  
  466.   def initialize
  467.     super(0,0,Graphics.width,fitting_height(1))
  468.     self.y = Graphics.height - height
  469.     @amount = 0
  470.     @item = nil
  471.     refresh
  472.   end
  473.  
  474.   def amount=(amount)
  475.     @amount = amount
  476.     refresh
  477.   end
  478.  
  479.   def refresh
  480.     contents.clear
  481.     change_color(system_color)
  482.     draw_text(0,0,contents.width,line_height,THEO::Craft::VocabInventory)
  483.     change_color(normal_color)
  484.     return unless @item
  485.     if $imported[:Theo_LimInventory]
  486.       draw_inv_slot(0,0)
  487.     else
  488.       draw_item_number
  489.     end
  490.   end
  491.  
  492.   def draw_inv_slot(x,y,width = contents.width,align = 2)
  493.     total = $game_party.total_inv_size + @amount*@item.inv_size
  494.     total -= calculate_lose_item
  495.     txt = sprintf("%d/%d", total, $game_party.inv_max)
  496.     color = THEO::LimInv::NearMaxed_Color
  497.     near_max = total.to_f/$game_party.inv_max >=
  498.       (100 - THEO::LimInv::NearMaxed_Percent).to_f / 100
  499.     if near_max
  500.       change_color(text_color(color))
  501.     else
  502.       change_color(normal_color)
  503.     end
  504.     draw_text(x,y,width,line_height,txt,align)
  505.     change_color(normal_color)
  506.   end
  507.  
  508.   def draw_item_number
  509.     txt = sprintf("%d/%d",@amount + $game_party.item_number(@item),
  510.       $game_party.max_item_number(@item))
  511.     draw_text(0,0,contents.width,line_height,txt,2)
  512.   end
  513.  
  514.   def set_item(item)
  515.     @item = item
  516.     refresh
  517.   end
  518.  
  519.   def calculate_lose_item
  520.     result = 0
  521.     @item.recipes[0].each do |id,amount|
  522.       data = $data_items[id]
  523.       amount *= @amount
  524.       result += amount
  525.     end
  526.     @item.recipes[1].each do |id,amount|
  527.       data = $data_armors[id]
  528.       amount *= @amount
  529.       result += amount
  530.     end
  531.     @item.recipes[2].each do |id,amount|
  532.       data = $data_weapons[id]
  533.       amount *= @amount
  534.       result += amount
  535.     end
  536.     return result
  537.   end
  538.  
  539. end
  540.  
  541. class Game_Interpreter
  542.  
  543.   # ----------------------------------------------
  544.   # key is just for my future planned feature
  545.   # ----------------------------------------------
  546.   def enter_crafting(key = "")
  547.     SceneManager.call(Scene_ItemCrafting)
  548.     SceneManager.scene.prepare(key)
  549.     Fiber.yield
  550.   end
  551.  
  552. end
  553.  
  554. class Window_MenuCommand < Window_Command
  555.  
  556.   alias theo_craft_ori_cmd add_original_commands
  557.   def add_original_commands
  558.     theo_craft_ori_cmd
  559.     return unless THEO::Craft::MainMenu
  560.     add_command(THEO::Craft::VocabMenu, :craft)
  561.   end
  562.  
  563. end
  564.  
  565. class Scene_Menu < Scene_MenuBase
  566.  
  567.   alias theo_craft_cmnd_window create_command_window
  568.   def create_command_window
  569.     theo_craft_cmnd_window
  570.     @command_window.set_handler(:craft, method(:enter_crafting))
  571.   end
  572.  
  573.   def enter_crafting
  574.     SceneManager.call(Scene_ItemCrafting)
  575.     SceneManager.scene.prepare("")
  576.   end
  577.  
  578. end
  579.  
  580. class Scene_ItemCrafting < Scene_MenuBase
  581.  
  582.   def prepare(key)
  583.     @key = key
  584.   end
  585.  
  586.   def start
  587.     super
  588.     create_help_window
  589.     create_craftfooter_window
  590.     create_craftlist_window
  591.     create_craftstatus_window
  592.     create_craftamount_window
  593.   end
  594.  
  595.   def create_craftfooter_window
  596.     @craft_footer = Window_CraftFooter.new
  597.   end
  598.  
  599.   def create_craftlist_window
  600.     wy = @help_window.height
  601.     ww = Graphics.width/2
  602.     wh = Graphics.height - wy - @craft_footer.height
  603.     @craft_list = Window_CraftList.new(0,wy,ww,wh,@key)
  604.     @craft_list.set_handler(:ok, method(:on_craft_ok))
  605.     @craft_list.set_handler(:cancel, method(:return_scene))
  606.     @craft_list.help_window = @help_window
  607.     @craft_list.item_number_window = @craft_footer
  608.     @craft_list.activate
  609.     @craft_list.select(0)
  610.   end
  611.  
  612.   def create_craftstatus_window
  613.     wx = @craft_list.width
  614.     wy = @craft_list.y
  615.     ww = @craft_list.width
  616.     wh = @craft_list.height
  617.     @craft_status = Window_CraftStatus.new(wx,wy,ww,wh)
  618.     @craft_list.status_window = @craft_status
  619.   end
  620.  
  621.   def create_craftamount_window
  622.     @craft_amount = Window_CraftAmount.new
  623.     @craft_amount.ok_handler = method(:on_amount_ok)
  624.     @craft_amount.cancel_handler = method(:on_amount_cancel)
  625.     @craft_amount.inv_window = @craft_footer
  626.   end
  627.  
  628.   def on_craft_ok
  629.     @craft_amount.set(item, item_max)
  630.   end
  631.  
  632.   def on_amount_ok
  633.     $game_party.gain_item(item, @craft_amount.amount)
  634.     lose_recipes
  635.     @craft_status.refresh
  636.     @craft_list.refresh
  637.     @craft_list.activate
  638.   end
  639.  
  640.   def on_amount_cancel
  641.     @craft_list.activate
  642.   end
  643.  
  644.   def item
  645.     @craft_list.item
  646.   end
  647.  
  648.   def item_max
  649.     ary = []
  650.     item.recipes[0].each do |id,amount|
  651.       data = $data_items[id]
  652.       ary.push($game_party.item_number(data)/amount)
  653.     end
  654.     item.recipes[1].each do |id,amount|
  655.       data = $data_armors[id]
  656.       ary.push($game_party.item_number(data)/amount)
  657.     end
  658.     item.recipes[2].each do |id,amount|
  659.       data = $data_weapons[id]
  660.       ary.push($game_party.item_number(data)/amount)
  661.     end
  662.     max_item = $game_party.max_item_number(item)
  663.     inum = $game_party.item_number(item)
  664.     return [ary.min , max_item - inum].min
  665.   end
  666.  
  667.   def lose_recipes
  668.     item.recipes[0].each do |id,amount|
  669.       data = $data_items[id]
  670.       amount *= @craft_amount.amount
  671.       $game_party.lose_item(data,amount)
  672.     end
  673.     item.recipes[1].each do |id,amount|
  674.       data = $data_armors[id]
  675.       amount *= @craft_amount.amount
  676.       $game_party.lose_item(data,amount)
  677.     end
  678.     item.recipes[2].each do |id,amount|
  679.       data = $data_weapons[id]
  680.       amount *= @craft_amount.amount
  681.       $game_party.lose_item(data,amount)
  682.     end
  683.   end
  684.  
  685. end

01.png (4.05 KB, 下载次数: 18)

01.png

02.png (15.45 KB, 下载次数: 17)

02.png

03.png (12.35 KB, 下载次数: 17)

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

本版积分规则

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

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

GMT+8, 2024-4-23 20:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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