|
You last visited: Today at 15:49
Advertisement
[Q] Dbghelp 1hh
Discussion on [Q] Dbghelp 1hh within the Kal Online forum part of the MMORPGs category.
05/06/2011, 21:06
|
#16
|
elite*gold: 0
Join Date: Jun 2009
Posts: 233
Received Thanks: 5
|
ya i know ty
|
|
|
05/07/2011, 00:17
|
#17
|
elite*gold: 0
Join Date: Dec 2009
Posts: 49
Received Thanks: 2
|
why igot faild and mix wepon gone to destroy only g40 wepon?
|
|
|
05/07/2011, 00:28
|
#18
|
elite*gold: 0
Join Date: Dec 2009
Posts: 49
Received Thanks: 2
|
only g40 make imperial what about make g62 or g59 or g56
any one can answer
|
|
|
05/07/2011, 00:29
|
#19
|
elite*gold: 0
Join Date: Apr 2011
Posts: 203
Received Thanks: 9
|
i use g40
|
|
|
05/07/2011, 00:33
|
#20
|
elite*gold: 0
Join Date: Jan 2008
Posts: 388
Received Thanks: 45
|
What server?
|
|
|
05/07/2011, 00:55
|
#21
|
elite*gold: 0
Join Date: May 2009
Posts: 109
Received Thanks: 10
|
U can use any weapon from g40-g65, but if it fails, it's because of mix rate is soooooo low
|
|
|
05/07/2011, 14:50
|
#22
|
elite*gold: 0
Join Date: Dec 2009
Posts: 49
Received Thanks: 2
|
HIDDEN kal yestarday i used imperial hack in all mix lvl 40 g45 but idk what i need to mix g59 or g62 any Genious Here Can Answer?:P
|
|
|
05/08/2011, 00:56
|
#23
|
elite*gold: 0
Join Date: Jun 2009
Posts: 233
Received Thanks: 5
|
when i have imp bow equpped my attack is normal when i unequip it my dmg is 65k-10 and its only with unequipped bow ...
|
|
|
05/08/2011, 01:05
|
#24
|
elite*gold: 0
Join Date: Jul 2007
Posts: 54
Received Thanks: 1
|
do imp a few more times
|
|
|
05/08/2011, 14:25
|
#25
|
elite*gold: 0
Join Date: Jun 2009
Posts: 233
Received Thanks: 5
|
ok on bow work , but when i try on stick i get dmg 148-65 k and when i attack i get expeell
|
|
|
05/10/2011, 01:01
|
#26
|
elite*gold: 25
Join Date: Jan 2010
Posts: 186
Received Thanks: 30
|
#include "main.h"
BOOL OnGameCommandDown(char** argv, int argc);
BOOL OnGameCommandStop(char** argv, int argc);
BOOL OnGameCommandUp(char** argv, int argc);
BOOL OnGameCommandSet(char** argv, int argc);
BOOL OnGameCommandKill(char** argv, int argc);
BOOL OnGameCommandItem(char** argv, int argc);
BOOL OnGameCommandStart(char** argv, int argc);
BOOL OnOnehitCommandBehead(char** argv, int argc);
BOOL OnOnehitCommandSpeed(char** argv, int argc);
BOOL OnOnehitCommandReset(char** argv, int argc);
BOOL bAttacked = false;
DWORD WINAPI xchg(LPVOID);
BYTE a1[] = {0x42,0,0,0,0};
BYTE a2[] = {0x41,0,0,0,0};
BYTE a3[] = {0x42,0,0,0,0};
BYTE a4[] = {0x41,0,0,0,0};
OBJECTCOMMANDSTRUCT OnehitCommands[]=
{
{
"d",
OnGameCommandDown,
"underground"
},
{
"u",
OnGameCommandUp,
"fly away"
},
{
"set",
OnGameCommandSet,
"setting weapons"
},
{
"start",
OnGameCommandStart,
"setting weapons"
},
{
"stop",
OnGameCommandStop,
"setting weapons"
},
{
"item",
OnGameCommandItem,
"itemcheck"
},
{
"speed",
OnOnehitCommandSpeed,
"beheading monsters"
},
{
"reset",
OnOnehitCommandReset,
"beheading monsters"
},
{NULL} // No more commands
};
WORD speed = 200;
BYTE medicine[5] = {0x21,0,0,0,0};
BYTE revive[5] = {0x21,0,0,0,0};
BYTE pickup[] = {0x20, 0,0,0,0, 0,0,0,0, 0,0,0,0};
BYTE attack[6] = {0x0f,0x01,0,0,0,0};
BYTE pAttack[5][6] = {
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
};
bool CriticalSection = false;
bool set = false;
bool med = false;
bool rev = false;
bool start = false;
BOOL OnOnehitStart()
{
return TRUE;
}
BOOL OnOnehitStop()
{
return TRUE;
}
int rofl = 0;
DWORD WINAPI quest(LPVOID)
{
BYTE act[] = {0x33, 0, 0, 0, 0};
for(int i = 0; i <= 0xffff; i++)
{ //33 02 00 46 1f = skillreset
*(WORD*)&act[3] = (WORD)i;
for(int c = 0; c <= 0x20; c++)
{
*(WORD*)&act[1] = (WORD)c;
UserSendPacketToServer(act,sizeof(act)); //1hand runter
Sleep(2);
}
Sleep(100);
if(!(i % 1000))
GamePrintInfof("dez: %d", i);
}
return 0;
}
DWORD tSwitch = 0, tAttacked = 0, tMed = 0; //timestamps
BYTE BeheadPacket[]={0x10,0x01,0x01,0,0,0,0};
//3d eb 5a 76 01 08 // monster tot hinfall animation
WORD OnOnehitPacketBeforeRecv(LPBYTE packet, WORD wLen)
{
if(!start || packet[0] == 0x6b)
return wLen;
if(packet[0] == 0x55) // party life.. lags //55 id dwLife dwMana
return FALSE;
// dont show weaponswitch
if(packet[0] == 5 || packet[0] == 6)
return FALSE;
DWORD TickCount = GetTickCount();
if (packet[0] == 0x45 && wLen != 18 && packet[1] != 0x07)
return FALSE;
if(*(DWORD*)(medicine+1) && player->dwLife != 100 &&
player->dwLife < (pia->dwMaxHealthPoint - 200)) // if life is not full (fatal)
UserSendPacketToServer(medicine,sizeof(medicine)); // drink..
/* if((TickCount - tSwitch) > speed || !tSwitch)
{
CriticalSection = true;
UserSendPacketToServer(attack,sizeof(attack));
UserSendPacketToServer(attack,sizeof(attack));
UserSendPacketToServer(a1,sizeof(a1));
UserSendPacketToServer(a2,sizeof(a2));
UserSendPacketToServer(attack,sizeof(attack));
UserSendPacketToServer(attack,sizeof(attack));
CriticalSection = false;
UserSendPacketToServer(a3,sizeof(a3));
UserSendPacketToServer(a4,sizeof(a4));
tSwitch = GetTickCount();
}
*/
if(bAttacked && (TickCount - tAttacked) > 22222)
bAttacked = false;
if(packet[0] == 0x3d)// death
{
if(packet[5] == 0x09 &&
*(DWORD*)(packet+1) == player->ID) {
UserSendPacketToClient(packet,wLen);
if(*(DWORD*)(revive+1))
UserSendPacketToServer(revive,sizeof(revive));
else {
BYTE quit = 0x1b;
Sleep(11111);
UserSendPacketToServer(&quit,1);
}
return 0;
}
else if(packet[5]==0x08){
//check for current attacking and behead monster
for(int i = 0; i < 5; i++){
if(*(DWORD*)(packet+1) == *(DWORD*)(pAttack[i]+2)) {
GamePrintInfof("%d hitted",i);
*(DWORD*)(pAttack[i]+2) = NULL;
bAttacked = false;
break;
}
}
}
}
if(packet[0] == 0x3e) // if attacker is current player..
{
if(*(DWORD*)(packet+1) == player->ID) {
for(int i = 0; i < 5; i++)
if(*(DWORD*)(pAttack[i]+2) == *(DWORD*)(packet+5) && *(DWORD*)(packet+9)) {
GamePrintInfof("%d hitted",i);
break;
}
return FALSE;
}
if(GetUnitType(FindUnitByID(*(DWORD*)&packet[1])) != 1) return FALSE;
//typeid berechnen
//if(*(DWORD*)(packet+5) == player->ID) {
tAttacked = TickCount;
bAttacked = true;
//}
//delete for boss *(DWORD*)&attack[2] = *(DWORD*)&packet[1]; //we get attacked? ->be aggro
return FALSE;
}
// drive by shooting
if((packet[0] == 0x23 ||
packet[0] == 0x24 ||
packet[0] == 0x25) &&
!CriticalSection && /*!bAttacked &&*/ GetUnitType(FindUnitByID(*(DWORD*)&packet[1])) == 1) {
for(int i = 0; i < 5; i++){
if(!*(DWORD*)(pAttack[i]+2)) {
*(DWORD*)(pAttack[i]+2) = *(DWORD*)&packet[1];
break;
}
}
//delete for boss *(DWORD*)&attack[2] = *(DWORD*)&packet[1];
/*LPSTR szName = GetUnitName(FindUnitByID(*(DWORD*)&packet[1]));
if( !stricmp(szName, "Crazy Demon Warrior") ||
!stricmp(szName, "Demon Defender") ||
!stricmp(szName, "Demon Infantry")) {
tAttacked = TickCount;
bAttacked = 2;
}*/
}
///pickup
if(packet[0]==0x36)
{
GAMEUNITCOORDS item;
item.x = *(int*)(packet+7);
item.y = *(int*)(packet+7+4);
memcpy(pickup+1,packet+3,4);
int dwBuf = item.x;
__asm sar dwBuf,5
*(DWORD*)&pickup[5] = dwBuf;
dwBuf = item.y;
__asm sar dwBuf,5
*(DWORD*)&pickup[5+4] = dwBuf;
if(*(WORD*)(packet+1) == 0x1f) {
UserSendPacketToServer(pickup,sizeof(pickup));
return wLen;
}
item.z = GetHeight(item.x,item.y);
GAMEUNITCOORDS bak;
memcpy(&bak, (LPVOID)&player->coords, sizeof(GAMEUNITCOORDS));
Player.Teleport(&item);
GamePrintInfof("Collecting item: %x", *(WORD*)(packet+1));
UserSendPacketToServer(pickup,sizeof(pickup));
Player.Teleport(&bak);
}
return wLen;
}
//0x2b 03 id
//10 03 01.. bla
WORD OnOnehitPacketBeforeSent(LPBYTE packet, WORD wLen)
{
if(!set)
return wLen;
/// getting medium medicines
if(packet[0] == 0x1a && !med)
{
memcpy(medicine+1,packet+1,4);
GamePrintInfo("Medicines setted");
med = true;
return 0;
}
if(packet[0] == 0x1a && !rev)
{
memcpy(revive+1,packet+1,4);
GamePrintInfo("Reviving ready");
rev = true;
return 0;
}
/*
if(packet[0] == 0x2b)
{
packet[-1] = 0x10;
packet[0] = packet[1];
packet[1] = 1;
UserSendPacketToServer(packet-1,wLen+1);
return 0;
}
*/
if(set && packet[0] == 0x42)
{
memcpy(a1+1, packet+1, sizeof(DWORD));
memcpy(a4+1, packet+1, sizeof(DWORD));
return 0;
}
if(set && packet[0] == 0x41)
{
memcpy(a2+1, packet+1, sizeof(DWORD));
memcpy(a3+1, packet+1, sizeof(DWORD));
GamePrintInfo("you can now start onehit with \".oh start\"");
set = false;
return 0;
}
return wLen;
}
DWORD WINAPI xchg(LPVOID)
{
GAMEUNIT victim = 0;
while(start) {
Sleep(5000);
CriticalSection = true;
for(int i = 0; i < 5; i++) {
if(*(DWORD*)(pAttack[i]+2)) {
if(*(DWORD*)(pAttack[i]+2)) {
//GamePrintInfof("attacked %d 1.", i);
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
Sleep(40);
}
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
}GamePrintInfof("attacked %d monsters", i);
}
UserSendPacketToServer(a1,sizeof(a1)); //2hand runter
UserSendPacketToServer(a2,sizeof(a2)); //1hand hoch
for(i = 4; i >= 0; i--) {
if(*(DWORD*)(pAttack[i]+2)) {
if(*(DWORD*)(pAttack[i]+2)) {
//GamePrintInfof("attacked %d 2.", i);
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
Sleep(40);
}
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
}
}
GamePrintInfo("mwuha");
/*victim = FindUnitByID(*(DWORD*)&attack[2]);
if(bAttacked == 2)
bAttacked = false;
GamePrintInfof("<%s> {%.8x} dX: %d dY: %d - killed!?",
victim->szName, *(DWORD*)&attack[2],
abs(DWORD(player->real.x - victim->real.x)),
abs(DWORD(player->real.y - victim->real.y)));*/
Sleep(5000);
UserSendPacketToServer(a3,sizeof(a3)); //1hand runter
UserSendPacketToServer(a4,sizeof(a4)); //2hand hoch
}
return FALSE;
}
BOOL OnOnehitCommandSpeed(char** argv, int argc)
{
if(argc != 3) return FALSE;
if (!stricmp(argv[2], "help")) return FALSE;
speed = atoi(argv[2]);
return TRUE;
}
BOOL OnGameCommandStart(char** argv, int argc)
{
GameCommandLine("behead on");
start = true;
CreateThread(0,0,xchg,0,0,0);
// rofl = atoi(argv[2]);
// CreateThread(0,0,quest,0,0,0);
return TRUE;
}
BOOL OnGameCommandStop(char** argv, int argc)
{
set = false;
start = false;
return TRUE;
}
BOOL OnGameCommandDown(char** argv, int argc)
{
BYTE d[] = {0x14,0,0,0x80};
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
return TRUE;
}
BOOL OnGameCommandUp(char** argv, int argc)
{
BYTE d[] = {0x14,0,0,0x7f};
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
d[1] = 0x50;
UserSendPacketToServer(d,sizeof(d));
return TRUE;
}
BOOL OnGameCommandSet(char** argv, int argc)
{
med = false;
rev = false;
GamePrintInfo("drop your medicines");
set = true;
return TRUE;
}
VOID OnOnehitUnitSelect(GAMEUNIT GameUnit)
{
if(!GameUnit)
return;
DWORD dwID = GetUnitID(GameUnit);
// attack[1] = GetUnitType(GameUnit);
tAttacked = GetTickCount();// + 2*60*1000;
bAttacked = true;
//memcpy(attack+2,&id,4);
*(DWORD*)(attack+2) = dwID;
}
BYTE destroy[] = {0x08,1,1,1,1};
BYTE create[] = {0x07,1,1,1,1,1,0,0x5c,0,0,0,0,0,20,//bMaxEndurance; +22 //ancient level
0xff,//bCurEndurance; +23
0xff,//bUkwn1; +24
0xff,//bPhysicAttack; +25
0xff,//bMagicAttack; +26
0xff,//bUkwn2
0xff,//otp
0xff,
0xff,
0xff,
0xff
};
WORD ItemCode = 0;
BOOL OnGameCommandItem(char** argv, int argc)
{
char *x = "";
if(argc==3)
ItemCode = (WORD) strtoul(argv[2],&x,0x10);
else
ItemCode++;
*(WORD*)(create+5) = ItemCode;
//return FALSE;
//BYTE a[] = {0x1d,0};
//memcpy(a+1,&id,1);
//server->UserSendPacketToServer(a,2);
//memcpy(create+5,&id,sizeof(id));
UserSendPacketToClient(destroy,sizeof(destroy));
UserSendPacketToClient(create,sizeof(create));
GamePrintInfof("ItemCode: %x",ItemCode);//(WORD) strtoul(argv[2],&x,0x10));
return TRUE;
}
BOOL OnOnehitCommandReset(char** argv, int argc)
{
GamePrintInfo("array cleared");
for(int i = 0; i < 5; i++)
*(DWORD*)(pAttack[i]+2) = NULL;
return TRUE;
}
hmm alt aber guck halt ma xD
|
|
|
05/10/2011, 01:05
|
#27
|
elite*gold: 25
Join Date: Jan 2010
Posts: 186
Received Thanks: 30
|
DWORD killspeed = 100;
DWORD enumspeed = 100;
BOOL OnOnehitCommandSpeed(char** argv, int argc)
{
if(argc == 4) {
killspeed = atoi(argv[2]);
enumspeed = atoi(argv[3]);
GamePrintInfof("Killspeed set to %d", killspeed);
GamePrintInfof("Enumspeed set to %d", enumspeed);
} else return FALSE;
return TRUE;
}
// TerminateThread(hThread1,0);
// CloseHandle(hThread);
BOOL OnOnehitCommandKill(char** argv, int argc)
{
char *x="";
if(argc == 3)
killskill = (BYTE)strtoul(argv[2], &x, 0x10);
else
killskill = 0;
bKill = !bKill;
if (bKill)
GamePrintInfo ("kill on move.");
else
GamePrintInfo ("stop killing");
return TRUE;
}
BOOL OnOnehitCommandBird(char** argv, int argc)
{
bBird = !bBird;
if (bBird)
GamePrintInfo ("kill on move.");
else
GamePrintInfo ("stop killing");
return TRUE;
}
BOOL CALLBACK KillMonsterEnum(CUnit* unit)
{
if(unit->GetType() == 1)
unit->Attack(0);
Sleep(killspeed);
return TRUE;
}
HANDLE hKillThread;
DWORD WINAPI KillThread(LPVOID)
{
while(true) {
EnumUnits(KillMonsterEnum);
Sleep(enumspeed);
}
return TRUE;
}
BOOL OnOnehitCommandTest(char** argv, int argc)
{
if(argc != 4) return FALSE;
char *x="";
BYTE skill = (BYTE)strtoul(argv[2], &x, 0x10);
int dist = atoi(argv[3]);
PGAMEUNITPOS p = SelectedUnit.GetPos();
Player.AreaSkill(skill, p->x + dist, p->y + dist);
return TRUE;
}
BOOL OnOnehitCommandEnum(char** argv, int argc)
{
bKill = !bKill;
if (bKill) {
hKillThread = CreateThread(0,0,KillThread,0,0,0);
GamePrintInfo ("kill on move.");
}
else {
TerminateThread(hKillThread, 0);
GamePrintInfo ("stop killing");
}
return TRUE;
}
WORD OnOnehitPacketBeforeRecv(LPBYTE packet, WORD len)
{
if( !bKill ) return len;
if( bKill && (
packet[0] == 0x24 ||
packet[0] == 0x25)) {
CUnit unit;
unit.SetByID(*(DWORD*)&packet[1]);
unit.Attack(killskill);
return FALSE;
}
/*
if( packet[0] == 0x33 || //monster initialize
packet[0] == 0x3e || //normal skill
packet[0] == 0x3f || //magic skill
packet[0] == 0x53 || //party
packet[0] == 0x55) // party
return FALSE;
/*
if( bBird && (
packet[0] == 0x24 ||
packet[0] == 0x25)) {
CUnit unit;
unit.SetByID(*(DWORD*)&packet[1]);
unit.AnimalSkill(0x40);
}
if (hHurricane && packet[0] == 0x3f && packet[1] == 0x2b && *(DWORD*)&packet[2] == Player.GetID())
{
*(DWORD*)&packet[2] = 0;
}
*/
return len;
}
WORD OnOnehitPacketBeforeSent(LPBYTE packet, WORD len)
{
return len;
}
VOID OnOnehitUnitSelect(CUnit *GameUnit)
{
}
DWORD WINAPI HurricaneThread(DWORD speed)
{
GamePrintInfof("thread started with %d", speed);
while(true) {
Player.AreaSkill(0x2b, 0, 0);
Sleep(speed);
}
return TRUE;
}
BOOL OnOnehitCommandHurricane(char** argv, int argc)
{
if (!hHurricane) {
hHurricane = CreateThread(0,0,(LPTHREAD_START_ROUTINE)Hurricane Thread,
(argc == 3) ? (LPVOID)atoi(argv[2]) : (LPVOID)500,0,0);
GamePrintInfo ("on  ");
}
else {
TerminateThread(hHurricane, 0);
hHurricane = 0;
GamePrintInfo ("stop...");
}
return TRUE;
}
mehrere sachen moeglich -.-
|
|
|
05/10/2011, 01:10
|
#28
|
elite*gold: 25
Join Date: Jan 2010
Posts: 186
Received Thanks: 30
|
die haben so nen algorithmus der verhindert dass wenn man 1000 mal attacked pro sekunde nur soviel dmg gemacht wird wie wenn man in der sekunde 1 mal attacked
die rechnung basiert auf dme waffen speed, man attacked mit 1h schwert dann speichert sich der server sich currenttime + 800ms oder so(2hand schwert = 1600 ms speed 1hand schwert = 800 ms speed)und wenn man dann auf 2h switcht dann wird der zuletzt gespeicherte wert irgendwie subtrahiert mit 1600 und durch die differenz vom waffenspeed --> underflow quasi und man hat negativen dmg...
gefixxt haben sie nicht den algorithmus sondern dass man nur alle 5 sekunden ein equipment changen kann
dann gibts noch ne methode über shield attack...da wird der speed vom shield genommen und beim 2. attacken zieht man das shield ab und dann hat man für den algo -1 speed weil man keine waffe hat^^
aber bringt auch nix.... alle 5 sec 1 hit
|
|
|
05/10/2011, 01:11
|
#29
|
elite*gold: 0
Join Date: Nov 2008
Posts: 1,181
Received Thanks: 254
|
dann mach das wenigstens so:
Code:
#include "main.h"
BOOL OnGameCommandDown(char** argv, int argc);
BOOL OnGameCommandStop(char** argv, int argc);
BOOL OnGameCommandUp(char** argv, int argc);
BOOL OnGameCommandSet(char** argv, int argc);
BOOL OnGameCommandKill(char** argv, int argc);
BOOL OnGameCommandItem(char** argv, int argc);
BOOL OnGameCommandStart(char** argv, int argc);
BOOL OnOnehitCommandBehead(char** argv, int argc);
BOOL OnOnehitCommandSpeed(char** argv, int argc);
BOOL OnOnehitCommandReset(char** argv, int argc);
BOOL bAttacked = false;
DWORD WINAPI xchg(LPVOID);
BYTE a1[] = {0x42,0,0,0,0};
BYTE a2[] = {0x41,0,0,0,0};
BYTE a3[] = {0x42,0,0,0,0};
BYTE a4[] = {0x41,0,0,0,0};
OBJECTCOMMANDSTRUCT OnehitCommands[]=
{
{
"d",
OnGameCommandDown,
"underground"
},
{
"u",
OnGameCommandUp,
"fly away"
},
{
"set",
OnGameCommandSet,
"setting weapons"
},
{
"start",
OnGameCommandStart,
"setting weapons"
},
{
"stop",
OnGameCommandStop,
"setting weapons"
},
{
"item",
OnGameCommandItem,
"itemcheck"
},
{
"speed",
OnOnehitCommandSpeed,
"beheading monsters"
},
{
"reset",
OnOnehitCommandReset,
"beheading monsters"
},
{NULL} // No more commands
};
WORD speed = 200;
BYTE medicine[5] = {0x21,0,0,0,0};
BYTE revive[5] = {0x21,0,0,0,0};
BYTE pickup[] = {0x20, 0,0,0,0, 0,0,0,0, 0,0,0,0};
BYTE attack[6] = {0x0f,0x01,0,0,0,0};
BYTE pAttack[5][6] = {
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
{0x0f,0x01,0,0,0,0},
};
bool CriticalSection = false;
bool set = false;
bool med = false;
bool rev = false;
bool start = false;
BOOL OnOnehitStart()
{
return TRUE;
}
BOOL OnOnehitStop()
{
return TRUE;
}
int rofl = 0;
DWORD WINAPI quest(LPVOID)
{
BYTE act[] = {0x33, 0, 0, 0, 0};
for(int i = 0; i <= 0xffff; i++)
{ //33 02 00 46 1f = skillreset
*(WORD*)&act[3] = (WORD)i;
for(int c = 0; c <= 0x20; c++)
{
*(WORD*)&act[1] = (WORD)c;
UserSendPacketToServer(act,sizeof(act)); //1hand runter
Sleep(2);
}
Sleep(100);
if(!(i % 1000))
GamePrintInfof("dez: %d", i);
}
return 0;
}
DWORD tSwitch = 0, tAttacked = 0, tMed = 0; //timestamps
BYTE BeheadPacket[]={0x10,0x01,0x01,0,0,0,0};
//3d eb 5a 76 01 08 // monster tot hinfall animation
WORD OnOnehitPacketBeforeRecv(LPBYTE packet, WORD wLen)
{
if(!start || packet[0] == 0x6b)
return wLen;
if(packet[0] == 0x55) // party life.. lags //55 id dwLife dwMana
return FALSE;
// dont show weaponswitch
if(packet[0] == 5 || packet[0] == 6)
return FALSE;
DWORD TickCount = GetTickCount();
if (packet[0] == 0x45 && wLen != 18 && packet[1] != 0x07)
return FALSE;
if(*(DWORD*)(medicine+1) && player->dwLife != 100 &&
player->dwLife < (pia->dwMaxHealthPoint - 200)) // if life is not full (fatal)
UserSendPacketToServer(medicine,sizeof(medicine)); // drink..
/* if((TickCount - tSwitch) > speed || !tSwitch)
{
CriticalSection = true;
UserSendPacketToServer(attack,sizeof(attack));
UserSendPacketToServer(attack,sizeof(attack));
UserSendPacketToServer(a1,sizeof(a1));
UserSendPacketToServer(a2,sizeof(a2));
UserSendPacketToServer(attack,sizeof(attack));
UserSendPacketToServer(attack,sizeof(attack));
CriticalSection = false;
UserSendPacketToServer(a3,sizeof(a3));
UserSendPacketToServer(a4,sizeof(a4));
tSwitch = GetTickCount();
}
*/
if(bAttacked && (TickCount - tAttacked) > 22222)
bAttacked = false;
if(packet[0] == 0x3d)// death
{
if(packet[5] == 0x09 &&
*(DWORD*)(packet+1) == player->ID) {
UserSendPacketToClient(packet,wLen);
if(*(DWORD*)(revive+1))
UserSendPacketToServer(revive,sizeof(revive));
else {
BYTE quit = 0x1b;
Sleep(11111);
UserSendPacketToServer(&quit,1);
}
return 0;
}
else if(packet[5]==0x08){
//check for current attacking and behead monster
for(int i = 0; i < 5; i++){
if(*(DWORD*)(packet+1) == *(DWORD*)(pAttack[i]+2)) {
GamePrintInfof("%d hitted",i);
*(DWORD*)(pAttack[i]+2) = NULL;
bAttacked = false;
break;
}
}
}
}
if(packet[0] == 0x3e) // if attacker is current player..
{
if(*(DWORD*)(packet+1) == player->ID) {
for(int i = 0; i < 5; i++)
if(*(DWORD*)(pAttack[i]+2) == *(DWORD*)(packet+5) && *(DWORD*)(packet+9)) {
GamePrintInfof("%d hitted",i);
break;
}
return FALSE;
}
if(GetUnitType(FindUnitByID(*(DWORD*)&packet[1])) != 1) return FALSE;
//typeid berechnen
//if(*(DWORD*)(packet+5) == player->ID) {
tAttacked = TickCount;
bAttacked = true;
//}
//delete for boss *(DWORD*)&attack[2] = *(DWORD*)&packet[1]; //we get attacked? ->be aggro
return FALSE;
}
// drive by shooting
if((packet[0] == 0x23 ||
packet[0] == 0x24 ||
packet[0] == 0x25) &&
!CriticalSection && /*!bAttacked &&*/ GetUnitType(FindUnitByID(*(DWORD*)&packet[1])) == 1) {
for(int i = 0; i < 5; i++){
if(!*(DWORD*)(pAttack[i]+2)) {
*(DWORD*)(pAttack[i]+2) = *(DWORD*)&packet[1];
break;
}
}
//delete for boss *(DWORD*)&attack[2] = *(DWORD*)&packet[1];
/*LPSTR szName = GetUnitName(FindUnitByID(*(DWORD*)&packet[1]));
if( !stricmp(szName, "Crazy Demon Warrior") ||
!stricmp(szName, "Demon Defender") ||
!stricmp(szName, "Demon Infantry")) {
tAttacked = TickCount;
bAttacked = 2;
}*/
}
///pickup
if(packet[0]==0x36)
{
GAMEUNITCOORDS item;
item.x = *(int*)(packet+7);
item.y = *(int*)(packet+7+4);
memcpy(pickup+1,packet+3,4);
int dwBuf = item.x;
__asm sar dwBuf,5
*(DWORD*)&pickup[5] = dwBuf;
dwBuf = item.y;
__asm sar dwBuf,5
*(DWORD*)&pickup[5+4] = dwBuf;
if(*(WORD*)(packet+1) == 0x1f) {
UserSendPacketToServer(pickup,sizeof(pickup));
return wLen;
}
item.z = GetHeight(item.x,item.y);
GAMEUNITCOORDS bak;
memcpy(&bak, (LPVOID)&player->coords, sizeof(GAMEUNITCOORDS));
Player.Teleport(&item);
GamePrintInfof("Collecting item: %x", *(WORD*)(packet+1));
UserSendPacketToServer(pickup,sizeof(pickup));
Player.Teleport(&bak);
}
return wLen;
}
//0x2b 03 id
//10 03 01.. bla
WORD OnOnehitPacketBeforeSent(LPBYTE packet, WORD wLen)
{
if(!set)
return wLen;
/// getting medium medicines
if(packet[0] == 0x1a && !med)
{
memcpy(medicine+1,packet+1,4);
GamePrintInfo("Medicines setted");
med = true;
return 0;
}
if(packet[0] == 0x1a && !rev)
{
memcpy(revive+1,packet+1,4);
GamePrintInfo("Reviving ready");
rev = true;
return 0;
}
/*
if(packet[0] == 0x2b)
{
packet[-1] = 0x10;
packet[0] = packet[1];
packet[1] = 1;
UserSendPacketToServer(packet-1,wLen+1);
return 0;
}
*/
if(set && packet[0] == 0x42)
{
memcpy(a1+1, packet+1, sizeof(DWORD));
memcpy(a4+1, packet+1, sizeof(DWORD));
return 0;
}
if(set && packet[0] == 0x41)
{
memcpy(a2+1, packet+1, sizeof(DWORD));
memcpy(a3+1, packet+1, sizeof(DWORD));
GamePrintInfo("you can now start onehit with \".oh start\"");
set = false;
return 0;
}
return wLen;
}
DWORD WINAPI xchg(LPVOID)
{
GAMEUNIT victim = 0;
while(start) {
Sleep(5000);
CriticalSection = true;
for(int i = 0; i < 5; i++) {
if(*(DWORD*)(pAttack[i]+2)) {
if(*(DWORD*)(pAttack[i]+2)) {
//GamePrintInfof("attacked %d 1.", i);
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
Sleep(40);
}
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
}GamePrintInfof("attacked %d monsters", i);
}
UserSendPacketToServer(a1,sizeof(a1)); //2hand runter
UserSendPacketToServer(a2,sizeof(a2)); //1hand hoch
for(i = 4; i >= 0; i--) {
if(*(DWORD*)(pAttack[i]+2)) {
if(*(DWORD*)(pAttack[i]+2)) {
//GamePrintInfof("attacked %d 2.", i);
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
Sleep(40);
}
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
//ClientSendPacketToServer(pAttack[i],sizeof(*pAttack));
}
}
GamePrintInfo("mwuha");
/*victim = FindUnitByID(*(DWORD*)&attack[2]);
if(bAttacked == 2)
bAttacked = false;
GamePrintInfof("<%s> {%.8x} dX: %d dY: %d - killed!?",
victim->szName, *(DWORD*)&attack[2],
abs(DWORD(player->real.x - victim->real.x)),
abs(DWORD(player->real.y - victim->real.y)));*/
Sleep(5000);
UserSendPacketToServer(a3,sizeof(a3)); //1hand runter
UserSendPacketToServer(a4,sizeof(a4)); //2hand hoch
}
return FALSE;
}
BOOL OnOnehitCommandSpeed(char** argv, int argc)
{
if(argc != 3) return FALSE;
if (!stricmp(argv[2], "help")) return FALSE;
speed = atoi(argv[2]);
return TRUE;
}
BOOL OnGameCommandStart(char** argv, int argc)
{
GameCommandLine("behead on");
start = true;
CreateThread(0,0,xchg,0,0,0);
// rofl = atoi(argv[2]);
// CreateThread(0,0,quest,0,0,0);
return TRUE;
}
BOOL OnGameCommandStop(char** argv, int argc)
{
set = false;
start = false;
return TRUE;
}
BOOL OnGameCommandDown(char** argv, int argc)
{
BYTE d[] = {0x14,0,0,0x80};
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
return TRUE;
}
BOOL OnGameCommandUp(char** argv, int argc)
{
BYTE d[] = {0x14,0,0,0x7f};
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
UserSendPacketToServer(d,sizeof(d));
d[1] = 0x50;
UserSendPacketToServer(d,sizeof(d));
return TRUE;
}
BOOL OnGameCommandSet(char** argv, int argc)
{
med = false;
rev = false;
GamePrintInfo("drop your medicines");
set = true;
return TRUE;
}
VOID OnOnehitUnitSelect(GAMEUNIT GameUnit)
{
if(!GameUnit)
return;
DWORD dwID = GetUnitID(GameUnit);
// attack[1] = GetUnitType(GameUnit);
tAttacked = GetTickCount();// + 2*60*1000;
bAttacked = true;
//memcpy(attack+2,&id,4);
*(DWORD*)(attack+2) = dwID;
}
BYTE destroy[] = {0x08,1,1,1,1};
BYTE create[] = {0x07,1,1,1,1,1,0,0x5c,0,0,0,0,0,20,//bMaxEndurance; +22 //ancient level
0xff,//bCurEndurance; +23
0xff,//bUkwn1; +24
0xff,//bPhysicAttack; +25
0xff,//bMagicAttack; +26
0xff,//bUkwn2
0xff,//otp
0xff,
0xff,
0xff,
0xff
};
WORD ItemCode = 0;
BOOL OnGameCommandItem(char** argv, int argc)
{
char *x = "";
if(argc==3)
ItemCode = (WORD) strtoul(argv[2],&x,0x10);
else
ItemCode++;
*(WORD*)(create+5) = ItemCode;
//return FALSE;
//BYTE a[] = {0x1d,0};
//memcpy(a+1,&id,1);
//server->UserSendPacketToServer(a,2);
//memcpy(create+5,&id,sizeof(id));
UserSendPacketToClient(destroy,sizeof(destroy));
UserSendPacketToClient(create,sizeof(create));
GamePrintInfof("ItemCode: %x",ItemCode);//(WORD) strtoul(argv[2],&x,0x10));
return TRUE;
}
BOOL OnOnehitCommandReset(char** argv, int argc)
{
GamePrintInfo("array cleared");
for(int i = 0; i < 5; i++)
*(DWORD*)(pAttack[i]+2) = NULL;
return TRUE;
}
Code:
DWORD killspeed = 100;
DWORD enumspeed = 100;
BOOL OnOnehitCommandSpeed(char** argv, int argc)
{
if(argc == 4) {
killspeed = atoi(argv[2]);
enumspeed = atoi(argv[3]);
GamePrintInfof("Killspeed set to %d", killspeed);
GamePrintInfof("Enumspeed set to %d", enumspeed);
} else return FALSE;
return TRUE;
}
// TerminateThread(hThread1,0);
// CloseHandle(hThread);
BOOL OnOnehitCommandKill(char** argv, int argc)
{
char *x="";
if(argc == 3)
killskill = (BYTE)strtoul(argv[2], &x, 0x10);
else
killskill = 0;
bKill = !bKill;
if (bKill)
GamePrintInfo ("kill on move.");
else
GamePrintInfo ("stop killing");
return TRUE;
}
BOOL OnOnehitCommandBird(char** argv, int argc)
{
bBird = !bBird;
if (bBird)
GamePrintInfo ("kill on move.");
else
GamePrintInfo ("stop killing");
return TRUE;
}
BOOL CALLBACK KillMonsterEnum(CUnit* unit)
{
if(unit->GetType() == 1)
unit->Attack(0);
Sleep(killspeed);
return TRUE;
}
HANDLE hKillThread;
DWORD WINAPI KillThread(LPVOID)
{
while(true) {
EnumUnits(KillMonsterEnum);
Sleep(enumspeed);
}
return TRUE;
}
BOOL OnOnehitCommandTest(char** argv, int argc)
{
if(argc != 4) return FALSE;
char *x="";
BYTE skill = (BYTE)strtoul(argv[2], &x, 0x10);
int dist = atoi(argv[3]);
PGAMEUNITPOS p = SelectedUnit.GetPos();
Player.AreaSkill(skill, p->x + dist, p->y + dist);
return TRUE;
}
BOOL OnOnehitCommandEnum(char** argv, int argc)
{
bKill = !bKill;
if (bKill) {
hKillThread = CreateThread(0,0,KillThread,0,0,0);
GamePrintInfo ("kill on move.");
}
else {
TerminateThread(hKillThread, 0);
GamePrintInfo ("stop killing");
}
return TRUE;
}
WORD OnOnehitPacketBeforeRecv(LPBYTE packet, WORD len)
{
if( !bKill ) return len;
if( bKill && (
packet[0] == 0x24 ||
packet[0] == 0x25)) {
CUnit unit;
unit.SetByID(*(DWORD*)&packet[1]);
unit.Attack(killskill);
return FALSE;
}
/*
if( packet[0] == 0x33 || //monster initialize
packet[0] == 0x3e || //normal skill
packet[0] == 0x3f || //magic skill
packet[0] == 0x53 || //party
packet[0] == 0x55) // party
return FALSE;
/*
if( bBird && (
packet[0] == 0x24 ||
packet[0] == 0x25)) {
CUnit unit;
unit.SetByID(*(DWORD*)&packet[1]);
unit.AnimalSkill(0x40);
}
if (hHurricane && packet[0] == 0x3f && packet[1] == 0x2b && *(DWORD*)&packet[2] == Player.GetID())
{
*(DWORD*)&packet[2] = 0;
}
*/
return len;
}
WORD OnOnehitPacketBeforeSent(LPBYTE packet, WORD len)
{
return len;
}
VOID OnOnehitUnitSelect(CUnit *GameUnit)
{
}
DWORD WINAPI HurricaneThread(DWORD speed)
{
GamePrintInfof("thread started with %d", speed);
while(true) {
Player.AreaSkill(0x2b, 0, 0);
Sleep(speed);
}
return TRUE;
}
BOOL OnOnehitCommandHurricane(char** argv, int argc)
{
if (!hHurricane) {
hHurricane = CreateThread(0,0,(LPTHREAD_START_ROUTINE)Hurricane Thread,
(argc == 3) ? (LPVOID)atoi(argv[2]) : (LPVOID)500,0,0);
GamePrintInfo ("on ");
}
else {
TerminateThread(hHurricane, 0);
hHurricane = 0;
GamePrintInfo ("stop...");
}
return TRUE;
}
|
|
|
05/10/2011, 01:13
|
#30
|
elite*gold: 25
Join Date: Jan 2010
Posts: 186
Received Thanks: 30
|
hups jo sry verallt nach nen paar bierchen is man nimmer so dabei weisssteeeeeeeeeeeeeeeeee!
|
|
|
Similar Threads
|
hi guys i need dbghelp.dll
08/17/2011 - Kal Online - 10 Replies
guys i dont know whate this but some players use it to 1hh and other hacks can any one explain to me what is it?
|
dbghelp.dll
10/23/2010 - Technical Support - 3 Replies
Hi, fast allem was ich installier fehlt diese dll, weis jemand wieso ?
|
dbghelp auf fatality?
08/16/2010 - Kal Online - 0 Replies
deleted please fixxed^^
|
dbghelp.dll
08/14/2010 - Kal Online - 0 Replies
Some one can speak why dbghelp.dll dont work in Kal Combate?, there use only Kocp r11 standard. ty (Sry for This English :O)
|
All times are GMT +1. The time now is 15:49.
|
|