이동 및 탈것

SG_Wait for Move Completion Fix by sandgolem (SDK호환)

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
이벤트 명령 'Wait for Move Completion(이동 완료까지 대기)'가 특정상황(캐릭터나 이벤트에 이동경로를 할당한 뒤 그것을 반복시킬 때)에서 게임을 멈추게 하는 문제를 수정하는 스크립트입니다.


#==========================================================================
# ** SG Wait for Move Completion Fix
#==========================================================================
# sandgolem
# Version 1
# 22.07.06
#==========================================================================
#
# To use this script, copy it and insert it in a new section above "Main",
# but under the default scripts and the SDK if you're using it.
#
#==========================================================================

begin
  SDK.log('SG Wait for Move Completion Fix', 'sandgolem', 1, '22.07.06')
  if SDK.state('SG Wait for Move Completion Fix') != true
    @sg_completionfix_disabled = true
  end
  rescue
end

if !@sg_completionfix_disabled
#--------------------------------------------------------------------------

class Game_Character
  attr_accessor :sg_move_fix
 
  alias sandgolem_completionfix_character_forcemr force_move_route
  def force_move_route(move_route)
    @sg_move_fix = nil
    sandgolem_completionfix_character_forcemr(move_route)
  end
 
  alias sandgolem_completionfix_character_mtcustom move_type_custom
  def move_type_custom
    if @move_route.list[@move_route_index].code == 0
      @sg_move_fix = true
    end
    sandgolem_completionfix_character_mtcustom
  end
end

#--------------------------------------------------------------------------
end


스크립트를 삽입한 뒤 인터프리터부분에서 다음을 찾음:
class Interpreter
.........
  def update
.........
        # Loop (map events)
        for event in $game_map.events.values
          # If this event is forcing move route
          if event.move_route_forcing #찾기
            return
          end
        end
.........

해당 부분을 다음처럼 수정:
class Interpreter
.........
  def update
.........
        # Loop (map events)
        for event in $game_map.events.values
          # If this event is forcing move route
          if event.move_route_forcing && !event.sg_move_fix #수정
            return
          end
        end
.........