Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Release] X-Team Sources (S4, S6, S8)

Master Summoner
Joined
Feb 17, 2017
Messages
580
Reaction score
72
Re: Source [MUEMU]

how to force run launcher using main.dll anyone?



Muahahahahaha i just found the freaking solution:

s5crpVE - [Release] X-Team Sources (S4, S6, S8) - RaGEZONE Forums

Only works on GMO Launcher?
 

Attachments

You must be registered for see attachments list
Joined
May 21, 2012
Messages
708
Reaction score
300
you can add with source code, its very easy.
Look, I have add in my project.
Good Luck bro :)

izTAKgT - [Release] X-Team Sources (S4, S6, S8) - RaGEZONE Forums

Hello Link download source new add pet + fenrir ?



#ifndef PROTECT_STATE
#define PROTECT_STATE 0
#endif

I know you use Luis release :D, here, to work all Premium features,

Remove this on ServerInfo.cpp PROTECT_STATE == 1 &&

hello

Remove this on ServerInfo.cpp Remove Thi full ---> PROTECT_STATE == 1 && <---

i change number 1 for 0 ??
 

Attachments

You must be registered for see attachments list
Joined
May 21, 2012
Messages
708
Reaction score
300
Source Custom Gloves(RF) Season 6 muemu

Source Custom Gloves(RF) Season 6

BattleGloves.h

Code:
#ifndef __ITEM_H__
#define __ITEM_H__

#define oBattleGlove_Load            0x0050DE38
#define oBattleGlove_Hook            0x0050DC31
#define oBattleGlove_Texture        0x0050E043

#define oBattleGloveProp4_Hook        0x005CD419
#define oBattleGloveProp4_Allowed    0x005CD422
#define oBattleGloveProp4_Return    0x005CD454

#define oBattleGloveProp5_Hook        0x005CEFE7
#define oBattleGloveProp5_Jump        0x005CF01C
#define oBattleGloveProp5_Return    0x005CEFFB

#define oBattleGloveGlow_Hook        0x005F91C2

class cRFItem
{
public:
    void Load();
    // ----
    static void BattleGloveLoad();
    // ---
    static void BattleGloveAssoc();
    static void BattleGloveTexture();
    // ----
    static void BattleGloveProp4(); // Inventory Position
    static void BattleGloveProp5(); // Inventory Rotation
                                    // ----
    static void BattleGloveGlow();
    static void AddInventoryPos();
    // ----
};

extern cRFItem gRFItem; // 

#endif

BattleGloves.cpp

Code:
#include "Stdafx.h"
#include "BattleGloves.h"
//#include "TMemory.h"
//#include "ItemAsm.h"
//#include "Import.h"
#include "Util.h"
#include "Defines.h"
#include "Item.h"

#include "CustomWeapons.h"
#include "CustomGloves.h"

cRFItem gRFItem;

void __declspec ( naked ) cRFItem::BattleGloveLoad() {
    static DWORD BattleGloveModel   = 0x00614D10;
    static DWORD BattleGloveReturn  = 0x0050DE83;
    // ----
    static PCHAR DragonRoarModel    = "Sword45";
    static PCHAR DragonRoarLeft     = "Sword45L";
    static PCHAR DragonRoarRight    = "Sword45R";
    // ----
    LoadItemModel(GET_ITEM_MODEL ( 0, 41 ),"Custom\\Item\\RFGloves\\","Sword41",-1);
    LoadItemModel(0x610,"Custom\\Item\\RFGloves\\","Sword41L",-1);
    LoadItemModel(0x611,"Custom\\Item\\RFGloves\\","Sword41R",-1);
    _asm {
        PUSH -1
        PUSH 0x00D28B88
        PUSH 0x00D28B90
        PUSH 0x4B6
        CALL BattleGloveModel
        ADD ESP, 0x10
        PUSH -1
        PUSH 0x00D28B9C
        PUSH 0x00D28BA8
        PUSH 0x268
        CALL BattleGloveModel
        ADD ESP, 0x10
        PUSH -1
        PUSH 0x00D28BB4
        PUSH 0x00D28BC0
        PUSH 0x269
        CALL BattleGloveModel
        ADD ESP, 0x10
        // ----
        JMP BattleGloveReturn
    }

    
    
}

#define sub_50D810_Addr        ((int(__thiscall*)(int a1, int a2, int a3, int a4)) 0x50D810)
#define sub_512D50_Addr        ((void*(__thiscall*)(void* a1)) 0x512D50)
#define sub_513C60_Addr        ((char*(__thiscall*)(char *This, void *a2, int a3)) 0x513C60)
#define sub_5135F0_Addr        ((char*(__thiscall*)(DWORD *This, int a2, int a3)) 0x5135F0)
#define sub_512D60_Addr        ((void(*)()) 0x512D60)


void GlovesAssoc(char *This)
{
    sub_50D810_Addr((int)(This + 92), 1203, 610, 611);
    void* v2 = sub_512D50_Addr(This + 92);
    char* v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1204, 612, 613);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1205, 614, 615);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1206, 616, 617);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1211, 610, 611);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    gCustomGloves.AssocGloves(This);
}

void __declspec ( naked ) cRFItem::BattleGloveAssoc() {
    static DWORD BattleGloveCall1   = 0x0050D810;
    static DWORD BattleGloveCall2   = 0x00512D50;
    static DWORD BattleGloveCall3   = 0x00513C60;
    static DWORD BattleGloveCall4   = 0x005135F0;
    static DWORD BattleGloveCall5   = 0x00512D60;
    // ----
    static DWORD BattleGloveJump    = 0x0050DCB0;
    // ----
    _asm {
        PUSH 0x269                                        //; /Arg3 = 269
        PUSH 0x268                                        //; |Arg2 = 268
        PUSH 0x4B6                                        //; |Arg1 = 4B6
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x5C                                     //; |
        CALL BattleGloveCall1                             //; \Main.0050D810
        MOV EAX, DWORD PTR SS:[EBP-0x9C]
        ADD EAX, 0x5C
        PUSH EAX                                          //; /Arg2 => ARG.ECX+5C
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x5C                                     //; |
        CALL BattleGloveCall2                             //; |
        PUSH EAX                                          //; |Arg1
        LEA ECX, [EBP-0x70]                               //; |
        CALL BattleGloveCall3                             //; \Main.00513C60
        MOV DWORD PTR SS:[EBP-0xB8], EAX
        MOV ECX, DWORD PTR SS:[EBP-0xB8]
        MOV DWORD PTR SS:[EBP-0xBC], ECX
        MOV DWORD PTR SS:[EBP-0x4], 3   // -> Battle Glove Number
        MOV EDX, DWORD PTR SS:[EBP-0xBC]
        PUSH EDX                                          //; /Arg2 => [LOCAL.46]
        LEA EAX, [EBP-0x7C]                               //; |
        PUSH EAX                                          //; |Arg1 => OFFSET LOCAL.31
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x3C                                     //; |
        CALL BattleGloveCall4                             //; \Main.005135F0
        MOV DWORD PTR SS:[EBP-0x4], -1
        LEA ECX, [EBP-0x70]
        CALL BattleGloveCall5                             //; [Main.00512D60
        // ----
        PUSH 0x611                                        //; /Arg3 = 611 -> Right
        PUSH 0x610                                        //; |Arg2 = 610 -> Left
        PUSH 0x4BC                                        //; |Arg1 = 4BF -> ITEM2(0,41)
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x5C                                     //; |
        CALL BattleGloveCall1                             //; \Main.0050D810
        MOV EAX, DWORD PTR SS:[EBP-0x9C]
        ADD EAX, 0x5C
        PUSH EAX
        MOV ECX, DWORD PTR SS:[EBP-0x9C]
        ADD ECX, 0x5C
        CALL BattleGloveCall2
        PUSH EAX
        LEA ECX, [EBP-0x70]
        CALL BattleGloveCall3
        MOV DWORD PTR SS:[EBP-0xB8], EAX
        MOV ECX, DWORD PTR SS:[EBP-0xB8]
        MOV DWORD PTR SS:[EBP-0xBC], ECX
        MOV DWORD PTR SS:[EBP-0x4], 5   // -> Battle Glove Number
        MOV EDX, DWORD PTR SS:[EBP-0xBC]
        PUSH EDX
        LEA EAX, [EBP-0x7C]
        PUSH EAX
        MOV ECX, DWORD PTR SS:[EBP-0x9C]
        ADD ECX, 0x3C
        CALL BattleGloveCall4
        MOV DWORD PTR SS:[EBP-0x4], -1
        LEA ECX, [EBP-0x70]
        CALL BattleGloveCall5
        // ----
        JMP BattleGloveJump
    }
}

void __declspec ( naked ) cRFItem::BattleGloveTexture() {
    static DWORD BattleGloveTexCall = 0x00614710;
    static DWORD BattleGloveTexJump = 0x0050E09D;
    // ----
    LoadItemTexture(GET_ITEM_MODEL ( 0, 41 ),"Custom\\Item\\RFGloves\\","Sword41",-1);
    LoadItemTexture(0x610,"Custom\\Item\\RFGloves\\","Sword41L",-1);
    LoadItemTexture(0x611,"Custom\\Item\\RFGloves\\","Sword41R",-1);
    _asm {
        PUSH 1
        PUSH GL_NEAREST
        PUSH GL_REPEAT
        PUSH 0x00D28CC8
        PUSH 0x4B6
        CALL BattleGloveTexCall
        ADD ESP, 0x14
        PUSH 1
        PUSH GL_NEAREST
        PUSH GL_REPEAT
        PUSH 0x00D28CD0
        PUSH 0x268
        CALL BattleGloveTexCall
        ADD ESP, 0x14
        PUSH 1
        PUSH GL_NEAREST
        PUSH GL_REPEAT
        PUSH 0x00D28CD8
        PUSH 0x269
        CALL BattleGloveTexCall
        ADD ESP, 0x14
        // ----
        JMP BattleGloveTexJump
    }
}

void __declspec ( naked ) cRFItem::BattleGloveProp4() {
    static DWORD BattleGloveProp4_Return    = 0x005CD454;
    static DWORD BattleGloveProp4_Jump      = 0x005CD491;
    // ----
    _asm {
        CMP DWORD PTR SS:[EBP+0x8], GET_ITEM_MODEL ( 0, 41 )
        JNZ BattleGloveProp4_Label1
        FLD DWORD PTR SS:[EBP-0x4C]
        FSUB QWORD PTR DS:[0x0D27CA8]                     //FLOAT 0.004999999888241291
        FSTP DWORD PTR SS:[EBP-0x4C]
        FLD DWORD PTR SS:[EBP-0x48]
        FADD QWORD PTR DS:[0x0D254B8]                     //FLOAT 0.01499999966472387
        FSTP DWORD PTR SS:[EBP-0x48]
        FLDZ
        FSTP DWORD PTR DS:[0x82C6320]                     //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS:[0x82C6324]                     //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS:[0x82C6328]                     //FLOAT 0.0
        JMP BattleGloveProp4_Jump
        // ----
        BattleGloveProp4_Label1:
        // ----
        CMP DWORD PTR SS : [EBP + 0x8], GET_ITEM_MODEL ( 0, 41 )
        JNZ BattleGloveProp4_LabelReturn
        FLD DWORD PTR SS: [EBP - 0x4C]
        FSUB QWORD PTR DS: [0x0D27CA8]                    //FLOAT 0.004999999888241291
        FSTP DWORD PTR SS: [EBP - 0x4C]
        FLD DWORD PTR SS: [EBP - 0x48]
        FADD QWORD PTR DS: [0x0D254B8]                    //FLOAT 0.01499999966472387
        FSTP DWORD PTR SS: [EBP - 0x48]
        FLDZ
        FSTP DWORD PTR DS: [0x82C6320]                    //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS: [0x82C6324]                    //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS: [0x82C6328]                    //FLOAT 0.0
        JMP BattleGloveProp4_Jump
        // ----
        BattleGloveProp4_LabelReturn:
        // ----
        JMP BattleGloveProp4_Return
    }
}

DWORD IsGlovesItem = 0;
DWORD GlovesPosition = 0x005CD422; // 1.04D ENG
DWORD NextGlovesPosition = 0x005CD454; // 1.04D ENG

void __declspec(naked) cGlovesAddInventoryPos()
{
    _asm
    {

        mov ecx, dword ptr ss : [ebp + 0x8]
            mov dword ptr ss : [ebp + 0x8], ecx
            mov IsGlovesItem, ecx
    }
    // ---
    //console.Log("","duck [%x]",IsGlovesItem);
    if (IsGlovesItem == 0x04B6)
    {
        _asm{jmp GlovesPosition}
    }
    else if (IsGlovesItem >= GET_ITEM_MODEL(0, 41) && IsGlovesItem <= GET_ITEM_MODEL(0, 50))
    {
        _asm{jmp GlovesPosition}
    }
    else
    {
        _asm{jmp NextGlovesPosition}
    }
}

void __declspec ( naked ) cRFItem::BattleGloveProp5() { // Масштаб
    static DWORD BattleGloveProp5_Return    = 0x005CEFFB;
    static DWORD BattleGloveProp5_Jump      = 0x005CF01C;
    // ----
    static float a1 = 0.00480000;
    //a1 = GetPrivateProfileFloat("Custom", "a1", 0, "./Settings.ini");
    _asm {
        CMP DWORD PTR SS:[EBP+0x8], GET_ITEM_MODEL ( 0, 35 )
        JNZ NextBattleGlove1
        FLD DWORD PTR DS: [0x0D2C618]                       //FLOAT 0.003000000
        FSTP DWORD PTR SS: [EBP - 0x2C]
        JMP BattleGloveProp5_Jump
        // ----
        NextBattleGlove1:
        // ----
        CMP DWORD PTR SS: [EBP + 0x8], GET_ITEM_MODEL ( 0, 41 )
        JNZ ReturnBattleGlove_Load
        FLD DWORD PTR DS:[a1]                       //FLOAT 0.003800000
        FSTP DWORD PTR SS: [EBP - 0x2C]
        JMP BattleGloveProp5_Jump
        // ----
        ReturnBattleGlove_Load:
        // ----
        JMP BattleGloveProp5_Return
    }
}

static BOOL bBattleGlovesGlow_Switcher;

void __declspec ( naked ) cRFItem::BattleGloveGlow() {
    static DWORD dwBattleGlovesGlow_Pointer;
    static DWORD dwBattleGlovesGlow_Buffer;
    static DWORD dwBattleGlovesNewGlow_Buffer;
    static DWORD dwBattleGlovesGlow_Jump = 0x005F94E8;
    // ----
    bBattleGlovesGlow_Switcher = FALSE;
    // ----
    _asm {
        MOV dwBattleGlovesGlow_Pointer, EAX
    }

    // ----
    if ( dwBattleGlovesGlow_Pointer == GET_ITEM_MODEL ( 0, 35 ) ) {
        bBattleGlovesGlow_Switcher = TRUE;
    }
    else if ( gCustomGloves.CheckGloves(dwBattleGlovesGlow_Pointer-ITEM_BASE_MODEL)/*dwBattleGlovesGlow_Pointer == GET_ITEM_MODEL ( 0, 41 )*/ ) {
        bBattleGlovesGlow_Switcher = FALSE;
        // ----
        _asm {
            MOV DWORD PTR SS:[EBP-0x4], 0x2C
            JMP dwBattleGlovesGlow_Jump
        }
    }

    // ----
    if ( bBattleGlovesGlow_Switcher == TRUE ) {
        _asm {
            MOV dwBattleGlovesGlow_Buffer, 0x005F91C9
            JMP dwBattleGlovesGlow_Buffer
        }
    }
    else {
        _asm {
            MOV dwBattleGlovesGlow_Buffer, 0x005F91D5
            JMP dwBattleGlovesGlow_Buffer
        }
    }
}

__declspec(naked) void cRFItem::AddInventoryPos() // OK
{
    static DWORD IsRFItem = 0;
    static DWORD RFPosition = 0x005CD084; // 1.04D ENG
    static DWORD NextRFPosition = 0x005CD086; // 1.04D ENG
    //
    _asm {
        mov ecx, dword ptr ss : [ebp + 0x8]
        mov dword ptr ss : [ebp + 0x8], ecx
        mov IsRFItem, ecx
    }

    // ---
    if ( IsRFItem == 0x04B3 ) {
        _asm {jmp RFPosition}
    }
    else if ( IsRFItem == GET_ITEM_MODEL ( 0, 41 ) ) {
        _asm {jmp RFPosition}
    }
    else {
        _asm {jmp NextRFPosition}
    }
}

void cRFItem::Load() {
    int LoadGloves = GetPrivateProfileInt("Other","CheckRFGloves",0,".\\Data\\Custom\\Settings.ini");

    if (LoadGloves != 1)
    {
        return;
    }

    //SetRange (oBattleGlove_Load, 75, ASM::NOP );
    //SetOp(oBattleGlove_Load, &this->BattleGloveLoad, ASM::JMP);
    // ----


   // SetRange (oBattleGlove_Hook, 127, ASM::NOP );
    //SetOp(oBattleGlove_Hook, &this->BattleGloveAssoc, ASM::JMP);
    SetCompleteHook(0xE8,0x50D840+0xC5,&GlovesAssoc);

 //   // ----
   // SetRange (oBattleGlove_Texture, 90, ASM::NOP );
    //SetOp(oBattleGlove_Texture, &this->BattleGloveTexture, ASM::JMP);
 //   // ----
    //SetRange (oBattleGloveProp4_Hook, 59, ASM::NOP );
    //SetOp(oBattleGloveProp4_Hook, &this->BattleGloveProp4, ASM::JMP);// -> Inventory Position
    //SetRange(oBattleGloveProp4_Hook, 6, ASM::NOP);
    //SetJmp((LPVOID)iBowAddInventoryPos, cBowAddInventoryPos);
    //SetOp(oBattleGloveProp4_Hook, &cGlovesAddInventoryPos, ASM::JMP);
 //   // ----
   // SetRange (oBattleGloveProp5_Hook, 20, ASM::NOP );
    //SetOp(oBattleGloveProp5_Hook, &this->BattleGloveProp5, ASM::JMP); // -> Inventory Rotation
 //   // ----
    SetRange (oBattleGloveGlow_Hook, 7, ASM::NOP );
    SetOp(oBattleGloveGlow_Hook, &this->BattleGloveGlow, ASM::JMP);

    /*SetDword(0x005765B4+1,0x4BC);
    SetDword(0x00576B69+2,0x4BC);
    SetDword(0x00578A46+1,0x4BC);
    SetDword(0x005CD419+3,0x4BC);
    SetDword(0x005CEFE7+3,0x4BC);
    SetDword(0x005F91C2+1,0x4BC);
    SetDword(0x00607503+1,0x4BC);
    SetDword(0x00608D4C+3,0x4BC);
    SetDword(0x006095ED+3,0x4BC);
    SetDword(0x006105D6+1,0x4BC);*/

    //SetRange (0x005CD07D, 7, ASM::NOP );
    //SetOp(0x005CD07D, &this->AddInventoryPos, ASM::JMP);
}

CustomGloves.h

Code:
#pragma once

#define MAX_CUSTOM_GLOVES    100

struct CUSTOM_RF_GLOVES
{
    int Index;
    int ItemIndex;
    char ModelName[32];
    int TextureLeftIndex;
    char TextureLeftName[32];
    int TextureRightIndex;
    char TextureRightName[32];
};

class cCustomGloves
{
public:
    cCustomGloves();
    virtual ~cCustomGloves();
    void Init();
    void Load(CUSTOM_RF_GLOVES* info);
    void SetInfo(CUSTOM_RF_GLOVES info);
    CUSTOM_RF_GLOVES* GetInfoByID(int index);
    void AssocGloves(char* This);
    bool CheckGloves(int ItemID);
public:
    CUSTOM_RF_GLOVES m_CustomGlovesInfo[MAX_CUSTOM_GLOVES];
}; extern cCustomGloves gCustomGloves;

CustomGloves.cpp

Code:
#include "stdafx.h"
#include "CustomGloves.h"
#include "NEWConsole.h"
#include "Item.h"

cCustomGloves gCustomGloves;

cCustomGloves::cCustomGloves() // OK
{
    this->Init();
}

cCustomGloves::~cCustomGloves() // OK
{

}

void cCustomGloves::Init() // OK
{
    for(int n=0;n < MAX_CUSTOM_GLOVES;n++)
    {
        this->m_CustomGlovesInfo[n].Index = -1;
    }
}

void cCustomGloves::Load(CUSTOM_RF_GLOVES* info) // OK
{
    for(int n=0;n < MAX_CUSTOM_GLOVES;n++)
    {
        this->SetInfo(info[n]);
    }
}

void cCustomGloves::SetInfo(CUSTOM_RF_GLOVES info) // OK
{
    if(info.Index < 0 || info.Index >= MAX_CUSTOM_GLOVES)
    {
        return;
    }

    this->m_CustomGlovesInfo[info.Index] = info;
}

CUSTOM_RF_GLOVES* cCustomGloves::GetInfoByID(int index)
{
    for (int i=0;i<MAX_CUSTOM_GLOVES; i++)
    {
        if (this->m_CustomGlovesInfo[i].Index == -1)
        {
            continue;
        }

        if (i == index)
        {
            return &this->m_CustomGlovesInfo[i];
        }
    }

    return 0;
}

#define sub_50D810_Addr        ((int(__thiscall*)(int a1, int a2, int a3, int a4)) 0x50D810)
#define sub_512D50_Addr        ((void*(__thiscall*)(void* a1)) 0x512D50)
#define sub_513C60_Addr        ((char*(__thiscall*)(char *This, void *a2, int a3)) 0x513C60)
#define sub_5135F0_Addr        ((char*(__thiscall*)(DWORD *This, int a2, int a3)) 0x5135F0)
#define sub_512D60_Addr        ((void(*)()) 0x512D60)

void cCustomGloves::AssocGloves(char* This)
{
    for (int i=0;i<MAX_CUSTOM_GLOVES; i++)
    {
        if (this->m_CustomGlovesInfo[i].Index == -1)
        {
            continue;
        }

        //LoadItemModel(0x4BC,"Custom\\Item\\RFGloves\\","Sword41",-1);
        //LoadItemModel(0x610,"Custom\\Item\\RFGloves\\","Sword41L",-1);
        //LoadItemModel(0x611,"Custom\\Item\\RFGloves\\","Sword41R",-1);

        //LoadItemModel(this->m_CustomGlovesInfo[i].ItemIndex+ITEM_BASE_MODEL,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].ModelName,-1);
        //LoadItemModel(this->m_CustomGlovesInfo[i].TextureLeftIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureLeftName,-1);
        //LoadItemModel(this->m_CustomGlovesInfo[i].TextureRightIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureRightName,-1);

        //LoadItemTexture(this->m_CustomGlovesInfo[i].ItemIndex+ITEM_BASE_MODEL,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].ModelName,-1);
        //LoadItemTexture(this->m_CustomGlovesInfo[i].TextureLeftIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureLeftName,-1);
        //LoadItemTexture(this->m_CustomGlovesInfo[i].TextureRightIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureRightName,-1);

        sub_50D810_Addr((int)(This + 92), this->m_CustomGlovesInfo[i].ItemIndex+ITEM_BASE_MODEL, this->m_CustomGlovesInfo[i].TextureLeftIndex, this->m_CustomGlovesInfo[i].TextureRightIndex);
        void* v2 = sub_512D50_Addr(This + 92);
        char* v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
        sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
        sub_512D60_Addr();
    }
}


bool cCustomGloves::CheckGloves(int ItemID)
{
    for (int i=0;i<MAX_CUSTOM_GLOVES; i++)
    {
        if (this->m_CustomGlovesInfo[i].Index == -1)
        {
            continue;
        }

        if (ItemID == this->m_CustomGlovesInfo[i].ItemIndex)
        {
            return true;
        }
    }
    return false;
}



Link Download:
 
Last edited by a moderator:
Initiate Mage
Joined
Dec 1, 2010
Messages
65
Reaction score
5
Re: Source Custom Gloves(RF) Season 6 muemu

Source Custom Gloves(RF) Season 6

Link Download:

this custom gloves is with bug, does not work the right glow in the character and does not pull the model of the right item in the character

--

I had to do it straight in asm.
 
Initiate Mage
Joined
Jun 28, 2009
Messages
23
Reaction score
16
Re: Source Custom Gloves(RF) Season 6 muemu

this custom gloves is with bug, does not work the right glow in the character and does not pull the model of the right item in the character

--

I had to do it straight in asm.

I have full source add custom glove RF.
 
Initiate Mage
Joined
Dec 1, 2010
Messages
65
Reaction score
5
Re: Source Custom Gloves(RF) Season 6 muemu

I have full source add custom glove RF.

Is it configurable by txt file? If you have, can you share?

muonlinegr2, this custom gloves is with bug, does not work the right glow in the character and does not pull the model of the right item in the character.

Photo:
BattleGloves.h
BattleGloves.cpp
CustomGloves.h
CustomGloves.cpp

NmlneT3 - [Release] X-Team Sources (S4, S6, S8) - RaGEZONE Forums

X0W4TA0 - [Release] X-Team Sources (S4, S6, S8) - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Aug 27, 2008
Messages
183
Reaction score
133
Hi Guys!
I've tried to create a custom name color to Admin characters on Season 4 (1.05.30) but when i try to chat the main will close :*:

Main.cpp

Code:
SetCompleteHook(0xE9, 0x0050D982, &StaffNameColor);

Interface.Cpp

Code:
void StaffNameColor()
{
    // ----
    for (int StaffNameColor_Buff = 0; StaffNameColor_Buff < MAX_MAIN_VIEWPORT; StaffNameColor_Buff++)
    {
        DWORD ViewportAddress = *(DWORD*)(MAIN_VIEWPORT_STRUCT) + (StaffNameColor_Buff * 628);

        if (!ViewportAddress) //If Viewport is NULL
        {
            continue;
        }

        char* name = (char*)(ViewportAddress + 0x38);  //Charactername
        // ----
        if (!strncmp(name, "Knight",26))
        {
            pSetTextColor(pTextThis(), 255, 255, 0, 255);
        }
        else
        {
            pSetTextColor(pTextThis(), 0, 50, 0xff, 0xff);
        }

        _asm
        {
            mov StaffNameColor_Buff, 0x0050DA2E
            jmp StaffNameColor_Buff
        }
    }
}

Where is the error?
 
Last edited by a moderator:
Experienced Elementalist
Joined
Apr 15, 2012
Messages
203
Reaction score
25
Anyone knows the config for the reconnect system?

I can't do work properly.

Im connected, closes the GS, open again and the client just stay updating the progress bar and dont reconnect.

Build 603
 
Initiate Mage
Joined
Aug 6, 2015
Messages
59
Reaction score
3
I tried to find this message but it was not in messages.txt
you will not find it because you do not have to define it. put the message number that you get in the inventory message and in parentheses the message of what you have to say if I'm not mistaken goes the name of the server

 
Initiate Mage
Joined
Jul 16, 2014
Messages
15
Reaction score
1
you will not find it because you do not have to define it. put the message number that you get in the inventory message and in parentheses the message of what you have to say if I'm not mistaken goes the name of the server
Opps, i just tried other main, and it works :-O . Thanks for your support.
 
Back
Top