• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 기타게임 소스자료실
    • 기타게임 소스자료실 프로젝트신루 ()
    • 미러서버 파일 코드 수정

      • 자택경비
      • 2025.07.28 - 13:19 388 2

    GPT에게 물어보고 적용하면서 수정함

     

    신루 서버 파일은 Language_M.txt의 순서?에 따라서 아이템 코드가 바뀌는걸로 알고 있음

     

    그러니 미러서버 파일에서 정상작동하던 룬스톤들을 다른 서버 파일에서 작동시키면 작동이 안됨

     

    되는 룬스톤도 있지만 안되는 룬스톤도 있고 아예 안될수도 있음

     

    이게 미러서버 파일에 맞게 해당 아이템 코드들을 하드코딩으로 아예 박아둬서 그런거라

     

    다른 서버파일에서도 동일하게 작동하게 하려면 해당 코드들을 Item(Code).txt에서 읽어서 적용하면

     

    해당 아이템 코드가 존재할때 작동을 하게 만들 수 있음

     

    #define RuneStone                   318771247   //룬스톤
    #define ReinforceRuneStone          318771263   //강화 룬스톤
    #define ProtectReinforceRuneStone   318771262   //보호 강화 룬스톤
    #define ProtectRuneStone            318771261   //보호 룬스톤
    #define BlackRuneStone              318771275   //블랙 룬스톤
    #define SuperRuneStone              318771277   //슈퍼 룬스톤
    #define RecyclingItem               318771278   //도깨비 방망이

     

    이 부분의 코드를 define에서 int로 변경하고 = 0; 을 붙여서 int형 변수로 바꿔주고

    도깨비 방망이는 내가 사용하지 않아서 뺐음.... 그래도 작동 원리는 동일하니

     

    int RuneStone = 0;
    int ReinforceRuneStone = 0;
    int ProtectReinforceRuneStone = 0;
    int ProtectRuneStone = 0;
    int BlackRuneStone = 0;
    int SuperRuneStone = 0;
    int Miracle = 0;  //기존 코드에서 define으로 선언하지 않고 아이템 코드를 그대로 넣은 부분이라서 이건 코드에서 그 부분 찾아서 변수를 넣어줘야됨
    int ProtectScroll = 0;  //기존 코드에서 define으로 선언하지 않고 아이템 코드를 그대로 넣은 부분이라서 이건 코드에서 그 부분 찾아서 변수를 넣어줘야됨

     

    이렇게 변경을 해준뒤에

     

    아래 코드들을 추가해주고

     

    void LoadItemCodesFromFile()
    {
        char exePath[MAX_PATH] = {};
        GetModuleFileNameA(NULL, exePath, MAX_PATH);

        for (int i = strlen(exePath) - 1; i >= 0; --i) {
            if (exePath[i] == '\\') {
                exePath[i] = '\0';
                break;
            }
        }

        strcat_s(exePath, "\\Config\\Item(Code).txt");

        std::ifstream file(exePath);
        if (!file.is_open()) {
            printf("파일 열기 실패: %s\n", exePath);
            return;
        }
        std::string line;
        while (std::getline(file, line)) {
            if (line.empty()) continue;

            size_t colonPos = line.find(':');
            if (colonPos == std::string::npos) continue;

            std::string name = line.substr(0, colonPos);
            std::string codeStr = line.substr(colonPos + 1);

            name.erase(0, name.find_first_not_of(" \t"));
            name.erase(name.find_last_not_of(" \t") + 1);

            codeStr.erase(0, codeStr.find_first_not_of(" \t"));
            codeStr.erase(codeStr.find_last_not_of(" \t") + 1);

            int code = atoi(codeStr.c_str());
            if (code != 0 || codeStr.find("0") != std::string::npos) {
                itemCodeMap[name] = code;
            }
            else {
                printf("파싱 실패: [%s] = [%s]\n", name.c_str(), codeStr.c_str());
            }
        }

        file.close();
    }

     

    해당 코드로 Item(Code).txt를 읽어온 뒤

     

     

    int GetItemCode(const std::string& name)
    {
        auto it = itemCodeMap.find(name);
        return (it != itemCodeMap.end()) ? it->second : -1;
    }

    void InitItemCodes()
    {
        RuneStone = GetItemCode("룬스톤");
        ReinforceRuneStone = GetItemCode("강화 룬스톤");
        ProtectReinforceRuneStone = GetItemCode("보호 강화 룬스톤");
        ProtectRuneStone = GetItemCode("보호 룬스톤");
        BlackRuneStone = GetItemCode("블랙 룬스톤");
        SuperRuneStone = GetItemCode("슈퍼 룬스톤");
        ProtectScroll = GetItemCode("보호주문서");
        Miracle = GetItemCode("미라클 통행증");

        if (ProtectScroll == -1) {

            ProtectScroll = GetItemCode("보호 주문서");

        }

        if (SuperRuneStone == -1) {

            SuperRuneStone = GetItemCode("슈퍼룬스톤");

        }

        if (ProtectRuneStone == -1) {

            ProtectRuneStone = GetItemCode("보호룬스톤");

        }

        if (ReinforceRuneStone == -1) {

            ReinforceRuneStone = GetItemCode("강화룬스톤");

        }

        if (ProtectReinforceRuneStone == -1) {

            ProtectReinforceRuneStone = GetItemCode("보호 강화룬스톤");

            if (ProtectReinforceRuneStone == -1) {

                ProtectReinforceRuneStone = GetItemCode("보호강화 룬스톤");

                if (ProtectReinforceRuneStone == -1) {

                    ProtectReinforceRuneStone = GetItemCode("보호강화룬스톤");

                }

            }

        }

    }

     

    해당 코드로 가장 먼저 선언한 변수에 코드 값을 넣어주면

     

    기존에 define로 선언해서 사용하던 부분들에 item(Code).txt에서 읽어온 값으로 들어가게 됨

     

    만약 해당 아이템 값이 없다면 -1 로 들어가면서 작동이 안됨

     

    어떤 아이템이 적용되는지는

     

    void PrintLoadedItemCodes()
    {
        printf("   [아이템 코드 확인] \n");
        printf("-1로 나오는거는 코드가 없는 것 \n");
        printf("코드가 있는데 안나온다면 띄어쓰기 확인 \n");
        printf("룬스톤: %d\n", RuneStone);
        printf("강화 룬스톤: %d\n", ReinforceRuneStone);
        printf("보호 룬스톤: %d\n", ProtectRuneStone);
        printf("보호 강화 룬스톤: %d\n", ProtectReinforceRuneStone);
        printf("슈퍼 룬스톤: %d\n", SuperRuneStone);
        printf("다크 룬스톤: %d\n", BlackRuneStone);
        printf("보호주문서: %d\n", ProtectScroll);
        printf("미라클 통행증 : %d\n", Miracle);
        printf("------------------------- \n");

    }

     

    해당 코드를 넣고 확인하면됨

     

    위 코드들이 작동하기 위해서는

     

    맨 아래쪽에

     

    void HookClass::HookFunctions()
    {
        if (MH_Initialize() != MH_OK)
        {
            LeaveCriticalSection(&cs);
            return;
        }

        InitializeCriticalSection(&cs);
        InitializeCriticalSectionAndSpinCount(&cs, 0);
        LoadItemCodesFromFile();  //아이템 코드 읽기
        InitItemCodes();  //아이템 코드 읽기
        PrintLoadedItemCodes();  //적용된 코드 확인
    ..........

    }

     

        LoadItemCodesFromFile();  //아이템 코드 읽기
        InitItemCodes();  //아이템 코드 읽기
        PrintLoadedItemCodes();  //적용된 코드 확인

     

    이 3줄을 포함시켜서 작동시킬때 확인하면 됨

     

    이러면 미러서버파일뿐만 아니라 다른 기존 통파일에서도 해당 아이템 코드가 존재한다면 사용이 가능해짐

     

    이걸로해서 가장 흔하게 퍼진 지피지기 통파일에서 룬스톤, 보호룬스톤, 강화룬스톤, 보호강화룬스톤, 슈퍼룬스톤 5개의 작동을 확인했음

     

    슈퍼룬스톤의 경우 해당 코드가 존재하지만 아이템이 룬스톤 아이템이 아니라서 강화 시도시 경고창이 뜨지 않고 바로 작동하는 문제가 있긴함

     

    어떤식으로 넣어야 될지는 GPT에게 물어보면 친절하게 알려줌

     

    이 게시물을..
    N
    0
    0
    • [Go 공식문서 한국어 정리] ⓪23. go 명령어 이해하기오뉴노노
    • 9
      자택경비

    자택경비 님의 최근 글

    미러서버 파일 코드 수정 388 2 2025 07.28 프로젝트 신루 NPC스크립트2 296 4 2023 11.07 프로젝트 신루 NPC스크립트 작성하기 141 13 2023 10.22 프로젝트 신루 NPC 스크립트 작성하기 143 2023 10.22 프로젝트신루 전직NPC추가하기 327 7 2023 10.17

    자택경비 님의 최근 댓글

    GPT한테 물어보고 적용하면 됨 2026 04.08 클라버전 다른 문제는 제가 겪어보지 못해서... 2026 03.28 GenMonster오류뜨는건 해당 오류나는 line찾아가서 주석처리하거나 삭제한뒤 오류 안나오게 하고 실행하면됨아니면 해당 몬스터의 생성 좌표를 DB에 입력해줘야됨 2026 03.28 아.. 아님 찾았음 2025 09.01 윈도우 xp말고 7이상에서 구동할때 MainSvrT가 정상적으로 실행이 안되는데 왜그럴까요.... 2025 09.01
    글쓴이의 서명작성글 감추기 

    댓글2

    • 0
      대짱이
      2026.04.08 - 12:45 #14755153
      와우... 이런건 도대체 어떻게 하는거지 봐도 모르겠다
    • 1
      0
      자택경비
      2026.04.08 - 14:21 2026.04.08 - 14:21 #14755188
      GPT한테 물어보고 적용하면 됨
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [Go 공식문서 한국어 정리] ⓪23. go 명령어 이해하기
    • 목록
      view_headline
    2
    × CLOSE
    전체 던파 5 뮤 18 천상비 프로젝트신루 5 아이온 18 어둠의전설 28 리니지2 7 크로노스 5 칼온라인 3 기타 306
    기본 (398) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 포인트 획득 공지
      4
      2026.04.24 - 19:48 4649 4
    • 링크 업로드 관련 공지
      8
      2026.03.25 - 21:56 4497 8
    • 인증메일 공지
      2
      2026.03.15 - 16:42 4397 2
    • 파일링크 및 인증메일 발송 관련 문의 안내
      8
      2026.03.14 - 22:03 4987 8
    • 포인트 게시판 안내
      2026.02.28 - 19:14 5774
    • 게임존 사이트 변경 사항 안내
      9
      2026.02.26 - 01:07 7593 9
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:16 849
    398
    기타
    피파온라인 3 클라이언트
    lyw01234 2026.05.30 - 23:17 40
    397
    기타
    [Rust 공식문서 한국어 정리] ⑭. Rustlings
    오뉴노노 2026.05.30 - 08:38 11
    396
    기타
    [Rust 공식문서 한국어 정리] ⑬. The Unstable Book
    오뉴노노 2026.05.30 - 08:38 12
    395
    기타
    [Rust 공식문서 한국어 정리] ⑫. Rust Cookbook
    오뉴노노 2026.05.30 - 08:37 9
    394
    기타
    [Rust 공식문서 한국어 정리] ⑪. The Little Book of Rust Macros
    오뉴노노 2026.05.30 - 08:36 4
    393
    기타
    [Rust 공식문서 한국어 정리] ⑩. Rust Design Patterns
    오뉴노노 2026.05.30 - 08:36 12
    392
    기타
    [Rust 공식문서 한국어 정리] ⑨. Rust API Guidelines
    오뉴노노 2026.05.30 - 08:35 12
    391
    기타
    [Rust 공식문서 한국어 정리] ⑧. The Rust Performance Book
    오뉴노노 2026.05.30 - 08:34 7
    390
    기타
    [Rust 공식문서 한국어 정리] ⑦. Asynchronous Programming in Rust
    오뉴노노 2026.05.30 - 08:34 6
    389
    기타
    [Rust 공식문서 한국어 정리] ⑥. The Rust Edition Guide
    오뉴노노 2026.05.30 - 08:33 9
    388
    기타
    [Rust 공식문서 한국어 정리] ⑤. The Cargo Book
    오뉴노노 2026.05.30 - 08:32 1
    387
    기타
    [Rust 공식문서 한국어 정리] ④. The Rustonomicon
    오뉴노노 2026.05.30 - 08:32
    386
    기타
    [Rust 공식문서 한국어 정리] ③. The Rust Reference
    오뉴노노 2026.05.30 - 08:31
    385
    기타
    [Rust 공식문서 한국어 정리] ②. Rust By Example
    오뉴노노 2026.05.30 - 08:31
    384
    기타
    [Rust 공식문서 한국어 정리] ①. The Rust Programming Language (The Book)
    오뉴노노 2026.05.30 - 08:30 2
    383
    기타
    [Go 공식문서 한국어 정리] ⑤7. Codewalk: Share Memory By Communicating
    오뉴노노 2026.05.30 - 03:29 7
    382
    기타
    [Go 공식문서 한국어 정리] ⑤6. Codewalk: 마르코프 체인 텍스트 생성
    오뉴노노 2026.05.30 - 03:26 2
    381
    기타
    [Go 공식문서 한국어 정리] ⑤5. Codewalk: Go의 일급 함수
    오뉴노노 2026.05.30 - 03:25 1
    380
    기타
    [Go 공식문서 한국어 정리] ⑤4. Go 명령어 도구
    오뉴노노 2026.05.30 - 03:24 2
    379
    기타
    [Go 공식문서 한국어 정리] ⑤3. 통합 테스트 커버리지 프로파일링
    오뉴노노 2026.05.30 - 03:23 1
    378
    기타
    [Go 공식문서 한국어 정리] ⑤2. Go 레이스 디텍터 소개
    오뉴노노 2026.05.30 - 03:22 5
    377
    기타
    [Go 공식문서 한국어 정리] ⑤1. Go 모듈 게시하기
    오뉴노노 2026.05.30 - 03:21 8
    376
    기타
    [Go 공식문서 한국어 정리] ①50. Go 프로그램 프로파일링
    오뉴노노 2026.05.30 - 03:20 1
    375
    기타
    [Go 공식문서 한국어 정리] ①4⑨. 모듈 호환성 유지하기
    오뉴노노 2026.05.30 - 03:19 1
    374
    기타
    [Go 공식문서 한국어 정리] ①4⑧. Go Modules로 마이그레이션
    오뉴노노 2026.05.30 - 03:18 1
    373
    기타
    [Go 공식문서 한국어 정리] ①4⑦. 리플렉션의 법칙
    오뉴노노 2026.05.30 - 03:18
    372
    기타
    [Go 공식문서 한국어 정리] ①4⑥. JSON-RPC: 인터페이스 이야기
    오뉴노노 2026.05.30 - 02:46
    371
    기타
    [Go 공식문서 한국어 정리] ①4⑤. JSON과 Go
    오뉴노노 2026.05.30 - 02:45 1
    370
    기타
    [Go 공식문서 한국어 정리] ①4④. Go 선언 구문
    오뉴노노 2026.05.30 - 02:44
    369
    기타
    [Go 공식문서 한국어 정리] ①4③. Gob 데이터 인코딩
    오뉴노노 2026.05.30 - 02:43 2
    368
    기타
    [Go 공식문서 한국어 정리] ①4②. Go 슬라이스: 사용법과 낮부 구조
    오뉴노노 2026.05.30 - 02:42 1
    367
    기타
    [Go 공식문서 한국어 정리] ①4①. Go image/draw 패키지
    오뉴노노 2026.05.30 - 02:40
    366
    기타
    [Go 공식문서 한국어 정리] ③3⑩. Go 모뒬 참조
    오뉴노노 2026.05.30 - 02:35
    365
    기타
    [Go 공식문서 한국어 정리] ②38. Go 프로그래밍 언어 사양
    오뉴노노 2026.05.30 - 02:33
    364
    기타
    [Go 공식문서 한국어 정리] ⓮37. Go 동시성 패턴: Context
    오뉴노노 2026.05.30 - 02:29 1
    363
    기타
    [Go 공식문서 한국어 정리] ⑯36. Go의 오류 처리
    오뉴노노 2026.05.30 - 02:24
    362
    기타
    [Go 공식문서 한국어 정리] ⑯35. Go 모듈 사용하기
    오뉴노노 2026.05.30 - 02:21
    361
    기타
    [Go 공식문서 한국어 정리] ⑯34. Go 퍼집(Fuzzing)
    오뉴노노 2026.05.30 - 02:17
    360
    기타
    [Go 공식문서 한국어 정리] ⑯33. Go 제네릭스 시작하기
    오뉴노노 2026.05.30 - 02:14
    359
    기타
    [Go 공식문서 한국어 정리] ⑯32. Go 프로젝트에 기여하기
    오뉴노노 2026.05.30 - 02:12 1
    358
    기타
    [Go 공식문서 한국어 정리] ⑯31. Go 메모리 모델
    오뉴노노 2026.05.30 - 02:09
    357
    기타
    [Go 공식문서 한국어 정리] ⑯30. Go 코드 작성법
    오뉴노노 2026.05.30 - 02:06
    356
    기타
    [Go 공식문서 한국어 정리] ⑯29. Go 다운로드 및 설치
    오뉴노노 2026.05.30 - 02:03 1
    355
    기타
    [Go 공식문서 한국어 정리] ⑯28. Go 자주 물어보는 질문(FAQ)
    오뉴노노 2026.05.30 - 02:01 2
    354
    기타
    [Go 공식문서 한국어 정리] ⑯27. 효율적인 Go 프로그래밍
    오뉴노노 2026.05.30 - 01:58 2
    353
    기타
    [Go 공식문서 한국어 정리] ⑯26. Go 어셍리이터 빠른 가이드
    오뉴노노 2026.05.30 - 01:52 2
    352
    기타
    [Go 공식문서 한국어 정리] ⓪25. Go로 웹 애플리케이션 작성하기
    오뉴노노 2026.05.30 - 01:45
    351
    기타
    [Go 공식문서 한국어 정리] ⓪24. 데이터 레이스 디텍터 상세 가이드
    오뉴노노 2026.05.30 - 01:42 2
    350
    기타
    [Go 공식문서 한국어 정리] ⓪23. go 명령어 이해하기
    오뉴노노 2026.05.30 - 01:40 1
    349
    기타
    [Go 공식문서 한국어 정리] ⓪22. Go 공식 문서 가이드
    오뉴노노 2026.05.30 - 01:38 1
    • 1 2 3 4 5 6 7 .. 8
    • / 8 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay