구동 환경 0.14.0

에이키 F 적용, 에이키 추가파일 적용 (CSV,ERB)


--로그--

이동

에이키가 일층·통로에 있었다

대사_메시지관련\개인대사\030 에이키\追加ファイル\M_KOJO_K30_함수・설교라이브러리 F.ERBの106行目でエラーが発生しました:Emuera1824

SIF CFLAG:(안면:COUNT):현재위치 == CFLAG:MASTER:현재위치

エラー内容:配列型変数안면の第1引数(6)は配列の範囲外です

現在の関数:@K30_FIND_AROUND(대사_메시지관련\개인대사\030 에이키\追加ファイル\M_KOJO_K30_함수・설교라이브러리 F.ERBの88行目)

関数呼び出しスタック:

↑대사_메시지관련\개인대사\030 에이키\M_KOJO_K30_이벤트.ERBの377行目(関数@M_KOJO_EVENT_K30_1内)

↑대사_메시지관련\KOJO_MESSAGE_t.ERBの129行目(関数@KOJO_MESSAGE_SEND内)

↑이벤트관련\정사발각_t.ERBの366行目(関数@AFFAIR_DISCLOSURE内)

↑스테이터스표시관련\INFO_t.ERBの708行目(関数@INFO_RENEW_TARGET内)

↑스테이터스표시관련\INFO_t.ERBの67行目(関数@SHOW_STATUS内)

--로그 끝--



* FIND AROUND 함수 문제

@K30_FIND_AROUND()

#FUNCTION

#DIM 안면, 6 = 76, 49, 113, 80, 66, 26

#DIM 총인원수

#DIM 추첨

#LOCALSIZE 20

;에이키님의 안면은 7명, 코마치>히사시차가>사토리>헤카티아>아큐>유유코>유카리의 순서에(마음대로) 설정


이걸 프로그래밍 해본 적 없지만 두번째는 3번째 라인이 배열 생성하는 거라고 생각함. 크기 6의 배열을 생성

주석봤을 때는 7개의 배열을 생성해야 되는 걸로 보임

그리고 보통 C베이스 프로그램은 다 인덱스가 0부터 시작하기 때문에 이를 기반으로 추론 

함수 호출 후 배열 인수 인덱스에 6이 들어감. 7번째 원소 참조 -> 즉 배열 범위를 벗어남


* 생각해본 해결 방법

- 첫번째 (이것이 개발자가 원하는 방안)

저 '히사시차가'가 누군지 모르겠음. 저게 뭔지 알면

#DIM 안면, 7 = 76, NNN, 49, 113, 80, 66, 26

이라고 수정하면 되지 않을까 생각함


- 두번째 (임시대처방안)

이 프로그램의 언어 구성을 잘 모르겠으나 모든 걸 추론으로 해봄

FOR COUNT, 0, 7

SIF CFLAG:(안면:COUNT):현재위치 == CFLAG:MASTER:현재위치

RETURNF 안면:COUNT

(예외 발생 부분)

추론결과 FOR A, B, C 명령어는 반복문 전용 임시 변수 A를 생성하고 A=B 부터 A를 1씩 증가시킴. 이것을 C번 반복함

따라서 FOR COUNT,0,7에서 안면:COUNT에서 COUNT는 0,1,2,3,4,5,6 => COUNT=6에서 OOB 예외발생 따라서

FOR COUNT, 0, 7를 FOR COUNT, 0, 6으로 바꾸면 될 것 같음.

COUNT에 결국 6은 들어가지 않음 (5까지) 0 1 2 3 4 5


일단 아래꺼 적용해보니 잘 되는 것 같긴 한데 (K30_FIND_AROUND() 함수가 실행될 만 한 환경에서 안 팅김) 잘 모르겠음 함수 스택 쌓인거 다 체크 안해봄


ㄸ친담에 자꾸 이런거 함.ㅅㅂ