so mit items klappt ganz gut....er läuft zu den items .... zwar läuft er an mir vorbei wenn ich ein item nochma droppe was eig. nich sein kann da die range ja anders ist aber naja das fix ich noch...hauptsache er läuft
so jetzt hab ich gestern nacht angefangen den bot zu schreiben also für mobs....prob ist nur sobald ein mob erscheint schließt sich kal automatisch....hab aber keine heightdetour funktion drinne ich guck gleich mal....werde jetzt ersma eine rauchen gehen und mir was zu essen holen
jo thx....eigentlich brauch ich keine oder?
1. teste ich es eh erst auf pserver da auf int immer noch nix geht bei mir kp was ich ändern muss damit die packets wieder ausgegeben werden
2. heightdetour wird doch nur für die z.coordinate gebraucht oder? jedenfalls seh ich das aus bakabugs kalhack11 raus...und anstatt z nehm ich einfach 0....läuft zwar irgendwann in den boden aber naja egal.
ich hab kp
mein problem ist eher der code glaub ich....hab iwas zusammengewürfelt:
PHP Code:
DWORD* coordpointerX = (DWORD*)0x006F3840; DWORD* coordpointerY = (DWORD*)0x006F3840; DWORD PX; DWORD PY; MemcpyEx((DWORD)&PX,(((DWORD)*coordpointerX)+0x0000463C),4); MemcpyEx((DWORD)&PY,(((DWORD)*coordpointerY)+0x00004644),4); int difx=Mob[i].X-PX; int dify=Mob[i].Y-PY; float MobRange=(difx*difx+dify*dify)*1.0; DWORD MobRangesqrt=sqrt(MobRange); target=id; MessageBoxA(NULL,"Mob found...Walk to mob...\n","Mob found",0); printf("Target found...\n"); printf("Target stats: X %d Y %d HP %d\n",Mob[target].X,Mob[target].Y,Mob[target].HP); printf("Continue to step 2...\n");
DWORD lastattack=GetTickCount(); if (lastattack=GetTickCount()-800) { int difx=Mob[target].X-PX; int dify=Mob[target].Y-PY; float MobRange=(difx*difx+dify*dify)*1.0; DWORD MobRangesqrt=sqrt(MobRange); if ((MobRangesqrt > 55.0)&&(MobRangesqrt < 200.0)) { SendDetour(0x15,"bbb",tempx,tempy,0); printf("walk to mob..\n"); lastattack=GetTickCount(); } else { if (MobRangesqrt < 55.0) { printf("Attack mob...\n"); SendDetour(0x0f,"bdd",1,Mob[target].MID,lastweapon); } else { if (MobRangesqrt > 200.0) { printf("Ignore mob..\n"); } } } }
}
x und y coordinate mit pointer da das andere ungenau ist und deswegen die falsche range rauskommt....immer wenn ich mich geportet habe blieben die anfangscoordinaten erhalten.
keine ahnung warum. deswegen pointer und das geht super.
kalhacker guck meine source an von auto login an da ist send funktion drinne die geht ^^
hab mir schon runtergeladen aber noch nich angeguckt....danke werd ich machen :P
kann man hier den namen eig. ändern? ich hasse den namen kalhacker9000 den hab ich 2006 benutzt wo ich....13 oder 14 war ....
DWORD Send_To_Server_Main_ = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08" ,0x00400000,0x007FFFFF); DWORD Send_To_Server_Main = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08" ,Send_To_Server_Main_+1,0x007FFFFF);
int Naked Send_To_Server(BYTE type,LPCSTR format,...) { __asm { push ebp mov ebp, esp sub esp, 18h }
"Meine":
PHP Code:
DWORD SniffPacketMain_ = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",0x00400000,0x007FFFFF); DWORD SniffPacketMain = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",SniffPacketMain_+1,0x007FFFFF); DWORD SniffPacketBack = SniffPacketMain_ + 0x06; DWORD SendPacketMain_ = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",0x00400000,0x007FFFFF); DWORD SendPacketMain = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",SendPacketMain_+1,0x007FFFFF); DWORD SendPacketBack = SendPacketMain + 0x06; char * buf2; DWORD RecvMain = SearchPattern("55 8B EC 83 EC 08 89 4D F8 8B 45 14 50 8B 4D 10 51 8B 55 0C 52 8B 45 08 50",0x00400000,0x007FFFFF);//0x0053E1F0; DWORD RecvBack = RecvMain + 0x19;
und wenn ich mich nich irre bräuchte ich die recv funktion da die send funktion ja geht. ich hab alle // vor printf weggemacht aber er zeigt mir ja keine packets mehr an. das dürfte dann ja an der recv funktion liegen richtig?
if ((packet[2] == 0x24) || (packet[2] == 0x25)) { //mob move.. DWORD id; memcpy((void*)&id,(void*)((DWORD)packet+3),4); int i; for (i=0;i<500;i++) { //check if x =0 if (Mob[i].MID == id) { signed char x,y/*,z*/=0; memcpy((void*)&(x),(void*)((DWORD)packet+3+4),1); memcpy((void*)&(y),(void*)((DWORD)packet+3+4+1),1) ; //memcpy((void*)&(z),(void*)((DWORD)packet+3+4+1+1), 1); Mob[i].X+=x; Mob[i].Y+=y; //Player[i].Z+=z; break; } } }
ich habe mal mit printf geguckt, da kommen zuviele packets, also is wie bei mobs, dass 1 mob zu oft kommt, das habe ich jez geregelt bekommen aber das hier kriege ich nich hin, da kommt zb. wenn sich der mob bewegt 5x sein move packet, dann schreibt er 5x X bei dem mob dazu <,< dann hätte ich endlich alles, das ich endlich anfangen kann den bot richtig zu schreiben ;E, hm glaube es geht so wie ich es bei mob appeared gemacht habe aber wahrscheinlich bewegen sich soviele mobs das er das nich bei allen so schnell löschen kann wenn er zuviel X addiert ;<
@Bloodx meinst die searchpattern geht noch weil die is ja schon überalt also hat sich nich geändert oder? ich guck mal nochmal ;E
@kalhacker ich weiß nich ob es mit pointer geht weil clientside, stehst du noch da bzw wenn man dann eingibt /coordinates kommen die wo man gerade steht clientside aber aufm server stehst schon woanders ,deswegn kp ob es mit pointer geht ;O
@meak
ähm also es geht eig. recht gut was heißt recht gut es geht perfekt....besser als Player[0].
...naja einziges makel ist halt das er wenn er losläuft immer nur 2-3 schritte macht und dann einfach stehen bleibt...
zweites makel ist das wenn ich (wenn er schon gelaufen ist) und ich droppe noch ein item das er an mir vorbeiläuft....vllt hängt das doch damit zusammen.
naja hauptsache er läuft und er soll ja auch keine riesen entfernungen zurücklegen sondern einfach nur ein wenig laufen damit er die anderen items bekommt.
jetzt zum eigentlichen thema
wie krieg ich das jetzt mit dem bot hin?
denn
PHP Code:
if (packet[2] == 0x33) { //mob apear
int i; for (i=0;i<500;i++) { //check if x =0 if (Mob[i].X == 0) { DWORD id; memcpy((void*)&id,(void*)((DWORD)packet+3+2),4); Mob[i].MID=id; memcpy((void*)&(Mob[i].Classe),(void*)((DWORD)packet+3),2); memcpy((void*)&(Mob[i].X),(void*)((DWORD)packet+3+4+2),4); memcpy((void*)&(Mob[i].Y),(void*)((DWORD)packet+3+4+2+4),4); memcpy((void*)&(Mob[i].HP),(void*)((DWORD)packet+3+4+2+4+4+1+1),2); //printf("Mob: %d X %d Y %d Z %d HP %d\n",Mob[i].Classe,Mob[i].X,Mob[i].Y,Mob[i].Z,Mob[i].HP); mobsx+=1; if (boton == 1) { DWORD* coordpointerX = (DWORD*)0x006F3840; DWORD* coordpointerY = (DWORD*)0x006F3840; DWORD PX; DWORD PY; MemcpyEx((DWORD)&PX,(((DWORD)*coordpointerX)+0x0000463C),4); MemcpyEx((DWORD)&PY,(((DWORD)*coordpointerY)+0x00004644),4); int difx=Mob[i].X-PX; int dify=Mob[i].Y-PY; float MobRange=(difx*difx+dify*dify)*1.0; DWORD MobRangesqrt=sqrt(MobRange); target=id; printf("Target found...\n"); printf("Target stats: X %d Y %d HP %d\n",Mob[target].X,Mob[target].Y,Mob[target].HP); printf("Continue to step 2...\n");
DWORD lastattack=GetTickCount(); if (lastattack=GetTickCount()-800) { int difx=Mob[target].X-PX; int dify=Mob[target].Y-PY; float MobRange=(difx*difx+dify*dify)*1.0; DWORD MobRangesqrt=sqrt(MobRange); if ((MobRangesqrt > 55.0)&&(MobRangesqrt < 200.0)) { SendDetour(0x15,"bbb",tempx,tempy,0); printf("walk to mob..\n"); lastattack=GetTickCount(); } else { if (MobRangesqrt < 55.0) { printf("Attack mob...\n"); SendDetour(0x0f,"bdd",1,Mob[target].MID,lastweapon); } else { if (MobRangesqrt > 200.0) { printf("Ignore mob..\n"); } } } }
}
funktioniert nicht. er rechnet zwar die range aus und es erscheint eine message wenn ein mob zu weit weg ist sprich (Ignore mob...) aber sobald eins in seine range kommt kommen bestimmt 1000 0x15 packets oder kal schließt sich sofort.
man ich will das das endlich hinhaut
halt mir fällt gerade noch ein das ich ja sowas wie bei kalhack11 einbauen müsste(?).
sprich
nearest=6350000 oder was die zahl war und dann
PHP Code:
if (nearest > range) { printf("Search again..\n"); id=i; } else if (id=-1) { boton=2; printf("Walk to mob\n"); }
Kann mir bitte mal jemand erklären wozu GetTickCount() bei den sources immer verwendet wird?
Und was dann z.B. auch if (lastattack==GetTickCount()-800) heißt?
Laut msdn: "Retrieves the number of milliseconds that have elapsed since the system was started"
Aber was heißt das nun in diesem konkreten Fall?
@Kalhacker:
Mir fiel bei deinem code grad auf, dass du da in deiner if verzweigung = zu stehen hast.
Das soll doch sicherlich nicht sein oder?
[TuT]Walk with packets. 08/02/2009 - Kal Hacks, Bots, Cheats & Exploits - 19 Replies Hey guys,
yes i make a tut.
i'm not the best in making Tutorials....of course not for Packets.
but i try to do it so "noobs" can read it and don't have to ask.
So here we go:
Walk in Kalonline is, i think, "simple".
A walk packet looks like this:
PACKET TYPE: 0x15 FORMAT: bbb
b: 1
[Question] walk, attack 07/16/2009 - Kal Online - 9 Replies hello everyone!
i got a question:
i am sick of it...
its not moving directly to where i need!
its always missing
here is my currect code for the moving to dropped item: and plzzzzzzzzzzzzzz help me
if (buf2 == 0x36)
{
DWORD itemid,x,y;
[Hilfe] Packets Mob Walk 06/03/2009 - Kal Online - 32 Replies Hello all,
after arround 4-5 Hours of hard learning, my bot works very simple.
Now i try to fix, that my Bot beheads all died mobs arround me...
There should be something like a range arround 50.
For Pick, it works. difference between x,y and some math ^^.
After a Mobs spawn / apear, i get x,y coords. But they walk arround. And thats the Problem. I recive 1 Packet (for exampe: Mob move: x=2 y=4) 3-4 times. How can i fix that problem?
My Try:
if(lastMoveId!=id || lastMoveX != x ||...
Walk Packets 05/18/2009 - Kal Online - 15 Replies So ich hab mir heute in der Schule (ist eh nix los nurnoch zumsitzen nächste Woche Prüfungen) mir das Walk system von kal durch den kopf gehen lassen....mir fiel auf das ich vieles nicht verstanden habe....
#########
#########
####X####
#########
#########
X steht jetzt für Null
jedes "#" steht für die coordinate eins alles was rechts oben neben dem x ist ist postitiv, alles rechts unten negativ genauso wie links unten und links oben.
packets tut (question^^) 04/14/2009 - Kal Online - 21 Replies hey guy im "hacking" realy long kalonline. But Just with Uce and i learned all from tuts from this forum. But since i started "hacking" everybody said that u can hack much better with packets. But i dont know how xD. I searched long in this forum for tuts but didnt find one that explained everything. Would be nice if someone make one.
greez Nightmare