Project1

标题: [已解决]人物跟随和传送脚本冲突,如何解决? [打印本页]

作者: miantouchi    时间: 2019-11-11 15:43
标题: [已解决]人物跟随和传送脚本冲突,如何解决?
本帖最后由 miantouchi 于 2019-11-15 07:28 编辑

最近正在整理大地图传送部分,但是发现和以前用的人物跟随脚本发生了冲突,
报错内容如下图,提示没有定义那个方法并且为nil。
经过排查后发现报错行在传送脚本163行引起的
话说我把这行打上注释,暂时也能用,但是还是希望解决下冲突点,和冲突的原因
工程以上传。
RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5. # 自定义内容解释:
  6. # TOWNS[编号]=["地名,可以随便写",开关编号,[传送去的地图id,传送去的地图x,
  7. #              传送去的地图y],角色朝向]
  8. #
  9. # 编号请按照0、1、2、3……顺序往下排布
  10. # 当编号的开关打开的时候,才可以选择这个传送地点
  11. # 角色朝向,2为下,4为左,6为右,8为上,具体可以参考自己数字小键盘的方向和数字关系
  12. # 如果是其他方向请自己改。
  13. #
  14. # 需要制作脚本,请点击66rpg.com最底部的QQ交谈
  15. #
  16. # 使用方法:在需要传送的传送门、传送石、传送羽毛、传送旅店一类的地方使用公共事件:
  17. #           呼叫脚本:$scene = Scene_Teleport.new
  18. #
  19. # 制作者:柳柳
  20. #==============================================================================
  21. TOWNS=[]
  22. TOWNS[0]=["古德城堡东门",1,[1,2,3],2]
  23. TOWNS[1]=["古德城堡西门",2,[1,2,5],4]
  24. TOWNS[2]=["修道院门口",3,[3,3,6],4]
  25. TOWNS[3]=["女神遗迹南口",4,[4,2,6],4]
  26. TOWNS[4]=["圣天城骑士团练兵场",5,[5,2,6],4]
  27. TOWNS[5]=["许愿之塔",6,[6,9,6],4]
  28. #==============================================================================
  29. # ■ Window_Teleport
  30. #------------------------------------------------------------------------------
  31. #  处理传送的窗口
  32. #==============================================================================
  33. class Window_Teleport < Window_Selectable
  34.   #--------------------------------------------------------------------------
  35.   # ● 初始化对像
  36.   #--------------------------------------------------------------------------
  37.   def initialize
  38.     super(640,640,64,64)
  39.     self.contents = Bitmap.new(width, height)
  40.     self.opacity = 180
  41.     get_towns
  42.     draw_towns
  43.     @column_max = 1
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 获取可到达的城镇和窗口大小
  47.   #--------------------------------------------------------------------------
  48.   def get_towns
  49.     @carol3_towns = []
  50.     @width_temp = 0
  51.     @cont_use = false
  52.     for town in TOWNS
  53.       if $game_switches[town[1]]==true
  54.         @carol3_towns.push(town)
  55.         if contents.text_size(town[0]).width >= @width_temp
  56.           @width_temp = contents.text_size(town[0]).width
  57.         end
  58.       end
  59.     end
  60.     @item_max = @carol3_towns.size
  61.     if @item_max == 0
  62.       @carol3_towns[0] = ["没有可以传送的地方",1,[1,1,1]]
  63.       @width_temp = contents.text_size(@carol3_towns[0][0]).width
  64.       @item_max = 1
  65.       @cont_use = true
  66.     end
  67.     self.width = [@width_temp+32,480].min
  68.     self.height = [(@item_max+1)*32,360].min
  69.     self.x = (640-self.width)/2
  70.     self.y = (480-self.height)/2
  71.     self.contents = Bitmap.new(width-32,row_max*32)
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 描绘城镇名称
  75.   #--------------------------------------------------------------------------
  76.   def draw_towns
  77.     for i in 0...@carol3_towns.size
  78.       self.contents.draw_text(0,i*32,@width_temp,32,@carol3_towns[i][0],1)
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 返回的内容
  83.   #========================================================================
  84.   # ● 地图编号
  85.   #--------------------------------------------------------------------------
  86.   def map_id
  87.     return @carol3_towns[self.index][2][0]
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 地图x坐标
  91.   #--------------------------------------------------------------------------
  92.   def map_x
  93.     return @carol3_towns[self.index][2][1]
  94.   end      
  95.   #--------------------------------------------------------------------------
  96.   # ● 地图y坐标
  97.   #--------------------------------------------------------------------------
  98.   def map_y
  99.     return @carol3_towns[self.index][2][2]
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 角色朝向
  103.   #--------------------------------------------------------------------------
  104.   def map_direction
  105.     return @carol3_towns[self.index][2][3]
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 判断是否一个城市都没有
  109.   #--------------------------------------------------------------------------
  110.   def cant_use?
  111.     return @cont_use
  112.   end
  113. end
  114. #==============================================================================
  115. # ■ Scene_Teleport
  116. #------------------------------------------------------------------------------
  117. #  处理传送执行的类
  118. #==============================================================================
  119. class Scene_Teleport
  120.   #--------------------------------------------------------------------------
  121.   # ● 主处理
  122.   #--------------------------------------------------------------------------
  123.   def main
  124.     $game_system.se_play($data_system.decision_se)
  125.     @carol3_trans_white = false
  126.     #p "1"
  127.     @carol3_map_sprite = Spriteset_Map.new
  128.     #p "2"
  129.     @carol3_teleport_window = Window_Teleport.new
  130.     #p "3"
  131.     if @carol3_teleport_window.cant_use?
  132.       @carol3_teleport_window.index = -1
  133.     else
  134.       @carol3_teleport_window.index = 0
  135.     end
  136.     @carol3_teleport_window.active = true
  137.     Graphics.transition
  138.     loop do
  139.       Graphics.update
  140.       Input.update
  141.       carol3_update
  142.       if $scene != self
  143.         break
  144.       end
  145.     end
  146.     #p "4"
  147.     if @carol3_trans_white==true
  148.       @carol3_white_sprite = Sprite.new
  149.       @carol3_white_sprite.bitmap = Bitmap.new(640,480)
  150.       @carol3_white_sprite.opacity = 0
  151.       @carol3_white_sprite.bitmap.fill_rect(0, 0, 640, 480, Color.new(255,255,255,255))
  152.       for i in 0..20
  153.         @carol3_white_sprite.opacity += 15
  154.         @carol3_teleport_window.opacity -= 12
  155.         @carol3_teleport_window.contents_opacity -= 12
  156.         Graphics.update
  157.       end
  158.       Graphics.freeze
  159.       Graphics.transition(0)
  160.       Graphics.update
  161.       @carol3_map_sprite.dispose
  162.       $game_map.setup($game_temp.player_new_map_id)
  163.       $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
  164.       $game_player.turn_down
  165.       $game_player.straighten
  166.       $game_map.autoplay  
  167.       Graphics.frame_reset
  168.       for i in 0..20
  169.         @carol3_white_sprite.opacity -= 15
  170.         Graphics.update
  171.       end
  172.       @carol3_white_sprite.dispose
  173.       @carol3_teleport_window.dispose
  174.       Graphics.freeze
  175.     else
  176.       Graphics.freeze
  177.       @carol3_teleport_window.dispose
  178.       @carol3_map_sprite.dispose
  179.     end   
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 刷新画面
  183.   #--------------------------------------------------------------------------
  184.   def carol3_update
  185.     @carol3_teleport_window.update
  186.     if Input.trigger?(Input::B)
  187.       $game_system.se_play($data_system.cancel_se)
  188.       $scene = Scene_Map.new
  189.       return
  190.     end
  191.     if Input.trigger?(Input::C)
  192.       if @carol3_teleport_window.index == -1
  193.         $game_system.se_play($data_system.cancel_se)
  194.         $scene = Scene_Map.new
  195.         return
  196.       else        
  197.         $game_temp.player_new_map_id = @carol3_teleport_window.map_id
  198.         $game_temp.player_new_x = @carol3_teleport_window.map_x
  199.         $game_temp.player_new_y = @carol3_teleport_window.map_y
  200.         $game_temp.player_new_direction = @carol3_teleport_window.map_direction
  201.         $game_temp.player_transferring = true
  202.         $game_temp.transition_processing = true
  203.         $game_temp.transition_name = ""
  204.         $scene = Scene_Map.new
  205.         @carol3_trans_white = true
  206.         Audio.se_play("Audio/SE/" + "018-Teleport01",100,100)
  207.         return
  208.       end
  209.     end   
  210.   end
  211. end
  212.  
  213. #==============================================================================
  214. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  215. #==============================================================================



RUBY 代码复制
  1. #==========================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 [url]www.rgss.cn[/url] 同能网
  3. #==========================================================================
  4. # ————————————————————————————————————
  5. # ▼▲▼ XRXS13. パーティ列車移動 ver.1.02 ▼▲▼
  6. # by fukuyama
  7. #
  8. # Train_Actor
  9. #
  10. # [email protected]
  11. # [url]http://www4.big.or.jp/~fukuyama/rgss/Train_Actor.txt[/url]
  12. #
  13. module Train_Actor
  14.   #是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果      
  15.   #TRANSPARENT_SWITCHES_INDEX
  16.   #开关打开,跟随的人物就消失了(其实只是变成透明而已)
  17.   TRANSPARENT_SWITCH = true
  18.   TRANSPARENT_SWITCHES_INDEX = 20
  19.   #举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。
  20.  
  21.   #跟随人数的最大数目,可以更改为2、3什么的。
  22.   TRAIN_ACTOR_SIZE_MAX = 4
  23.  
  24.   # 定数
  25.   #Input::DOWN = 2
  26.   #Input::LEFT = 4
  27.   #Input::RIGHT = 6
  28.   #Input::UP = 6
  29.   DOWN_LEFT = 1
  30.   DOWN_RIGHT = 3
  31.   UP_LEFT = 7
  32.   UP_RIGHT = 9
  33.   JUMP = 5
  34.   class Game_Party_Actor < Game_Character
  35.     def initialize
  36.       super()
  37.       @through = true
  38.     end
  39.     def setup(actor)
  40.       # キャラクターのファイル名と色相を設定
  41.       if actor != nil
  42.         @character_name = actor.character_name
  43.         @character_hue = actor.character_hue
  44.       else
  45.         @character_name = ""
  46.         @character_hue = 0
  47.       end
  48.       # 不透明度と合成方法を初期化
  49.       @opacity = 255
  50.       @blend_type = 0
  51.     end
  52.     def screen_z(height = 0)
  53.       if $game_player.x == @x and $game_player.y == @y
  54.         return $game_player.screen_z(height) - 1
  55.       end
  56.       super(height)
  57.     end
  58.     #--------------------------------------------------------------------------
  59.     # ● 下に移動
  60.     # turn_enabled : その場での向き変更を許可するフラグ
  61.     #--------------------------------------------------------------------------
  62.     def move_down(turn_enabled = true)
  63.       # 下を向く
  64.       if turn_enabled
  65.         turn_down
  66.       end
  67.       # 通行可能な場合
  68.       if passable?(@x, @y, Input::DOWN)
  69.         # 下を向く
  70.         turn_down
  71.         # 座標を更新
  72.         @y += 1
  73.       end
  74.     end
  75.     #--------------------------------------------------------------------------
  76.     # ● 左に移動
  77.     # turn_enabled : その場での向き変更を許可するフラグ
  78.     #--------------------------------------------------------------------------
  79.     def move_left(turn_enabled = true)
  80.       # 左を向く
  81.       if turn_enabled
  82.         turn_left
  83.       end
  84.       # 通行可能な場合
  85.       if passable?(@x, @y, Input::LEFT)
  86.         # 左を向く
  87.         turn_left
  88.         # 座標を更新
  89.         @x -= 1
  90.       end
  91.     end
  92.     #--------------------------------------------------------------------------
  93.     # ● 右に移動
  94.     # turn_enabled : その場での向き変更を許可するフラグ
  95.     #--------------------------------------------------------------------------
  96.     def move_right(turn_enabled = true)
  97.       # 右を向く
  98.       if turn_enabled
  99.         turn_right
  100.       end
  101.       # 通行可能な場合
  102.       if passable?(@x, @y, Input::RIGHT)
  103.         # 右を向く
  104.         turn_right
  105.         # 座標を更新
  106.         @x += 1
  107.       end
  108.     end
  109.     #--------------------------------------------------------------------------
  110.     # ● 上に移動
  111.     # turn_enabled : その場での向き変更を許可するフラグ
  112.     #--------------------------------------------------------------------------
  113.     def move_up(turn_enabled = true)
  114.       # 上を向く
  115.       if turn_enabled
  116.         turn_up
  117.       end
  118.       # 通行可能な場合
  119.       if passable?(@x, @y, Input::UP)
  120.         # 上を向く
  121.         turn_up
  122.         # 座標を更新
  123.         @y -= 1
  124.       end
  125.     end
  126.     #--------------------------------------------------------------------------
  127.     # ● 左下に移動
  128.     #--------------------------------------------------------------------------
  129.     def move_lower_left
  130.       # 向き固定でない場合
  131.       unless @direction_fix
  132.         # 右向きだった場合は左を、上向きだった場合は下を向く
  133.         @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
  134.       end
  135.       # 下→左、左→下 のどちらかのコースが通行可能な場合
  136.       if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  137.           (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  138.         # 座標を更新
  139.         @x -= 1
  140.         @y += 1
  141.       end
  142.     end
  143.     #--------------------------------------------------------------------------
  144.     # ● 右下に移動
  145.     #--------------------------------------------------------------------------
  146.     def move_lower_right
  147.       # 向き固定でない場合
  148.       unless @direction_fix
  149.         # 左向きだった場合は右を、上向きだった場合は下を向く
  150.         @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
  151.       end
  152.       # 下→右、右→下 のどちらかのコースが通行可能な場合
  153.       if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  154.           (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  155.         # 座標を更新
  156.         @x += 1
  157.         @y += 1
  158.       end
  159.     end
  160.     #--------------------------------------------------------------------------
  161.     # ● 左上に移動
  162.     #--------------------------------------------------------------------------
  163.     def move_upper_left
  164.       # 向き固定でない場合
  165.       unless @direction_fix
  166.         # 右向きだった場合は左を、下向きだった場合は上を向く
  167.         @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
  168.       end
  169.       # 上→左、左→上 のどちらかのコースが通行可能な場合
  170.       if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  171.           (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  172.         # 座標を更新
  173.         @x -= 1
  174.         @y -= 1
  175.       end
  176.     end
  177.     #--------------------------------------------------------------------------
  178.     # ● 右上に移動
  179.     #--------------------------------------------------------------------------
  180.     def move_upper_right
  181.       # 向き固定でない場合
  182.       unless @direction_fix
  183.         # 左向きだった場合は右を、下向きだった場合は上を向く
  184.         @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
  185.       end
  186.       # 上→右、右→上 のどちらかのコースが通行可能な場合
  187.       if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  188.           (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  189.         # 座標を更新
  190.         @x += 1
  191.         @y -= 1
  192.       end
  193.     end
  194.     attr_writer :move_speed
  195.     attr_writer :step_anime
  196.   end
  197.   module Spriteset_Map_Module
  198.     def setup_actor_character_sprites?
  199.       return @setup_actor_character_sprites_flag != nil
  200.     end
  201.     def setup_actor_character_sprites(characters)
  202.       if !setup_actor_character_sprites?
  203.         index_game_player = 0
  204.         @character_sprites.each_index do |i|
  205.           if @character_sprites[i].character.instance_of?(Game_Player)
  206.             index_game_player = i
  207.             break
  208.           end
  209.         end
  210.         for character in characters.reverse
  211.           @character_sprites.unshift(
  212.             Sprite_Character.new(@viewport1, character)
  213.           )
  214.         end
  215.         @setup_actor_character_sprites_flag = true
  216.       end
  217.     end
  218.   end
  219.   module Scene_Map_Module
  220.     def setup_actor_character_sprites(characters)
  221.       @spriteset.setup_actor_character_sprites(characters)
  222.     end
  223.   end
  224.   # 菜单
  225.   module Scene_Menu_Module
  226.     def setup_actor_character_sprites(characters)
  227.       @spriteset.setup_actor_character_sprites(characters)
  228.     end
  229.   end
  230.   # 物品
  231.   module Scene_Item_Module
  232.     def setup_actor_character_sprites(characters)
  233.       @spriteset.setup_actor_character_sprites(characters)
  234.     end
  235.   end
  236.   # 特技
  237.   module Scene_Skill_Module
  238.     def setup_actor_character_sprites(characters)
  239.       @spriteset.setup_actor_character_sprites(characters)
  240.     end
  241.   end
  242.   # 装备
  243.   module Scene_Equip_Module
  244.     def setup_actor_character_sprites(characters)
  245.       @spriteset.setup_actor_character_sprites(characters)
  246.     end
  247.   end
  248.   # 状态
  249.   module Scene_Status_Module
  250.     def setup_actor_character_sprites(characters)
  251.       @spriteset.setup_actor_character_sprites(characters)
  252.     end
  253.   end
  254.   # 结束
  255.   module Scene_End_Module
  256.     def setup_actor_character_sprites(characters)
  257.       @spriteset.setup_actor_character_sprites(characters)
  258.     end
  259.   end
  260.   # 存档
  261.   module Scene_Save_Module
  262.     def setup_actor_character_sprites(characters)
  263.       @spriteset.setup_actor_character_sprites(characters)
  264.     end
  265.   end
  266.   # 商店
  267.   module Scene_Shop_Module
  268.     def setup_actor_character_sprites(characters)
  269.       @spriteset.setup_actor_character_sprites(characters)
  270.     end
  271.   end
  272.   module Scene_BestBug_Module
  273.     def setup_actor_character_sprites(characters)
  274.       @spriteset.setup_actor_character_sprites(characters)
  275.     end
  276.   end
  277.  
  278.   module Game_Party_Module
  279.     def set_transparent_actors(transparent)
  280.       @transparent = transparent
  281.     end
  282.     def setup_actor_character_sprites
  283.       if @characters == nil
  284.         @characters = []
  285.         for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  286.           @characters.push(Game_Party_Actor.new)
  287.         end
  288.       end
  289.       for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  290.         @characters[i - 1].setup(actors[i])
  291.       end
  292.       if $scene.class.method_defined?('setup_actor_character_sprites')
  293.         $scene.setup_actor_character_sprites(@characters)
  294.       end
  295.     end
  296.     def update_party_actors
  297.       setup_actor_character_sprites
  298.       transparent = $game_player.transparent
  299.       if transparent == false
  300.         if TRANSPARENT_SWITCH
  301.           transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
  302.         end
  303.       end
  304.       for character in @characters
  305.         character.transparent = transparent
  306.         character.move_speed = $game_player.move_speed
  307.         character.step_anime = $game_player.step_anime
  308.         character.update
  309.       end
  310.     end
  311.     def moveto_party_actors( x, y )
  312.       setup_actor_character_sprites
  313.       for character in @characters
  314.         character.moveto( x, y )
  315.       end
  316.       if @move_list == nil
  317.         @move_list = []
  318.       end
  319.       move_list_setup
  320.     end
  321.     def move_party_actors
  322.       if @move_list == nil
  323.         @move_list = []
  324.         move_list_setup
  325.       end
  326.       @move_list.each_index do |i|
  327.         if @characters[i] != nil
  328.           case @move_list[i].type
  329.           when Input::DOWN
  330.             @characters[i].move_down(@move_list[i].args[0])
  331.           when Input::LEFT
  332.             @characters[i].move_left(@move_list[i].args[0])
  333.           when Input::RIGHT
  334.             @characters[i].move_right(@move_list[i].args[0])
  335.           when Input::UP
  336.             @characters[i].move_up(@move_list[i].args[0])
  337.           when DOWN_LEFT
  338.             @characters[i].move_lower_left
  339.           when DOWN_RIGHT
  340.             @characters[i].move_lower_right
  341.           when UP_LEFT
  342.             @characters[i].move_upper_left
  343.           when UP_RIGHT
  344.             @characters[i].move_upper_right
  345.           when JUMP
  346.             @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
  347.           end
  348.         end
  349.       end
  350.     end
  351.     class Move_List_Element
  352.       def initialize(type,args)
  353.         @type = type
  354.         @args = args
  355.       end
  356.       def type() return @type end
  357.       def args() return @args end
  358.     end
  359.     def move_list_setup
  360.       for i in 0 .. TRAIN_ACTOR_SIZE_MAX
  361.         @move_list[i] = nil
  362.       end
  363.     end
  364.     def add_move_list(type,*args)
  365.       @move_list.unshift(Move_List_Element.new(type,args)).pop
  366.     end
  367.     def move_down_party_actors(turn_enabled = true)
  368.       move_party_actors
  369.       add_move_list(Input::DOWN,turn_enabled)
  370.     end
  371.     def move_left_party_actors(turn_enabled = true)
  372.       move_party_actors
  373.       add_move_list(Input::LEFT,turn_enabled)
  374.     end
  375.     def move_right_party_actors(turn_enabled = true)
  376.       move_party_actors
  377.       add_move_list(Input::RIGHT,turn_enabled)
  378.     end
  379.     def move_up_party_actors(turn_enabled = true)
  380.       move_party_actors
  381.       add_move_list(Input::UP,turn_enabled)
  382.     end
  383.     def move_lower_left_party_actors
  384.       move_party_actors
  385.       add_move_list(DOWN_LEFT)
  386.     end
  387.     def move_lower_right_party_actors
  388.       move_party_actors
  389.       add_move_list(DOWN_RIGHT)
  390.     end
  391.     def move_upper_left_party_actors
  392.       move_party_actors
  393.       add_move_list(UP_LEFT)
  394.     end
  395.     def move_upper_right_party_actors
  396.       move_party_actors
  397.       add_move_list(UP_RIGHT)
  398.     end
  399.     def jump_party_actors(x_plus, y_plus)
  400.       move_party_actors
  401.       add_move_list(JUMP,x_plus, y_plus)
  402.     end
  403.   end
  404.   module Game_Player_Module
  405.     def update
  406.       $game_party.update_party_actors
  407.       super
  408.     end
  409.     def moveto( x, y )
  410.       $game_party.moveto_party_actors( x, y )
  411.       super( x, y )
  412.     end
  413.     def move_down(turn_enabled = true)
  414.       if passable?(@x, @y, Input::DOWN)
  415.         $game_party.move_down_party_actors(turn_enabled)
  416.       end
  417.       super(turn_enabled)
  418.     end
  419.     def move_left(turn_enabled = true)
  420.       if passable?(@x, @y, Input::LEFT)
  421.         $game_party.move_left_party_actors(turn_enabled)
  422.       end
  423.       super(turn_enabled)
  424.     end
  425.     def move_right(turn_enabled = true)
  426.       if passable?(@x, @y, Input::RIGHT)
  427.         $game_party.move_right_party_actors(turn_enabled)
  428.       end
  429.       super(turn_enabled)
  430.     end
  431.     def move_up(turn_enabled = true)
  432.       if passable?(@x, @y, Input::UP)
  433.         $game_party.move_up_party_actors(turn_enabled)
  434.       end
  435.       super(turn_enabled)
  436.     end
  437.     def move_lower_left
  438.       # 下→左、左→下 のどちらかのコースが通行可能な場合
  439.       if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  440.           (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  441.         $game_party.move_lower_left_party_actors
  442.       end
  443.       super
  444.     end
  445.     def move_lower_right
  446.       # 下→右、右→下 のどちらかのコースが通行可能な場合
  447.       if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  448.           (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  449.         $game_party.move_lower_right_party_actors
  450.       end
  451.       super
  452.     end
  453.     def move_upper_left
  454.       # 上→左、左→上 のどちらかのコースが通行可能な場合
  455.       if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  456.           (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  457.         $game_party.move_upper_left_party_actors
  458.       end
  459.       super
  460.     end
  461.     def move_upper_right
  462.       # 上→右、右→上 のどちらかのコースが通行可能な場合
  463.       if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  464.           (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  465.         $game_party.move_upper_right_party_actors
  466.       end
  467.       super
  468.     end
  469.     def jump(x_plus, y_plus)
  470.       # 新しい座標を計算
  471.       new_x = @x + x_plus
  472.       new_y = @y + y_plus
  473.       # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
  474.       if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
  475.         $game_party.jump_party_actors(x_plus, y_plus)
  476.       end
  477.       super(x_plus, y_plus)
  478.     end
  479.     attr_reader :move_speed
  480.     attr_reader :step_anime
  481.   end
  482. end # module Train_Actor
  483. class Game_Party
  484.   include Train_Actor::Game_Party_Module
  485. end
  486. class Game_Player
  487.   include Train_Actor::Game_Player_Module
  488. end
  489. class Spriteset_Map
  490.   include Train_Actor::Spriteset_Map_Module
  491. end
  492. class Scene_Map
  493.   include Train_Actor::Scene_Map_Module
  494. end
  495. #仿小飞侠
  496. class Scene_Menu
  497.   include Train_Actor::Scene_Menu_Module
  498. end
  499. class Scene_Item
  500.   include Train_Actor::Scene_Item_Module
  501. end
  502. class Scene_Skill
  503.   include Train_Actor::Scene_Skill_Module
  504. end
  505. class Scene_Status
  506.   include Train_Actor::Scene_Status_Module
  507. end
  508. class Scene_Equip
  509.   include Train_Actor::Scene_Equip_Module
  510. end
  511. class Scene_End
  512.   include Train_Actor::Scene_End_Module
  513. end
  514. class Scene_Save
  515.   include Train_Actor::Scene_Save_Module
  516. end
  517. class Scene_Shop
  518.   include Train_Actor::Scene_Shop_Module
  519. end
  520. class Scene_BestBug
  521.   include Train_Actor::Scene_BestBug_Module
  522. end
  523.  
  524. #=======================================================================
  525. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  526. #=======================================================================


报错截图.png (64.03 KB, 下载次数: 11)

报错截图.png

大地图传送.rar

198.83 KB, 下载次数: 49


作者: 寒凌天    时间: 2019-11-11 18:05
RUBY 代码复制
  1. if characters!=nil
  2.         @spriteset.setup_actor_character_sprites(characters)
  3. end


你在221行的方法下加个IF语句,判断参数是否为空,应该能避免报错。

如果你想深究原因的话,则建议你全局搜索“setup_actor_character_sprites”,看看是哪个地方调用了该方法,然后分析代码为什么增加新功能后会导致参数characters为nil




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1