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
110 기타 좀 뭐랄까... 어이없는 "비행선 더 높게 날아오르게 하기!"스크립트.... 8 루시페르 2009.06.06 2426
109 기타 전투후 이어지는 베경음 9 비극ㆍ 2010.04.19 2190
108 기타 적 선택시 스킬창 비표시 + 타겟 플래쉬 7 훈덕 2009.06.14 2094
107 기타 장애물을 피하고 다가오게 하는 스크립트 5 file 박력남 2014.02.25 1877
106 기타 작은 게이지바 표시 스크립트 44 file 허걱 2009.02.05 5979
105 기타 이벤트 제작용 소품 모음 스크립트 12 시트르산 2010.09.10 2209
» 기타 이벤트 위치 저장 스크립트 10 Tofuman 2008.12.11 2096
103 기타 이벤트 상세효과 9 file 사람이라면? 2010.08.15 2801
102 기타 이벤트 뿌리기 + 범위지정 8 file 허걱 2009.07.13 2698
101 기타 요리 시스템을 도입하는 스크립트입니다. 9 file 스페나로츠 2011.08.18 3145
100 기타 여러스크립트(목적은 포인트) 12 file 인생은 힘들다. 2011.08.26 3087
99 기타 액터선택지제작 간편화 스크립트 7 Evangelista 2009.02.26 4082
98 기타 앞에있는 이벤트 아이디 찾기 6 허걱 2009.08.21 2091
97 기타 아키루냥님 요청 스크립트(자작) 4 file Last H 2009.02.22 2754
96 기타 아이콘 캐릭터 17 file 허걱 2010.02.28 4225
95 기타 아이디를 띄우기 20 12345678 2011.11.07 4627
94 기타 심플 마우스 시스템 1.5 애드온 11 file RMdude 2009.02.11 4325
93 기타 시야범위 스크립트 18 file 좀비사냥꾼 2009.03.19 4047
92 기타 시야범위 스크립트 22 file 카르와푸딩의아틀리에 2009.06.30 4025
91 기타 스크립트로 커먼 이벤트 실행 [수정] 3 허걱 2009.08.17 2311
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7