Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Kal Online
You last visited: Today at 09:04

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Question]Walk with packets.

Discussion on [Question]Walk with packets. within the Kal Online forum part of the MMORPGs category.

Reply
 
Old 04/21/2009, 09:22   #31
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
mach doch einfach die send packets an und guck selber?
meak1 is offline  
Old 04/21/2009, 09:32   #32
 
kalhacker9000's Avatar
 
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
kalhacker9000 is offline  
Old 04/21/2009, 10:04   #33




 
bloodx's Avatar
 
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...
bloodx is offline  
Old 04/21/2009, 10:13   #34
 
BorSti's Avatar
 
elite*gold: 20
Join Date: Feb 2008
Posts: 993
Received Thanks: 173
Quote:
Originally Posted by meak1 View Post
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
BorSti is offline  
Old 04/21/2009, 10:51   #35
 
kalhacker9000's Avatar
 
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
Quote:
Originally Posted by bloodx View Post
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:
                    DWORDcoordpointerX = (DWORD*)0x006F3840;
                    
DWORDcoordpointerY = (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?
kalhacker9000 is offline  
Old 04/21/2009, 10:56   #36




 
bloodx's Avatar
 
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 ^^
bloodx is offline  
Old 04/21/2009, 11:00   #37
 
kalhacker9000's Avatar
 
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
Quote:
Originally Posted by bloodx View Post
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 ....
kalhacker9000 is offline  
Old 04/21/2009, 11:18   #38
 
kalhacker9000's Avatar
 
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?
kalhacker9000 is offline  
Old 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(argsformat);

    
int i;
    
charsomething;
    for (
i=0;i<(signed)strlen(format);i++)
    {
        switch (
format[i])
        {
            case 
'U':
                
temp=va_argargsDWORD);
                
last_u=temp;
                if (
SNF6)
                {
                    
printf(" %d: %d\n",i+1,va_argargsDWORD));
                }
            break;

            case 
'b':
                
temp =(DWORD)va_argargsDWORD);
                if (
SNF2)
                {
                    
printf(" %d: %d\n",i+1,temp);
                }
            break;

            case 
'd':
                
temp =(DWORD)va_argargsDWORD);
                if (
SNF3)
                {
                    
printf(" %d: %d\n",i+1,temp);
                }

                if ((
i==0)&&(sent 0x22)&&(trade))
                {
                    
PlayerID temp;
                    
UserSendPacketToServer(0x23,"bd",01,PlayerID);
                }

                if ((
== 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_argargsDWORD);
                if (
SNF4)
                {
                    
printf(" %d: %d\n",i+1,(WORD)va_argargsDWORD));
                }
            break;

            case 
's':
                if (
SNF5)
                {
                    
printf(" %d: %s\n",i+1,something);
                }
                
something=va_argargschar*);
            break;
        }
    }

    
va_end(args);

    
__asm
    
{
        
jmp UserSendPacketToServerBack
    
}



should work now ...

hf.
5had0w is offline  
Old 04/21/2009, 13:06   #40




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
kann dir nacher ne ganze send geben...bin grade @freundin...
bloodx is offline  
Old 04/21/2009, 13:42   #41
 
kalhacker9000's Avatar
 
elite*gold: 0
Join Date: Dec 2006
Posts: 648
Received Thanks: 342
alles klar thx
kalhacker9000 is offline  
Old 04/21/2009, 15:30   #42
 
meak1's Avatar
 
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
meak1 is offline  
Old 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.
5had0w is offline  
Old 04/21/2009, 17:35   #44
 
kalhacker9000's Avatar
 
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].== 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
{
                    
DWORDcoordpointerX = (DWORD*)0x006F3840;
                    
DWORDcoordpointerY = (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");

kalhacker9000 is offline  
Old 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?
Grabgewalt is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.