본문 바로가기

쓰기

마찬가지로 아야카시를 몰모트로 설명해볼까 합니다.

004.JPG 

004355DA지점의 [ESP]+4 지점을 가리키고 있습니다.
게임에서는 이제 막 선택지를 출력하려고 하고 있습니다.
그 스크립트 명령어가 <MenuAdd>란 것을 알 수 있었죠
여기서 004355DA에 다시 브포를 걸고 무엇이 오는지를 확인해 보겠습니다.

005.JPG 
1 이군요[...]
다시 ㄱㄱㄱ

006.JPG 
아래에서 언급했던 대사와 동일한 구조의 포인터입니다.
011781A8이 문장 포인터고 12가 문장 길이, 1F가 최대 출력 길이가 되겠군요.
혹시 몰라 확인해 보자면

007.JPG 
일본어 문장이 확실한 것을 볼 수 있습니다.

008.JPG 
그리고 다시 진행하니 또한번 MenuAdd가 오는군요.

009.JPG 
2 군요.
2번째 선택지란 거겠죠.

010.JPG 
이번에도 문장 포인터가 나타남을 알 수 있습니다.
계속 실행해보면

011.JPG 
또다시 MenuAdd군요

012.JPG 
예측대로 3번째.
다시 실행 ㄱㄱ

013.JPG 
이번에도 문장이 오는데 이번엔 포인터가 아니라 문장이 통채로 왔군요 -_-;
귀찮아서 언급 안하려 했지만 그 이유는 최대 길이에 있습니다.
최대길이가 0F이하일 경우엔 대사포인터가 오는게 아닌 대사 그 자체가 와버리는 연산을 하더군요.
아야카시란 녀석은
여하튼 계속 진행해 보겠습니다.

014.JPG 
3개의 선택지를 내놓고 비로소 MenuEnd
그 이후엔 곧바로 선택지 출력을 확인 할 수 있었습니다.

여기서 말하고 싶은 것은 선택지를 출력하는 단계
즉 004355DA라는 함수를 거칠때마다 불러오는 데이터의 수순입니다.
종합해보면

<MenuAdd> -> 1 or 2 or 3(선택지 번호) -> 대사 포인터(혹은 대사) -><MenuAdd>->.........-><MenuEnd>

인 것을 알 수 있습니다.
만약 이것을 알고리즘화 해 패턴을 잡을 수 있다면 그러니까

<MenuAdd>가 오고 번호가 온뒤에 오는 대사 포인터 혹은 대사를 번역한다는 알고리즘을
아랄에 적용할 수 있지 않을까 해서 올려봤습니다.

문장 길이 지정만큼 많은 게임에서 쓰이는 방식은 아니지만 히데씨에게 설명해보니
여기에 직접 올려달라는군요 ㅡㅡㅋ

물론 이렇게 더러운 연산만 있는건 아닙니다.016.JPG 
어째선지 15번 이미지가 안올라오는군요 -_-;;;;;;;

이름 출력 부분입니다.
이미지가 안올라온지라 설명을 하자면 우선 처음으로

<Name>이 [ESP]+4에 오고
두번째로 바로 저기 드래그 되어있는 이름이 온 형상입니다.


<Name> -> 이름

이라는 간단한 구조도 존재하니 활용할 수 있지 않을까 싶습니다. 




List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜sort 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
64 Talk 으아아앍 SVN [1] Hide_D 10267   2008-09-27 2009-01-06 01:24
구조가 꼬였네요 orz 어쩌지[...]  
63 Talk 픽스 라인 연기로 인한 임시 대책 Hide_D 10821   2008-09-26 2009-01-06 01:24
본래 목적인 FixLine이 완성이 늦춰지면서 약간 작전을 변경하도록 하겠습니다. FixLine을 완성시키는 것은 유지하고 FixLine을 3개로 쪼갭니다. OutRuby : FixLine의 TextOnly옵션 DivideLine : FixLine의 Base 기능(DCOnly 대체용) FixChar : FixLine의 Add...  
62 Talk 일단, 옵션창 이렇게 생기면 되나요? file Hide_D 11569   2008-09-22 2009-01-06 01:25
 
61 Talk 조만간 멀티플러그인은 기본 기능으로 흡수시킬까 합니다. 아랄 11346   2008-09-21 2009-01-06 01:25
그리고 ExtTextOut문제를 빨리 해결.. 기리기리 최신 패턴에 대한 업데이트 SVN 저장소 정리하기 등등.. 할게 많군여 ;;  
60 Talk 히데님께 문의 해요! [2] file 라파에 11922   2008-09-21 2009-01-06 01:25
 
59 Talk 하루카 원문 [1] 나는누구인감? 10337   2008-09-16 2008-09-17 01:00
원문  
58 Talk DenyWord 변경한 내용입니다 Hide_D 9493   2008-09-11 2008-09-11 23:04
1. 일단 EXACT를 추가했습니다. 정보(옵션버튼), 플러그인초기화부분, DenyWord클래스의 초기화부분이 변경되었고 실제 처리부분에서는 먼저 처리를 해준 다음 if문 대신 루프의 n값을 0으로 고쳐 루프를 돌지 않도록 처리했습니다. 2. 1바이트인지 확인하는 ...  
57 Talk [질문]UTF 코드를 SHIFT-JIS와 KS코드로 변환 [4] 호기심맨 13986   2008-09-02 2008-09-16 23:09
안녕하세요... 요즘 Aral이란 프로그램 덕에 갑자기 컴퓨터가 좋아진 사람입니다. 다시한번 모든 개발자분께 감사하구요.. 저도 아주아주 미약한 실력이지만 .. 참여해 보려고 합니다. (Aral에 도움될 실질적 가능성 0.0001%) 제가 관심가지는 부분은 단순님이...  
56 Talk 토모요 애프터...... [2] file whoami 10576   2008-08-26 2009-01-06 02:04
 
55 Talk FixLine 예상 작동 방식 [1] file Hide_D 10715   2008-08-23 2009-01-06 02:04
 
54 Talk 아... 괴물한자의 정체가 Hide_D 8458   2008-08-23 2009-01-06 01:05
일반적인 과정 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) -> MS949 인데, 괴물세트(?) 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식 하지 못한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) ->...  
53 Talk 개행 처리 관련해서 일단 제 구상입니다 Hide_D 8149   2008-08-21 2009-01-06 01:05
랄까 어느새인가 개행처리가 아니라 텍스트 처리 필터가 되어있습니다만[......] (CmdFilter는 텍스트와 텍스트 바깥을 구분하고, 이건 텍스트 내부를 처리하는 느낌?) 우선 입력 받을 내용은 MaxLine MaxWord (MaxChar?) 개행 기호 문자열(또는 Hex) 그리고 ...  
52 Talk 루비문자 처리 스샷 입니다. file 라파에 8595   2008-08-17 2008-08-17 17:43
 
51 Talk 라파에님 다시 한번 테스트해보세요. [3] file Hide_D 10896   2008-08-17 2008-08-17 17:23
 
50 Talk 라파에님 한번 테스트해보세요. [2] file Hide_D 8759   2008-08-17 2008-08-17 16:55
 
49 Talk 빈공간[...] file Hide_D 11531   2008-08-16 2008-08-19 00:01
 
48 Talk 플러그인을 만들다가 '또다시' 엄청난 실수를 저질렀다는걸 깨달았습니다. [2] Hide_D 7929   2008-08-12 2009-01-06 01:01
이쪽은 프로그래밍이라보가는 구상과 관련된 문제네요 ㅠ_ㅠ 현재 제가 손대고 있는 플러그인이 사용자사전 사용자대본 개행문자처리 컨트롤문자처리 인데, 두개씩 묶여있는 구조죠. 그런데... 사용자대본 -> 문장단위처리 사용자사전 -> 단어단위처리 개행문...  
47 Talk Hide_D군님, CCustomDic2 의 문제점을 알 것 같습니다.. [1] whoami 7811   2008-08-12 2008-08-12 22:41
저번에 (5) 문제.. 기억하시나요? 아마도 이것 때문인 것 같습니다. void CCustomDic2::PreCustomDic(LPSTR Dest, LPCSTR Source) { // ... 전략 for(int head=0;head<SourceLen;head++) { for(int tail=SourceLen-1;tail>head;tail--) { // ... 중략 ... //2...  
46 Talk 옵션 스트링 버퍼 말이죠? [1] Hide_D 10830   2008-08-11 2008-08-11 23:22
ezTransXP단부터 확인을 해봤더니 ezTransXP도 LPSTR을 이용하는 군요 ㄱ- 옵션으로 파일명을 받으려고 했는데, 이거 참 난감하게 됬네요. c:ゲ?ムABCA_Route.txt 하면 못열테니까요. 아직 LPTSTR은 안줘봐서 모르겠지만 안된다면 충격이 좀 클듯;  
45 Talk 어휴.. [2] file whoami 8573   2008-08-11 2009-01-06 01:06