[Release] Custom Character"C" UIPanel S9

Page 1 of 2 12 LastLast
Results 1 to 15 of 28
  1. #1
    Account Upgraded | Title Enabled! solarismu is offline
    MemberRank
    May 2017 Join Date
    219Posts

    [Release] Custom Character"C" UIPanel S9

    Season 9 main + IGC released DLL source
    "Hell" ... Credits
    VICIOUS - Me
    IGCN - released DLL source
    Webzen Season 9 Main

    Fix 0.2 :
    • Fix broken OnConstructs
    • Add missing hide Reset/GReset Boxes funtions.

    Fix 0.1 :
    • Fix editable textarea.
    • Add change text MLV , Reset, GReset

    Updated Link : https://drive.google.com/open?id=1n4EnfrtnbtK_w7gbk9nXg_NsDNR50qhe
    (Script update, update red lines in CharacterFrame.cpp code)


    1st. Paste this new UI file to Data\Interface\GFx
    2nd. Coding :

    (create) CharacterFrame.h
    Code:
    #pragma once
    #define HOOK_SET_LEVEL_TEXT 0x009A90B1
    #define JMPBACK_SET_LEVEL_TEXT 0x009A90CA
    #define pInvokeUI ((DWORD(__stdcall*)(DWORD pFrame, char * method, char * format ...)) 0x0095A6EA)
    
    void SetLevelResetUI();
    
    extern int iResetVisibleUI;
    extern int iGResetVisibleUI;
    extern int iResetUI;
    extern int iGResetUI;
    (create) CharacterFrame.cpp

    Code:
    #include "stdafx.h"
    #include "CharacterFrame.h"
    
    char szFormat_1[4] = "%s";
    char szFormat_2[4] = "%d";
    char szFormat_3[12] = "%s %s %s";
    
    char szSetLevel[16] = "SetLevelText";
    char szSetMLevel[16] = "SetMLevelText";
    char szSetReset[16] = "SetResetText";
    char szSetGReset[16] = "SetGResetText";
    char szSetResetVisible[20] = "SetResetVisible";
    char szSetGResetVisible[20] = "SetGResetVisible";
    int iResetVisibleUI = 1; //0:false 1:true
    int iGResetVisibleUI = 1;
    
    DWORD pCFrame;
    int iLevel = 0;
    int iMLevel = 0;
    int iResetUI = 0;
    int iGResetUI = 0;
    char buffer[20];
    
    int iInitOnce = 0;
    char szInitTextExtended[20] = "InitTextExtended";
    
    
    char szLabelMLevel[] = "MLV"; //Change text here, but don't make it too long, won't fit the box.
    char szLabelReset[] = "Reset";
    char szLabelGReset[] = "GReset";
    
    
    void __declspec(naked) SetLevelResetUI()
    {
        _asm 
        {
            mov eax, 0x0851ACC4;
            mov eax, [eax];
            movzx eax, word ptr[eax + 0x10C];
            mov iLevel, eax;
            mov eax, 0x08B97850
            movzx eax, word ptr[eax];
            mov iMLevel, eax;
    
            mov edx, 0x00969F14;
            call edx;
            mov ecx, eax;
            mov edx, 0x007F7818;
            call edx;
            mov pCFrame, eax;
        }
        if(pCFrame)
        {
            if (!iInitOnce) {
                iInitOnce = 1;
                pInvokeUI(pCFrame, szInitTextExtended, szFormat_3, szLabelMLevel, szLabelReset, szLabelGReset);
            }
            sprintf(buffer, "%d", iLevel);
            pInvokeUI(pCFrame, szSetLevel, szFormat_1, buffer);
            sprintf(buffer, "%d", iMLevel);
            pInvokeUI(pCFrame, szSetMLevel, szFormat_1, buffer);
            
            if (iResetVisibleUI) {
                sprintf(buffer, "%d", iResetUI);
                pInvokeUI(pCFrame, szSetReset, szFormat_1, buffer);
            }
            else {
                pInvokeUI(pCFrame, szSetResetVisible, szFormat_2, 0);
            }
            if (iGResetVisibleUI) {
                sprintf(buffer, "%d", iGResetUI);
                pInvokeUI(pCFrame, szSetGReset, szFormat_1, buffer);
            }
            else {
                pInvokeUI(pCFrame, szSetGResetVisible, szFormat_2, 0);
            }
    
        }
        _asm 
        {
            mov edx, JMPBACK_SET_LEVEL_TEXT;
            jmp edx;
        }
    }
    (Edit) DllMain.cpp
    Code:
    #include "CharacterFrame.h"
    //...
    void SetHook()
    {
        HookThis((DWORD)&SetLevelResetUI, HOOK_SET_LEVEL_TEXT);
            //...
    }
    (Edit) Protocol.cpp
    Code:
    #include "CharacterFrame.h"
    //...
    
    bool CliProtocolCore(LPBYTE aRecv, BYTE ProtoNum, int len, bool Encrypt)
    {
        switch(ProtoNum)
        {
        //...
            case 0xFA:
            {
                if (aRecv[0] == 0xC1)
                {
                    PMSG_DEFAULT2 * lpMsg2 = (PMSG_DEFAULT2 *)aRecv;
                    switch (lpMsg2->subcode)
                    {
                    case 0x0B: //IGCN already coded this on GameServer (they used it for Season 6, but still keep in file till now (S13))
                    {
                        struct PMSG_RESET_INGAME_SEND
                        {
                            PBMSG_HEAD2 h;
                            WORD Resets;
                        }; //Should move this struct to your header file.
                        PMSG_RESET_INGAME_SEND * pRSMsg = (PMSG_RESET_INGAME_SEND *)aRecv;
                        iResetUI = pRSMsg->Resets;
                        iResetVisibleUI = 1;
                        break;
                    }    
                }
            }
        }
    }
    Last edited by solarismu; 20-04-18 at 06:35 AM.


  2. #2
    Enthusiast heroviet2301 is offline
    MemberRank
    Dec 2012 Join Date
    43Posts

    re: [Release] Custom Character"C" UIPanel S9

    These can edit text!


  3. #3
    Account Upgraded | Title Enabled! solarismu is offline
    MemberRank
    May 2017 Join Date
    219Posts
    Quote Originally Posted by heroviet2301 View Post
    These can edit text!

    Except new boxes MLV, Reset, GReset, which I set to constant strings. It means you can't change these strings by yourself

    What wrong with your reds boxes ? I don't edit any of your red boxes.


    Update:

    @heroviet2301
    oh, I saw the editable bug already... my mistake... will update soon... and add change text MLV Reset GReset later


    Fixed:

    Fixed, see the 1st post for new link & code change.
    Let me know if there is any bug? or it just works
    Last edited by allexander; 20-06-18 at 12:26 AM. Reason: Merge posts

  4. #4
    Enthusiast heroviet2301 is offline
    MemberRank
    Dec 2012 Join Date
    43Posts

    re: [Release] Custom Character"C" UIPanel S9

    Quote Originally Posted by solarismu View Post
    Fixed, see the 1st post for new link & code change.
    Let me know if there is any bug? or it just works
    Perfect, tks pro


  5. #5
    Account Upgraded | Title Enabled! solarismu is offline
    MemberRank
    May 2017 Join Date
    219Posts

    re: [Release] Custom Character"C" UIPanel S9

    *Updated link 0.20 :
    Fix broken OnConstructs.
    Add missing hide Reset/GReset funtions.
    Last edited by solarismu; 16-04-18 at 10:27 PM.

  6. #6
    Enthusiast heroviet2301 is offline
    MemberRank
    Dec 2012 Join Date
    43Posts

    re: [Release] Custom Character"C" UIPanel S9

    Quote Originally Posted by solarismu View Post
    *Updated link 0.20 :
    Fix broken OnConstructs.
    Add missing hide Reset/GReset funtions.
    Code:
    char szLabelMLevel[] = "MLV";
    You can edit this place can write 6 characters, such as "Master" is not! Currently, the client side only shows 4 characters. Thank you xD

  7. #7
    Apprentice xqh0728 is offline
    MemberRank
    Feb 2014 Join Date
    24Posts

    re: [Release] Custom Character"C" UIPanel S9

    how change "MLV","Reset","Greset" to Chinese ? can't support Chinese...lol

  8. #8
    Enthusiast LandOfChaos is offline
    MemberRank
    Aug 2017 Join Date
    39Posts

    re: [Release] Custom Character"C" UIPanel S9

    Great job.
    @solarismu can you try to disable Season 6 UI "resizing". In S6 UI is flexible and it's changing for every resolution.

  9. #9
    Enthusiast Forces is offline
    MemberRank
    Jan 2012 Join Date
    44Posts

    re: [Release] Custom Character"C" UIPanel S9

    Bugs: high set level requirements is not working with this C panel, because server only see Normal LVL, and cant equip like 600lvl items

  10. #10
    Account Upgraded | Title Enabled! solarismu is offline
    MemberRank
    May 2017 Join Date
    219Posts

    Re: Custom Character"C" UIPanel S9

    Quote Originally Posted by Forces View Post
    Bugs: high set level requirements is not working with this C panel, because server only see Normal LVL, and cant equip like 600lvl items
    No item >400 lvl in season 9. That's your custom item, not from webzen/me. So dont call it bug. Fix it yourself man, I dont know how to fix that. :(- - - Updated - - -
    Quote Originally Posted by LandOfChaos View Post
    Great job. @solarismu can you try to disable Season 6 UI "resizing". In S6 UI is flexible and it's changing for every resolution.
    I dont work on season 6 anymore. You can try to ask someone who has client s6 source ^^

  11. #11
    Member antoniodel is offline
    MemberRank
    Dec 2013 Join Date
    57Posts

    re: [Release] Custom Character"C" UIPanel S9

    does it work for muemu s8?

  12. #12
    Account Upgraded | Title Enabled! solarismu is offline
    MemberRank
    May 2017 Join Date
    219Posts

    re: [Release] Custom Character"C" UIPanel S9

    Quote Originally Posted by antoniodel View Post
    does it work for muemu s8?
    UI file: should be ok
    script + offsets : must change

  13. #13
    Account Upgraded | Title Enabled! thevjfla is offline
    MemberRank
    Apr 2012 Join Date
    203Posts

    re: [Release] Custom Character"C" UIPanel S9

    Its possible fix the max level up points after 65k?

    I need the offset for that, can help me? :D

  14. #14
    Account Upgraded | Title Enabled! solarismu is offline
    MemberRank
    May 2017 Join Date
    219Posts

    re: [Release] Custom Character"C" UIPanel S9

    Quote Originally Posted by thevjfla View Post
    Its possible fix the max level up points after 65k?

    I need the offset for that, can help me? :D

  15. #15
    Account Upgraded | Title Enabled! thevjfla is offline
    MemberRank
    Apr 2012 Join Date
    203Posts

    re: [Release] Custom Character"C" UIPanel S9

    Oh, let me try compile in the dll and try.
    you do any change in theprotocol of gs?


    EDIT:


    Quote Originally Posted by solarismu View Post



    What im doing wrong? :(

    In the DB the char have 176000 free leveluppoint, i have a little script for write correct lvluppoints but dont work with this main, can you share me the correct asm code for the offset 0x009a92e2 ?
    Last edited by thevjfla; 26-06-18 at 09:29 PM.



Page 1 of 2 12 LastLast

Advertisement