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

Project1

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

[已经解决] 求一个寻路脚本

[复制链接]

Lv2.观梦者

梦石
0
星屑
549
在线时间
59 小时
注册时间
2017-11-19
帖子
71
跳转到指定楼层
1
发表于 2018-4-28 19:30:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是可以让事件自动寻路去一个地方【坐标】
然后再执行事件的
我找了好多,不是不知道怎么用,他们总是整合再一起,不知道怎么回事,调用之后我就是用不了,(我是脚本渣)例如:https://rpg.blue/forum.php?mod=viewthread&tid=343005
或者无法到达坐标再执行事件的,例如:https://rpg.blue/forum.php?mod=viewthread&tid=246449
最好可以有个可以接触主角再执行另一个事件的功能

Lv4.逐梦者

梦石
1
星屑
14790
在线时间
2106 小时
注册时间
2017-9-28
帖子
662
2
发表于 2018-4-28 20:37:29 | 只看该作者
本帖最后由 Nil2018 于 2018-4-28 21:10 编辑

RUBY 代码复制
  1. #-------------------------------------------------------------------------------
  2. # * [ACE] Khas 寻路
  3. #-------------------------------------------------------------------------------
  4. # * By Khas Arcthunder - arcthunder.site40.net
  5. # * Version: 1.0 EN
  6. # * Released on: 28/02/2012
  7. #
  8. #-------------------------------------------------------------------------------
  9. # * Terms of Use
  10. #-------------------------------------------------------------------------------
  11. # When using any Khas script, you agree with the following terms:
  12. # 1. You must give credit to Khas;
  13. # 2. All Khas scripts are licensed under a Creative Commons license;
  14. # 3. All Khas scripts are for non-commercial projects. If you need some script
  15. #    for your commercial project (I accept requests for this type of project),
  16. #    send an email to [email protected] with your request;
  17. # 4. All Khas scripts are for personal use, you can use or edit for your own
  18. #    project, but you are not allowed to post any modified version;
  19. # 5. You can’t give credit to yourself for posting any Khas script;
  20. # 6. If you want to share a Khas script, don’t post the script or the direct
  21. #    download link, please redirect the user to arcthunder.site40.net
  22. # 7. You are not allowed to convert any of Khas scripts to another engine,
  23. #    such converting a RGSS3 script to RGSS2 or something of that nature.
  24. #
  25. # Check all terms at [url]http://arcthunder.site40.net/terms/[/url]
  26. #
  27. #-------------------------------------------------------------------------------
  28. # * Features
  29. #-------------------------------------------------------------------------------
  30. # Smart pathfinding
  31. # Fast Algorithm
  32. # Easy to use
  33. # Plug'n'Play
  34. # Game_Character objects compatible
  35. # Log tool
  36. #
  37. #-------------------------------------------------------------------------------
  38. # * 使用方法
  39. #-------------------------------------------------------------------------------
  40. # 使用脚本
  41. # find_path(id,x,y)
  42. #
  43. # id => -1玩家, 0本事件,x事件ID
  44. #
  45. # find_path(id,x,y,true)
  46. # 等待直到结束
  47. #
  48. # 如果你要启用寻路日志的功能, 请将"Log"设定为true.
  49. #
  50. #-------------------------------------------------------------------------------
  51. # * Register
  52. #-------------------------------------------------------------------------------
  53. $khas_awesome = [] if $khas_awesome.nil?
  54. $khas_awesome << ["Pathfinder",1.0]
  55. #-------------------------------------------------------------------------------
  56. # * Script
  57. #-------------------------------------------------------------------------------
  58. class Game_Interpreter
  59.   def find_path(char,fx,fy,wait=false)
  60.     $game_map.refresh if $game_map.need_refresh
  61.     character = get_character(char)
  62.     return if character.nil?
  63.     return unless Path_Core.runnable?(character,fx,fy)
  64.     path = Path_Core.run(character,fx,fy)
  65.     return if path.nil?
  66.     route = RPG::MoveRoute.new
  67.     route.repeat = false
  68.     route.wait = wait
  69.     route.skippable = true
  70.     route.list = []
  71.     path << 0x00
  72.     path.each { |code| route.list << RPG::MoveCommand.new(code)}
  73.     character.force_move_route(route)
  74.     @moving_character = character if wait
  75.   end
  76. end
  77. class Path
  78.   attr_accessor :axis
  79.   attr_accessor :from
  80.   attr_accessor :cost
  81.   attr_accessor :dir
  82.   def initialize(x,y,f,c,d)
  83.     @axis = [x,y]
  84.     @from = f
  85.     @cost = c
  86.     @dir = d
  87.   end
  88. end
  89. module Path_Core
  90.   Log = false #是否启用寻路日志
  91.   Directions = {[1,0] => 3,[-1,0] => 2,[0,-1] => 4,[0,1] => 1}
  92.   def self.runnable?(char,x,y)
  93.     return false unless $game_map.valid?(x,y)
  94.     return false if char.collide_with_characters?(x,y)
  95.     $game_map.all_tiles(x,y).each { |id|
  96.     flag = $game_map.tileset.flags[id]
  97.     next if flag & 0x10 != 0
  98.     return flag & 0x0f != 0x0f}
  99.     return false
  100.   end
  101.   def self.run(char,fx,fy)
  102.     return nil if char.x == fx && char.y == fy
  103.     st = Time.now
  104.     @char = char
  105.     @start = Path.new(@char.x,@char.y,nil,0,nil)
  106.     @finish = Path.new(fx,fy,nil,0,nil)
  107.     @list = []
  108.     @queue = []
  109.     @preference = ((@char.x-fx).abs > (@char.y-fy).abs ? 0x0186aa : 0x01d)
  110.     class << @list
  111.       def new_path?(path_class)
  112.         for path in self
  113.           return false if path.axis == path_class.axis
  114.         end
  115.         return true
  116.       end
  117.     end
  118.     class << @queue
  119.       def new_path?(path_class)
  120.         for path in self
  121.           return false if path.axis == path_class.axis
  122.         end
  123.         return true
  124.       end
  125.     end
  126.     if @preference & 0x02 == 0x02
  127.       @queue << Path.new(@char.x,@char.y+1,@start,1,[0,1]) if @char.passable?(@char.x,@char.y,2)
  128.       @queue << Path.new(@char.x,@char.y-1,@start,1,[0,-1]) if @char.passable?(@char.x,@char.y,8)
  129.       @queue << Path.new(@char.x+1,@char.y,@start,1,[1,0]) if @char.passable?(@char.x,@char.y,6)
  130.       @queue << Path.new(@char.x-1,@char.y,@start,1,[-1,0]) if @char.passable?(@char.x,@char.y,4)
  131.       @list << @start
  132.       loop do
  133.         break if @queue.empty?
  134.         @cpath = @queue[0]
  135.         if @cpath.axis == @finish.axis
  136.           @finish.cost = @cpath.cost
  137.           @finish.from = @cpath
  138.           break
  139.         end
  140.         @list << @cpath
  141.         @path_array = []
  142.         p1 = Path.new(@cpath.axis[0]+1,@cpath.axis[1],@cpath,@cpath.cost+1,[1,0])
  143.         p2 = Path.new(@cpath.axis[0]-1,@cpath.axis[1],@cpath,@cpath.cost+1,[-1,0])
  144.         p3 = Path.new(@cpath.axis[0],@cpath.axis[1]+1,@cpath,@cpath.cost+1,[0,1])
  145.         p4 = Path.new(@cpath.axis[0],@cpath.axis[1]-1,@cpath,@cpath.cost+1,[0,-1])
  146.         @path_array << p3 if @char.passable?(@cpath.axis[0],@cpath.axis[1],2) && @list.new_path?(p3) && @queue.new_path?(p3)
  147.         @path_array << p4 if @char.passable?(@cpath.axis[0],@cpath.axis[1],8) && @list.new_path?(p4) && @queue.new_path?(p4)
  148.         @path_array << p1 if @char.passable?(@cpath.axis[0],@cpath.axis[1],6) && @list.new_path?(p1) && @queue.new_path?(p1)
  149.         @path_array << p2 if @char.passable?(@cpath.axis[0],@cpath.axis[1],4) && @list.new_path?(p2) && @queue.new_path?(p2)
  150.         @path_array.each { |path| @queue << path }
  151.         @queue.delete(@cpath)
  152.       end
  153.     else
  154.       @queue << Path.new(@char.x+1,@char.y,@start,1,[1,0]) if @char.passable?(@char.x,@char.y,6)
  155.       @queue << Path.new(@char.x-1,@char.y,@start,1,[-1,0]) if @char.passable?(@char.x,@char.y,4)
  156.       @queue << Path.new(@char.x,@char.y+1,@start,1,[0,1]) if @char.passable?(@char.x,@char.y,2)
  157.       @queue << Path.new(@char.x,@char.y-1,@start,1,[0,-1]) if @char.passable?(@char.x,@char.y,8)
  158.       @list << @start
  159.       loop do
  160.         break if @queue.empty?
  161.         @cpath = @queue[0]
  162.         if @cpath.axis == @finish.axis
  163.           @finish.cost = @cpath.cost
  164.           @finish.from = @cpath
  165.           break
  166.         end
  167.         @list << @cpath
  168.         @path_array = []
  169.         p1 = Path.new(@cpath.axis[0]+1,@cpath.axis[1],@cpath,@cpath.cost+1,[1,0])
  170.         p2 = Path.new(@cpath.axis[0]-1,@cpath.axis[1],@cpath,@cpath.cost+1,[-1,0])
  171.         p3 = Path.new(@cpath.axis[0],@cpath.axis[1]+1,@cpath,@cpath.cost+1,[0,1])
  172.         p4 = Path.new(@cpath.axis[0],@cpath.axis[1]-1,@cpath,@cpath.cost+1,[0,-1])
  173.         @path_array << p1 if @char.passable?(@cpath.axis[0],@cpath.axis[1],6) && @list.new_path?(p1) && @queue.new_path?(p1)
  174.         @path_array << p2 if @char.passable?(@cpath.axis[0],@cpath.axis[1],4) && @list.new_path?(p2) && @queue.new_path?(p2)
  175.         @path_array << p3 if @char.passable?(@cpath.axis[0],@cpath.axis[1],2) && @list.new_path?(p3) && @queue.new_path?(p3)
  176.         @path_array << p4 if @char.passable?(@cpath.axis[0],@cpath.axis[1],8) && @list.new_path?(p4) && @queue.new_path?(p4)
  177.         @path_array.each { |path| @queue << path }
  178.         @queue.delete(@cpath)
  179.       end
  180.     end
  181.     if @finish.from.nil?
  182.       return nil
  183.     else
  184.       steps = [@finish.from]
  185.       loop do
  186.         cr = steps[-1]
  187.         if cr.cost == 1
  188.           @result = []
  189.           steps.each { |s| @result << Directions[s.dir]}
  190.           break
  191.         else
  192.           steps << cr.from
  193.         end
  194.       end
  195.       self.print_log(Time.now-st) if Log
  196.       return @result.reverse
  197.     end
  198.   end
  199.   def self.print_log(time)
  200.     print "\n--------------------\n"
  201.     print "Khas Pathfinder\n"
  202.     print "Time: #{time}\n"
  203.     print "Size: #{@result.size}\n"
  204.     print "--------------------\n"
  205.   end
  206. end

此外还有一个(看到第21行)
RUBY 代码复制
  1. ## 事件效果 v3.1 ##
  2. # 事件x、y坐标微调, 事件图像缩放、转动、改变色调、镜像、闪烁等功能
  3. #
  4. # 使用方法: 在事件的移动路线里使用脚本
  5. #          offset(x,y)             事件图像横向偏移x像素,纵向偏移y像素
  6. #
  7. #          set_zoom(数值)          缩放大小
  8. #
  9. #          rotate(数值)           转动角度,可以是 -360 至 360
  10. #
  11. #          blend(颜色)            改变颜色,"颜色"替换为颜色对象
  12. #                                   -> Color.new(red,blue,green,不透明度)
  13. #
  14. #          mirrored                左右镜像
  15. #
  16. #          flash(颜色,时间)       闪烁效果, "颜色"替换为颜色对象
  17. #                                 时间是闪烁时间
  18. #
  19. #          slide(x, y)             事件横向滑动x像素,纵向滑动y像素
  20. #
  21. #          waypoint(x,y)           事件朝指定坐标移动,等待至移动结束
  22. #
  23. #          moveto(x,y)             事件瞬间传送到指定坐标.(虽然用事件指令也可以做到)
  24. #
  25. #         新指令:
  26. #          @shakechar 改变为偏移效果
  27. #          @zoom 改变为 set_zoom
  28. #            (旧指令仍然有效)
  29. #
  30. #          fadein              一段时间(默认是10帧)事件图像不透明度淡入至 255
  31. #          fadein(时间)        
  32. #
  33. #          fadeout             一段时间(默认是10帧)事件图像不透明度淡出至 0
  34. #          fadeout(时间)        
  35. #
  36. #          shake               一段时间(默认是30帧)事件图像上下震动
  37. #
  38. #          shake(时间)        
  39. #          random                  将事件移动到随机当前地图中的随机位置,可以设
  40. #          random(宽度,高度)       定最大范围限制.
  41. #
  42. #          random_region(id)       将事件移动到随机当前地图中某区域的随机位置,
  43. #          random_region(id,w,h)   可以设定最大范围限制.
  44. #
  45. #      self_switch("字母",true/false)   开启或关闭事件的独立开关. 字母替换为
  46. #                                       "A" 至 "D".
  47. #
  48. #          balloon(id)            事件显示指定心情
  49. #
  50. #                                 
  51. #------#
  52. #-- Script by: V.M of D.T
  53. #
  54. #- Questions or comments can be:
  55. #    posted on the thread for the script
  56. #    given by email: [email protected]
  57. #    provided on facebook: [url]http://www.facebook.com/DaimoniousTailsGames[/url]
  58. #
  59. #- Free to use in any project with credit given,
  60. #-- donations always welcome via paypal!
  61.  
  62. class Game_CharacterBase
  63.   alias shake_init_public_members init_public_members
  64.   alias shake_update update
  65.  
  66.   attr_accessor   :zoom
  67.   attr_accessor   :flash_on
  68.   attr_accessor   :flash_color
  69.   attr_accessor   :flash_time
  70.   attr_accessor   :angle
  71.   attr_accessor   :need_rotate
  72.   attr_accessor   :mirror
  73.   attr_accessor   :blend_color
  74.  
  75.   def init_public_members
  76.     shake_init_public_members
  77.     reset_event_details
  78.   end
  79.   def reset_event_details
  80.     @shakechar = [false, 0, 0]
  81.     @zoom = 1
  82.     @flash_on = false
  83.     @flash_color = Color.new(0,0,0,0)
  84.     @flash_duration = 0
  85.     @angle = 0
  86.     @total_angle = 0
  87.     @need_rotate = false
  88.     @mirror = false
  89.     @blend_color = Color.new(0,0,0,0)
  90.     @fade = @opacity
  91.     @fade_time = 0
  92.     @shake_time = 0
  93.     @shake_direction = 0
  94.   end
  95.   def offset(x,y); @shakechar = [true, x, y]; end
  96.   def reset
  97.     reset_event_details
  98.     rotate(@total_angle*-1)
  99.   end
  100.   def set_zoom(size); @zoom = size; end
  101.   def flash(color,duration)
  102.     @flash_color = color
  103.     @flash_time = duration
  104.     @flash_on = true
  105.   end
  106.   def rotate(angle)
  107.     @total_angle += angle
  108.     @angle = angle
  109.     @need_rotate = true
  110.   end
  111.   def rotateoff; @need_rotate = false; end
  112.   def flashoff; @flash_on = false; end
  113.   def mirrored; @mirror == true ? @mirror = false : @mirror = true; end
  114.   def blend(color); @blend_color = color; end
  115.   def screen_x
  116.     if @shakechar[0] == false || @shakechar[1] == nil then
  117.       $game_map.adjust_x(@real_x) * 32 + 16 else
  118.       $game_map.adjust_x(@real_x) * 32 + 16 + @shakechar[1] end
  119.   end
  120.   def screen_y
  121.     if @shakechar[0] == false || @shakechar[2] == nil then
  122.       $game_map.adjust_y(@real_y) * 32 + 32 - shift_y - jump_height else
  123.       $game_map.adjust_y(@real_y) * 32 + 32 - shift_y - jump_height + @shakechar[2] end
  124.   end
  125.   def slide(x, y)
  126.     @next_x = x + @shakechar[1]
  127.     @next_y = y + @shakechar[2]
  128.     @step_anime = true
  129.     @shakechar[0] = true
  130.     @sliding = true
  131.   end
  132.   def fadein(time = 10)
  133.     @fade_time = time
  134.     @fade = 255
  135.   end
  136.   def fadeout(time = 10)
  137.     @fade_time = time
  138.     @fade = 0
  139.   end
  140.   def shake(time = 30)
  141.     @shakechar[0] = true
  142.     @shake_time = time
  143.   end
  144.   def random(rect_x = 250, rect_y = 250)
  145.     tiles = []
  146.     tiles = tile_array(rect_x,rect_y)
  147.     tiles = tiles.compact
  148.     return if tiles.empty?
  149.     tile = rand(tiles.size)
  150.     moveto(tiles[tile][0],tiles[tile][1])
  151.   end
  152.   def random_region(id, rect_x = 250, rect_y = 250)
  153.     tiles = tile_array(rect_x,rect_y)
  154.     tiles.each_index do |i|
  155.       next if tiles[i].nil?
  156.       erase = false
  157.       erase = true unless $game_map.region_id(tiles[i][0], tiles[i][1]) == id
  158.       tiles[i] = nil if erase
  159.     end
  160.     tiles = tiles.compact
  161.     return if tiles.empty?
  162.     tile = rand(tiles.size)
  163.     moveto(tiles[tile][0],tiles[tile][1])
  164.   end
  165.   def tile_array(rect_x,rect_y)
  166.     tiles = [];nx = 0;ny = 0
  167.     ($game_map.width * $game_map.height).times do |i|
  168.       tiles.push([nx,ny])
  169.       nx += 1
  170.       if nx == $game_map.width
  171.         nx = 0
  172.         ny += 1
  173.       end
  174.     end
  175.     tiles.each_index do |i|
  176.       erase = false
  177.       erase = true if tiles[i][0] == $game_player.x && tiles[i][1] == $game_player.y
  178.       erase = true if tiles[i][0] == x && tiles[i][1] == y
  179.       erase = true if tiles[i][0] > x + rect_x || tiles[i][0] < x - rect_x
  180.       erase = true if tiles[i][1] > y + rect_y || tiles[i][1] < y - rect_y
  181.       erase = true if !$game_map.check_passage(tiles[i][0], tiles[i][1], 0x0f)
  182.       tiles[i] = nil if erase
  183.     end
  184.     return tiles
  185.   end
  186.   def self_switch(symbol, boolean)
  187.     return if !self.is_a?(Game_Event)
  188.     key = [$game_map.map_id, self.event.id, symbol]
  189.     $game_self_switches[key] = boolean
  190.   end
  191.   def balloon(id)
  192.     @balloon_id = id
  193.   end
  194.   def update
  195.     shake_update
  196.     update_sliding if @sliding
  197.     update_fading if @opacity != @fade && @fade_time > 0
  198.     update_shake if @shake_time > 0
  199.   end
  200.   def update_fading
  201.     @opacity += (255 / @fade_time) if @fade > @opacity
  202.     @opacity -= (255 / @fade_time) if @fade < @opacity
  203.     @opacity = 0 if @opacity < 0; @opacity = 255 if @opacity > 255
  204.     @fade_time = 0 if @opacity == 0 || @opacity == 255
  205.   end
  206.   def update_sliding
  207.     @shakechar[1] += 0.5 if @next_x > @shakechar[1]
  208.     @shakechar[1] -= 0.5 if @next_x < @shakechar[1]
  209.     @shakechar[2] += 0.5 if @next_y > @shakechar[2]
  210.     @shakechar[2] -= 0.5 if @next_y < @shakechar[2]
  211.     return unless @shakechar[1] == @next_x
  212.     return unless @shakechar[2] == @next_y
  213.     @sliding = false
  214.     @step_anime = false
  215.   end
  216.   def update_shake
  217.     @shake_time -= 1
  218.     @shakechar[2] += 1 if @shake_direction == 0
  219.     @shakechar[2] -= 1 if @shake_direction == 1
  220.     if @shake_time % 3 == 0
  221.       @shake_direction += 1
  222.       @shake_direction = 0 if @shake_direction > 1
  223.     end
  224.   end
  225. end
  226.  
  227. class Game_Character
  228.   alias eft_init_private_members init_private_members
  229.   def init_private_members
  230.     eft_init_private_members
  231.     @waypoint = [-1,-1]      
  232.   end
  233.   def update_routine_move
  234.     if @wait_count > 0
  235.       @wait_count -= 1
  236.     else
  237.       @move_succeed = true
  238.       command = @move_route.list[@move_route_index]
  239.       if command
  240.         if @waypoint[0] != -1
  241.           process_waypoint_command
  242.           advance_waypoint_route_index
  243.         else
  244.           process_move_command(command)
  245.           advance_move_route_index
  246.         end
  247.       end
  248.     end
  249.   end
  250.   def process_waypoint_command
  251.     sx = distance_x_from(@waypoint[0])
  252.     sy = distance_y_from(@waypoint[1])
  253.     if sx.abs > sy.abs
  254.       move_straight(sx > 0 ? 4 : 6)
  255.       move_straight(sy > 0 ? 8 : 2) if !@move_succeed && sy != 0
  256.     elsif sy != 0
  257.       move_straight(sy > 0 ? 8 : 2)
  258.       move_straight(sx > 0 ? 4 : 6) if !@move_succeed && sx != 0
  259.     end
  260.     @waypoint = [-1,-1] if !@move_succeed && @move_route.skippable
  261.   end
  262.   def advance_waypoint_route_index
  263.     return unless @x == @waypoint[0]
  264.     return unless @y == @waypoint[1]
  265.     @waypoint = [-1,-1]
  266.   end
  267.   def waypoint(x,y); @waypoint = [x,y]; end
  268. end
  269.  
  270. class Sprite_Character
  271.   alias eventfp_update update
  272.   def update
  273.     eventfp_update
  274.     zoom_update
  275.     mirror_update
  276.     blend_update
  277.     rotate_update if @character.need_rotate
  278.     flash_update if @character.flash_on
  279.   end
  280.   def blend_update; self.color = @character.blend_color; end
  281.   def zoom_update
  282.     self.zoom_y = @character.zoom
  283.     self.zoom_x = @character.zoom
  284.   end
  285.   def mirror_update; self.mirror = @character.mirror; end
  286.   def flash_update
  287.     flash(@character.flash_color,@character.flash_time)
  288.     @character.flashoff
  289.   end
  290.   def rotate_update
  291.     self.angle = @character.angle
  292.     @character.rotateoff
  293.   end
  294. end
VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
549
在线时间
59 小时
注册时间
2017-11-19
帖子
71
3
 楼主| 发表于 2018-4-29 13:12:21 | 只看该作者
Nil2018 发表于 2018-4-28 20:37
#-------------------------------------------------------------------------------
# * [ACE] Khas 寻路 ...

为什么第一个还是无法等待到结束,即使调用的是find_path(0,17,17,true)
第二个直接发生错误,脚本game_interpreter第1411行
我都是在事件页里直接使用脚本的

点评

第一个本来就有那个bug,第二个要在移动路线里用,而不是事件页  发表于 2018-4-29 13:15
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
549
在线时间
59 小时
注册时间
2017-11-19
帖子
71
4
 楼主| 发表于 2018-4-29 14:19:33 | 只看该作者
Nil2018 发表于 2018-4-28 20:37
#-------------------------------------------------------------------------------
# * [ACE] Khas 寻路 ...

第一个的BUG可以解决吗?

点评

那个BUG有人解决了:https://rpg.blue/forum.php?mod=viewthread&tid=408254&page=1#pid2766212  发表于 2018-4-30 11:04
新开一个贴吧或者向脚本大佬砸钱......  发表于 2018-4-29 14:26
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
549
在线时间
59 小时
注册时间
2017-11-19
帖子
71
5
 楼主| 发表于 2018-4-29 14:29:49 | 只看该作者
Nil2018 发表于 2018-4-28 20:37
#-------------------------------------------------------------------------------
# * [ACE] Khas 寻路 ...

哦,谢谢了,不过第二个差不多了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 08:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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