this is credits to Nubz (idk if he has a username here) but this is what i'm using and its so much easier than the traditional
timers.h
Code:
/*========Nubzgetskills -> Disponibilizou a base========*/
/*========Solify -> Base Original========*/
/*========Gellin -> Algumas funções========*/
/*========Chaos Magician -> Atualizou e disponibilizou a base========*/
#ifndef _TIMERS_H_
#define _TIMERS_H_
#pragma once
#pragma comment(lib, "winmm.lib")
#include <MMsystem.h>
class cTimer
{
public :
cTimer(VOID)
{
dwStop = 0;
}
~cTimer(VOID)
{
}
VOID Start(FLOAT fSec)
{
dwStop = (DWORD)(fSec * 1) + timeGetTime();
}
VOID Stop(VOID)
{
dwStop = 0;
}
FLOAT TimeLeft(VOID)
{
if(Running())
return (((FLOAT)(dwStop - timeGetTime()) / 1));
return 0;
}
bool Running(VOID)
{
return(dwStop > timeGetTime());
}
protected :
DWORD dwStop;
};
#endif
top of hack
Code:
#include "Timers.h"
cTimer SpammerTimer;
VOID
Code:
VOID GetUnicodeBytesFromChar(CHAR curChar, BYTE *bOut)
{
if(!bOut)
return;
switch(curChar)
{
case ' ': bOut[0] = 0x80; bOut[1] = 0x00; break;
case '0': bOut[0] = 0xC0; bOut[1] = 0x00; break;
case '1': bOut[0] = 0xC4; bOut[1] = 0x00; break;
case '2': bOut[0] = 0xC8; bOut[1] = 0x00; break;
case '3': bOut[0] = 0xCC; bOut[1] = 0x00; break;
case '4': bOut[0] = 0xD0; bOut[1] = 0x00; break;
case '5': bOut[0] = 0xD4; bOut[1] = 0x00; break;
case '6': bOut[0] = 0xD8; bOut[1] = 0x00; break;
case '7': bOut[0] = 0xDC; bOut[1] = 0x00; break;
case '8': bOut[0] = 0xE0; bOut[1] = 0x00; break;
case '9': bOut[0] = 0xE4; bOut[1] = 0x00; break;
case 'A': bOut[0] = 0x04; bOut[1] = 0x01; break;
case 'B': bOut[0] = 0x08; bOut[1] = 0x01; break;
case 'C': bOut[0] = 0x0C; bOut[1] = 0x01; break;
case 'D': bOut[0] = 0x10; bOut[1] = 0x01; break;
case 'E': bOut[0] = 0x14; bOut[1] = 0x01; break;
case 'F': bOut[0] = 0x18; bOut[1] = 0x01; break;
case 'G': bOut[0] = 0x1C; bOut[1] = 0x01; break;
case 'H': bOut[0] = 0x20; bOut[1] = 0x01; break;
case 'I': bOut[0] = 0x24; bOut[1] = 0x01; break;
case 'J': bOut[0] = 0x28; bOut[1] = 0x01; break;
case 'K': bOut[0] = 0x2C; bOut[1] = 0x01; break;
case 'L': bOut[0] = 0x30; bOut[1] = 0x01; break;
case 'M': bOut[0] = 0x34; bOut[1] = 0x01; break;
case 'N': bOut[0] = 0x38; bOut[1] = 0x01; break;
case 'O': bOut[0] = 0x3C; bOut[1] = 0x01; break;
case 'P': bOut[0] = 0x40; bOut[1] = 0x01; break;
case 'Q': bOut[0] = 0x44; bOut[1] = 0x01; break;
case 'R': bOut[0] = 0x48; bOut[1] = 0x01; break;
case 'S': bOut[0] = 0x4C; bOut[1] = 0x01; break;
case 'T': bOut[0] = 0x50; bOut[1] = 0x01; break;
case 'U': bOut[0] = 0x54; bOut[1] = 0x01; break;
case 'V': bOut[0] = 0x58; bOut[1] = 0x01; break;
case 'W': bOut[0] = 0x5C; bOut[1] = 0x01; break;
case 'X': bOut[0] = 0x60; bOut[1] = 0x01; break;
case 'Y': bOut[0] = 0x64; bOut[1] = 0x01; break;
case 'Z': bOut[0] = 0x68; bOut[1] = 0x01; break;
case 'a': bOut[0] = 0x84; bOut[1] = 0x01; break;
case 'b': bOut[0] = 0x88; bOut[1] = 0x01; break;
case 'c': bOut[0] = 0x8C; bOut[1] = 0x01; break;
case 'd': bOut[0] = 0x90; bOut[1] = 0x01; break;
case 'e': bOut[0] = 0x94; bOut[1] = 0x01; break;
case 'f': bOut[0] = 0x98; bOut[1] = 0x01; break;
case 'g': bOut[0] = 0x9C; bOut[1] = 0x01; break;
case 'h': bOut[0] = 0xA0; bOut[1] = 0x01; break;
case 'i': bOut[0] = 0xA4; bOut[1] = 0x01; break;
case 'j': bOut[0] = 0xA8; bOut[1] = 0x01; break;
case 'k': bOut[0] = 0xAC; bOut[1] = 0x01; break;
case 'l': bOut[0] = 0xB0; bOut[1] = 0x01; break;
case 'm': bOut[0] = 0xB4; bOut[1] = 0x01; break;
case 'n': bOut[0] = 0xB8; bOut[1] = 0x01; break;
case 'o': bOut[0] = 0xBC; bOut[1] = 0x01; break;
case 'p': bOut[0] = 0xC0; bOut[1] = 0x01; break;
case 'q': bOut[0] = 0xC4; bOut[1] = 0x01; break;
case 'r': bOut[0] = 0xC8; bOut[1] = 0x01; break;
case 's': bOut[0] = 0xCC; bOut[1] = 0x01; break;
case 't': bOut[0] = 0xD0; bOut[1] = 0x01; break;
case 'u': bOut[0] = 0xD4; bOut[1] = 0x01; break;
case 'v': bOut[0] = 0xD8; bOut[1] = 0x01; break;
case 'w': bOut[0] = 0xDC; bOut[1] = 0x01; break;
case 'x': bOut[0] = 0xE0; bOut[1] = 0x01; break;
case 'y': bOut[0] = 0xE4; bOut[1] = 0x01; break;
case 'z': bOut[0] = 0xE8; bOut[1] = 0x01; break;
case '}': bOut[0] = 0xF4; bOut[1] = 0x01; break;
case '²': bOut[0] = 0xC8; bOut[1] = 0x02; break;
case '³': bOut[0] = 0xCC; bOut[1] = 0x02; break;
case '{': bOut[0] = 0xEC; bOut[1] = 0x01; break;
case '[': bOut[0] = 0x6C; bOut[1] = 0x01; break;
case ']': bOut[0] = 0x74; bOut[1] = 0x01; break;
case '~': bOut[0] = 0xF8; bOut[1] = 0x01; break;
case '\\': bOut[0]= 0x70; bOut[1] = 0x01; break;
case '|': bOut[0] = 0xF0; bOut[1] = 0x01; break;
case 'µ': bOut[0] = 0xD4; bOut[1] = 0x02; break;
case '@': bOut[0] = 0x00; bOut[1] = 0x01; break;
case '€': bOut[0] = 0x00; bOut[1] = 0x02; break;
case '=': bOut[0] = 0xF4; bOut[1] = 0x00; break;
case '!': bOut[0] = 0x84; bOut[1] = 0x00; break;
case '"': bOut[0] = 0x88; bOut[1] = 0x00; break;
case '§': bOut[0] = 0x9C; bOut[1] = 0x02; break;
case '$': bOut[0] = 0x90; bOut[1] = 0x00; break;
case '%': bOut[0] = 0x94; bOut[1] = 0x00; break;
case '&': bOut[0] = 0x98; bOut[1] = 0x00; break;
case '/': bOut[0] = 0xBC; bOut[1] = 0x00; break;
case '(': bOut[0] = 0xA0; bOut[1] = 0x00; break;
case ')': bOut[0] = 0xA4; bOut[1] = 0x00; break;
case '*': bOut[0] = 0xA8; bOut[1] = 0x00; break;
case ';': bOut[0] = 0xEC; bOut[1] = 0x00; break;
case '_': bOut[0] = 0x7C; bOut[1] = 0x01; break;
case ':': bOut[0] = 0xE8; bOut[1] = 0x00; break;
case '\'': bOut[0]= 0x9C; bOut[1] = 0x00; break;
case '?': bOut[0] = 0xFC; bOut[1] = 0x00; break;
case '°': bOut[0] = 0xC0; bOut[1] = 0x02; break;
case '`': bOut[0] = 0x80; bOut[1] = 0x01; break;
case '>': bOut[0] = 0xF8; bOut[1] = 0x00; break;
case '^': bOut[0] = 0x78; bOut[1] = 0x01; break;
case '+': bOut[0] = 0xAC; bOut[1] = 0x00; break;
case '-': bOut[0] = 0xB4; bOut[1] = 0x00; break;
case ',': bOut[0] = 0xB0; bOut[1] = 0x00; break;
case '.': bOut[0] = 0xB8; bOut[1] = 0x00; break;
case '#': bOut[0] = 0x8C; bOut[1] = 0x00; break;
case 'ß': bOut[0] = 0x7C; bOut[1] = 0x03; break;
case '<': bOut[0] = 0xF0; bOut[1] = 0x00; break;
default: bOut[0] = 0xFC; bOut[1] = 0x00; break;
}
}
VOID SpammerChat(CHAR *szTitle, CHAR *szMessage)
{
if(!SpammerTimer.Running())
{
SpammerTimer.Start(50.0f);
INT iTitleLen = strlen(szTitle);
INT iMessageLen = strlen(szMessage);
CAutoMessage msg;
msg.Writeuint8(104);
for(INT i = 0; i < iMessageLen; i++)
{
BYTE bChar[2] = {0};
GetUnicodeBytesFromChar(szMessage[i], bChar);
msg.Writeuint8((BYTE)bChar[0]);
msg.Writeuint8((BYTE)bChar[1]);
}
msg.Writeuint16(0);
for(INT i = 0; i < iTitleLen; i++)
{
BYTE bChar[2] = {0};
GetUnicodeBytesFromChar(szTitle[i], bChar);
msg.Writeuint8((BYTE)bChar[0]);
msg.Writeuint8((BYTE)bChar[1]);
}
msg.Writeuint16(0);
msg.Writeint32(0);
oSendToServer(msg.Read(), (1 << 7));
}
}
how to use
Code:
if(opt.hacks.Spammer)
{
g_LTClient = *(CLTClient **)ADDR_LTCLIENT;
g_CommonLT = g_LTClient->Common();
oSendToServer = (tSendToServer)ADDR_S2S;
{
if(ValidPointer(g_LTClient))
{
SpammerChat("[GM]KaptinBoxxi","MPGH Rox bruh.");
} else {
g_LTClient = *(CLTClient **)ADDR_LTCLIENT;
g_CommonLT = g_LTClient->Common();
return;
}
}
}