PDA

View Full Version : |Lançamento| [SOURCE] SmokerEffect code main MuEmu



boris160
30/06/2017, 03:53 PM
Bom fiz uma pequena adaptação desse efeito para o main emu S4,com base na source S6 da Mwebgame,se tiver alguma falha no code peço desculpas como disse foi uma adaptação q para mim funcionou!

SmokerEffect.h


extern bool g_sEnabled;
void AttachNewEffect();


SmokerEffect.cpp

#include "StdAfx.h"
#include "SmokerEffect.h"
#include "ToolKit.h"
#include "Offset.h"
#include "Defines.h"


DWORD pItemType = 0;


bool g_sEnabled = GetPrivateProfileIntA("Setting", "SmokerEffect", 0, ".\\Settings.ini");




__declspec(naked) void SetItemEffect()
{
__asm
{
Mov pItemType, Eax
}


switch (pItemType)
{
case ITEM2(11, 100):
{
__asm
{
Mov Esi, HDK_ITEM_EFFECT_ALLOW
JMP Esi
}
}
break;
}


__asm
{
Mov Esi, HDK_ITEM_EFFECT_NOT_ALLOW
JMP Esi
}
}


__declspec(naked) void SetColorEffect()
{
__asm
{
Mov pItemType, Ecx
}




switch (pItemType)
{
case ITEM2(11, 29): //RED
__asm
{
MOV EDX, DWORD PTR SS : [EBP + 0xC]
MOV DWORD PTR DS : [EDX + 0x9C], 0x3F266666 //Red Color Value
MOV EAX, DWORD PTR SS : [EBP + 0xC]
MOV DWORD PTR DS : [EAX + 0xA0], 0 //Green Color Value
MOV ECX, DWORD PTR SS : [EBP + 0xC]
MOV DWORD PTR DS : [ECX + 0xA4], 0 //Blue Color Value


}
break;
}


__asm
{
Mov Esi, HDK_NEXT_ITEM_COLOR
JMP Esi
}
}
void AttachNewEffect()
{
if (!g_sEnabled)
return;


DWORD dwPotect;


dwPotect = ToolKit.UnProtect(HDK_SET_ITEM_EFFECT, 11); //12
ToolKit.SetNop(HDK_SET_ITEM_EFFECT, 11);//12
ToolKit.WriteJmp(HDK_SET_ITEM_EFFECT, (DWORD)&SetItemEffect);
ToolKit.Protect(HDK_SET_ITEM_EFFECT, 21, dwPotect); //22


dwPotect = ToolKit.UnProtect(HDK_SET_COLOR_EFFECT, 30);//46
ToolKit.SetNop(HDK_SET_COLOR_EFFECT, 30); //46
ToolKit.WriteJmp(HDK_SET_COLOR_EFFECT, (DWORD)&SetColorEffect);
ToolKit.Protect(HDK_SET_COLOR_EFFECT, 45, dwPotect); //56
}


Defines.h

#define ITEM_INTER 333
#define ITEM(x, y) ((x * 512) + y)
#define ITEM2(x, y) ((x * 512) + y + ITEM_INTER)
#define Color4f(r, b, g, o) ((o << 24) + (g << 16) + (b << 8) + r)
#define HDK_SET_ITEM_EFFECT 0x004F31FB
#define HDK_SET_COLOR_EFFECT 0x004F326F
#define HDK_ITEM_EFFECT_ALLOW 0x0057AD8D
#define HDK_ITEM_EFFECT_NOT_ALLOW 0x0057B73B
#define HDK_NEXT_ITEM_COLOR 0x0057AF2E


ToolKit.h

#pragma once


#include "StdAfx.h"


class ToolKitEx
{
public:
ToolKitEx();
virtual ~ToolKitEx();


bool FileExists(char * name);
void SetNop(DWORD dwSrcOffset, int Size);
void SetByteP(DWORD dwSrcOffset, BYTE bOpCode);
void SetByteU(DWORD dwOffset, BYTE btValue);
void WriteJmp(DWORD dwSrcOffset, DWORD dwDstOffset);
void HookThis(DWORD dwDstOffset, DWORD dwSrcOffset);
void HookOffset(DWORD my, DWORD tohook, BYTE type);
void HookExactOffset(DWORD my, DWORD tohook, BYTE type);
void Protect(DWORD dwSrcOffset, int Size, DWORD dwNewProtect);
DWORD UnProtect(DWORD dwSrcOffset, int Size);


private:


protected:
};
extern ToolKitEx ToolKit;


ToolKit.cpp

#include "StdAfx.h"
#include "ToolKit.h"


ToolKitEx::ToolKitEx() {};


ToolKitEx::~ToolKitEx() {};


ToolKitEx ToolKit;


void ToolKitEx::Protect(DWORD dwSrcOffset, int Size, DWORD dwNewProtect)
{
DWORD OldProtect = 0;
VirtualProtect((LPVOID)dwSrcOffset, Size, dwNewProtect, &OldProtect);
};


DWORD ToolKitEx::UnProtect(DWORD dwSrcOffset, int Size)
{
DWORD OldProtect = 0;
VirtualProtect((LPVOID)dwSrcOffset, Size, PAGE_EXECUTE_READWRITE, &OldProtect);
return OldProtect;
};


void ToolKitEx::SetNop(DWORD dwSrcOffset, int Size)
{
for (int i = 0; i < Size; i++)
*(BYTE*)(dwSrcOffset + i) = 0x90;
};


void ToolKitEx::SetByteP(DWORD dwSrcOffset, BYTE bOpCode)
{
__try
{
DWORD dwProtect = this->UnProtect(dwSrcOffset, 1);
*(BYTE*)(dwSrcOffset) = bOpCode;
this->Protect(dwSrcOffset, 1, dwProtect);
}
__finally {}
}


void ToolKitEx::WriteJmp(DWORD dwSrcOffset, DWORD dwDstOffset)
{
if (dwSrcOffset)
{
__try
{
DWORD dwOffset = UnProtect(dwSrcOffset, 10);
SetByteP(dwSrcOffset, 0xE9);
HookThis(dwDstOffset, dwSrcOffset);
Protect(dwSrcOffset, 10, dwOffset);
}
__finally {}
}
};


void ToolKitEx::HookThis(DWORD dwDstOffset, DWORD dwSrcOffset)
{
*(DWORD*)(dwSrcOffset + 1) = dwDstOffset - (dwSrcOffset + 5);
};


void ToolKitEx::HookExactOffset(DWORD my, DWORD tohook, BYTE type)
{
*(BYTE*)tohook = type;
*(DWORD*)(tohook + 1) = my;
};


void ToolKitEx::HookOffset(DWORD my, DWORD tohook, BYTE type)
{
*(BYTE*)tohook = type;
*(DWORD*)(tohook + 1) = my - (tohook + 5);
};


void ToolKitEx::SetByteU(DWORD dwOffset, BYTE btValue)
{
*(BYTE*)(dwOffset) = btValue;
};


bool ToolKitEx::FileExists(char * name)
{
if (CreateFile(name, 0, 0, 0, OPEN_EXISTING, 0, 0) == INVALID_HANDLE_VALUE)
return false;
return true;
};

Main.cpp



#include "SmokerEffect.h"


AttachNewEffect();



RESULTADO


[Only registered and activated users can see links]

[Only registered and activated users can see links]




pra quem utiliza versão season 6 os offsets são

0x0057AD82
0x0057AEFA
0x0057AD8D
0x0057B73B
0x0057AF2E


créditos :
MWebGame
Boris160

boris160
30/06/2017, 05:00 PM
Foi uma adaptação,cm estou aprendendo ainda pode ter ido códigos a mais kk
:ott1 vou aguarda o seu modo

louis
30/06/2017, 06:59 PM
Vi isso ai nas source e não sabia o que era kkkkkk

boris160
30/06/2017, 07:22 PM
Vi isso ai nas source e não sabia o que era kkkkkk
kkk to vendo se adapto o fog tbm

Marco_Aurélio
31/07/2017, 12:13 PM
amigo bom post, mas tem um jeito melhor de faze-lo :D

Vou postar mais tarde .

Pretendes postar quando a melhor forma de fazer??

Mentor
16/08/2017, 12:08 AM
@boris160 ([Only registered and activated users can see links]) teria como fazer um esquema para que escolhemos os itens que a gente quer que utilize o efeito em uma ini + as cores RGB? Pois também fiquei na espera do Smiley postar a melhor forma mais pelo visto está vindo de carroçalol:ott1

antoniodel
12/09/2017, 12:56 PM
Esse efeito é para qual quer set ou para o DK?
Na Setting.ini não está faltando mais coisa?

[Settings]
SmokerEffect = 1

????

jhonhy™
12/09/2017, 01:09 PM
Pelo que vi no code, é somente para o set dk, ou posso estar errado..

A config da Setting.ini está correta.

Unico
12/09/2017, 05:28 PM
cual es codiuo de color do smoke effect set Dark King ?

higlans
29/09/2017, 04:10 AM
Por favor me diga como fazer para 8 temporada. Obrigado antecipadamente !

louis
29/09/2017, 04:40 AM
Por favor me diga como fazer para 8 temporada. Obrigado antecipadamente !

O código é o mesmo, você vai precisar dos offsets do s8 que será bem difícil de conseguir.

T+

antoniodel
29/09/2017, 08:16 AM
Alguém conseguiu os offset do s8 muemu?

laulinh2
10/11/2018, 12:07 AM
[Only registered and activated users can see links]
[Only registered and activated users can see links]
Error, smookeffect work in select character but not work in after that

cleniojr
08/03/2020, 08:55 PM
[Only registered and activated users can see links]
[Only registered and activated users can see links]
Error, smookeffect work in select character but not work in after that
O Mesmo aqui!

Atualizando!
Isso só acontece quando item é +15. Se for +13 funciona conforme o tópico