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

Project1

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

[已经过期] 该脚本怎样改变形状,默认是方形的,怎样改变成圆形?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3665
在线时间
915 小时
注册时间
2017-1-19
帖子
270
跳转到指定楼层
1
发表于 2020-3-28 20:54:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #==============================================================================
  2. # +++ MOG - 目标范围 EX (v2.1) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # https://atelierrgss.wordpress.com/
  6. #==============================================================================
  7. # 可以设定攻击某区域内全部敌人的技能,设定敌人的体积大小(用于判定)其是否在技
  8. # 能目标范围之内。本脚本还添加了对象为全目标的技能。
  9. #==============================================================================
  10. # 技能备注:
  11. #
  12. # <Scope Range = X1 - X2 - Y1 - Y2>
  13. #
  14. #            Y1
  15. #            
  16. #       X1  目标  X2
  17. #            
  18. #            Y2
  19. #
  20. #  X1、X2、Y1、Y2为该方向的数值,共同组成技能范围
  21. #
  22. # 例子 ->      <Scope Range = 100 - 32 - 64 - 32>
  23. #
  24. #==============================================================================
  25. # 技能目标为全部目标的备注. (全部敌人+全部队友)
  26. #==============================================================================
  27. #
  28. # <All Targets>
  29. #
  30. #==============================================================================
  31. # 对多个目标的技能只显示一个动画.
  32. #==============================================================================
  33. #
  34. # <Unique Animation>
  35. #
  36. #==============================================================================

  37. #==============================================================================
  38. # Histórico
  39. #==============================================================================
  40. # v2.1 - Opção de ativar ou não o sprite do scope no modo "todos os alvos".
  41. # v2.0 - Opção de apresentar a área.
  42. #      - Melhoria no código
  43. #==============================================================================

  44. $imported = {} if $imported.nil?
  45. $imported[:mog_scope_ex] = true

  46. module MOG_SCOPE_EX
  47.   #============================================================================
  48.   # 技能目标范围的定义方式.
  49.   #
  50.   # 0 - 判断敌人的X、Y坐标是否在技能范围内. (无视体积)
  51.   # 1 - 判断敌人的X、Y坐标+体积是否在技能范围内
  52.   #     (敌人体积越大越容易受到伤害)
  53.   #
  54.   #============================================================================
  55.   SCOPE_TYPE = 0
  56.   #============================================================================
  57.   # 设定精灵(怪物图)的百分之多少作为怪物的体积(仅当SCOPE_TYPE = 1的情况下)
  58.   # 例如,当宽高都设定为100%时,系统会将判断怪物图100%的区域是否在技能
  59.   # 范围内,在则受到伤害。
  60.   #============================================================================
  61.   # SPRITE_SIZE_RANGE = [宽 %, 高 %]  
  62.   #============================================================================
  63.   SPRITE_SIZE_RANGE = [50,70]  
  64.   #============================================================================
  65.   # 显示技能范围时是否显示范围精灵.
  66.   #============================================================================
  67.   SPRITE_SCOPE = true
  68.   #============================================================================
  69.   # 范围精灵的Z坐标
  70.   #============================================================================
  71.   SPRITE_SCOPE_Z = 90
  72.   #============================================================================
  73.   # 目标为角色的技能的范围颜色.
  74.   #============================================================================
  75.   ALLY_SCOPE_COLOR = [50,50,255]
  76.   #============================================================================
  77.   # 目标为敌人的技能的范围颜色.
  78.   #============================================================================
  79.   ENEMY_SCOPE_COLOR = [155,100,100]
  80.   #============================================================================
  81.   # 范围精灵的不透明度
  82.   #============================================================================
  83.   SPRITE_SCOPE_OPACITY = 150
  84.   #============================================================================
  85.   # 是否显示范围精灵的闪烁效果
  86.   #============================================================================
  87.   SPRITE_SCOPE_BLINK_EFFECT = true
  88.   #============================================================================
  89.   # 是否在全目标技能中显示范围精灵.
  90.   #============================================================================
  91.   SPRITE_ALL_TARGETS_SCOPE = false
  92. end

  93. #==============================================================================
  94. # ■ Game Battler
  95. #==============================================================================
  96. class Game_Temp
  97.   
  98.   attr_accessor :scope_ex_data
  99.   attr_accessor :scope_ex_targets
  100.   
  101.   #--------------------------------------------------------------------------
  102.   # ● Initialize
  103.   #--------------------------------------------------------------------------
  104.   alias mog_scope_ex_temp_initialize initialize
  105.   def initialize
  106.       clear_scope_ex
  107.       mog_scope_ex_temp_initialize
  108.   end
  109.   
  110.   #--------------------------------------------------------------------------
  111.   # ● Clear Scope Ex
  112.   #--------------------------------------------------------------------------
  113.   def clear_scope_ex
  114.       @scope_ex_targets = nil
  115.       @scope_ex_data = [nil,nil,[],[],nil,false,nil]
  116.   end
  117.   
  118. end

  119. #==============================================================================
  120. # ■ Game Battler
  121. #==============================================================================
  122. class Game_Battler < Game_BattlerBase
  123.   attr_accessor :sprite_size
  124.   attr_accessor :primary_target
  125.   
  126.   #--------------------------------------------------------------------------
  127.   # ● Initialize
  128.   #--------------------------------------------------------------------------
  129.   alias mog_scope_ex_initialize initialize
  130.   def initialize
  131.       @sprite_size = [0,0,true]
  132.       mog_scope_ex_initialize
  133.   end

  134. end

  135. #==============================================================================
  136. # ■ Sprite Battler
  137. #==============================================================================
  138. class Sprite_Battler < Sprite_Base

  139.   #--------------------------------------------------------------------------
  140.   # ● Init Visible
  141.   #--------------------------------------------------------------------------
  142.   alias mog_scope_ex_init_visibility init_visibility
  143.   def init_visibility
  144.       @battler.sprite_size = [bitmap.width,bitmap.height,true]
  145.       mog_scope_ex_init_visibility
  146.   end
  147.   
  148. end

  149. #==============================================================================
  150. # ■ Scene Battle
  151. #==============================================================================
  152. class Scene_Battle < Scene_Base

  153.   #--------------------------------------------------------------------------
  154.   # ● Show Normal Animation
  155.   #--------------------------------------------------------------------------
  156.   alias mog_scope_ex_show_normal_animation show_normal_animation
  157.   def show_normal_animation(targets, animation_id, mirror = false)
  158.       if [email protected]_target.nil? and [email protected]_target.dead?
  159.           p_targets = []
  160.           item = @subject.current_action.item rescue nil
  161.           if !item.nil? and item.note =~ /<Unique Animation>/
  162.              p_targets.push(@subject.primary_target)
  163.           else
  164.              targets.each do |t| ; p_targets.push(t) if $game_temp.scope_ex_data[6] == t ; end
  165.              targets.each do |t| ; p_targets.push(t) if $game_temp.scope_ex_data[6] != t ; end
  166.           end
  167.           targets = p_targets ; @subject.primary_target = nil
  168.       end  
  169.       mog_scope_ex_show_normal_animation(targets, animation_id, mirror)
  170.   end  

  171. end

  172. #==============================================================================
  173. # ■ Game Action
  174. #==============================================================================
  175. class Game_Action
  176.   include MOG_SCOPE_EX
  177.   
  178.   #--------------------------------------------------------------------------
  179.   # ● Make Targets
  180.   #--------------------------------------------------------------------------
  181.   def make_targets
  182.       if $imported[:mog_battler_motion] != nil and $imported[:mog_sprite_actor] != nil
  183.          return @subject.pre_target if @subject != nil and @subject.pre_target != nil
  184.       end
  185.       if !forcing && subject.confusion?
  186.          confusion_target
  187.       elsif item.for_opponent?
  188.          targets_for_opponents
  189.       elsif item.for_friend?
  190.          targets_for_friends
  191.       else
  192.         []
  193.       end
  194.   end  
  195.   
  196.   #--------------------------------------------------------------------------
  197.   # ● Confusion Target
  198.   #--------------------------------------------------------------------------
  199.   def confusion_target
  200.       case subject.confusion_level
  201.       when 1 ; new_targets = make_new_targets([opponents_unit.random_target],0)
  202.       when 2
  203.           if rand(2) == 0
  204.             new_targets = make_new_targets([opponents_unit.random_target],0)
  205.           else
  206.             new_targets = make_new_targets([friends_unit.random_target],1)
  207.           end
  208.       else
  209.            new_targets = make_new_targets([friends_unit.random_target],1)  
  210.       end
  211.   end
  212.   
  213.   #--------------------------------------------------------------------------
  214.   # ● Targets for Opponents
  215.   #--------------------------------------------------------------------------
  216.   def targets_for_opponents
  217.       if item.for_random?
  218.          org_target = Array.new(item.number_of_targets) { opponents_unit.random_target }
  219.          new_targets = make_new_targets(org_target,0)
  220.       elsif item.for_one?
  221.          num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
  222.          if @target_index < 0
  223.             org_target = [opponents_unit.random_target] * num
  224.             new_targets = make_new_targets(org_target,0)
  225.          else
  226.             org_target = [opponents_unit.smooth_target(@target_index)] * num
  227.             new_targets = make_new_targets(org_target,0)
  228.          end
  229.        else
  230.           return (opponents_unit.alive_members + friends_unit.alive_members) if all_targets
  231.           return opponents_unit.alive_members
  232.       end
  233.   end
  234.   
  235.   #--------------------------------------------------------------------------
  236.   # ● All Targets
  237.   #--------------------------------------------------------------------------
  238.   def all_targets
  239.       return true if @item.object.note =~ /<All Targets>/
  240.       return false
  241.   end
  242.   
  243.   #--------------------------------------------------------------------------
  244.   # ● Targets for Allies
  245.   #--------------------------------------------------------------------------
  246.   def targets_for_friends
  247.     if item.for_user?
  248.        new_targets = make_new_targets([subject],1)      
  249.     elsif item.for_dead_friend?
  250.         if item.for_one?
  251.            org_target = [friends_unit.smooth_dead_target(@target_index)]
  252.            new_targets = make_new_targets(org_target,2)   
  253.         else
  254.            org_target = friends_unit.dead_members
  255.            new_targets = make_new_targets(org_target,2)           
  256.         end
  257.     elsif item.for_friend?
  258.          if item.for_one?
  259.             org_target = [friends_unit.smooth_target(@target_index)]
  260.             new_targets = make_new_targets(org_target,1)   
  261.          else
  262.             return (opponents_unit.alive_members + friends_unit.alive_members) if all_targets
  263.             return friends_unit.alive_members
  264.          end
  265.     end
  266.   end
  267.   
  268.   #--------------------------------------------------------------------------
  269.   # ● Make New Targets
  270.   #--------------------------------------------------------------------------
  271.   def make_new_targets(target,type = 0)
  272.       targets = [] ; @subject.primary_target = nil
  273.       if all_targets
  274.         members = (opponents_unit.alive_members + friends_unit.alive_members) if type <= 1
  275.         members = friends_unit.dead_members if type == 2      
  276.       else
  277.         members = opponents_unit.alive_members if type == 0
  278.         members = friends_unit.alive_members if type == 1
  279.         members = friends_unit.dead_members if type == 2
  280.       end
  281.       for t in target
  282.           for m in members
  283.               targets.push(m) if t == m
  284.               next if t == m
  285.              (targets.push(m); m.sprite_size[2] = false) if scope_range?(t,m)            
  286.           end
  287.       end
  288.       return targets
  289.   end
  290.   
  291.   #--------------------------------------------------------------------------
  292.   # ● 范围
  293.   #--------------------------------------------------------------------------
  294.   def scope_range?(user,target)
  295.       @subject.primary_target = user
  296.       t_r2 = [user.screen_x, user.screen_y] rescue nil
  297.       t_r3 = [target.screen_x, target.screen_y] rescue nil
  298.       return false if t_r2 == nil or t_r3 == nil
  299.       s_r = [0,0,0,0] ; s_p = [0,0]
  300.       s_r = [$1.to_i.abs,$2.to_i.abs,$3.to_i.abs,$4.to_i.abs] if @item.object.note =~ /<Scope Range = (\d+) - (\d+) - (\d+) - (\d+)>/
  301.       return false if s_r == [0,0,0,0]
  302.       if SCOPE_TYPE > 0
  303.          s_p = [target.sprite_size[0] / 2, target.sprite_size[1]]
  304.          s_p[0] = s_p[0] * SPRITE_SIZE_RANGE[0] / 100
  305.          s_p[1] = s_p[1] * SPRITE_SIZE_RANGE[1] / 100
  306.       end
  307.       return false if !t_r3[0].between?(t_r2[0] - (s_r[0] + s_p[0]), t_r2[0] + (s_r[1] + s_p[0]))
  308.       return false if !t_r3[1].between?(t_r2[1] - s_r[2], t_r2[1] + s_r[3] + s_p[1])
  309.       return true
  310.   end  
  311.   
  312. end

  313. #==============================================================================
  314. # ■ Window_BattleActor
  315. #==============================================================================
  316. class Window_BattleActor < Window_BattleStatus
  317.   
  318.   #--------------------------------------------------------------------------
  319.   # ● Update
  320.   #--------------------------------------------------------------------------  
  321.   alias mog_scope_ex_actor_update update
  322.   def update
  323.       mog_scope_ex_actor_update
  324.       update_scex_target_actor if update_scex_target_actor?
  325.   end
  326.   
  327.   #--------------------------------------------------------------------------
  328.   # ● Update Scex Target Actor
  329.   #--------------------------------------------------------------------------  
  330.   def update_scex_target_actor?
  331.       if $imported[:mog_atb_system]
  332.          return false if $game_temp.battle_end
  333.          return false if BattleManager.actor.nil?
  334.       end   
  335.       return self.active
  336.   end
  337.   
  338.   #--------------------------------------------------------------------------
  339.   # ● Update Scex Target Actor
  340.   #--------------------------------------------------------------------------  
  341.   def update_scex_target_actor
  342.       $game_temp.scope_ex_data[0] = $game_party.members[self.index]
  343.   end

  344. end

  345. #==============================================================================
  346. # ■ Window_BattleEnemy
  347. #==============================================================================
  348. class Window_BattleEnemy < Window_Selectable

  349.   #--------------------------------------------------------------------------
  350.   # ● Update
  351.   #--------------------------------------------------------------------------  
  352.   alias mog_scope_ex_enemy_update update
  353.   def update
  354.       mog_scope_ex_enemy_update
  355.       update_scex_target_enemy if update_scex_target_enemy?
  356.   end
  357.   
  358.   #--------------------------------------------------------------------------
  359.   # ● Update Scex Target Enemy
  360.   #--------------------------------------------------------------------------  
  361.   def update_scex_target_enemy?
  362.       if $imported[:mog_atb_system]
  363.          return false if $game_temp.battle_end
  364.          return false if BattleManager.actor.nil?
  365.       end   
  366.       return self.active
  367.   end
  368.   
  369.   #--------------------------------------------------------------------------
  370.   # ● Update Scex Target Enemy
  371.   #--------------------------------------------------------------------------  
  372.   def update_scex_target_enemy
  373.       $game_temp.scope_ex_data[0] = $game_troop.alive_members[self.index]
  374.   end     
  375.       
  376. end

  377. #==============================================================================
  378. # ■ Sprite Battler
  379. #==============================================================================
  380. class Sprite_Battler < Sprite_Base
  381.   
  382.   #--------------------------------------------------------------------------
  383.   # ● Update
  384.   #--------------------------------------------------------------------------  
  385.   alias mog_scope_ex_sbattler_update update
  386.   def update
  387.       mog_scope_ex_sbattler_update
  388.       $game_temp.scope_ex_data[1] = self if update_scope_ex_target?
  389.   end
  390.   
  391.   #--------------------------------------------------------------------------
  392.   # ● Update Scope EX Target
  393.   #--------------------------------------------------------------------------  
  394.   def update_scope_ex_target?
  395.       return false if @battler.nil? or $game_temp.scope_ex_data[0].nil?
  396.       return false if @battler != $game_temp.scope_ex_data[0]
  397.       return false if $imported[:mog_sprite_actor] and [email protected]_sprite_visiblle
  398.       return true
  399.   end
  400.   
  401. end

  402. #==============================================================================
  403. # ■ Window Selectable
  404. #==============================================================================
  405. class Window_Selectable < Window_Base  

  406.   #--------------------------------------------------------------------------
  407.   # ● Process OK
  408.   #-------------------------------------------------------------------------
  409.   alias mog_scope_ex_process_ok process_ok
  410.   def process_ok
  411.       mog_scope_ex_process_ok
  412.       process_scope_ex if process_scope_ex?
  413.   end
  414.   
  415.   #--------------------------------------------------------------------------
  416.   # ● Process Scope EX?
  417.   #-------------------------------------------------------------------------
  418.   def process_scope_ex?
  419.       return false if !SceneManager.scene_is?(Scene_Battle)
  420.       return false if BattleManager.actor.nil?
  421.       return false if !current_item_enabled?
  422.       return true if self.is_a?(Window_BattleSkill)
  423.       return true if self.is_a?(Window_BattleItem)
  424.       return true if self.is_a?(Window_ActorCommand) and self.index == 0
  425.       return false
  426.   end

  427.   #--------------------------------------------------------------------------
  428.   # ● Process Scope EX
  429.   #-------------------------------------------------------------------------
  430.   def process_scope_ex   
  431.       item = @data[index] rescue nil      
  432.       item = $data_skills[BattleManager.actor.attack_skill_id] rescue nil if self.is_a?(Window_ActorCommand)
  433.       $game_temp.scope_ex_data[4] = nil ; $game_temp.scope_ex_data[5] = false
  434.       return if item == nil
  435.       $game_temp.scope_ex_data[4] = item ; $game_temp.scope_ex_data[5] = true      
  436.       if item.note=~ /<Scope Range = (\d+) - (\d+) - (\d+) - (\d+)>/
  437.          $game_temp.scope_ex_data[2] = [$1.to_i.abs,$2.to_i.abs,$3.to_i.abs,$4.to_i.abs]
  438.          $game_temp.scope_ex_data[3] = [($1.to_i.abs + $2.to_i.abs).abs, ($3.to_i.abs + $4.to_i.abs)]
  439.       elsif MOG_SCOPE_EX::SPRITE_ALL_TARGETS_SCOPE and [2,6,8].include?(item.scope)
  440.          $game_temp.scope_ex_data[2] = [Graphics.width,0,Graphics.height,0]
  441.          $game_temp.scope_ex_data[3] = [Graphics.width * 2, Graphics.height * 2]
  442.       else  
  443.          $game_temp.scope_ex_data[2] = [] ; $game_temp.scope_ex_data[3] = []
  444.          $game_temp.scope_ex_data[4] = nil ; $game_temp.scope_ex_data[5] = true
  445.       end
  446.   end  

  447. end

  448. #==============================================================================
  449. # ■ Spriteset Battle
  450. #==============================================================================
  451. class Spriteset_Battle
  452.   
  453.   include MOG_SCOPE_EX
  454.   
  455.   #--------------------------------------------------------------------------
  456.   # ● Initialize
  457.   #--------------------------------------------------------------------------  
  458.   alias mog_scope_ex_sprite_initialize initialize
  459.   def initialize
  460.       mog_scope_ex_sprite_initialize
  461.       create_sprite_scope if MOG_SCOPE_EX::SPRITE_SCOPE
  462.   end

  463.   #--------------------------------------------------------------------------
  464.   # ● Dispose
  465.   #--------------------------------------------------------------------------  
  466.   alias mog_scope_ex_sprite_dispose dispose
  467.   def dispose
  468.       mog_scope_ex_sprite_dispose
  469.       dispose_sprite_scope
  470.   end
  471.   
  472.   #--------------------------------------------------------------------------
  473.   # ● Update
  474.   #--------------------------------------------------------------------------  
  475.   alias mog_scope_ex_sprite_update update
  476.   def update
  477.       mog_scope_ex_sprite_update
  478.       update_sprite_scope
  479.   end
  480.   
  481.   #--------------------------------------------------------------------------
  482.   # ● Create Sprite Scope
  483.   #--------------------------------------------------------------------------  
  484.   def create_sprite_scope
  485.       @sprite_scope = Sprite.new ; @sprite_scope.bitmap = Bitmap.new(1,1)
  486.       @sprite_scope.viewport = @viewport1
  487.       @sprite_scope.z = SPRITE_SCOPE_Z ; @scope_fade = 0
  488.   end   

  489.   #--------------------------------------------------------------------------
  490.   # ● Set Scope Color
  491.   #--------------------------------------------------------------------------  
  492.   def set_scope_color(type)
  493.       if type == 0
  494.          return Color.new(ALLY_SCOPE_COLOR[0],ALLY_SCOPE_COLOR[1],ALLY_SCOPE_COLOR[2],SPRITE_SCOPE_OPACITY)
  495.       else
  496.          return Color.new(ENEMY_SCOPE_COLOR[0],ENEMY_SCOPE_COLOR[1],ENEMY_SCOPE_COLOR[2],SPRITE_SCOPE_OPACITY)
  497.       end   
  498.   end

  499.   #--------------------------------------------------------------------------
  500.   # ● Dispose Sprite Scope
  501.   #--------------------------------------------------------------------------  
  502.   def dispose_sprite_scope
  503.       return if @sprite_scope.nil?
  504.       @sprite_scope.bitmap.dispose ; @sprite_scope.dispose
  505.       $game_temp.clear_scope_ex
  506.   end  
  507.   
  508.   #--------------------------------------------------------------------------
  509.   # ● Refresh Scope EX
  510.   #--------------------------------------------------------------------------  
  511.   def refresh_scope_ex
  512.       sx = $game_temp.scope_ex_data[3][0]
  513.       sy = $game_temp.scope_ex_data[3][1]
  514.       @sprite_scope.zoom_x = sx
  515.       @sprite_scope.zoom_y = sy
  516.       if $game_temp.scope_ex_data[4].scope > 6
  517.          @sprite_scope.bitmap.fill_rect(Rect.new(0,0,200,200),set_scope_color(0))
  518.       else
  519.          @sprite_scope.bitmap.fill_rect(Rect.new(0,0,200,200),set_scope_color(1))
  520.       end  
  521.       $game_temp.scope_ex_data[5] = false
  522.   end
  523.   
  524.   #--------------------------------------------------------------------------
  525.   # ● Refresh Scope EX
  526.   #--------------------------------------------------------------------------  
  527.   def refresh_scope_ex?
  528.       return false if $game_temp.scope_ex_data[2].empty?
  529.       return false if $game_temp.scope_ex_data[4].nil?
  530.       return $game_temp.scope_ex_data[5]
  531.   end
  532.   
  533.   #--------------------------------------------------------------------------
  534.   # ● Update Sprite Scope
  535.   #--------------------------------------------------------------------------  
  536.   def update_sprite_scope
  537.       return if @sprite_scope.nil?
  538.       @sprite_scope.visible = sprite_scope_visible?
  539.       return if !@sprite_scope.visible
  540.       refresh_scope_ex if refresh_scope_ex?
  541.       @sprite_scope.x = $game_temp.scope_ex_data[1].x - $game_temp.scope_ex_data[2][0]
  542.       @sprite_scope.y = $game_temp.scope_ex_data[1].y - $game_temp.scope_ex_data[2][2]
  543.       update_sprite_scope_fade if SPRITE_SCOPE_BLINK_EFFECT
  544.       $game_temp.scope_ex_data[0] = nil ; $game_temp.scope_ex_data[1] = nil
  545.   end
  546.   
  547.   #--------------------------------------------------------------------------
  548.   # ● Update Sprite Scope
  549.   #--------------------------------------------------------------------------  
  550.   def update_sprite_scope_fade      
  551.       @scope_fade += 1
  552.       case @scope_fade
  553.       when 0..30 ; @sprite_scope.opacity -= 5
  554.       when 31..59 ; @sprite_scope.opacity += 5
  555.       else ; @sprite_scope.opacity = 255 ; @scope_fade = 0      
  556.       end
  557.   end
  558.   
  559.   #--------------------------------------------------------------------------
  560.   # ● Sprite Scope Visible?
  561.   #--------------------------------------------------------------------------  
  562.   def sprite_scope_visible?
  563.       return false if $game_temp.scope_ex_data[1].nil?
  564.       return false if $game_temp.scope_ex_data[2].empty?
  565.       return true
  566.   end
  567.   
  568. end
复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2025-7-20 05:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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