VX 스크립트

스크립터: BigEd781

보통 게임을 만들 때, 이벤트의 위치가 이동을 할 때가 있죠.

하지만 그 위치가 다른 맵에 갔다가 다시 돌아오면 처음에 지정되어 있던 위치로

다시 바껴있는 경우가 허다해, 스위치를 이용해 새 이벤트를 만들어야만 했던

귀찮았던 때가 있었죠.

이제 이 스크립트로 그 문제를 해결하세요!! (무슨 홈쇼핑 광고 같다...)

그렇다고 이 스크립트는 무작정 이벤트의 위치가 전에 있던 것으로 옮겨주는 건 아니고...

이 스크립트에 해당되는 스위치를 켜야 활성화가 됩니다.

한마디로 필요하지 않을 땐 그냥 스위치를 끄면 간단하게 OK!!

또 이벤트에다 주석으로 'no mem'이라고 적으면 그 이벤트 역시 그 장소를 저장하지 않습니다!!!!!! (놀랍네요!)

스위치 지정은

alias :eds_old_pre_mem_setup :setup
  def setup(map_id)    
    save_positions if $game_switches[1]
    eds_old_pre_mem_setup(map_id)    
    restore_positions  if $game_switches[1]
  end

이 부분을 찾으셔서

$game_switches[1] 라고 적혀 있는 곳에 있는 [ ]  안에

원하는 스위치 id를 지정하세요. (참고로 두부분이 있고, 두부분 모두 바꿔줘야 합니다..)

설명 끝 -0-;


#-----------------------------------------------------------------------
#                       Memorize Event Positions
#                               BigEd781
#-----------------------------------------------------------------------
class Game_System
  
  alias :eds_old_pre_mem_intialize :initialize
  def initialize
    eds_old_pre_mem_intialize
    @event_pos_data = {}    
  end
  
  def save_event_position_data(map_id, data)
    @event_pos_data[map_id] = data
  end
  
  def get_event_position_data(map_id)
    return @event_pos_data[map_id].nil? ? [] : @event_pos_data[map_id]
  end
  
end

class Game_Event < Game_Character

  def comment?(comment)
    unless @list.nil?
      @list.each { |line|
        next if line.code != 108                              
        return true if line.parameters[0].upcase == comment.upcase }      
    end    
    return false
  end  
  
end

class Game_Map
  #스위치 지정하는 곳
  alias :eds_old_pre_mem_setup :setup
  def setup(map_id)    
    save_positions if $game_switches[1]
    eds_old_pre_mem_setup(map_id)    
    restore_positions  if $game_switches[1]
  end
  
  def save_positions
    return if @events.nil? || @events == { }        
    data = []
    @events.values.each { |event| data += [[ event.id, event.x, event.y, event.direction ]] }      
    $game_system.save_event_position_data(@map_id, data)    
  end
  
  def restore_positions    
    return if @events.nil? || @events == { }        
    $game_system.get_event_position_data(@map_id).each { |data|  
    event = @events[data[0]]  
      unless event.nil? || event.comment?('no mem')
        x, y, direction = data[1], data[2], data[3]
        event.moveto(x, y) unless event.pos?(x, y)
        event.set_direction(direction)
      end
    }    
  end
  
end


출처: rpgrevolution.com

Who's Tofuman

?
WE ARE!? PENN STATE!!!!!
Comment '10'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
217 기타 아키루냥님 요청 스크립트(자작) 4 file Last H 2009.02.22 2754
216 미니맵 Map-System by AmIMeYet [미니맵] 9 Man... 2008.10.28 2746
215 맵/타일 누가 이전에 올렸을지도..... KGC_MapLightening 3 file 클로버군 2012.07.02 2745
214 기타 클리어 횟수 기록하기 8 file 허걱 2009.08.22 2729
213 기타 해상도 변경 스크립트 11 카리스 2011.07.19 2723
212 이름입력 아이템 이름 바꾸기 버전 (헤르코스님의 한글 입력) 7 Last H 2009.12.20 2722
211 아이템 적과 만나지않는 아이템 12 file RPGbooster 2008.10.11 2718
210 탈것을 소환 12 file RPGbooster 2008.10.08 2713
209 기타 이벤트 뿌리기 + 범위지정 8 file 허걱 2009.07.13 2698
208 이동 및 탈것 Paper Mario Walk 7 file 카르와푸딩의아틀리에 2009.08.19 2697
207 HUD 아방스님이 올린 HUD를 개조했습니다. 7 file 스리아씨 2013.09.30 2684
206 키입력 한글입력기(펌) 수정 10 전설의달빛조각사 2011.04.03 2674
205 맵/타일 타일 태그 및 4방향 설정 7 file 만들어보자꾸나 2008.06.08 2667
204 타이틀/게임오버 KGC_TitleDirection 알기쉽게 설명추가 5 파이어 2011.01.03 2662
203 전투 반사 스테이트 -KGC 4 카르와푸딩의아틀리에 2009.09.12 2661
202 장비 초보적인 장비레벨 개념 스크립트 - 수정 및 덤 9 아이미르 2011.09.06 2657
201 기타 블랙잭, 룰렛, 포커 스크립트 종합 9 file 도심 2010.08.22 2643
200 이동 및 탈것 Rei Advanced Movement System 8 file 카르와푸딩의아틀리에 2009.08.19 2624
199 기타 IEX - Script Library 1.0 by IceDragon 8 Alkaid 2011.01.11 2619
198 액터 Point Spend System 1.05 by Drago del Fato (포인트로 스탯 올리기) 6 Alkaid 2010.09.08 2612
Board Pagination Prev 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32