PDA

View Full Version : |Source| ICON + Descrição na janela do Main



megaman
26/12/2019, 07:10 PM
Olá, achei esse código na net e estou postando aqui na PZ :D
Obs: Não testei.

[Only registered and activated users can see links]


///I coi
//icoi
//Controller.cpp
///
void __declspec(naked) iconHook()
{
static DWORD dwIcon = (DWORD)LoadIcon(gController.Instance, MAKEINTRESOURCE(IDI_ICON1));//chuckhai
static DWORD dwJmp = 0x004D0E3C;
_asm
{
MOV EAX, dwIcon
JMP dwJmp
}
}
bool Controller::Load()
{
this->VKF9_State = 0;
if( !this->MouseHook )
{
this->MouseHook = SetWindowsHookEx(WH_MOUSE, this->Mouse, gController.Instance, GetCurrentThreadId());
// ----
if( !this->MouseHook )
{
return false;
}
}
// ----
if( !this->KeyboardHook )
{
this->KeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, this->Keyboard, gController.Instance, NULL);
// ----
if( !this->KeyboardHook )
{
return false;
}
}
//chuckhai
SetRange((LPVOID)0x004D0E2F, 13, ASM::NOP);

SetOp((LPVOID)0x004D0E2F, iconHook, ASM::CALL);

return true;
}
////

///
///giòng chữ
////
void Interface::Work() {
char test[500];
sprintf_s(test, sizeof(test), "Server: %s || Player: %s || Level: %d ", gProtect.m_MainInfo.WindowName, gObjUser.lpPlayer->Name, gObjUser.lpPlayer->Level);
SetWindowText(pGameWindow, test);
}
//

// chuckhai

Créditos:
chuckhai

Phantomkr
26/12/2019, 08:09 PM
código incompleto

Mentor
26/12/2019, 09:10 PM
Existe um tópico semelhante postado pelo autor porém a diferença é que nesse tem o detalhe das informações do servidor que podem ser adicionadas.
Phantomkr talvez o desse tópico esteja completo:
[Only registered and activated users can see links]

megaman
27/12/2019, 08:03 PM
Pessoal atualizei o tópico com uma pequena correção para quem está com esse problema na hora de implantar o código e compilar conforme é mostrado na imagem abaixo:
[Only registered and activated users can see links]
Para corrigir isso, basta acrescentar o char test[500]; na função:


void Interface::Work() {
char test[500];
sprintf_s(test, sizeof(test), "Server: %s || Player: %s || Level: %d ", gProtect.m_MainInfo.WindowName, gObjUser.lpPlayer->Name, gObjUser.lpPlayer->Level);
SetWindowText(pGameWindow, test);
}

Mentor
27/12/2019, 08:20 PM
Fiz um teste e a source funciona perfeitamente, porem a parte do ICON está incompleta, para isso basta fazer os procedimentos no tópico que informei cima e depois disso adicionar os códigos desse tópico, que vai dar certo.

[Only registered and activated users can see links]

O nome do servidor ele busca dessa linha do mainfo:
WindowName = MU

megaman
28/12/2019, 03:05 PM
Pessoal vou postar uma forma mais organizada de fazer essa parte das descrições que é exibido na barra da janela.
Ao invés de adicionar essas linhas em void Interface::Work()

char test[500];
sprintf_s(test, sizeof(test), "Server: %s || Player: %s || Level: %d ", gProtect.m_MainInfo.WindowName, gObjUser.lpPlayer->Name, gObjUser.lpPlayer->Level);
SetWindowText(pGameWindow, test);

Crie uma função com qualquer nome que achar melhor...No exemplo abaixo estarei criando uma função chamada PerfectZone, mas você pode criar com outro nome que não seja um nome já existente na sua source.

Em inferface.cpp adicione:


void Interface::PerfectZone()
{
char test[500];
sprintf_s(test, sizeof(test), "Server: %s || Player: %s || Level: %d ", gProtect.m_MainInfo.WindowName, gObjUser.lpPlayer->Name, gObjUser.lpPlayer->Level);
SetWindowText(pGameWindow, test);

}

e em void Interface::Work() adicione a seguinte linha:

gInterface.PerfectZone();

Em Interface.h dentro da class Interface { public: adicione:


void PerfectZone();

Caso queira adicionar mais informações na janela como quantidade de resets,moedas cashshop, time...É só acrescentar o que deseja como por exemplo:

static char test[500];
sprintf_s(test, sizeof(test), "Character : %s || Level: %d || Reset: %d || Wcoint(C) : %d || Wcoint(P) : %d || Goblin Point : %d", gObjUser.lpPlayer->Name, gObjUser.lpPlayer->Level, ViewReset, Coin1,Coin2,Coin3);

E você terá algo parecido com isso:
[Only registered and activated users can see links]

rafhael
31/12/2019, 01:56 PM
Conseguiria explicar como eu agrago este sistema a uma dll Client que não tenha interface.h e .cpp?

Phantomkr
30/01/2020, 07:22 PM
Eu tenho um erro nesta linha
este é um sprintf_s vermelho

Eu tenho um erro nesta linhaeste é um sprintf_s vermelhoeste é um sprintf_s vermelhoEu tenho um erro nesta linhaeste é um sprintf_s vermelho

RifleMaN_
14/08/2020, 08:56 AM
como faço pra adicionar também o ping ?

LorenStudio
14/08/2020, 09:42 AM
como faço pra adicionar também o ping ?
Tente com

sprintf_s(test, sizeof(test), "Server: %s || Player: %s || Level: %d || Reset: %d || Ping: %d ", gProtect.m_MainInfo.WindowName, gObjUser.lpPlayer->Name, gObjUser.lpPlayer->Level, gObjUser.lpPlayer->Level, ViewReset, ProtocolDoPing);

RifleMaN_
14/08/2020, 10:23 AM
no caso eu n tenho o sistema de ping adicionado