[메가텐]스킬을 만들었는데 함수가 꼬였습니다...(해결!!)

모스부호 | 질문 | 조회 수 97 | 2019.01.03. 19:48

글을 작성하시기 전에, 먼저 검색해보셨으면 좋겠습니다.

 

요점을 말하자면 스킬을 만들었는데 관련 함수가 꼬여서 이상 행동을 하니 꼬인 부분좀 찾아서 고쳐주세요. 라는 글입니다. 저 혼자서는 GG. 불가능해요...

 

문제의 스킬들은 이겁니다. (스킬들만 봐선 해결 못하실테니 본문을 계속 읽어주세요)

 

SKILL3563_헤드샷! 프리액션.ERB

SKILL3565_헤드샷! 프리액션(엘레나).ERB

SKILL3566_헤드샷! 프리액션(막스).ERB

 

일단 내용은..

 

제가 의뢰에서 특정한 적을 상대하는 상황을 가정해 만들어낸 스킬의 상태가 좀 이상합니다.

이 현상을 해결하고 싶은데 방법을 모르겠네요.

어떤 현상이냐면.. 일단 사진을 봐주세요.

 

1.

 

1.png

 

 

2.

 

2.png

 

 

3.

 

 

3.png

 

붉은 부분을 주목하면, 원래 저렇게 나와서는 안됩니다. 저걸 현실감있게 설명하면 총 쏜적도 없는데 총 쐈다고 대사 치는거에요...

 

 

SKILL3565_헤드샷! 프리액션(엘레나).ERB

 


이 스킬의 내부를 보면 3회 사격하고 [재장전]이라는 대사 상황을 넣습니다. 해당 파일의 345번째 줄.

 

그리고 또 적이 있으면 다시 3회를 쏘는데 만약 적이 없다면 공격이 멈추도록 함수 조건을 걸었어요.

 

IF BASE:(CHARANUM-1):HP > 0 || BASE:(CHARANUM-2):HP > 0 || BASE:(CHARANUM-3):HP > 0 || BASE:(CHARANUM-4):HP > 0 || BASE:(CHARANUM-5):HP > 0 || BASE:(CHARANUM-6):HP > 0 || BASE:(CHARANUM-7):HP > 0 || BASE:(CHARANUM-8):HP > 0 || BASE:(CHARANUM-9):HP > 0 || BASE:(CHARANUM-10):HP > 0

CFLAG:ARG:공격강화 = MIN(32, CFLAG:ARG:공격강화 + 12)
CFLAG:ARG:명중강화 = MIN(32, CFLAG:ARG:명중강화 + 12)

CALL ATTACK_RAND,ARG,ARG:1,3565

CFLAG:ARG:공격강화 = MAX(-32, CFLAG:ARG:공격강화 - 12)
CFLAG:ARG:명중강화 = MAX(-32, CFLAG:ARG:명중강화 - 12)

 

대략 이렇게 걸었습니다. 근데 배치된 캐릭터 문제인지 순서가 꼬인건지 자꾸 3번 같은 상황이 벌어지네요.

테스트할땐 이러지 않았는데 유독 특정 상황에서 3번 같은 상황이 벌어집니다.


정리
 

1. 3번과 같은 상황이 벌어지는 이유는?

 

2. SKILL3566_헤드샷! 프리액션(막스), SKILL3563_헤드샷! 프리액션, SKILL3565_헤드샷! 프리액션(엘레나)

 

위 세 개의 스킬을 사용시 3번과 같은 상황이 벌어지지 않게 함수를 변경하거나 조정하고 싶음. 그러나 공격, 대사 출력, 그리고 재장전은 유지되어야 함.

 

이렇습니다.

 

2번이 어떤 내용인지 이해하실 수 없다면 제가 지금 쓰는 화상 통합팩 파일을 압축해서 올릴테니 직접 써보시면 알겁니다.

파일 자체는 바로 압축풀고 두 파일을 한 장소에서 다시 압축을 푸셔야해요. 이유야 첨부파일 제한 때문에 이렇게 올린겁니다.

 

아무튼 실행하면 세이브 하나가 있는데 그걸 들어가서

 

의뢰 'XCOM2 WAR OF THE CHOSEN 시나리오 - 잃고 버려짐'

 

를 하세요. 누구 보내라는데 그냥 아무나 고르시면 되고요.

 

그리고 직접 헤드샷! 프리액션 이라는 스킬을 써보시면 어떤 컨셉인지 아실겁니다. 압축된 파일에는 헤드샷! 프리액션 관련 이슈 부분만 편집했는데 차이점을 알고 싶으시다면 제가 따로 올리는 원본으로 교체후 바로 써보시면 될겁니다. 그럼 뭐가 문제인지 감이 잡히실거에요.

 

레벨 29 까지는 3번 쏘고 재장전, 3번 쏘고 다시 재장전.
레벨 30부터는 6번 쏘고 재장전, 4번 쏘고 끝(재장전 대사 없음)

 

혹시 몰라 문제의 스킬을 사용하는 원본 의뢰 파일도 같이 올립니다.

 

REQUEST_62_3_잃고 버려짐_1-3(원본).ERB

  1. SKILL3563_헤드샷! 프리액션.ERB (File Size:140.5KB/Download:0)
  2. SKILL3565_헤드샷! 프리액션(엘레나).ERB (File Size:105.2KB/Download:2)
  3. SKILL3566_헤드샷! 프리액션(막스).ERB (File Size:134.0KB/Download:0)
  4. 1.png (File Size:99.6KB/Download:0)
  5. 2.png (File Size:55.1KB/Download:0)
  6. 3.png (File Size:57.6KB/Download:0)
  7. REQUEST_62_3_잃고 버려짐_1-3(원본).ERB (File Size:76.0KB/Download:0)
  8. 두번째.zip (File Size:29.73MB/Download:0)
  9. 첫번째.zip (File Size:40.01MB/Download:0)
댓글 쓰기
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
취소
말 던지기전에 10초만 고민하고, 자기가 쓴 글을 다시 한번만 읽어보셈.
그 10초가 다음 대화의 방향을 크게 바꿀 수 있을지도 모름.
...... at 2019.01.03. 22:58

1. 중간에 BASE:(CHARNUM-7):HP 같은걸 쓰셨는데 이렇게 하면 적의 총 숫자가 10명 이하일때 문제가 생깁니다.
예를들어 아군6명(노예번호0~5번) 적5명(노예번호6~10번)이라고 가정하면(CHARNUM은 11),
 (CHARNUM-7)은 4로 적이 아닌 아군4번이 나옵니다.
즉 적 숫자가 10명미만일때는 아군의 뒷번호 생존자가 있으면 적이 살아있는걸로 오해하고 사격하는걸로 보입니다.


2. 적 생존자가 있는지 확인해서 특정 변수(예를들어LOCAL:3)에 저장해놓고 쓰면 될듯합니다.

IF BASE:(CHARANUM-1):HP > 0 || BASE:(CHARANUM-2):HP > 0 || BASE:(CHARANUM-3):HP > 0 || BASE:(CHARANUM-4):HP > 0 || BASE:(CHARANUM-5):HP > 0 || BASE:(CHARANUM-6):HP > 0 || BASE:(CHARANUM-7):HP > 0 || BASE:(CHARANUM-8):HP > 0 || BASE:(CHARANUM-9):HP > 0 || BASE:(CHARANUM-10):HP > 0

이 부분을

LOCAL:3 = 0
FOR A,7,17
    LOCALS:2 = 포지션{A}
    SIF FLAG:(LOCALS:2) < 0
        CONTINUE
    SIF IF BASE:(FLAG:(LOCALS:2)):HP > 0   
        LOCAL:3 = 1
NEXT
IF LOCAL:3 == 1

로 바꾸면 될듯합니다. (적중에 생존자가 있을때 LOCAL:3에 1이 들어갑니다)

모스부호 at 2019.01.03. 23:08

IF BASE:(CHARANUM-1):HP > 0 || BASE:(CHARANUM-2):HP > 0 || BASE:(CHARANUM-3):HP > 0 || BASE:(CHARANUM-4):HP > 0 || BASE:(CHARANUM-5):HP > 0 || BASE:(CHARANUM-6):HP > 0 || BASE:(CHARANUM-7):HP > 0 || BASE:(CHARANUM-8):HP > 0 || BASE:(CHARANUM-9):HP > 0 || BASE:(CHARANUM-10):HP > 0

 

 

LOCAL:3 = 0
FOR A,7,17
    LOCALS:2 = 포지션{A}
    SIF FLAG:(LOCALS:2) < 0
        CONTINUE
    SIF IF BASE:(FLAG:(LOCALS:2)):HP > 0   
        LOCAL:3 = 1
NEXT
IF LOCAL:3 == 1

 

이렇게만 바꾸면 헤드샷! 프리액션의 스킬 컨셉도 유지하면서 이상 행동도 없다는 거죠?

 

...오늘은 늦었으니 내일 시도해보겠습니다.

모스부호 at 2019.01.04. 18:40

SIF IF BASE:(FLAG:(LOCALS:2)):HP > 0

 

에서

 

SIF IF<--- 이것은 오타라고 믿겠습니다.

번호 분류 제목 날짜 글쓴이 최근 수정일 조회 수
공지 정보글 [10] 18.06.16. 파라디클로로.. 18.07.01. 6868
공지 에라판 이용안내 18.05.13. 파라디클로로.. 18.12.31. 4346
공지 eraTHYMKR 20181028 [13] 18.05.13. ㅇㄹ 18.12.31. 16079
2572 개별팩 [에라마왕] 도움말 (미완성) [2] file 19.01.02. ㅇㅇ 19.01.04. 464
» 질문 [메가텐]스킬을 만들었는데 함수가 꼬였습니다...(해결!!) [3] file 19.01.03. 모스부호 19.01.04. 97
2570 개별팩 [era紅魔館]홍마관ntr 잡다 파일 번역 [2] file 19.01.03. 번역기전사 19.01.04. 448
2569 팁, 정보 eraFGO K 채신버전 풀었더니 한국어가 튀어나왔다!?? [1] 19.01.04. ㅇㅇ 19.01.04. 964
2568 통합팩 era紅魔館protoNTR 0.022 file 19.01.04. run의고수 19.01.04. 651
2567 질문 csv파일하고 erb파일 수정할때 띄어쓰기 하면 안되나요? [2] file 19.01.02. ntr 19.01.02. 77
2566 질문 TW 주택 사면 아내가 같이 따라오는거 맞죠? [2] 19.01.02. 에릭 19.01.02. 462
2565 에러발생 ㅡㅡ [2] 19.01.02. 파라디클로로.. 19.01.02. 307
2564 통합팩 [에라마왕] 구상 추가본 [9] file 18.12.28. 지뢰탐지기 19.01.02. 1435
2563 개별팩 [YM]사구메 구상 교정 및 기타. file 18.12.31. 모스부호 18.12.31. 150
2562 질문 TW모바일 세이브 [1] 18.12.30. 에릭 18.12.30. 295
2561 개별팩 [YM]범용 캐릭터 이벤트 구상중 오타 수정. file 18.12.28. 모스부호 18.12.28. 95
2560 질문 [메가텐]텍스트 그림?(AA) 를 만드는 프로그램이나 방법이 있나요? [7] file 18.12.23. 모스부호 18.12.27. 408
2559 질문 메가텐 탐색중에.... [2] 18.12.27. 소다맛녹차 18.12.27. 180
2558 개별팩 eratohoK 사용자 사전 업데이트 180806 [2] file 18.08.06. 매실 18.12.26. 1495
2557 개별팩 롯폰기 대환락가 번역 [1] file 18.12.25. ㅁㅁ 18.12.25. 470
2556 질문 TW 모바일 세이브수정 어케하죠 18.12.25. 에릭 18.12.25. 73
2555 개별팩 [번역] era紅魔館protoNTR V0.032(레밀리아+공용대사) [2] file 18.12.22. 번역기전사 18.12.25. 782