메뉴 건너뛰기

창조도시 기록보관소

RPGXP 스크립트 실행여부를 알아보거나 스크립트를 봉인시켜보자

2006.09.30 07:43

A. 미스릴 조회 수:456 추천:2

The hero of justice의 스크립트 일부를 복붙하겠습니다.


if uping_stat == 2
  if $game_variables[5] > $game_variables[2] * 2


    return
  end


end


변수들은 그냥 무시하고 중요한 건 저기 두 if문이 모두 맞을 경우 "return"이 실행된다는 겁니다.


하지만 return이 실행 안된다?!??
이러는 경우가 있심.


...


그러면 이렇게 해 봅시다.


if uping_stat == 2


  p "아햏"
  if $game_variables[5] > $game_variables[2] * 2


    return
  end


end


이러면 "아햏"이 뜨면 첫번째 난관인 if uping_stat == 2는 통과했다는 소리가 됩니다.


또 이렇게 하죠.


if uping_stat == 2


  p "아햏"
  if $game_variables[5] > $game_variables[2] * 2


    p "햏햏햏햏햏!!"


    return
  end


end


이러면 결과 이렇게 됩니다.


if uping_stat == 2를 넘기지 못했다면 "아햏"이 뜨지 않고


if $game_variables[5] > $game_variables[2] * 2를 넘기지 못했다면 "햏햏햏햏햏!!"이 뜨지 않아요.


RPG2K도 가능합니다.


스크립트 대신 문장의 표시를 쓰면 되겠죠?ㅋㅋ


(솔직히 저거 원래 탐제2 인공지능 커맨드로 짤때 사용한 기법 -_-)


 


그러면 이제 스크립트를 봉인해볼까요?


if uping_stat == 2
  if $game_variables[5] > $game_variables[2] * 2


    return
  end


end


물론 에러가 뜨진 않겠지만


만일 에러가 뜬다고 가정해봅시다.


그럼 return가 의심이 든다고 합시다(물론 문제없지만 예를 들어 ^^;)


if uping_stat == 2
  if $game_variables[5] > $game_variables[2] * 2


    #return
  end


end


이렇게 #를 붙여줍니다.


이러면 정말 쉽게 봉인이 됩니다 ㅋㅋㅋ


그리고 이렇게 해서


똑같은 에러가 뜬다 -> return 에 문제가 없다


에러가 해결되었다 -> return 에 문제가 있다


RPG2K는 "이벤트 처리의 중단"을 쓰면 간단합니다.ㅋㅋ


하지만...-_- 뒤에 있는 모든 이벤트 커맨드들이 다 봉인되어 버리므로 신중히 써야 함 ㄱ-


(이것도 원래 IR2 커맨드로 시스템 짜줄때 많이 쓰던 기법이죠 ㅋㅋ 일맥상통)