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 5408
437 기타 블랙잭, 룰렛, 포커 스크립트 종합 9 file 도심 2010.08.22 2643
436 장비 초보적인 장비레벨 개념 스크립트 - 수정 및 덤 9 아이미르 2011.09.06 2657
435 전투 반사 스테이트 -KGC 4 카르와푸딩의아틀리에 2009.09.12 2661
434 타이틀/게임오버 KGC_TitleDirection 알기쉽게 설명추가 5 파이어 2011.01.03 2662
433 맵/타일 타일 태그 및 4방향 설정 7 file 만들어보자꾸나 2008.06.08 2668
432 키입력 한글입력기(펌) 수정 10 전설의달빛조각사 2011.04.03 2674
431 HUD 아방스님이 올린 HUD를 개조했습니다. 7 file 스리아씨 2013.09.30 2684
430 기타 이벤트 뿌리기 + 범위지정 8 file 허걱 2009.07.13 2698
429 이동 및 탈것 Paper Mario Walk 7 file 카르와푸딩의아틀리에 2009.08.19 2701
428 탈것을 소환 12 file RPGbooster 2008.10.08 2713
427 아이템 적과 만나지않는 아이템 12 file RPGbooster 2008.10.11 2718
426 이름입력 아이템 이름 바꾸기 버전 (헤르코스님의 한글 입력) 7 Last H 2009.12.20 2722
425 기타 해상도 변경 스크립트 11 카리스 2011.07.19 2723
424 기타 클리어 횟수 기록하기 8 file 허걱 2009.08.22 2729
423 맵/타일 누가 이전에 올렸을지도..... KGC_MapLightening 3 file 클로버군 2012.07.02 2745
422 미니맵 Map-System by AmIMeYet [미니맵] 9 Man... 2008.10.28 2746
421 기타 아키루냥님 요청 스크립트(자작) 4 file Last H 2009.02.22 2754
420 HUD X 와 Y 좌표 표시 해주는 스크립트 9 아방스 2009.07.03 2760
419 메뉴 CogWheel Style Menu Bars 6 아방스 2008.03.09 2777
418 직업 [VX] Blue Mage by Fomar0153 9 WMN 2008.04.06 2786
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32