스크립트.txt 사용하는 툴은 VX ACE 입니다.
이 스크립트는 실시간으로 변수창을 띄워주는 스크립트 입니다.
원본 스크립트 파일은 압축하여 업로드 해두었습니다.
텍스트 파일은 업로드가 불가능하더라고요...
질문내용.
이 스크립트를 필요에 따라 수정을 했는데,
이 과정에서 엄청난 렉을 유발하여 이를 해결할 방법이 없을까 여쭤봅니다...
스크립트의 일부를 보면 이런 부분이 있는데, 실시간의 화면상에 출력해주는 부분인 것 같습니다.
그리고 빨간 글자는 제가 추가한 부분입니다. 실시간으로 출력해야할 것이 늘어나 추가했습니다...
def update
# // Method to update the variable hud if a value has been changed.
super
for i in XAIL::VAR_HUD::VAR_LIST
refresh if($game_variables[i[0]] != @vars[i[0]])
refresh if($game_variables[i[4]] != @vars[i[0]])
end
end
테스트 해본결과 스크립트 스위치를 작동시키기 전까지는 아무런 문제가 발생하지 않습니다만,
스위치를 작동시키면, 엄청난 렉을 발생시키더라고요...
그래서 저 빨간 부분을 넣지 않으면 실시간으로 처리가 되지 않아 게임하는데 문제가 있고,
반대로 넣으면 엄청난 렉을 발생시킵니다...
저부분을 어떻게 바꾸면 렉을 잡을 수 있을지 여쭤봅니다... ㅠㅠ
다른방법?
아니면, 필요할때마다 필드 이벤트 - 스크립트 부분에서
refresh if($game_variables[i[4]] != @vars[i[0]])
위의 부분만 불러서 새로고침 해줄 수 있는 방법이 있을까요?
http://www.rpgmakervxace.net/topic/18702-gold-hud-with-variable/
일단 사용하신 스크립트는 따로 언급을 하지 않으셔서 알 수 없었습니다만, 구글 검색을 해서 찾아보니 아마도 높은 확률로 위의 링크에서 소개하고 있는 스크립트인 것 같군요. 아니시라면 죄송합니다. 위의 게시물의 내용만으로는 어떤 스크립트를 사용하셨는지 정확히 알기 어려운 점 이해해주시면 좋겠네요.
우선 빨간 부분은 잘 못 작성하셨어요. 현재 원본 스크립트는 등재된 모든 변수 리스트의 ID를 하나씩 대입해서 현재 출력중인 변수와 내용이 다를 경우 새로 고침을 해주고 있습니다만, 위의 빨간 코드가 삽입됨으로써 아무 일이 없더라도 그려야하는 변수 값 한개당 1번씩 매 프레임마다 새그리기를 하고 있습니다. 만약 5개의 변수에 대해서 HUD가 표시하고 있었다면 위의 빨간 코드의 추가로 인해 아무런 변동 사항도 없더라도 불필요하게 매 초당 300번씩 새로 그려주고 있는 셈입니다.
그러하니 일단 빨간 부분은 삭제하세요.
# VAR_LIST = [variable_id, vocab (nil), icon_index (nil), x, y]
VAR_LIST = [] # Don't remove!
VAR_LIST[0] = [1, nil, nil]
VAR_LIST[1] = [2, nil, 358]
VAR_LIST[2] = [3, nil, 359]
VAR_LIST[3] = [4, nil, 366]
그리고 정상적인 사용법이라면 모듈에 VAR_LIST[목록번호] = [변수ID, 용어(없으면 nil), 아이콘ID(없으면 nil), X좌표(안쓰면 알아서), Y좌표(안쓰면 알아서)] 의 형식으로 추가해주시면 별다른 스크립트 수정 없이도 알아서 새로 추가하신 변수를 화면내 출력하고 있습니다.
여기서 중요한 것은 목록 번호에 해당하는 것이 변수 ID와는 무관하게 단순 순서이므로 마음대로 작성하지 마시고 꼭 0부터 시작해서 추가한 순서에 맞게 기재하셔야 한다는 것입니다.
이 이외의 특별한 문제가 발생한다면 해당 스크립트의 원작자에게 직접 문의하여 해결법을 찾는 쪽이 보다 정확하리라 생각되네요.