Jump to content
Notícia
  • Adquira já o seu VIP!

Search the Community

Showing results for tags 'hook'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Anunciantes
    • Velozhost
    • SkyNet IPTV
    • silvaBR Cheats
    • WYD NIDHOGG
  • ################## WEB CHEATS ##################
  • Anúncios/Eventos
    • Regras
    • Anúncios
    • Eventos do fórum
  • Feedback & Suporte
    • Tutoriais WC
    • Suporte
    • Sugestões
    • Denúncias e Reclamações
    • Depósito
  • Shooter Zone
    • Counter Strike
    • Valorant
    • Rainbow Six Siege
    • Outros Shooters em Geral
    • Shooter Zone - Lixão
  • Battle Royale
    • COD Warzone
    • Free Fire
    • PUBG - Playerunknown's Battlegrounds
    • Fortnite
    • Outros Jogos Battle Royale
  • MMO Zone
  • Outros Games Zone
  • Design Zone
  • Info Zone
  • ################## WEB CHEATS ##################
  • Entretenimento & Diversão
  • MarketPlace
  • Old WC's Bate Papo
  • 【FREE FIRE】▄︻┻┳═一's Fórum do Clube
  • Anticomunismo's Tópicos
  • Tópicos Importantes !'s Tópicos
  • AnimePlus's Tópicos

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Idade

 
or  

Found 23 results

  1. Salve, Como muitos gostam de tirar uns prints bem bonitos sem a HUD do WYD, Eu fui atrás e fiquei estudando a DLL de vários clients 7.56 e extraí todo o hook de colocar o client em modo foto. [Hidden Content] Créditos: DLL dos clients 7.56: DoN e WYD2.0
  2. Esse hook tem como função adicionar lugares em que o GreenTime vai funcionar. Para quem não sabe, poucos lugares do jogo tem o GreeenTime funcionando. JMP_NEAR(0x0047D3D5, NKD_GreenTime_NewArea, 1); __declspec(naked) void NKD_GreenTime_NewArea() { __asm { MOV EDX,DWORD PTR SS:[EBP - 07B8h] MOV EAX,DWORD PTR DS:[EDX + 040h] PUSH DWORD PTR DS:[EAX + 020A24h] MOV EDX,DWORD PTR SS:[EBP - 07B8h] MOV EAX,DWORD PTR DS:[EDX + 040h] PUSH DWORD PTR DS:[EAX + 020A20h] CALL HKD_GreenTime_NewArea ADD ESP,08h TEST EAX,EAX JE lbl_retn MOV EAX,0047D625h JMP EAX lbl_retn: MOV EAX,0047D3FDh JMP EAX } } Basta adicionar a divisão do mapa que você deseja ter o tempo verde. Caso queira em QUALQUER LUGAR, apenas ponha return 1 na função. INT32 HKD_GreenTime_NewArea(INT32 posX, INT32 posY) { if(posX == 2 && posY == 4) return 1; if(posX == 1 && posY == 31) return 1; if(posX == 20 && posY == 13) return 1; if(posX == 13 && posY == 16) return 1; return 0; } Créditos: shepher
  3. Salve, Uma das primeiras coisas que fui atrás, quando estava fuçando sobre ASM, foi aprender como alterar a resolução do WYD. Este hook altera todas as resoluções, tamanhos das fontes e deixa tudo em 32bits. Estou compartilhando aqui com vocês agora: [Hidden Content] Créditos: Inspirado no WYD2.0 SeiTbNao, por me ajudar no inicio a transformar hook direto do ollydbg para hook cpp. E claro, Eu XD
  4. //GreeenTime hooks.setHook(eHookType::JMP, 0x0047DACA, hooks.getAddress(&NKD_GreenTime_NewArea), 1); __declspec(naked) void NKD_GreenTime_NewArea() { __asm { MOV EDX, DWORD PTR SS : [EBP - 07B8h] MOV EAX, DWORD PTR DS : [EDX + 040h] PUSH DWORD PTR DS : [EAX + 020A24h] MOV EDX, DWORD PTR SS : [EBP - 07B8h] MOV EAX, DWORD PTR DS : [EDX + 040h] PUSH DWORD PTR DS : [EAX + 020A20h] CALL HKD_GreenTime_NewArea ADD ESP, 08h TEST EAX, EAX JE lbl_retn MOV EAX, 0047DD1Ah JMP EAX lbl_retn : MOV EAX, 0047DAF2h JMP EAX } } //Basta adicionar a divisão do mapa que você deseja ter o tempo verde. Caso queira em QUALQUER LUGAR, apenas ponha return 1 na função. INT32 HKD_GreenTime_NewArea(INT32 posX, INT32 posY) { /*if (posX == 2 && posY == 4) return 1; if (posX == 1 && posY == 31) return 1; if (posX == 20 && posY == 13) return 1; if (posX == 13 && posY == 16) return 1;*/ return 1; } Créditos: shepher Ethan atualizei os addrs pra versão que todos usam.
  5. Olá pessoal, nunca postei algo útil para a comunidade, então deixo esse hook onde os créditos são somente meus, tirando a parte da função que converte hostname para ip que não lembro de onde peguei, acho que foi de um emu do Ragnarok, mais enfim segue. Esse hook é para fazer o cliente reconhecer DNS no serverlist, isso é muito útil para aqueles que querem abrir servidor do próprio PC sem ter o IP fixo pois podem utilizar como exemplo o NO-IP como dns, entre vários outros, lembre que além de colocar esse hook vocês devem liberar a porta no firewall e no modem. #include <iostream> #include <winsock.h> #pragma comment(lib, "Ws2_32.lib") int hostname_to_ip(char * hostname, char* ip) { struct hostent *he; struct in_addr **addr_list; int i; if ((he = gethostbyname(hostname)) == NULL) { return 1; } addr_list = (struct in_addr **) he->h_addr_list; for (i = 0; addr_list[i] != NULL; i++) { strcpy(ip, inet_ntoa(*addr_list[i])); return 0; } return 1; } void ConvertDNStoIP() { DWORD ip[256]; for (int i = 0; i < 110; i++) { char * Valor = (char*)(0x011D8CB8 + (64 * i)); if (!memcmp(Valor, "http:/", 6)) { /*LogLine("\n"); LogLine("HTTP Encontrado "); LogLine(Valor);*/ } else { if (memcmp(Valor, "", 1)) { hostname_to_ip(Valor, (char*)ip); memset(Valor, 0x00, strlen(Valor)); memcpy(Valor, (char*)ip, strlen((char*)ip)); } } } } DWORD dwBackFix6 = 0x0053A3B5; __declspec(naked) void Fix6() { ConvertDNStoIP(); __asm { MOV DWORD PTR SS : [EBP - 0x8], 1 MOV DWORD PTR SS : [EBP - 0x4], 0 JMP[dwBackFix6] } } //Esse é o Hook para chamar a função PlaceJMP((BYTE*)0x0053A3A7, (DWORD)Fix6, 12); Então é isso, espero que a comunidade faça bom uso. Abraço a todos.
  6. Ola Pessoal Venho disponibilizar um comando muito bom para vocês para pegar cidadão em qualquer lugar. #pragma region cidadania if (!strcmp(packet->Cmd, "cidadao")) { if (mob->Mob.Equip[0].Effect[2].Value == 0 && mob->Mob.Gold >= 2000000) // Colocar Cidadania { mob->Mob.Equip[0].Effect[2].Value = 1; mob->Mob.Gold -= 2000000; SendEtc(client); Language::instance().getString(KibitaRegister); SendClientMessage(client, "Parabéns Você se registrou em nosso canal."); return true; } } #pragma endregion
  7. Bom a há um tempo foi postado esse hook aqui mesmo, mais o conteúdo se perdeu (eu acho) então estou disponibilizando novamente. Não sei quem é o autor do código então os créditos são dele. [Hidden Content]
  8. Acredito que esse comando ira ajudar muitos servidores aqui deixo minha colaboração if (!strcmp(packet->Cmd, "quest")) { if (Func::GetPlayerClass(client) == Mortal && mob->Mob.BaseStatus.Level >= 320) { SendClientMessage(client, "Bem Vindo a Quest Elfos!"); DoTeleport(client, 1300, 4036, 0); return true; } if (Func::GetPlayerClass(client) == Mortal && mob->Mob.BaseStatus.Level >= 265) { SendClientMessage(client, "Bem Vindo a Quest Hidra!"); DoTeleport(client, 668, 3769, 0); return true; } if (Func::GetPlayerClass(client) == Mortal && mob->Mob.BaseStatus.Level >= 190) { SendClientMessage(client, "Bem Vindo a Quest Kaizen!"); DoTeleport(client, 454, 3910, 0); return true; } if (Func::GetPlayerClass(client) == Mortal && mob->Mob.BaseStatus.Level >= 115) { SendClientMessage(client, "Bem Vindo a Quest Jardim de Deus!"); DoTeleport(client, 2224, 1712, 0); return true; } if (Func::GetPlayerClass(client) == Mortal && mob->Mob.BaseStatus.Level >= 39) { SendClientMessage(client, "Bem Vindo a Quest do Coveiro!"); DoTeleport(client, 2371, 2101, 0); return true; } } .
  9. Bom dia, eu acho que foi o Fernando que postou esse hook há um tempo ai... esse que tenho aqui está faltando uma parte que seria responsável pelo sumiço vamos dizer assim do item quando chega-se no tempo dele. então vamos lá. [Hidden Content]
  10. Já que riparam e estão vendendo por um preço absurdo, resolvi postar para vocês, façam bom proveito. 7556 __declspec(naked) void NKD_FixMageMacro() { __asm { MOV ECX, DWORD PTR SS : [EBP - 0x118] // Diferente do Macro Continuo, então pula CMP DWORD PTR DS:[ECX+0x27D28], 0x0 JNZ lbl_JMP PUSH 0x049AFC9 RETN lbl_JMP: PUSH 0x0049B1B5 RETN } } /* Fix Macro Mage */ JE_NEAR(0x049B39A, NKD_FixMageMacro); JE_NEAR(0x049B3AA, NKD_FixMageMacro); 76x(não sei ql a versão certinho) // creditos ao jumper por att os addrs __declspec(naked) void NKD_FixMageMacro() { __asm { MOV ECX, DWORD PTR SS : [EBP - 0x11C] // Diferente do Macro Continuo, então pula CMP DWORD PTR DS : [ECX + 0x8A3A0], 0x0 JNZ lbl_JMP PUSH 0x004970F9 RETN lbl_JMP : PUSH 0x004972E5 RETN } } /* Fix Macro Mage */ JE_NEAR(0x04974C7, NKD_FixMageMacro); JE_NEAR(0x04974D7, NKD_FixMageMacro);
  11. hooks.setHook(eHookType::JMP, 0x41C468, hooks.getAddress(&NKD_FixItemDescription), 4); __declspec(naked) void NKD_FixItemDescription() { static COLORREF line1Color = 0, line2Color = 0, line3Color = 0, line4Color = 0, line5Color = 0, line6Color = 0, line7Color = 0, line8Color = 0, line9Color = 0, line10Color = 0; static int32_t lineCounter = 0, index = 0; static char line2[128] = { 0 }, line3[128] = { 0 }, line4[128] {0, }, line5[128] = { 0 }, line6[128] = { 0 }, line7[128] {0, }, line8[128] = { 0 }, line9[128] = { 0 }, line10[128] {0, }; __asm { LEA EAX, line10Color PUSH EAX LEA EAX, line9Color PUSH EAX LEA EAX, line8Color PUSH EAX LEA EAX, line7Color PUSH EAX LEA EAX, line6Color PUSH EAX LEA EAX, line5Color PUSH EAX LEA EAX, line4Color PUSH EAX LEA EAX, line3Color PUSH EAX LEA EAX, line2Color PUSH EAX LEA EAX, line1Color PUSH EAX LEA ECX, line10 PUSH ECX LEA ECX, line9 PUSH ECX LEA ECX, line8 PUSH ECX LEA ECX, line7 PUSH ECX LEA ECX, line6 PUSH ECX LEA ECX, line5 PUSH ECX LEA ECX, line4 PUSH ECX LEA ECX, line3 PUSH ECX LEA ECX, line2 PUSH ECX LEA EDX, DWORD PTR SS : [EBP - 0xAC] PUSH EDX MOV ECX, DWORD PTR SS : [EBP - 0x8] MOV EDX, DWORD PTR DS : [ECX + 0x670] PUSH EDX CALL AddItemDescription TEST EAX, EAX JE lblContinueExec MOV lineCounter, EAX MOV index, 0 JMP LoopStart LoopEnd : MOV EAX, index ADD EAX, 1 MOV index, EAX LoopStart : MOV EAX, index CMP EAX, lineCounter JGE lblContinueExec PUSH 0 CMP index, 0 JG lblLine2 LEA ECX, DWORD PTR SS : [EBP - 0xAC] PUSH ECX JMP lblContinuePush lblLine2 : CMP index, 1 JG lblLine3 LEA ECX, line2 PUSH ECX JMP lblContinuePush lblLine3 : CMP index, 2 JG lblLine4 LEA ECX, line3 PUSH ECX JMP lblContinuePush lblLine4 : CMP index, 3 JG lblLine5 LEA ECX, line4 PUSH ECX JMP lblContinuePush lblLine5 : CMP index, 4 JG lblLine6 LEA ECX, line5 PUSH ECX JMP lblContinuePush lblLine6 : CMP index, 5 JG lblLine7 LEA ECX, line6 PUSH ECX JMP lblContinuePush lblLine7 : CMP index, 6 JG lblLine8 LEA ECX, line7 PUSH ECX JMP lblContinuePush lblLine8 : CMP index, 7 JG lblLine9 LEA ECX, line8 PUSH ECX JMP lblContinuePush lblLine9 : CMP index, 8 JG lblLine10 LEA ECX, line9 PUSH ECX JMP lblContinuePush lblLine10 : CMP index, 9 JG lblEmptyLine LEA ECX, line10 PUSH ECX JMP lblContinuePush lblEmptyLine : PUSH 0 JMP lblContinuePush lblContinuePush : MOV EDX, DWORD PTR SS : [EBP - 0x28] MOV EAX, DWORD PTR SS : [EBP - 0x10] MOV ECX, DWORD PTR DS : [EAX + EDX * 4 + 0x27A10] MOV EDX, DWORD PTR SS : [EBP - 0x28] MOV EAX, DWORD PTR SS : [EBP - 0x10] MOV EDX, DWORD PTR DS : [EAX + EDX * 4 + 0x27A10] MOV EAX, DWORD PTR DS : [EDX] CALL DWORD PTR DS : [EAX + 0x80] CMP index, 0 JG lblColorLine2 PUSH line1Color JMP lblContinueFuncCall lblColorLine2 : CMP index, 1 JG lblColorLine3 PUSH line2Color JMP lblContinueFuncCall lblColorLine3 : CMP index, 2 JG lblColorLine4 PUSH line3Color JMP lblContinueFuncCall lblColorLine4 : CMP index, 3 JG lblColorLine5 PUSH line4Color JMP lblContinueFuncCall lblColorLine5 : CMP index, 4 JG lblColorLine6 PUSH line5Color JMP lblContinueFuncCall lblColorLine6 : CMP index, 5 JG lblColorLine7 PUSH line6Color JMP lblContinueFuncCall lblColorLine7 : CMP index, 6 JG lblColorLine8 PUSH line7Color JMP lblContinueFuncCall lblColorLine8 : CMP index, 7 JG lblColorLine9 PUSH line8Color JMP lblContinueFuncCall lblColorLine9 : CMP index, 8 JG lblColorLine10 PUSH line9Color JMP lblContinueFuncCall lblColorLine10 : CMP index, 9 JG lblNoColor PUSH line10Color JMP lblContinueFuncCall lblNoColor : PUSH 0 JMP lblContinueFuncCall lblContinueFuncCall : MOV EDX, DWORD PTR SS : [EBP - 0x28] MOV EAX, DWORD PTR SS : [EBP - 0x10] MOV ECX, DWORD PTR DS : [EAX + EDX * 4 + 0x27A10] MOV EDX, DWORD PTR SS : [EBP - 0x28] MOV EAX, DWORD PTR SS : [EBP - 0x10] MOV EDX, DWORD PTR DS : [EAX + EDX * 4 + 0x27A10] MOV EAX, DWORD PTR DS : [EDX] CALL DWORD PTR DS : [EAX + 0x84] MOV ECX, DWORD PTR SS : [EBP - 0x28] ADD ECX, 0x1 MOV DWORD PTR SS : [EBP - 0x28], ECX JMP LoopEnd lblContinueExec : MOV EDX, DWORD PTR SS : [EBP - 0x8] MOV EAX, DWORD PTR DS : [EDX + 0x670] PUSH 0x41C471 RETN } } Tab Colorido *(int*)(0x4E21DC) = 0xFFFFA500;//Coloque a cor aqui Créditos: Criadores da mystical Ethan atualizei os addrs pra versão que todos usam.
  12. Insere casas decimais nas lojas tanto autovenda quanto de NPCs. Serve para o cliente do LoK, qualquer coisa, ache o address correspondente no seu cliente. Geralmente não muda muita coisa de uma versão pra outra caso não use o mesmo exe. JMP_NEAR(0x041CC7D, NKD_ItemPrice_FormatDecimal_02, 1); JMP_NEAR(0x041CE40, NKD_ItemPrice_FormatDecimal_03, 1); JMP_NEAR(0x0420F4B, NKD_ItemPrice_FormatDecimal); void HKD_ItemPrice_FormatDecimal_AutoTrade(char *gold, int value) { if(value <= 1000) { sprintf(gold, "Item em modo demonstração"); return; } char st[32]; char result[32]; memset(result, 0, sizeof result); itoa(value, st, 10); int len = strlen(st); int sum = ((len - 1) / 3); for(int i = (len - 1), count = 0, index = (len - 1) + sum; i >= 0; i--, count++) { if(!(count % 3) && count != 0) { result[index] = ','; index--; } result[index] = st[i]; count++; index--; } sprintf(gold, "%s Gold", result); } void HKD_ItemPrice_FormatDecimal_02(char *pointer, int gold) { char st[32]; char result[32]; memset(result, 0, sizeof result); itoa(gold, st, 10); int len = strlen(st); int sum = ((len - 1) / 3); for(int i = (len - 1), count = 0, index = (len - 1) + sum; i >= 0; i--, count++) { if(!(count % 3) && count != 0) { result[index] = ','; index--; } result[index] = st[i]; count++; index--; } sprintf(pointer, "Preço: %s", result); } void HKD_ItemPrice_FormatDecimal_03(char *pointer, int gold) { char st[32]; char result[32]; memset(result, 0, sizeof result); itoa(gold, st, 10); int len = strlen(st); int sum = ((len - 1) / 3); for(int i = (len - 1), count = 0, index = (len - 1) + sum; i >= 0; i--, count++) { if(!(count % 3) && count != 0) { result[index] = ','; index--; } result[index] = st[i]; count++; index--; } sprintf(pointer, "Preço de venda: %s", result); } __declspec(naked) void NKD_ItemPrice_FormatDecimal_03() { __asm { MOV EDX,DWORD PTR SS:[EBP - 011D0h] PUSH EDX LEA EAX,DWORD PTR SS:[EBP - 01254h] PUSH EAX CALL HKD_ItemPrice_FormatDecimal_03 ADD ESP, 08h MOV EAX, 0x041CE5B JMP EAX } } __declspec(naked) void NKD_ItemPrice_FormatDecimal_02() { static int retn = 0; __asm { MOV EDX,DWORD PTR SS:[EBP - 01130h] ADD EDX,EAX PUSH EDX LEA EAX,DWORD PTR SS:[EBP - 011B0h] PUSH EAX CALL HKD_ItemPrice_FormatDecimal_02 ADD ESP,08h MOV EAX, 0x041CC9A JMP EAX } } __declspec(naked) void NKD_ItemPrice_FormatDecimal() { __asm { MOV EAX,DWORD PTR SS:[EBP - 08Ch] MOV ECX,DWORD PTR DS:[EAX + 058Ch] PUSH ECX MOV EAX, DWORD PTR SS:[EBP + 08h] PUSH EAX CALL HKD_ItemPrice_FormatDecimal_AutoTrade ADD ESP,08h MOV EAX, 0420FCFh JMP EAX } } Dica: crie uma rotina que faça a formatação do número para evitar a repetição de códigos. Como por exemplo uma função chamada void NumberFormat(char *); Créditos: shepher
  13. O adicional das esferas visualmente são feitos com a função abaixo. JMP_NEAR(0x005387DD, NKD_GetItemAbility_Esfera, 3); __declspec(naked) void NKD_GetItemAbility_Esfera() { static const DWORD dwContinue[2] = {0x005387E5, 0x00538AF0}; __asm { MOV EAX,DWORD PTR SS:[EBP + 0Ch] AND EAX,0FFh PUSH EAX PUSH DWORD PTR SS:[EBP + 08h] CALL HKD_GetItemAbility_Esferas ADD ESP,08h TEST EAX,EAX JE lbl_continue JMP dwContinue + 04h lbl_continue: MOV EAX,DWORD PTR SS:[EBP + 0Ch] AND EAX,0FFh JMP dwContinue } } INT32 HKD_GetItemAbility_Esferas(st_Item *item, INT32 effectId) { if(item->Index == 3980 || item->Index == 3983 || item->Index == 3986) { switch(effectId) { case 2: return 35; case 60: return 7; } } else if(item->Index == 3981 || item->Index == 3984 || item->Index == 3987) { switch(effectId) { case 2: return 210; case 60: return 40; case 54: return 28; } } else if(item->Index == 3993 || item->Index == 3994) { switch(effectId) { case 2: return 750; case 60: return 125; case 54: return 20; } } else if(item->Index >= 3995 && item->Index <= 3996) { switch(effectId) { case 2: return 0; case 60: return 0; } } return 0; } Créditos: shepher
  14. Estou estudando muitas dlls de clients antigos e novos 7556. Aprendendo sobre hooks etc. Uma das coisas que me interessou foi os itens de venda em modo Demonstrativo, segue o hook para 7556: Hookpatch.cpp: ------- hooks.setHook(eHookType::JMP, 0x424F19, hooks.getAddress(&HookPatch::NKD_ItemPriceAutoTrade)); ------- __declspec(naked) void HookPatch::NKD_ItemPriceAutoTrade() { __asm { MOV EAX, DWORD PTR SS : [EBP - 04h] CMP EAX, 03E8h JE lblChangeValue LEA EAX, DWORD PTR SS : [EBP - 0110h] PUSH EAX PUSH 05E563Ch MOV ECX, DWORD PTR SS : [EBP + 08h] PUSH ECX MOV EAX, 05B7E64h CALL EAX ADD ESP, 00Ch JE lblContinue lblChangeValue: LEA EAX, DWORD PTR SS : [EBP - 0110h] PUSH EAX MOV ECX, DWORD PTR DS : [EBP - 04h] PUSH ECX CALL Func::SetItemPriceAutoTrade LEA EAX, DWORD PTR SS : [EBP - 0110h] PUSH EAX PUSH 05E563Ch MOV ECX, DWORD PTR SS : [EBP + 08h] PUSH ECX MOV EAX, 05B7E64h CALL EAX ADD ESP, 00Ch lblContinue: PUSH 0424F31h RETN } } ------------- Functions: .h: static void __stdcall SetItemPriceAutoTrade(int gold, char *pointer); .cpp: void Func::SetItemPriceAutoTrade(int gold, char *pointer) { if (gold <= 1000) { sprintf(pointer, "Valor demonstrativo: %d", gold); } } Para completar o hook, você deve tratar o packet 0x398 e fazer uma checagem do valor do produto, segue exemplo: /* Deve inserir o tratamento do packet no ReadClientMessage da sua source TMSRV. */ switch (header->PacketId) { case 0x398: return AutoTrade::RequestBuyItem(client, (p398h*)header); break; } /* Exemplo de Tratamento do packet */ bool AutoTrade::RequestBuyItem(const uint16_t client, p398h* packet) { if (packet->Price <= 1000) { NativeFunctions::sendClientMessage(client, "Item em modo Demonstrativo."); return false; } } Créditos: WYD 2.0 Shepher (Comecei este hook estudando boa parte no hook "Casas Decimais" que o mesmo postou para 761.)
  15. .cpp int HKD_TabColor(char* msg) { int color = 0xFFCCCCCC; if (!strcmp(msg, "Vendedor")) color = 0xCD6600; return color; } hook patch JMP_NEAR(0x04E21DB, HookNaked::NKD_TabColor); __declspec(naked) void NKD_TabColor() { __asm { MOV EDX, DWORD PTR SS : [EBP - 0x1B4] ADD EDX, 0x100 PUSH EDX CALL HKD_TabColor ADD ESP, 04h PUSH EAX MOV EDX, 0x04E21E0 JMP EDX } }
  16. Quero compartilhar um hook simples que foi atualizado da mystical há muito tempo. Em Geral auto explicativo. [Hidden Content] Créditos dos criadores da mytical eu por att os adrrs, sugestão de hooks criados pra atualizar ? Basta me chamar no discord acesse : Discord
  17. Olá muitos donos de servidores me pedem esse hooks na versão 759(760) decidir postar ! [Hidden Content] Créditos aos criadores SOD ou Nix não sei ao certo, eu por atualizar os addrs se tiver alguém souber os verdadeiros criadores eu coloco os créditos. Porta usada no hook 700 no caso de alguém não entender.
  18. Salve rapaziada Ideia que o fael me deu, fui atrás... Por padrão, na 7.556, os valores do macro, vem 0% hp/mp e 0% montaria. E isso para o player, é um saco, toda vez setar. Então fui atrás no client, quais addrs salvam estes valores. Segue abaixo o hook para setar os valores por padrão do Macro no Client do server de vocês: // Macros Default % Values hooks.setValue(0x60AA00, 50); // Mount Food (0 a 90) hooks.setValue(0x60AA04, 70); // HP/MP (0 a 90) // JMP no carregamento do FieldScene, ele seta a variável da montaria 0 novamente. Isto serve para pular isso, pois ja está setada. hooks.setHook(eHookType::JMP, 0x4404DE, 0x4404E8); Basta colocar no HookPatch.cpp do ClientPatch e sejam felizes com seus players contentes por adicionar esse pequeno detalhe, mas que faz diferença!
  19. Vieram me pedir o hook e como eu tinha atualizado os addrs de quando o shepher tinha postado, e agora estarei postando aqui, créditos totalmente a ele, eu apenas passei pro executável da W2PP, como o código foi perdido, estarei passando novamente. Onde colocar? Na dll de vocês... JMP_NEAR(0x045488D, NKD_KeyPress_NewButton, 1); __declspec(naked) void NKD_KeyPress_NewButton() { __asm { CMP EAX, 01h JE lbl_end XOR EAX, EAX MOV AL, BYTE PTR SS : [EBP + 08h] PUSH EAX CALL HKD_KeyPress_NewButton TEST EAX, EAX JE lbl_xor MOV EAX, 01h JMP lbl_end lbl_xor : XOR EAX, EAX lbl_end : MOV ESP, EBP POP EBP RETN 08h } } INT32 HKD_KeyPress_NewButton(BYTE button) { if (button == 'b' || button == 'B') { // coloque sua função aqui dentro return 1; } // retorne 0 para o WYD continuar manipulando return 0; }
  20. Boa tarde XD Como não considero isso uma novidade, e sim algo que todos os clientes deveriam ter, deixo aqui os endereços para poderem liberar os buff's antigos na versão 7.56 e 7.59, só não adiciono os do 7.54 por que to sem o cliente aqui XD [spoiler=Ver 7.59:] // Variable Address 7.59 = 277C1C0 *(DWORD*)(0x0054A331 + 6) = 0; *(DWORD*)(0x0054A351 + 6) = 0; *(DWORD*)(0x00467651 + 6) = 0; [spoiler=Ver 7.56:] // Variable Address 7.56 = 13FAB68 hooks.setValue(0x0046ECE7 + 6, 0); hooks.setValue(0x00547CA6 + 6, 0); OBS: Agradeçam ao WYD Genesis por terem esquecido de encriptar a .DLL(acontece kkk) e ao SeiTbNao por ter me enviado a descompilação xD OBS2: WYD Genesis, não levem a mal, só queria deixar os créditos. Quando eu tiver um tempinho livre vou tentar fazer o widescreen, daí trago aqui pra gente. Valeu ;)
  21. Este hook 'corrige' a estrutura 0x3BB. Colocando os dois valores como SHORT ao invés de BYTE, tendo um número maior que 255. JMP_NEAR(0x0048A91B, NKD_ProcessClientMessage_03BBh, 1); __declspec(naked) void NKD_ProcessClientMessage_03BBh() { __asm { MOV ECX,DWORD PTR SS:[EBP - 04h] XOR EDX,EDX MOV DX,WORD PTR DS:[ECX + 0Eh] MOV DWORD PTR SS:[EBP - 08Ch],EDX MOV EAX,DWORD PTR SS:[EBP - 04h] XOR ECX,ECX MOV CX,WORD PTR DS:[EAX + 0Ch] MOV DWORD PTR SS:[EBP - 088h],ECX MOV EAX,0048A942h JMP EAX } } Envie com a estrutura: typedef struct{ PacketHeader Header; INT16 Value; INT16 Total; } p3BB; Créditos: shepher
  22. Tem como função adicionar novos ícones de buffs para você utilizar. void AffectIconLimit() { SetValue(0x044ABA3 + 2, (UINT32)g_pAffectName, 4); SetValue(0x0476AC0 + 2, (UINT32)g_pAffectName, 4); SetValue(0x047795C + 2, (UINT32)g_pAffectName, 4); SetValue(0x05499F1 + 2, (UINT32)g_pAffectName, 4); SetValue(0x044AF66 + 3, (UINT32)g_pAffectId, 4); SetValue(0x0477019 + 3, (UINT32)g_pAffectId, 4); SetValue(0x0477631 + 3, (UINT32)g_pAffectId, 4); SetValue(0x047A9FA + 3, (UINT32)g_pAffectId, 4); SetValue(0x04965F7 + 3, (UINT32)g_pAffectId, 4); SetValue(0x0496634 + 3, (UINT32)g_pAffectId, 4); SetValue(0x005499E8, 100, 1); SetValue(0x0047A9B6, 100, 1); SetValue(0x0044AF19, 100, 1); SetValue(0x00476615, 100, 1); } Declare em algum lugar da sua source: INT32 g_pAffectId[] = {-1, 1, 41, 16, 165, 119, 105, 19, 161, 44, 51, 43, 84, 11, 3, 45, 71, 5, 46, 76, 40, 77, 37, 54, 13, 53, 89, 75, 95, 102, 163, 85, 47, 96, 164, 125, 92, 81, 87, 162, 96, 26, 121, 129, 99, 114, 130, 147, 140, 165, 103, 103, 104, 169, 169, 31}; Para novos buffs, você deverá: - Abrir o arquivo UITextureSetList.txt - Encontrar a seção [NewAmulet_sel] - Você deve somar em ItemCount + 1 e adicionar logo ao final desta seção: 132,POSX,POSY,32,32,0,0 A posição seria referente a posição dentro do arquivo NewAmulOn.wyt. - NÃO ALTERAR O SetIndex. - Apos adicionar o novo valor, ao final de g_pAffectId você deverá adicionar o índice (contagem) do que você adicionou acima. Então, conte desde o primeiro item após o ItemCount até o final. Depois, conte o index dentro de g_pAffectId começando de 0 para saber o Index que você deverá enviar como buff para o player. O arquivo EffectString.txt fica com o nome do buff. Caso tenha dúvidas, comente :) Créditos: shepher.
  23. Se você não usa o cliente do LoK, ache os respectivos endereços no seu cliente. JMP_NEAR(0x0045113D, NKD_Macro_NewPotions_HP); JMP_NEAR(0x00451643, NKD_Macro_NewPotions_MP); __declspec(naked) void NKD_Macro_NewPotions_HP() { __asm { CMP DWORD PTR SS:[EBP - 018h],00h JE lbl_continueLoop PUSH 01h MOV ECX,DWORD PTR SS:[EBP - 018h] MOV EDX,DWORD PTR DS:[ECX + 0670h] PUSH EDX CALL HKD_Macro_NewPotions ADD ESP,08h TEST EAX,EAX JE lbl_continueLoop MOV EAX,0045112Bh JMP EAX lbl_continueLoop: MOV EAX, 0045102Bh JMP EAX } } __declspec(naked) void NKD_Macro_NewPotions_MP() { __asm { CMP DWORD PTR SS:[EBP - 018h],00h JE lbl_continueLoop PUSH 02h MOV ECX,DWORD PTR SS:[EBP - 018h] MOV EDX,DWORD PTR DS:[ECX + 0670h] PUSH EDX CALL HKD_Macro_NewPotions ADD ESP,08h TEST EAX,EAX JE lbl_continueLoop MOV EAX,00451631h JMP EAX lbl_continueLoop: MOV EAX, 0045155Fh JMP EAX } } INT32 HKD_Macro_NewPotions(st_Item *item, INT32 type) { if(type == 1) // pots de hp { } else if(type == 2) // pots mp { if(item->Index == 3431) return 1; } return 0; } Créditos: shepher
×
×
  • Create New...