Pesquisar na Comunidade
Mostrando resultados para as tags ''7.56+''.
Encontrado 2 registros
-
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
- 27 respostas
-
- 27
-
-
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
- 2 respostas
-
- 13
-
