Ace 스크립트

울트라알파님이 올려주신 소스 보고 좋아보여서 사용하는데, 약간의 문제점이 있길래 수정하였습니다



맵을 다른곳에 갔다가 다시 돌아오면 npc케릭터(이벤트)들의 위치가 처음상태로 되돌아가는것이 어색해 보일때 사용하면

아주 유용한 스크립트 입니다.


별다른 설정은 필요없으며 이벤트위치가 저장되지 않았으면 좋겠다 싶은 이벤트만 따로 걸러줄 수 있습니다.


위치를 저장하고싶지 않은경우 :

이벤트의 가장 처음 부분에 주석 이벤트가 작성되어야 합니다.

주석 내용은

donotsave

로 입력하면 됩니다.

※ 주석에 donotsave 외에 다른 내용이 포함되어 있으면 안됩니다.

※※ 스크립트 내에 donotsave를 자신이 원하는 글자로 변경이 가능합니다. 

   예)     elsif (@list[0].parameters[0] == "nosave") 



스크립트 적용방법 :

아래의 스크립트를 main 바로 위쪽에 새로 삽입하여 봍여넣어 주세요.




#==============================================================================

# ■ Game_Event

#------------------------------------------------------------------------------

#  이벤트 처리 클래스입니다. 조건 판정에 의한 이벤트 페이지 전환 및 병렬 처리

# 이벤트 실행 등의 기능을 가지고있어 Game_Map 클래스에서 내부적으로 사용됩니다.

#==============================================================================

class Game_Event < Game_Character

  #--------------------------------------------------------------------------

  # ● 이벤트 위치의 보존여부 결정

  #--------------------------------------------------------------------------

  def save_pos?

    if (@list[0].code != 108) 

      return true

    elsif (@list[0].parameters[0] == "donotsave") 

      return false

    else

      return true

    end

  end

end

#==============================================================================

# ■ Game_Map

#------------------------------------------------------------------------------

# 맵을 다루는 클래스입니다. 스크롤 및 통행 가능 판정 등의 기능을 가지고 있습니다.

#이 클래스의 인스턴스는 $ game_map에서 참조됩니다.

#==============================================================================

class Game_Map

  #--------------------------------------------------------------------------

  # ● 초기화대상

  #--------------------------------------------------------------------------

  alias save_event_pos_initialize initialize

  def initialize

    save_event_pos_initialize

    @event_pos = {}

  end

  #--------------------------------------------------------------------------

  # ● 설치

  #--------------------------------------------------------------------------

  alias save_event_pos_setup setup

  def setup(map_id)

    save_event_pos

    save_event_pos_setup(map_id)

    load_event_pos

  end

  #--------------------------------------------------------------------------

  # ● 이벤트 위치 보존

  #--------------------------------------------------------------------------

  def save_event_pos

    return if @map_id == 0

    @event_pos[@map_id] ||= []

    @events.each{|i,e|

    if e.save_pos?

      @event_pos[@map_id][i] = [e.x,e.y]

    else

      @event_pos[@map_id][i] = nil

    end

    }

  end

  #--------------------------------------------------------------------------

  # ● 이벤트 위치 로드

  #--------------------------------------------------------------------------

  def load_event_pos

    return if @map_id == 0

    @event_pos[@map_id] ||= []

    @events.each{|i,e|

    next unless @event_pos[@map_id][i]

    e.moveto(@event_pos[@map_id][i][0],@event_pos[@map_id][i][1])

    }

  end

end 

#출처 : http://www.66rpg.com/articles/4901


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5109
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 28923
10 맵/타일 레이어 맵 <layer> 기능 2 file LuD 2017.08.03 1469
9 맵/타일 Map Zoom Ace by MGC 습작 2016.02.28 1015
8 맵/타일 Overlay Mapping by Lil'Yami 7 Alkaid 2014.02.14 2279
7 맵/타일 MGC님의 Mode 7 Ace 6 file 습작 2013.10.27 3469
6 맵/타일 XP Map Loader by LiTTleDRAgo Alkaid 2013.07.23 1703
5 맵/타일 XPMAP-EX : XPマップスクリプト by A Crying Minister (WHITE-FLUTE) file 습작 2013.06.09 3125
4 맵/타일 안개 시스템 ( VXA ) 8 홍색의환상향 2013.05.19 4089
3 맵/타일 WhiteFlute - XPMap-EX (VX Ace에서 XP의 맵 데이터를 읽을 수 있게 함) 3 Alkaid 2012.12.26 1502
» 맵/타일 맵 이동시 이벤트(NPC) 위치 유지하기 (수정) 4 이브 2012.11.07 2144
1 맵/타일 Etude87_Map_Remember_Ace ver.1.2 11 습작 2012.07.17 3516
Board Pagination Prev 1 Next
/ 1