본문 바로가기

쓰기

이제는 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
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155436   2008-08-03 2008-12-16 00:03
49 Talk Re: SOW 모드의 신기한 점? file whoami 11209   2008-07-23 2009-01-06 01:27
 
48 Talk Vmware 가상 일윈으로 즐기기.. [3] file ㅌㅌ 14029   2008-07-23 2008-07-24 21:11
 
47 Archive [플러그인,소스] 사용자사전 0.2 20080723 (테스트버전) file Hide_D 9861   2008-07-23 2008-07-23 00:08
 
46 Archive [플러그인, 소스] ATCode 테스트 버전 20080722 [2] file whoami 8908   2008-07-22 2009-01-06 01:27
 
45 Talk 어? ezTransXP 플러그인을 분석하다 생각난건데 [1] Hide_D 8161   2008-07-22 2008-11-22 16:38
이 플러그인에서는 전각 기호는 다른 코드로 치환해 뒀다가 다시 전각 기호로 되돌려주는데, 반각기호는 처리법이 약~간 특이합니다. 1. 원문에 ()<>{}가 없고, 번역문에 ()<>{}가 있으면, ()<>{}와 그 안의 내용을 날립니다. 2. 원문에 ()<>{}가 있고, 번역문...  
44 Archive [플러그인] ATCode - OVERWRITE 테스트 버전 20080721 file whoami 7900   2008-07-21 2009-01-06 01:27
 
» Archive [플러그인, 소스] ATCode 테스트 버전 20080721 [10] file whoami 13514   2008-07-21 2011-06-28 01:25
이제는 ATCode 까지 손을 대버렸습니다 -_- 차이점이 느껴지십니까? ;; /a:ATCode { ENCODEKOR,FORCEFONT(5), HOOK(0x004A5CDF,TRANS(ECX,SOW)), // 대사 HOOK(0x004D84F0,TRANS([ESP+0x4],SOW)), // 선택지 HOOK(0x004A5600,TRANS([ESP+0x8],PTRCHEAT)) // 이...  
42 Archive [플러그인,소스] EzTransXP with 사용자사전플러그인(테스트 버전) 20080721_2(추가수정) file Hide_D 9014   2008-07-21 2008-07-21 16:47
 
41 Talk 역시 번역 플러그인 테스트용으론 Hide_D 11417   2008-07-21 2008-07-21 12:50
체험판이 최고군요 +_+ 사쿠라슈트랏세웹 체험판 설치해놓고 전에 관리자님이 올리신 코드로 잘 돌아가니 이걸로 테스트 해야겠군요  
40 Archive [플러그인,소스] EzTransXP with 사용자사전플러그인(테스트 버전) 20080720_1 [6] file Hide_D 11445   2008-07-20 2008-07-21 13:59
 
39 Talk http svn을 운용하는건 어떨까요? [3] 아랄 8950   2008-07-20 2009-01-06 01:35
몇몇 개발자 분들께서 열악한 버전관리 환경 속에서도 플러그인을 개발하시는데 조금이나마 도움이 되고싶네요 소스는 svn상으로 함께 공유하며 자발적으로 개선해 나갔으면 하는데요 현재 기존의 플러그인에서 분기되거나 또는 아랄트랜스 기본 기능에 넣고 ...  
38 Talk 아무나 rc 파일 좀 만들어 주실분 안계세요? [2] Hide_D 12830   2008-07-19 2008-07-19 22:41
대충 이렇게 생겨먹었습니다. ┌──────────────────────┐│                      ││ □사용자사전사용             ││  경로 - ○ 게임폴더ATDataCustomDic.txt ││      ○ 사용자정의 |       |...|││    ...  
37 Archive [플러그인,소스] 사용자 사전 플러그인 0.1 20080718_2 [5] file Hide_D 22052   2008-07-18 2009-11-13 00:53
 
36 Talk whoami님 [3] Hide_D 9072   2008-07-18 2008-07-18 21:25
아래에 만든 플러그인이 에러가 납니다. 맨 처음에 만들었던 개발모드가 풀유니코드로 작성되어있고, 이녀석이 그냥 돌릴땐 잘 돌아가길래 그냥 Ctrl+C, Ctrl+V 해주고, 위 아래에 Ansi -> Unicode Unicode -> Ansi만 붙여넣은 거라 아무래도 변환부에 문제가 ...  
35 Archive [플러그인,소스] 사용자 사전 플러그인 0.1 20080718 (테스트 버전) [1] file Hide_D 9905   2008-07-18 2009-01-06 01:00
 
34 Archive [소스]추가 사용자 사전 0.1 [개발모드] file Hide_D 9405   2008-07-18 2008-07-18 17:10
 
33 Talk 귀차니즘 발동 Hide_D 10750   2008-07-18 2009-01-06 01:00
현재 프로그래밍을 공부하면서 플러그인을 만드는 관계로 진척속도가 좀 많이 느립니다 =ㅅ=;; 그냥 플러그인 0.1 내놓고, 나중에 마저 개발해야겠네요. 데굴데굴  
32 Archive [플러그인, 소스] preKoFilter 테스트 버전 20080716_3...oTL file whoami 8454   2008-07-16 2009-01-06 01:00
 
31 Archive [플러그인, 소스] preKoFilter 테스트버전 20080716_2 [1] whoami 9823   2008-07-16 2009-01-06 01:00
심각한 버그 버전입니다. 삭제되었습니다; http://aralgood.com/zbxe/36084 를 참조하세요.  
30 Archive [플러그인, 소스] preKoFilter 테스트 버전 20080716 file whoami 9670   2008-07-16 2009-01-06 01:00