본문 바로가기

쓰기

이제는 ATCode 까지 손을 대버렸습니다 -_-



차이점이 느껴지십니까? ;;

/a:ATCode {
ENCODEKOR,FORCEFONT(5),
HOOK(0x004A5CDF,TRANS(ECX,SOW)), // 대사
HOOK(0x004D84F0,TRANS([ESP+0x4],SOW)), // 선택지
HOOK(0x004A5600,TRANS([ESP+0x8],PTRCHEAT)) // 이름
}

/t:MultiPlugin{preKoFilter{},CmdFilter{OVERWRITE(FALSE)},ezTransXP{},CmdFilter{}}

빨간 색 부분을 주의해 넣어주세요; SOW는 Script OverWrite 약자로.. 뭔가 대단한 이름이 생각나지 않아 그냥 붙였습니다. ㅡ.,ㅡ

* 원리

리얼라이브는 스크립트 전체를 메모리에 올려놓고 거기서 직접 데이타를 읽어 화면에 뿌려줍니다. 그래서 번역문이 원문보다 긴 경우 넣을 공간이 없기 때문에 원문 길이에 맞게 번역문을 넣어줘야 합니다.

예:
원문 - zz ABCD wxyy (여기서 zz, wxyy 등은 스크립트, ABCD는 대사임)
번역 : ABCD = 가나다라마바  (원문이 4자인데 번역문은 6자)
번역문 - zz 가나다라 wxyy (원문이 4자밖에 되지 않으므로 번역문 뒤를 잘라서 강제로 4자로 만든다)

SOW, 스크립트 덮어쓰기 후 복구 방식은 다음과 같이 작동합니다.

1. 번역문의 길이만큼 데이타를 백업받습니다. 위치는 번역문의 끝이 딱 원문의 끝에 맞도록.
원문 - zz ABCD wxyy
백업 - z ABCD (6자 백업)

2. 백업받고 난 원문 위치에 번역문을 복사합니다.
복사 후 원문 - z가나다라마바 wxyy (원본 대사의 앞부분 (z )이 깨졌음)

3. 대사 출력 포인터를 번역문의 처음으로 돌립니다. 곧, 원래 A 자리에서 출력해야 하는데 가 자리에서 출력하도록
대사 출력 포인터를 거꾸로 2칸 옮깁니다. 이건 포인터 바꿔치기와 동일합니다.

4. 대사가 출력됩니다.

5. 대사 출력 후 원문을 복구합니다.
복구 전 원문 - z가나다라마바 wxyy
백업된 원문 - z ABCD
복구 후 원문 - zz ABCD wxyy

Hide_D

2008.07.21
17:52:05
이젠 RealLive라고 플러그인 이름을 바꾸기만 하면 되는군요[..]

Hide_D

2008.07.21
18:08:25
으음...
그나저나 세이브는 어떨까요?

whoami

2008.07.21
18:10:56
세이브는 아마 안 될 겁니다;

... 그런데.. 한글번역중에도 세이브되는 포인트가 하나 있습니다; 선택지에서는 한글상태에서도 세이브가 됩니다.

나는누구인감?

2008.07.21
18:24:06

오오오. 굉장한걸 만드셨군요!

whoami

2008.07.21
18:24:52

아뇨. 지금까지 preKoFilter 나 CmdFilter 가 하던 일은 동일합니다. 단지 예전에 사용하던 덮어쓰기 방식은 글자수 제한이 있었지만 SOW는 글자수 제한이 없습니다.. 곧, 원문보다 번역문이 길어도 전부 표시해줍니다. 그것만 다르다고 생각하면 됩니다.

그래서 CmdFilter 에 OVERWRITE(FALSE) 로 덮어쓰기 모드 (글자 길이를 맞춰주는 모드)를 강제로 꺼 준 겁니다.

나는누구인감?

2008.07.21
18:50:29
ATCode에서 원문 받아서 CmdFilter로 넘기고 번역하고 CmdFilter에서 한번 더 거르고 번역된 문장이 ATCode로 와서 ATCode에서 번역된 문장을 스크립트와 합체해서 출력한뒤 ATCode에서 메모리에다가 원문을 다시 복구해서 문제발생의 소지를 없애버리는것 아닌가요?

저도 잘 모르겠습니다...
후앰아이님이 명쾌한 설명을 해주셔야할듯...

어이쿠 정착A님 코멘트를 삭제하시면 저만 바보되는디...

whoami

2008.07.21
20:45:36

지나가다정착한이A님// 맞습니다. 제대로 이해하신 것 같네요. 그래서 예전 코드인 ECX+0x3 인가? 를 안쓰고 코드가 완전 계산된 부분에서 ATCode를 설정해 준 것입니다. 아마 [레지스터+값] 이나 [레지스터], 레지스터 형식은 되겠지만 [레지스터]+값 혹은 레지스터+값, [레지스터+값]+[레지스터+값] 같은 형태는 제대로 작동하지 않을 것입니다. 이 점은 포인터 바꿔치기 방식도 동일할 겁니다.

아래의 대사 포인트 스크린샷을 참조하시면 기존의 ECX+0x3 하고 지금의 ECX 하고의 차이점을 찾으실 수 있을 겁니다.. 그리고 이 어셈블리 패턴은 *모든* 리얼라이브 게임에서 유효한 것 같습니다. 곧, 이 지점만 찾으면 모든 리얼라이브 게임에서 대사는 한글로 볼 수 있을 겁니다.

첨부 :
reallive.script.PNG [File Size:63.7KB/Download44]

Hide_D

2008.07.22
00:00:58
으음.... 제가 생각하는게 맞나요?

 문장들

번역문장 ■
  캐시 □
 포인터 ▽
라고 할때
        ▽             
■■■■■■■■■■■■■■■■■■■■■■■■
□□□□□□□□□□□□□□□□
이걸
     ▽             
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■□□□□□□
요렇게 해서

              ▽ 
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■□□□□□□


                            ▽
■■■■■■■■■■■■■■■■■■■■■■■■
□□□□□□□□□□□□□□□□
이렇게 간다는 건가요?

그 다음단계는
                    ▽
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■□□□□□
이거구요?

whoami

2008.07.22
17:34:38
Hide_D군님// 네. 맞습니다.

미히

2008.07.26
17:35:59

감사감사 감사합니다 !!

List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일sort
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
49 Archive [플러그인] ATCode 121025 file EroGame 1070   2012-10-24 2012-10-25 01:17
 
48 Archive [실행파일] AralTrans 121101 - 테스트 - 파기 [10] file EroGame 1242   2012-11-01 2012-11-03 00:01
 
47 Archive [실행파일, 플러그인] AralTrans, ATCTNR 121103 [1] file EroGame 1200   2012-11-03 2012-11-04 03:52
 
46 Archive [실행파일, 플러그인] AralTrans, ATCTNR 121104 [14] file EroGame 1680   2012-11-04 2012-11-05 13:13
 
45 Archive [실행파일, 플러그인] AralTrans, ATCTNR, ATCode 121106 [10] file EroGame 1720   2012-11-06 2012-11-07 22:20
 
44 Archive [플러그인] DumpText 121114 [6] file EroGame 1084   2012-11-14 2013-01-04 02:22
 
43 Archive [플러그인] ATCode 121201 [1] file EroGame 1508   2012-12-01 2012-12-02 20:50
 
42 Archive [플러그인] ATCode, DumpText, DenyWord 130104 [2] file EroGame 1390   2013-01-04 2013-01-05 20:12
 
41 Talk 추후 업데이트(언젠가, 누군가) 해야 할 사항입니다. (7/28) [5] TwoComet 1858   2013-01-22 2013-09-21 03:00
1. SCP 기능 추가(ATCode에 병합) - 파기(현재 잠정적인 해결) 2. 기리기리 W2M, M2W 변환체크 추가(NTLEA를 이용한 대사수집) - 일시보류 3. 종결문자 따로 강제지정 (0x00을 \0으로 변환하고 표기불가능 문자는 %xx, 종결문자는 특정 헥스값을 입력하여 서치...  
40 Archive [실행파일, 플러그인] AralTrans, AralUpdater, ATCTNR, ATCode 2013/01/31 [2] file EroGame 1443   2013-01-30 2013-02-01 19:17
 
39 Archive [플러그인] ATCTNR,ATCode 130202 file EroGame 715   2013-02-02 2013-02-02 05:01
 
38 Archive [플러그인] ATCode 130203 file EroGame 820   2013-02-03 2013-02-03 20:53
 
37 Archive [플러그인] ATCode 130219 [1] file EroGame 987   2013-02-19 2020-04-25 09:44
 
36 Archive [실행파일, 플러그인] AralTrans, AralUpdater, ATCTNR 130225 file TwoComet 1042   2013-02-25 2013-03-03 15:53
 
35 Talk 변경된 소스 좀 올려주세요. [1] whoami 715   2013-03-06 2013-03-06 19:09
안녕하세요. 오랫만입니다. 간만에 들러보니 폴라리스쪽에 큰 일이 있었더군요. 뭐 자세한 사항은 잘 모르겠지만.. 어쨌든.. 오랫만에 다시 한번 볼까 하고 SVN 업데이트를 했더니 1/31 이 마지막인데 이후로도 업데이트가 많이 되었더군요. SVN 업데이트를 가...  
34 Talk 아랄트랜스 번역플러그인에 이 프로그램들을 추가해주시면 안될까요? [5] 암흑마제 1536   2013-03-14 2013-03-14 22:16
1.TransCAT KJ/JK - 한일,일한 양방향 실시간 번역 프로그램 창신소프트의 이지트랜스와 마찬가지로 한일,일한 번역 프로그램입니다. 이지트랜스와 마찬가지로 사용자사전 기능을 제공하여 사용자사전을 잘만 이용하면 번역은 더 좋아집니다. 공통적인 성격을...  
33 Archive [플러그인] TransCAT 130316 (번역플러그인) [2] file TwoComet 2736   2013-03-16 2013-03-18 09:46
 
32 Talk 어플로케일이 후킹하는 함수리스트... [2] TwoComet 868   2013-03-22 2013-03-27 10:26
NTDLL.DLL RtlMultiByteToUnicodeN RtlAnsiStringToUnicodeString RtlUnicodeToMultiByteN RtlUnicodeStringToAnsiString RtlOemToUnicodeN RtlOemStringToUnicodeString RtlUnicodeToOemN RtlUnicodeStringToOemString RtlUpcaseUnicodeToMultiByteN RtlUpcas...  
31 Archive [플러그인] ATCode 130415 file TwoComet 2898   2013-04-15 2013-04-15 01:04
 
30 Talk 정말 오래간만입니다. [5] Hide_D 694   2013-05-08 2013-07-04 04:45
중간에 폴라리스 폭파되었다는 소식 듣고 한번 들렀던 걸 제외하면 거의 1년 넘게 접속을 안하고 있었던 셈이네요 -0-;; 랩에 진행중인 과제도 있고해서 아직도 좀 바쁘긴 한데, 시간 나는데로 플러그인 관련으로 쌓인 일 좀 처리해 볼까 합니다. PS. 아직 관...