|
You last visited: Today at 09:04
Advertisement
[Question]Walk with packets.
Discussion on [Question]Walk with packets. within the Kal Online forum part of the MMORPGs category.
04/21/2009, 09:22
|
#31
|
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
|
mach doch einfach die send packets an und guck selber?
|
|
|
04/21/2009, 09:32
|
#32
|
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
|
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
guten morgen an den rest
|
|
|
04/21/2009, 10:04
|
#33
|
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
|
55 8B EC 81 EC 94 00 00 00 D9 45 08 D8 35 E0 DC 66 00 D9 5D 08 <- müsste Hight Detour sein...
|
|
|
04/21/2009, 10:13
|
#34
|
elite*gold: 20
Join Date: Feb 2008
Posts: 993
Received Thanks: 173
|
Quote:
Originally Posted by meak1
mach doch einfach die send packets an und guck selber?
|
hab ich - naja dachte ich würde wieder nen fehler machen - aber scheint echt so zusein
255 bzw 1 ist eine bewegung in -x bzw x richtung und somit 1ne coordinate
|
|
|
04/21/2009, 10:51
|
#35
|
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
|
Quote:
Originally Posted by bloodx
55 8B EC 81 EC 94 00 00 00 D9 45 08 D8 35 E0 DC 66 00 D9 5D 08 <- müsste Hight Detour sein...
|
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");
unsigned char tempx=(double(difx)/MobRangesqrt)*30; unsigned char tempy=(double(dify)/MobRangesqrt)*30;
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.
der code ist vermutlich voll fürn arsch oder?
|
|
|
04/21/2009, 10:56
|
#36
|
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
|
kalhacker guck meine source an von auto login an da ist send funktion drinne die geht ^^
|
|
|
04/21/2009, 11:00
|
#37
|
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
|
Quote:
Originally Posted by bloodx
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 ....
|
|
|
04/21/2009, 11:18
|
#38
|
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
|
also das geht nich aufm int
Deine Sendfunktion:
PHP Code:
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);
DWORD Send_To_Server_Back = Send_To_Server_Main + 0x06;
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;
char SniffPacketText[] = "PACKET TYPE:0x%02x FORMAT:%s\n"; int Naked SendPacket(BYTE type,LPCSTR format,...) { __asm { push ebp mov ebp, esp sub esp, 18h }
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?
|
|
|
04/21/2009, 12:08
|
#39
|
elite*gold: 0
Join Date: Apr 2007
Posts: 228
Received Thanks: 222
|
PHP Code:
// send.cpp bool autologin = true; int Naked UserSendPacketToServer(BYTE sent,LPCSTR format,...) { __asm { push ebp mov ebp, esp sub esp, 18h } if (SNF1) { printf(SniffPacketText,sent,format); } va_list args; va_start(args, format); int i; char* something; for (i=0;i<(signed)strlen(format);i++) { switch (format[i]) { case 'U': temp=va_arg( args, DWORD); last_u=temp; if (SNF6) { printf(" %d: %d\n",i+1,va_arg( args, DWORD)); } break; case 'b': temp =(DWORD)va_arg( args, DWORD); if (SNF2) { printf(" %d: %d\n",i+1,temp); } break; case 'd': temp =(DWORD)va_arg( args, DWORD); if (SNF3) { printf(" %d: %d\n",i+1,temp); } if ((i==0)&&(sent 0x22)&&(trade)) { PlayerID = temp; UserSendPacketToServer(0x23,"bd",01,PlayerID); } if ((i == 0)&&(sent 0x2c)&&(party)) { PlayerID = temp; UserSendPacketToServer(0x2d,"bd",01,PlayerID); } if ((i==0)&&(sent 0x50)&&(duel)) { PlayerID = temp; UserSendPacketToServer(0x51,"bd",01,PlayerID); } if ((usedrop)&&(sent 0x1a)&&(i==0)) { dropID = temp; } if ((i==0)&&(sent 0x1a)) { dropID = temp; } if ((useweapon)&&(sent 0x41)&&(i==0)) { wearID = temp; } if(sent 0x41) { wearID = temp; } break; case 'w': temp=va_arg( args, DWORD); if (SNF4) { printf(" %d: %d\n",i+1,(WORD)va_arg( args, DWORD)); } break; case 's': if (SNF5) { printf(" %d: %s\n",i+1,something); } something=va_arg( args, char*); break; } } va_end(args); __asm { jmp UserSendPacketToServerBack } }
should work now ...
hf.
|
|
|
04/21/2009, 13:06
|
#40
|
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
|
kann dir nacher ne ganze send geben...bin grade @freundin...
|
|
|
04/21/2009, 13:42
|
#41
|
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
|
alles klar thx
|
|
|
04/21/2009, 15:30
|
#42
|
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
|
PHP Code:
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
|
|
|
04/21/2009, 17:20
|
#43
|
elite*gold: 0
Join Date: Apr 2007
Posts: 228
Received Thanks: 222
|
meak dafür gibts das packet für synch client with server.
|
|
|
04/21/2009, 17:35
|
#44
|
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
|
@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");
unsigned char tempx=(double(difx)/MobRangesqrt)*30; unsigned char tempy=(double(dify)/MobRangesqrt)*30;
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"); }
|
|
|
04/21/2009, 18:40
|
#45
|
elite*gold: 0
Join Date: Mar 2008
Posts: 96
Received Thanks: 3
|
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?
|
|
|
|
|
Similar Threads
|
[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
|
All times are GMT +2. The time now is 09:04.
|
|