Noticias:

SMF - Just Installed!

Menú principal

MU SEASON 3 BASE MAIN 5.2

Publicado por Dakosmu, Feb 25, 2023, 04:34 PM

Tema anterior - Siguiente tema

Dakosmu

MU SEASON 3 BASE MAIN 5.2

Since I don't have much time to spend on it, I leave these files for anyone who needs them.

SEASON 5.2 downgraded to Season 3


IMAGENES
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión




DESCARGAS
CLIENT:
You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
1 Duel
You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
2: Change Trade, Quest, Personal store
You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
3: Original select server
You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
requeridos (los pueden obtener de cualquier cliente S2/S3 original)[/b]

Data/Logo/Login_Back01.ozj
Data/Logo/Login_Back02.ozj
Data/Object56
Data/World56

Surce

SelectServerS2.h:
#pragma once

#define AccessModel ((void(_cdecl*)(int Type, char* Dir, char* FileName, int i))0x00614D10)
#define OpenTexture ((void(_cdecl*)(int Model, char* SubFolder, int Wrap, int Type, bool Check))0x00614710)
#define CreateObject ((DWORD(_cdecl*)(int Type, float Position[3], float Angle[3], float Scale))0x005F1A40)
#define CreateHero ((DWORD(_cdecl*)(int Key, int Class, int Skin, float X, float Y, float Rotate))0x00586DA0)
#define CreateBug ((void(_cdecl*)(int Type, float Position[3], DWORD Owner, int SubType, int LinkBone))0x00501700)
#define CreatePetDarkSpirit_Now ((void(_cdecl*)(DWORD c))0x004F8C30)
#define SetAction ((void(_cdecl*)(DWORD o, int Action, bool bBlending))0x00542310)
#define OpenLogoSceneData ((void(_cdecl*)())0x006310C0)
#define BitmapLoad ((bool(__cdecl*)(const char* szFileName, GLuint uiTextureIndex, GLuint uiFilter, GLuint uiWrapMode, bool bCheck, bool bFullPath)) 0x00772330)
#define BeginBitmap ((void(_cdecl*)())0x00637770)
#define EndBitmap ((void(_cdecl*)())0x00637870)
#define RenderBitmap ((void(__cdecl*)(int Texture, float x, float y, float Width, float Height, float u, float v, float uWidth, float vHeight, bool Scale ,bool StartScale, float Alpha)) 0x637C60)
#define CreateFrustrum ((void(_cdecl*)(float Aspect, float position[3]))0x005DBAC0)

void InitSelectServerS2();

void CreateLoginLogo();
void CreateLoginDarkLord();
void MoveLoginDarkLord();
void ChangeLoginDarkHorseSize();
void LoadLoginBackImages();
void RenderLoginBackImages(float Red, float Green, float Blue);
void ChangeLoginFrustrumPosition(float Aspect, float position[3]);
void SetLoginCameraViewFar();
void ChangeLoginCameraPosition();
void ChangeLoginCameraRange();

SelectServerS2.cpp:
#include "stdafx.h"
#include "SelectServerS2.h"
#include "Util.h"

void InitSelectServerS2()
{
SetDword(0x004D75EA + 6, 55); // Change Map Number

SetCompleteHook(0xE9, 0x0062D37E, &CreateLoginLogo); // Create the MU Logo

SetCompleteHook(0xE9, 0x004D763B, &CreateLoginDarkLord); // Create Dark Lord
SetCompleteHook(0xE9, 0x004D7765, &MoveLoginDarkLord); // Animation of Dark Lord
SetCompleteHook(0xE9, 0x0050382D, &ChangeLoginDarkHorseSize); // Change the Dark Horse Size

SetCompleteHook(0xE9, 0x004D76C8, 0x004D76FB); // Skip the CCameraMove calls

SetCompleteHook(0xE8, 0x004D7602, &LoadLoginBackImages); // Load the background images of the login
SetCompleteHook(0xE8, 0x004D79DA, &RenderLoginBackImages); // Render the login background images
SetByte(0x004D79DA + 5, 0x90); // Render the login background images

SetCompleteHook(0xE8, 0x004D7A45, &ChangeLoginFrustrumPosition); // Change the frustrum position for the camera

SetCompleteHook(0xE9, 0x004D87B4, &SetLoginCameraViewFar); // Set the CameraViewFar value in LOG_IN_SCENE

SetCompleteHook(0xE9, 0x004D8AE7, &ChangeLoginCameraPosition); // Set the CameraAngle and CameraPosition values

SetCompleteHook(0xE9, 0x005DB456, &ChangeLoginCameraRange); // Set the CameraViewFar and CameraViewNear values
}

__declspec(naked) void CreateLoginLogo()
{
static DWORD jmpBack = 0x0062D99B;

_asm
{
Pushad;
}

AccessModel(162, "Data\\Logo\\", "Logo", 3);

OpenTexture(162, "Logo\\", GL_REPEAT, GL_LINEAR, true);

static float Angle[3] = { 10.0f, 0.0f, 36.0f };

static float Position[3] = { 10680.0f, 15550.0f, 1710.0f };

CreateObject(162, Position, Angle, 1.0f);

_asm
{
Popad;
Jmp jmpBack;
}
}

__declspec(naked) void CreateLoginDarkLord()
{
static DWORD jmpBack = 0x004D7642;
static DWORD ViewportAddress;

_asm
{
Pushad;
}

*(bool*)0x081C03F6 = false;

CreateHero(2, 4, 0, 0, 0, 0);

ViewportAddress = ((DWORD(__thiscall*)(void*, DWORD))0x0096A4C0)(((void* (*)())0x00402BC0)(), 2);

*(float*)(ViewportAddress + 872) = 1.6f; // Scale

*(float*)(ViewportAddress + 1040) = 0.0f; // Angle[0]
*(float*)(ViewportAddress + 1044) = 0.0f; // Angle[1]
*(float*)(ViewportAddress + 1048) = 188.0f; // Angle[2]

*(float*)(ViewportAddress + 1028) = 10603.0f; // Position[0]
*(float*)(ViewportAddress + 1032) = 14112.0f; // Position[1]
*(float*)(ViewportAddress + 1036) = 580.0f; // Position[2]

CreateBug(226, (float*)(ViewportAddress + 1028), (DWORD)(ViewportAddress + 776), 0, 0);

CreatePetDarkSpirit_Now(ViewportAddress);

_asm
{
Popad;
Jmp jmpBack;
}
}

__declspec(naked) void MoveLoginDarkLord()
{
static DWORD jmpBack = 0x004D776A;
static DWORD CUIMngInstance = 0x00482B70;
static DWORD ViewportAddress;
static int restartAnimation;
static BYTE random;

_asm
{
Pushad;
}

ViewportAddress = ((DWORD(__thiscall*)(void*, DWORD))0x0096A4C0)(((void* (*)())0x00402BC0)(), 2);

restartAnimation = (int)((int(*(float*)0x05EF5A1C) % 2300) * 0.0099999998f);

if (!restartAnimation)
{
random = (BYTE)(rand() % 6);


if (random == 1)
{
SetAction((DWORD)(ViewportAddress + 776), 88, true);
}
else if (random == 2)
{
SetAction((DWORD)(ViewportAddress + 776), 89, true);
}
}

_asm
{
Popad;
Call[CUIMngInstance];
Jmp jmpBack;
}
}

__declspec(naked) void ChangeLoginDarkHorseSize()
{
static DWORD jmpBack = 0x00503834;
static DWORD jmpContinue = 0x0050387C;
static float DarkHorseSize = 1.6f;

_asm
{
Cmp Dword Ptr Ds : [0x00E609E8] , 2;
Jnz EXIT;
Mov Eax, [Ebp + 0x08];
Fld DarkHorseSize;
Fstp Dword Ptr[Eax + 0x60];
Jmp jmpContinue;
EXIT:
Cmp Dword Ptr Ds : [0x00E609E8] , 4;
Jmp jmpBack;
}
}

void LoadLoginBackImages()
{
BitmapLoad("Logo\\Login_Back01.jpg", 31011, GL_NEAREST, GL_CLAMP, true, false);

BitmapLoad("Logo\\Login_Back02.jpg", 31012, GL_NEAREST, GL_CLAMP, true, false);

OpenLogoSceneData();
}

void RenderLoginBackImages(float Red, float Green, float Blue)
{
glColor3f(Red, Green, Blue);

BeginBitmap();

RenderBitmap(31011, 0.0f, 25.0f, 320.0f, 320.0f, 0.0f, 0.0f, 1.0f, 1.0f, true, true, 0.0f);

RenderBitmap(31012, 320.0f, 25.0f, 320.0f, 320.0f, 0.0f, 0.0f, 1.0f, 1.0f, true, true, 0.0f);

EndBitmap();
}

void ChangeLoginFrustrumPosition(float Aspect, float position[3])
{
float pos[3] = { 11679.0f, 14191.0f, 333.0f };

CreateFrustrum(Aspect, pos);
}

__declspec(naked) void SetLoginCameraViewFar()
{
static DWORD jmpBack = 0x004D87BF;
static DWORD jmpContinue = 0x004D8808;

_asm
{
Cmp Dword Ptr Ds : [0x00E609E8] , 2;
Jz EXIT;
Jmp jmpBack;
EXIT:
}

*(float*)0x00E61E3C = 20400.0f;

_asm
{
Jmp jmpContinue;
}
}

__declspec(naked) void ChangeLoginCameraPosition()
{
static DWORD jmpBack = 0x004D8AEE;
static DWORD jmpContinue = 0x004D8B42;

_asm
{
Cmp Dword Ptr Ds : [0x00E609E8] , 2;
Jz EXIT;
Cmp Dword Ptr Ds : [0x00E609E8] , 4;
Jmp jmpBack;
EXIT:
}

*(float*)0x087933D0 = -96.5f;
*(float*)0x087933D4 = 0.0f;
*(float*)0x087933D8 = -36.0f;
*(float*)0x087933DC = 12778.0f;
*(float*)0x087933E0 = 12678.0f;
*(float*)0x087933E4 = 579.0f;

_asm
{
Jmp jmpContinue;
}
}

__declspec(naked) void ChangeLoginCameraRange()
{
static DWORD jmpBack = 0x005DB464;
static DWORD jmpContinue = 0x005DB589;

static DWORD offsetCall = 0x5C6E80;
static float widthValue1 = 640.0f;
static float widthValue2 = 17.0f;
static float widthValue3 = 6.0f;
static float widthValue4 = 2400.0f;

_asm
{
Cmp Dword Ptr Ds : [0x00E609E8] , 2;
Jnz EXIT;
Call offsetCall;
Mov[Ebp - 0xDC], Eax;
Fild[Ebp - 0xDC];
Fdiv widthValue1;
Fmul widthValue2;
Fmul widthValue3;
Fstp[Ebp - 0x74];
Fld widthValue4;
Fmul widthValue2;
Fmul widthValue3;
Fstp[Ebp - 0x78];
Jmp jmpContinue;
EXIT:
Cmp Dword Ptr Ds : [0x00E609E8] , 4;
Jmp jmpBack;
}
}

Main.cpp:
#include "SelectServerS2.h"

InitSelectServerS2();


CONTRASEÑA
muserverfiles.com


CREDITOS
son1xx2
kayito

Virustotal
https://www.virustotal.com/gui/url-analysis/u-bae21c16a42a41dcb44f49f23a81c6c202ee282ff37c521bcdc56d93a8904654-1677339278


Bon Dia

kaiokun


🡱 🡳