• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
카페정보
[RPG]Guild 게임 자료실
 
 
 
카페 게시글
스타1 - 스타에디트(EUD) 기본 메모리 오프셋 <-> EUD 트리거 계산
rpgkdh 추천 0 조회 1,509 08.04.24 12:45 댓글 11
게시글 본문내용
 
다음검색
댓글
  • 08.04.29 11:06

    첫댓글 이해가 잘 되는군요. 감사합니다.~

  • 08.04.29 13:43

    scmdreaft2도 트리거 파일 로드가능하나요? 그리고 메모리 오프셋이 정확히 뭔지 잘 이해가안가네요..제 머리가 나쁜탓도있겠지만 [3]번에서 계산기가 알아서 해주니까 [1]번과 [2]번은 궂이 할필요가 없나요?

  • 작성자 08.04.29 13:57

    메모리 오프셋은 아주 쉽게 설명하자면, 정보가 저장되는 메모리의 주소입니다. trg파일은 scmdraft에서는 쓸 수 없고 캠페인 에디터에서 쓸 수 있습니다. 이렇게 해서 불러온 트리거 파일을 저장한 맵 파일을 scmdraft로 열어도 되겠지만, scmdraft로는 death값을 10억 이상으로는 넣을 수 없습니다. 그래서 저는 큰 death값을 넣을 때는 scenario.chk 파일이라고 하는 녀석을 수정하는데요, 이건 복잡하니 아마도 스타포지로는 가능할 것 같네요. (death값의 최대는 42억 정도 됩니다.) 그리고 [1]번과 [2]번은 EUDTrig를 통해 나온 것이므로 그것의 원리를 알아보자는 정도가 되겠습니다.

  • 08.04.29 13:57

    아아..그리고 Exporter를 누른 다음 Player는 나온값에서 -1 Value는 Player -1를 해서 나온 값과 동일하게 적는건가요?

  • 작성자 08.04.29 16:56

    Exporter의 Player는 EUDTrig 아래쪽의 Player에서 1을 뺀 값을 적어야 합니다. 그리고 Value는 death값을 뜻하는데, 그림에서는 0으로 넣었습니다. 본문에 Value에 대한 설명이 없었군요. 방금 추가했습니다.^^

  • 작성자 08.05.05 02:08

    플레이어 번호를 1빼는 이유는 Player 1일 경우 플레이어 번호가 실제로는 0번으로 기록되기 때문입니다. (scenario.chk에서 TRIG의 플레이어 번호)

  • 08.05.04 08:44

    unsigned 4294967295와 signed -1의 값이 서로 같아요. (0xFFFFFFFF)

  • 작성자 08.05.05 19:29

    본문 글 수정함..

  • 작성자 08.05.22 00:02

    메모리 에디터에서 확인한 결과, 플레이어1의 마린이 죽은 횟수를 나타내는 오프셋에서 4만큼 추가된 곳이 플레이어2의 마린이 죽은 횟수를 나타내는 곳이었고, 48만큼 추가된 곳이 플레이어1의 고스트가 죽은 횟수를 나타내는 오프셋이었습니다. 여기서 나온 공식을 프로그램으로 만든 것이 EUDTrig인 것 같습니다. 그리고 아직 정확히는 모르겠지만, 플레이어 13 이상부터는 각 플레이어의 상태가 플레이어1~12 사이와 일치하는 것 같았습니다. 1.13버전의 번역된 EUD 자료와 대조해 보니, 아마도 13이상의 플레이어를 써야 플레이어1~12의 상태를 인식하거나 바꿔줄 수 있는 것 같습니다.

  • 작성자 08.05.22 10:15

    공격 상태를 인식해 주는 오프셋으로 계산을 하다 보니, EUDTrig의 밑에 나오는 Byte Offset을 어떻게 계산하는가까지 알게 되서 본문에 추가하였습니다. Byte Offset은 같은 플레이어 번호, 같은 유닛 아이디를 가진 4개의 주소가 1바이트씩 각각 다른 기능을 할 때, 이것을 구분해 주기 위해 표시한 몇번째 바이트냐를 나타내는 값입니다. 그런데 이것을 EUD에서 사용하기 위해서는 같은 플레이어 번호와 같은 유닛 아이디를 가지고 있기 때문에, 바이트의 위치가 첫번째가 아닐 경우에는 4개의 바이트의 값을 모두 읽어야 그것이 데스값이 됩니다.

  • 작성자 08.05.22 10:17

    예를 들어, 공격 상태 인식 EUD에서는 3번째 바이트를 써서 그 곳을 03으로 두는데, 그것을 4바이트 단위로 1~4번째 바이트를 모두 읽어 내면, 196608 이런 값을 가집니다. 즉, 이것이 데스값이 되고, 바이트의 위치는 데스값으로 계산될 수 없습니다.

최신목록