본문 바로가기

쓰기

[플러그인, 소스] MultiPlugin

MultiPlugin 은 여러개의 플러그인을 동시에 사용할 수 있도록 고안된 플러그인입니다.



이런 식으로 플러그인을 여러개 등록하여..



이런 식으로 등록하면 번역이 ezTransXP 에서 한번 처리되고 ATPlugin 에서 재처리됩니다. 등록된 순서대로 불리게 되어 있습니다.

이 플러그인은 후킹 / 번역 겸용입니다. 같은 플러그인을 이렇게



후킹 플러그인에서도 사용 가능합니다. 단, 후킹 플러그인의 경우 같이 사용하면 서로 충돌하는 플러그인이 있을 수 있으므로 사용상 주의를 요합니다.

* 사용방법
1. 플러그인을 받아서 Algorithm 폴더 (후킹 플러그인으로 사용시) 혹은 Translator 폴더 (번역 플러그인으로 사용시)에 풉니다.
2. 후킹 플러그인이나 번역 플러그인으로 선택 후 옵션 버튼을 누릅니다.
3. 옵션창에서 원하는 플러그인을 추가해 사용하시면 됩니다. 순서대로 불리기 때문에 플러그인 순서를 위로/아래로 버튼을 눌러 조정해 주세요.
4. 각 플러그인들의 옵션을 조정하려면 이 옵션창에서 "설정" 버튼을 누르거나 플러그인 이름을 더블클릭하면 각 플러그인들의 옵션창으로 들어갈 수 있습니다.
5. 바로가기에서의 옵션은 다음과 같습니다. 단, 옵션사이에 빈칸은 허용되지 않으니 주의를 요합니다. 특히 콤마 (,) 뒤에 빈칸을 넣지 마세요.
MultiPlugin{플러그인1{옵션1},플러그인2{옵션2}...}
(예: 번역 플러그인에서 ezTransXP.dll 과 ATPlugin.dll 을 같이 사용할 때)
/t:MultiPlugin{ezTransXP{},ATPlugin{}}

* 알려진 문제점 -이 라기보다는 아랄트랜스 자체의 버그
아랄트랜스 0.2.20080518 버전의 버그로 인해 다음과 같은 문제가 있습니다. 아마 이후 버전에서는 제대로 동작할 것입니다.
1. 아랄트랜스 설정창의 번역 플러그인 선택시 Translator 폴더의 홀수번째 플러그인만 리스트에 나오며, 바로가기로 선택해도 사용이 불가능합니다. 이 문제는 Translator 폴더에서 임의의 플러그인을 하나 복사해서 MultiPlugin 을 홀수번째로 만들어 사용하면 선택 및 사용이 가능합니다.
2. 아랄트랜스 바로가기로 사용할 때 번역 플러그인의 옵션값을 제대로 플러그인에 넘겨주지 않아 5월18일자 를 사용하는 경우 수동으로 로딩을 시켜줘야 합니다.
3. 아마도 후킹 플러그인중 일부 (ATCode 등)가 LoadLibrary 함수를 후킹하기 때문이 아닌가 싶지만 후킹 플러그인을 바로가기로 로드시키면 에러가 나는 경우가 있습니다. 이런 경우 해당 후킹 플러그인을 맨 나중에 로드되도록 하시기 바랍니다.
예:
    /a:MultiPlugin{ATCode{...},APlugin{}}  - 에러 발생
    /a:MultiPlugin{APlugin{},ATCode{...}} - 에러 없음

* 플러그인 다운로드
   플러그인 본체 : MultiPlugin_20080703.rar
   플러그인 소스 : MultiPlugin_source_20080703.rar
     이 플러그인의 소스는 GPL 라이센스를 따라 개작, 재배포가 가능합니다.

* edit at 2008.07.03.11:25pm 
  버그 하나 발견해서 고쳐서 다시 올립니다. 11:25pm 이전에 받으신 분은 다시 받아주세요.

Hide_D

2008.07.03
22:33:51
전처리, 후처리의 개념이 포함된 건가요?
아니면 단지 다중 실행의 목적만 있는건가요?

whoami

2008.07.03
22:39:43

전처리 후처리 가능합니다.. 예를 들어,
preFilter -> ezTransXP -> postFilter 순으로 등록하면 preFilter 의 출력값이 ezTransXP의 입력값이 되고 그 출력값이 postFilter의 입력값이 됩니다. 여기서의 출력값이 MultiPlugin의 출력값이 되고요. 후킹 플러그인의 경우 특성상 순서대로 처리될 필요는 없으므로 순서에 큰 의미는 없습니다. 후킹 플러그인의 MultiPlugin 사용용도는 아마도 게임 런타임 패치 혹은 치트기능 같은 것이 될 것 같습니다.

MILD

2008.07.03
22:56:54
멋지네요!! 감사합니다.

Hide_D

2008.07.03
22:56:58
흐음....
그러면 말이죠?

단순씨의 후커사전을 베이스로 깔고나서
사용자사전을 추가해서 쓰는 방법도 가능하겠네요?

방법을 들어보자면...

준비??
1. 이지트랜스에서 언제나 한가지 경우로 번역되는 경우를 찾아둔다.
또는, 사용자 사전에 예비 풀을 깔아둔다(특수 단어1 느낌으로)
2. 추가할 사용자 단어를 찾아둡니다

실례.
'杏さん'는 '쿄우상', '안즈상' 두가지가 가능한데,
이 게임에서는 '안즈상'으로만 하고 싶다면,
1. 전처리로 '杏さん'->'山下'로 몽땅 처리
2. '山下'가 '야마시타'로 번역된다. (정말 그렇게 되는지는 확인 안해봤습니다)
3. 번역된 '야마시타'를 '안즈상'으로 변경

whoami

2008.07.03
23:03:58

Hide_D군님// 역시 가능할겁니다. 아예 해당 단어를 번역 안되는 [1] 같은걸로 정의해서
1. 전처리로 '杏さん'->'[1]'로 몽땅 처리
2. 번역기를 거쳐서
3.  '[1]' -> '안즈상'으로 몽땅 처리

.. 식으로 해도 될듯.

관리자

2008.07.04
00:23:34
이긍.. 버그는 일주일전에 잡았지만
깜빡하고 업데이트를 시켜놓지 않았네요..
정말 죄송합니다.
열악한 환경에서 개발하시느라 힘드셨죠;;
버그 수정해서 업데이트 시켜 놨으니 확인해보시길

그런데 후킹 플러그인은 멀티로 돌리면
예상치 못한 오류가 속출할 것 같은데요...
후킹 플러그인은 후킹하는 함수들이 다 비슷비슷해서
중복 후킹의 경우 후킹체인이 형성된다든지 하는
멋진 처리는 아랄에 없답니다... ㅜㅜ

파쿤

2008.07.05
01:11:25

에..멀티플러그인 하고 옵션을 누르면
플러그인 이름 옵션 그런게 일본어로 나오네요..
어떻게하죠?

whoami

2008.07.05
16:29:24
혹시 어플로케일 같은걸로 돌리시지 않으시나요?

플러그인 이름이나 옵션 같은 글자가 중요한건 아니니까 위의 스크린샷을 참조해서 맞는 버튼을 눌러 사용하세요.
프로그램 작동만 잘 되면 별 무리는 없을듯.

Hide_D

2008.07.06
11:41:18
whoami님 유니코드를 사용해 주세요;;
여유 있으시면 VS2008로 옮겨오시는것도;

whoami

2008.07.06
20:53:24
음; 반드시 유니코드로 작성하라는 말도 없었을 뿐더러 플러그인 스펙 자체가 MBCS 라서 저도 MBCS베이스로 작성했었습니다;;

.. 그리고, VS2008을 제가 안쓰는 이유가 있습니다. 공유 라이브러리로 컴파일시키면 2005/2008 전용 런타임 라이브러리를 설치해야 하고, 그렇다고 정적 라이브러리를 쓰면 프로그램 사이즈가 엄청나게 커지기 때문이죠. VC6의 경우 공유로 해도 well-known 이기 때문에 특별히 무언가 설치할 필요가 없거든요. MFC를 써도 대부분의 컴퓨터에는 MFC42 는 설치가 되어 있고 말이죠.

정 글자 깨지는 것이 눈에 거슬리신다면.. 유니코드 변환을 해서 다시 올려드리든지 아니면 옵션 대화상자를 영문으로 바꿔서(...) 올려드리겠습니다 -_-;

관리자

2008.07.07
23:30:49
음.. 저도 처음에 0.2 설계할 때
멀티바이트 문자로 프로젝트를 진행했다가..
어플로케일 등 다양한 문제와 부닥치면서;;;
현재 모든 아랄 프로젝트들이 유니코드로 빌드되고 있습니다.
다만 모듈간의 인터페이스는 멀티바이트죠 ㅡ,.ㅡ;;
내부적으로 변환을 다 거치고 있다는...

그리고 말씀하신대로 vs6 환경에서 빌드하는게 호환성 문제가 없고 좋죠
다만 저같은 경우 stl포트나 비주얼어시스트를 깔기 귀찮아서..
2005/2008 환경에 적응해 버렸답니다.
디자인도 쬐금 예뻐서.. ㅎㅎ
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
428 Talk ATCustom - 함수 Reference [47] Hide_D 103937   2010-07-20 2010-08-28 04:59
AralTrans의 Algorithm Plugin ATCustom의 함수 목록입니다. - 문서 상태 - 기본 함수 : 변경 중 변경 확률 보통 고급 함수 : 변경 중 변경 확률 높음 - 기본 함수 목록 - 핵심적인 기능을 가지거나 내부의 C++ 코드를 사용해야만 하는 함수의 목록입니다. 메...  
427 OtherFiles EncodeKor(한국어 <-> 일본어 문자 코드 대치) 재 작성 프로젝트! [16] file Hide_D 75319   2010-05-29 2010-10-25 09:55
 
426 Talk 아랄3 디버깅이 말이죠... [2] file JKLeetro 35689   2010-04-20 2010-10-20 07:18
 
425 Talk AT 0.2에서 내부 버퍼가 4096을 넘을 수 있어야 합니다. [1] Hide_D 34245   2010-07-13 2011-03-04 05:56
ATCode인지 뭔지 내부 버퍼 길이가 4096바이트로 제한되어있어서 그보다 큰 길이가 들어올 경우 문제가 생깁니다. 길이를 제한하는 플러그인들은 모두 대용량의 텍스트도 받아올 수 있도록 처리해야할 것 같습니다.  
424 Talk JSCustom의 초기 골격 코드를 SVN에 커밋했습니다. [1] Hide_D 33949   2010-09-18 2010-10-25 09:57
지금 안된 부분이.... 1. 고수준 함수, 고수준 보조 함수 구현 ( http://wiki.aralgood.com/index.php/JSCustom/FunctionReference ) 2. 아랄트랜스 0.3버전용 함수 구현 3. 아랄트랜스 플러그인 규격과 v8Wrapper 모듈의 연결 4. UI 정도네요. 올리긴 했지만 ...  
423 Talk ATCustom - 프로젝트 소개 [8] Hide_D 32701   2010-07-22 2011-07-14 11:21
- 소개 - ATCustom은 사용자가 직접 메모리 훅 및 메모리 작업을 할 수 있는 Script 기반 Algorithm 플러그인입니다. Google Chrome에 탑재된 v8 JavaScript Engine을 사용하여 JavaScript 파일을 파싱하여 동작하며, ATCustom에서 제공하는 API를 사용하여 작...  
422 Talk 0.3님 제발 자비좀[.....] file 아무개 31299   2010-05-23 2010-05-23 06:20
 
421 Talk 번역 모듈로 인터넷을 이용하는 방법. Hide_D 30169   2010-06-04 2010-06-04 23:54
굳이 번역기를 이지트랜스를 쓰지 않아도 아랄트랜스를 사용하는 방법이 필요합니다. 네이버 번역 등을 인터넷으로 접근해서 쓰는 방법으로 번역 모듈을 만들어 보겠습니다.  
420 OtherFiles [프로그램, 소스] AT 환경 수집기 20100526 [1] file Hide_D 30118   2010-05-26 2016-05-28 15:42
 
419 Talk 0.3님 제발 자비좀[.....] [2] G2m 29951   2010-05-05 2010-05-23 06:21
디에스 이레 뚫으면서 알게된건데 일단 히데찌 말로는 관리자씨가 말하길 0.3 유니코드 완벽이염 ㅇㅇ 라고는 하는데 그 뭐랄까 문장 스크립트 형식이 00 30으로 시작하는 놈은 아랄이가 고대로 씹어 드셔서[............] 이걸 픽스로 잡아도 조트망이고 흠. ...  
418 OtherFiles AralTrans.exe 파일 살짝 수정했습니다. + 아랄씨 계시면 보세요 file Hide_D 28477   2010-06-07 2010-06-07 05:11
 
417 Archive [플러그인] OutRuby 임시 버전 20081012_2 [7] file Hide_D 28333   2008-10-12 2015-07-14 15:18
 
416 OtherFiles [프로그램] 필터 테스트 프로그램 [13] file Hide_D 27998   2008-12-16 2013-06-22 22:20
 
415 Archive [플러그인, 소스] NonCached 테스트 버전 20090709 [3] file whoami 27839   2009-07-09 2009-07-11 01:51
 
414 Talk [0.2] OnPluginInit단에서 스레드를 만들 때 [회피법] Hide_D 27118   2010-06-23 2010-06-23 02:10
http://lab.aralgood.com/board_documents/3202 에 나온대로 플러그인이 초기화되는 시점이 '안전하지' 않기 때문에 Init 단에 스레드를 추가하기가 어려운데, 이를 위한 회피 방법입니다 [OnInitThread에 AfxBeginThread를 사용하면 '무조건' 얼어버리는 현상...  
413 Archive [플러그인] GoogleTrans 테스트 버전 (20100620) file Hide_D 26601   2010-06-20 2010-06-20 16:00
 
412 OtherFiles [소스] Test Network + Google Translate Source - 2 file Hide_D 26517   2010-06-19 2010-06-19 09:59
 
411 Talk [질문] Http POST전송에 대한 이것저것 [3] 호기 24751   2009-09-22 2009-09-23 08:00
에고 Hide_D님과 HaruKaze님덕에 어찌어찌 POST전송을 할수 있게 되었네요 . 다시한번 두분께 너무 감사드리고요.. 전송해서 결과는 받는것은 되지만... 내용에 궁금한것이 두가지 있어서요 이렇게 다시 질문 올립니다. 우선 POST로 Header를 전송할때 말이에...  
410 Archive [플러그인, 소스] KiriKiri 테스트 버전 20090726 [10] file whoami 24511   2009-07-26 2009-07-28 23:52