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

Project1

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

[RMVA发布] (原创)多帧4_8方图,4_8向行走 + 待机跑步多寻路等【v1.13】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
103 小时
注册时间
2013-12-12
帖子
200
跳转到指定楼层
发表于 2013-12-21 12:00:38 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 rmav 于 2014-2-14 12:37 编辑

概述:
  1.支持rmVA原格式
  2.支持自定义格式:如多帧、8方图、显示高低等
  3.无论4方图或8方图,都可4向或8向行走(可选其一)
  4.有火车拥挤处理:当人物够宽或够高时会有适当的调整,免得总是挤在一起
  5.障碍踏步:多帧大图,用键盘行走,要是没有障碍踏步的话,手感会很差。
  6.动态待机:当人物停下时,会播放待机动画(包括火车)《包括事件人物》
  7.替换图片:使玩家可替换不同格式的行走图。使行走图的识别与格式串脱钩
  8.事件移动:多帧事件可连续移动把帧数全展现出来
  9.跑步切换:跑步图、行走图、待机图依状态切换。领队、火车、事件均可
  10.loading界面:当场景中有用到多个较大素材时(如3状态大图人物),进行loading
  11.事件寻路: 定点,绕行,效率可调,多事件寻路也可保障帧率与单事件差不多
   【5678910.11】这7个功能可选
  详细请看各插件说明


  应用举例:
  使用商业素材行走图
  使用rmXP行走图

  ☆注意☆:没用到的功能请全部关闭,可提高兼容性及避免没必要的效率影响
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
示例工程v1.137(不含dll) walkDemo_v1.137.rar (1.68 MB, 下载次数: 2730)   
(已清除46楼以内所报bug)
v1.137      :  加入事件动画loading;loading中无音乐,完后播放。
v1.136     : 若在路径中发生意外(如地震,板块漂移什么的- -!),重新寻路
v1.135      :  loading编辑器中设置的所有角色
v1.134      :  在demo中演示多人寻路
v1.132      :  调整了下函数,不用文件名判断[寻路插件]
v1.13        :  局部寻路也进行调度并修复一个被不断快速堵截而跳出的bug[寻路插件]
v1.12        :  调整首次全地图寻路失败后的寻路速度 [寻路插件]
v1.11        :  支持场所移动时loading [loading插件]
v1.1          :  加入寻路插件
v1.099      :  加入图块组loading [loading插件]
v1.098      :  修复bug:Fiber dead ;自动加载多远景  [ loading插件]
v1.097      :  添加一个间隔选项,以便大游戏释放缓存及reloading [loading插件]
v1.096      :  loading进度平滑显示
v1.095      :  加入loading插件
v1.09        :  加入跑步插件
v1.081      :  可设置某事件一直移动不停止;加入单行图8向移动
v1.08       : 给几个移动行为加上8向
                    把待机子插件中事件自动移动,分离出到另一个子插件中
v1.062      :  更新事件人物随机移动
v1.061     : 修正bug:事件人物不能固定踏步
v1.06        :  事件人物随机移动时,碰到障碍进入待机[前提:开启事件人物待机动画]
v1.051      :  改变事件人物的随机移动行为,使事件人物待机效果可较好的体现
v1.05更新: 碰到障碍停下来时,立即到默认帧处,而不是逐渐到默认帧处
v1.05更新: 修正bug:事件消除时,事件人物待机图还存在
v1.04更新:支持打包加密(默认关闭)
v1.036更新:添加全人物待机动画开关,如事件人物(默认关闭)
v1.035更新:初步整合仿空轨战棋v1.48 (不包括战斗行走)    [在整合插件中]
v1.03更新: Window_Base直接可绘制自定义行走图,避免在默认情况下有些窗体上的行走图显示不全,如读档界面
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【以后有更新,只更新示例工程,不更新各楼中的代码了- -!】

由于有较多的使用说明,所以分在子插件中,方便查看与管理
楼层说明
  1楼:行走插件 v1.0
  2楼:替换插件 v1.0
  3楼:屏蔽插件 v1.0
  6楼:整合插件 v1.0  (若使用Sion鼠标脚本,直接用Sion鼠标帖中的8方移动补丁即可)
11楼:动态待机插件 v1.0

(配套插件需要放在主插件之下)

与鼠标插件整合的方法:
1.先把《多帧4_8方图,4_8向行走》插件放在鼠标插件之上,试试看能否正常
2.若1不正常,可尝试放在鼠标插件之下,并参考6楼方法。



#==============================================================================
#   ■ 多帧4_8方图,4_8向行走
#
#   支持4方图:兼容rmVA原格式图片,4向8向行走
#   支持8方图:从上到下方向为:正、左、右、背、左下、右下、左上、右上
#             对应小键盘:24681379
#   支持开火车,有一定范围的拥挤处理。支持4、8方混合开
#   按住方向键时,碰到障碍物会踏步(可选)
#   可选4、8向行走,在代码开头设置,默认为8向行走
#------------------------------------------------------------------------------
#使用说明:对原rmVA不支持的格式,需要对文件名实行命名规则
#         1.png图片,须仅包含一个人物的全套行走
#         2.图片内容,从左到右,小于99帧;
#                    从上到下8个方向:正、左、右、背、左下、右下、左上、右上
#         3.文件命名
#           文件名:角色名+格式串+.png
#                  name@D#DD%DD.png   其中%DD可选
#          @D表示png文件中, 每一列有多少个图。以一位数表示,如8,即8个方向
#          #DD表示png文件中,每一行有多少个图。以两位数表示,如06或6,即6帧
#          %DD,可选,调整角色在游戏画面中的高度,单位像素。如20,即调低20像素
#          说明:因为如果是精美8方图的话,一般有带阴影,而阴影会比脚低
#                这时可通过%DD来调整人物在画面中的高低
#                有些图片空白过多,也可用此来调整,不用弄PS。
#
#小技巧:★可新建一个工程,以RMVA默认的角色领队开火车,可看出是否对齐
#        ★若人物在开火车中挤紧在一起,把其每帧的图片加宽,如>=68像素即可。
#注意:  ☆rmVA原格式行走图,停下来会停在第2帧(这是rmVA的默认方法)
#        ☆自定义格式行走图,停下来会停在第1帧
#        ☆格式串前的name必须在characters文件夹下的png文件中唯一
#------------------------------------------------------------------------------
#  by rmav (有任何问题请毫无顾忌滴提出)
#
#   v1.0
#==============================================================================

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. #   ■ 多帧4_8方图,4_8向行走
  4. #
  5. #   支持4方图:兼容rmVA原格式图片,4向8向行走
  6. #   支持8方图:从上到下方向为:正、左、右、背、左下、右下、左上、右上
  7. #             对应小键盘:24681379
  8. #   支持开火车,有一定范围的拥挤处理。支持4、8方混合开
  9. #   按住方向键时,碰到障碍物会踏步(可选)
  10. #   可选4、8向行走,在代码开头设置,默认为8向行走
  11. #------------------------------------------------------------------------------
  12. #使用说明:对原rmVA不支持的格式,需要对文件名实行命名规则
  13. #         1.png图片,须仅包含一个人物的全套行走
  14. #         2.图片内容,从左到右,小于99帧;
  15. #                    从上到下8个方向:正、左、右、背、左下、右下、左上、右上
  16. #         3.文件命名
  17. #           文件名:角色名+格式串+.png
  18. #                  name@D#DD%DD.png   其中%DD可选
  19. #          @D表示png文件中, 每一列有多少个图。以一位数表示,如8,即8个方向
  20. #          #DD表示png文件中,每一行有多少个图。以两位数表示,如06或6,即6帧
  21. #          %DD,可选,调整角色在游戏画面中的高度,单位像素。如20,即调低20像素
  22. #          说明:因为如果是精美8方图的话,一般有带阴影,而阴影会比脚低
  23. #                这时可通过%DD来调整人物在画面中的高低
  24. #                有些图片空白过多,也可用此来调整,不用弄PS。
  25. #
  26. #小技巧:★可新建一个工程,以RMVA默认的角色领队开火车,可看出是否对齐
  27. #        ★若人物在开火车中挤紧在一起,把其每帧的图片加宽,如>=68像素即可。
  28. #注意:  ☆rmVA原格式行走图,停下来会停在第2帧(这是rmVA的默认方法)
  29. #        ☆自定义格式行走图,停下来会停在第1帧
  30. #        ☆格式串前的name必须在characters文件夹下的png文件中唯一
  31. #------------------------------------------------------------------------------
  32. #  by rmav (有任何问题请毫无顾忌滴提出)
  33. #
  34. #   v1.0
  35. #==============================================================================
  36. $imported ||= {}
  37. $imported[:rmav_walk] = true
  38. module Rmav
  39.   #---------行走选项设置---------#
  40.   Opt_walk={
  41.       dir8_on:     true,   #false则4向行走,本插件系列其他功能仍可以用
  42.       step_ext_on: true    #按着方向键碰到障碍物踏步,若为false则静止(rmVA默认是静止的)
  43.   }
  44.  
  45.  
  46.   INPUT_HV=[[0,0],[4,2],[0,2],[6,2],[4,0],[0,0],[6,0],[4,8],[0,8],[6,8]]
  47.  
  48.   #--------------------------------------------------------------------------
  49.   # ● 缓存文件夹中所有png文件名
  50.   #--------------------------------------------------------------------------
  51.   def self.loadFolder(folderName)
  52.     @cache_folder||={}
  53.     folderName.gsub!(/\\/,'/')
  54.     folderName+='/' if folderName[-1]!='/'
  55.     folderName.downcase!
  56.     unless @cache_folder.include?(folderName)
  57.       @cache_folder[folderName]=[]
  58.       Dir.glob(folderName+"*.png"){|f|
  59.         @cache_folder[folderName]<<f.split('/')[-1].chomp!('.png').downcase
  60.       }
  61.     end
  62.     @cache_folder[folderName]   
  63.   end
  64. end
  65.  
  66. class Sprite_Character  
  67.   #--------------------------------------------------------------------------
  68.   # ● 设置角色的位图(n方向,n帧)
  69.   #--------------------------------------------------------------------------
  70.   alias_method :set_character_bitmap_org_rmav, :set_character_bitmap
  71.   def set_character_bitmap
  72.     self.bitmap = Cache.character(@character_name)
  73.     @fmt_sign = @character_name[/\@(\d{1,2})\#(\d{1,2})(\%(\d{1,2}))?/]      
  74.     if @fmt_sign
  75.       @fmt_sign=[$1.to_i,$2.to_i,$4.to_i]
  76.  
  77.       @cw = bitmap.width / @fmt_sign[1]   
  78.       @ch = bitmap.height / @fmt_sign[0]  
  79.       self.ox = @cw / 2
  80.       self.oy = @ch-@fmt_sign[2]  
  81.     else
  82.       set_character_bitmap_org_rmav
  83.     end
  84.  
  85.     if @character
  86.       @character.cw=@cw
  87.       @character.ch=@ch
  88.       @character.fmt_sign=@fmt_sign
  89.       @character.original_pattern=0 if @fmt_sign
  90.     end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 更新源矩形
  94.   #--------------------------------------------------------------------------
  95.   def update_src_rect
  96.     if @tile_id == 0
  97.       index = @character.character_index
  98.       pattern = @character.pattern < (@fmt_sign?@fmt_sign[1]:3) \
  99.                 ? @character.pattern : 1
  100.       sx = (index % 4 * 3 + pattern) * @cw
  101.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  102.  
  103.       case @character.direction
  104.         when 1; sy=@fmt_sign?(@fmt_sign[0]==4?0:4)*@ch:(index / 4 * 4 ) * @ch
  105.         when 3; sy=@fmt_sign?(@fmt_sign[0]==4?0:5)*@ch:(index / 4 * 4 ) * @ch
  106.         when 7; sy=@fmt_sign?(@fmt_sign[0]==4?3:6)*@ch:(index / 4 * 4+3 ) * @ch
  107.         when 9; sy=@fmt_sign?(@fmt_sign[0]==4?3:7)*@ch:(index / 4 * 4+3 ) * @ch
  108.       end
  109.       self.src_rect.set(sx, sy, @cw, @ch)
  110.     end
  111.   end
  112.  
  113. end
  114.  
  115.  
  116.  
  117.  
  118. class Game_Player
  119. if Rmav::Opt_walk[:dir8_on]
  120.   #--------------------------------------------------------------------------
  121.   # ● 由方向键移动,8方向
  122.   #--------------------------------------------------------------------------
  123.   def move_by_input
  124.     return if !movable? || $game_map.interpreter.running?
  125.     input=Input.dir8
  126.     move_diagonal(*Rmav::INPUT_HV[input]) if input > 0
  127.   end
  128. end
  129.  
  130.   #--------------------------------------------------------------------------
  131.   # ● 更新步行/踏步动画
  132.   #--------------------------------------------------------------------------
  133.   alias_method :update_animation_org_rmav,:update_animation
  134.   def update_animation
  135.     if stopping? && @stop_count<1
  136.       @step_ext_anime=true
  137.     else
  138.       @step_ext_anime=false
  139.     end
  140.     super
  141.   end
  142. end
  143.  
  144.  
  145.  
  146. class Game_CharacterBase
  147.   attr_accessor :cw,:ch,:fmt_sign,:original_pattern,:step_ext_anime
  148.   alias_method :characterBase_init_org_rmav, :initialize
  149.   def initialize
  150.     characterBase_init_org_rmav
  151.     @cw=@ch=0
  152.     @fmt_sign=nil
  153.     @step_ext_anime=false
  154.   end
  155.  
  156.  
  157.   #--------------------------------------------------------------------------
  158.   # ● 斜向移动
  159.   #     horz : 横向(4 or 6)
  160.   #     vert : 纵向(2 or 8)
  161.   #--------------------------------------------------------------------------
  162.   alias_method :charBase_move_diagonal_org_rmav, :move_diagonal
  163.   def move_diagonal(horz, vert, turn_ok = true)
  164.     unless turn_ok
  165.       charBase_move_diagonal_org_rmav(horz, vert)
  166.       return
  167.     end
  168.     @move_succeed = diagonal_passable?(x, y, horz, vert)
  169.     if @move_succeed
  170.       set_direction(Rmav::INPUT_HV.index([horz, vert]))
  171.       @x = $game_map.round_x_with_direction(@x, horz)
  172.       @y = $game_map.round_y_with_direction(@y, vert)
  173.       @real_x = $game_map.x_with_direction(@x, reverse_dir(horz))
  174.       @real_y = $game_map.y_with_direction(@y, reverse_dir(vert))
  175.       increase_steps
  176.     elsif turn_ok
  177.       set_direction(Rmav::INPUT_HV.index([horz, vert]))
  178.       check_event_trigger_touch_front
  179.     end
  180.   end
  181.  
  182.  
  183.   #--------------------------------------------------------------------------
  184.   # ● 更新动画图案
  185.   #--------------------------------------------------------------------------
  186.   def update_anime_pattern
  187.     if !@step_anime && @stop_count > 0
  188.       @pattern = @original_pattern
  189.     else
  190.       @pattern = (@pattern + 1) % (@fmt_sign?@fmt_sign[1]:4)
  191.     end
  192.   end
  193.  
  194.   #--------------------------------------------------------------------------
  195.   # ● 更新动画计数
  196.   #--------------------------------------------------------------------------
  197.   alias_method :update_anime_count_org_rmav,:update_anime_count
  198.   def update_anime_count
  199.     if Rmav::Opt_walk[:step_ext_on] && !(moving? && @walk_anime) && @step_ext_anime
  200.       @anime_count += 1      
  201.     else
  202.       update_anime_count_org_rmav
  203.     end
  204.   end
  205.  
  206.  
  207. end
  208.  
  209.  
  210.  
  211. class Game_Follower
  212.   attr_accessor :gathering
  213.   alias_method :follower_initialize_org_rmav, :initialize
  214.   def initialize(member_index, preceding_character)
  215.     follower_initialize_org_rmav(member_index, preceding_character)
  216.     @gathering=false
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● 追随带队角色
  220.   #--------------------------------------------------------------------------
  221.   def chase_preceding_character
  222.     unless moving?
  223.       sx = distance_x_from(@preceding_character.x)
  224.       sy = distance_y_from(@preceding_character.y)
  225.  
  226.       dx_pix=[(@preceding_character.cw+@cw)/2, 79].min
  227.  
  228.       if !@gathering && dx_pix > sx.abs*32+16
  229.         if sy>0
  230.           return  if (@ch>32+16&&sy<2)
  231.         elsif sy<0
  232.           return if (@preceding_character.ch>32+16&&sy.abs<2)
  233.         else
  234.           return
  235.         end        
  236.       end
  237.  
  238.       if sx != 0 && sy != 0
  239.         move_diagonal(sx > 0 ? 4 : 6, sy > 0 ? 8 : 2)
  240.       elsif sx != 0
  241.         move_straight(sx > 0 ? 4 : 6)
  242.       elsif sy != 0
  243.         move_straight(sy > 0 ? 8 : 2)
  244.       end
  245.     end
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● 更新画面
  249.   #--------------------------------------------------------------------------
  250.   alias_method :update_org_rmav,:update
  251.   def update
  252.     @step_ext_anime = $game_player.step_ext_anime
  253.     @stop_count=0  if @step_ext_anime
  254.     update_org_rmav
  255.   end
  256. end
  257.  
  258.  
  259. class Game_Followers
  260.   #--------------------------------------------------------------------------
  261.   # ● 集合
  262.   #--------------------------------------------------------------------------
  263.   alias_method :gather_org_rmav,:gather
  264.   def gather
  265.     gather_org_rmav
  266.     visible_folloers.each {|follower| follower.gathering=true }
  267.   end
  268.  
  269.   #--------------------------------------------------------------------------
  270.   # ● 判定是否集合完毕
  271.   #--------------------------------------------------------------------------
  272.   alias_method :gather_org_rmav?,:gather?
  273.   def gather?
  274.     ok = gather_org_rmav?
  275.     if ok
  276.       visible_folloers.each {|follower| follower.gathering=false }
  277.     end
  278.     ok
  279.   end
  280. end


提供一个漂亮模特供展示,把图片另存为beauty@8#06%28.png放入工程charactors文件夹下





有什么问题,请大家随便指出,能不能解决那是另一回事{:2_276:}

deleted.rar

75 Bytes, 下载次数: 460

评分

参与人数 4星屑 +452 梦石 +1 收起 理由
一摸多汁 + 60
Fakmab + 2 楼主的ID很好
sszny + 90 为什么我不能奖励好人卡55
Sion + 300 + 1 原创奖励

查看全部评分

Lv2.观梦者

梦石
0
星屑
946
在线时间
158 小时
注册时间
2016-8-25
帖子
117
68
发表于 2023-7-2 19:09:05 | 只看该作者
雖然已經過了很久,但仍然想感謝大大給我們帶來這麼強力的腳本!
別名:黑幽。
一個社恐的遊戲與畫圖愛好者。
路過的各位請關注一下~感謝~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2333
在线时间
275 小时
注册时间
2017-7-25
帖子
163
67
发表于 2017-8-18 12:26:02 | 只看该作者
{:2_272:}大佬把第一个八方向脚本移到另一个工程内,往左下方移动时角色消失怎么破
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2016-4-20
帖子
7
66
发表于 2016-8-16 06:40:55 | 只看该作者
请问,
1,我设置一个随机移动的npc  也有合适的待机图  ,可是与他对话的时候,他不用待机图,而是行走图,怎么办?
         
2.配合VA的xas系统时,假设我用的是H@8#08,待机是H_w@8#08,进行攻击的时候,因为XAS要使用战斗图,所以,加入攻击图H@8#08_Hit  ,问题就来了,这个攻击图不一定每次都被正确调用,大多时候反而用的是行走图,也就是第一个H@8#08,这个又怎么办呢?
另外,我试过不用待机脚本,就正确了。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
125 小时
注册时间
2013-10-25
帖子
56
65
发表于 2016-7-30 21:17:06 | 只看该作者
aa838320582 发表于 2016-6-16 23:13
不好意思啊挖个坟……
请问楼主大大,事件NPC的踏步动画无效的BUG修改了吗? ...

……啊再补充一下,进到一个新地图之后会踏步一下是bug吗
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
125 小时
注册时间
2013-10-25
帖子
56
64
发表于 2016-6-16 23:13:11 | 只看该作者
不好意思啊挖个坟……
请问楼主大大,事件NPC的踏步动画无效的BUG修改了吗?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
5029
在线时间
117 小时
注册时间
2015-8-6
帖子
2
63
发表于 2015-12-11 04:37:08 | 只看该作者
本帖最后由 渴死了 于 2015-12-11 05:12 编辑


行走图会被遮住,这个要怎么办呢?

还有那个屏蔽插件。
「-」这个符号可以放到标签后吗?不知为什么感觉放到后面的话加符号会快不少(。◕∀◕。)

待机图要怎么随机呢?
两种随机。
一:等待2秒,更换行走图1或2或3.随机「看书」「玩手机」「东张西望」   相似类 比较休闲
二:等待1秒,行走图1,等了2秒,行走图2。只等1秒的话,行走图「抽烟」,2秒「拔剑」   递进式 越来越火大什么的。


还有就是玩家自己执着的撞墙时,队友比起踏步动画改成待机比较好。

不知要怎么做……\\((( ゚д゚)))?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4571
在线时间
35 小时
注册时间
2014-2-13
帖子
3
62
发表于 2015-9-11 09:47:24 | 只看该作者
_(:_」 ∠)_来叫个使用报告……虽然说挖坟是不好的……嗯……打扰了【
『付丧神人偶』
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
3
星屑
65
在线时间
200 小时
注册时间
2008-7-8
帖子
180
61
发表于 2015-8-28 18:59:19 | 只看该作者
好东西 收下了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
60
发表于 2015-5-15 17:43:53 | 只看该作者
本帖最后由 lirn 于 2015-5-16 17:01 编辑

倒是有个小问题。那就是我用事件更改NPC的图像无效?

是开启了待机动画之后,用移动更改事件角色无效,一旦更改之后会马上复原。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20975
在线时间
4886 小时
注册时间
2014-12-22
帖子
1527

开拓者

59
发表于 2015-3-8 18:56:59 | 只看该作者
0o无疑o0 发表于 2015-3-8 17:09
我也遇到了这个问题,给角色加一个待机动画的png就可以解决了。如果你的人物没有待机动画,就把每一帧都 ...


我待机设定的是一段时间后待机,主要我是想把待机姿势当彩蛋的,就不想角色一直保持这样wwwwww 其实看久了我已经习惯了哈哈~稍微动一下也满萌的,你不说这是BUG别人说不定不会感觉到wwwww
谢谢你的回复~!下次我会用你的方法(这次我大概就这样了XD
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 23:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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