[Question]Walk with packets.

04/19/2009 18:06 kalhacker9000#16
das heißt, wenn ich das jetzt richtig gelesen habe, muss nich Player[0].X-itemX sondern itemX-Player[0].X ??
04/19/2009 19:02 meak1#17
weiß einer ob highdetour funktion noch funktioniert? ;o
04/19/2009 19:07 kalhacker9000#18
aufm int nicht
aufm pserver kp ich glaub auch nich
aufm pserver funzt bei mir nichmal mehr SendDetour(0x11,"s","xyztestblala"); dann kommt ne meldung das ein hack detected ist.
04/19/2009 19:22 meak1#19
hm ich müsste mal gucken wie man das aufm int findet ;S da gibs bestimmt auch ne searchpattern für
04/19/2009 21:10 kalhacker9000#20
PHP Code:
if (pick == 1)
{
if (
packet[2] == 0x36)
{
DWORD itemid,x,y,itemX,itemY,move1,move2,itemdrop;
memcpy((void*)&itemid,(void*)((DWORD)packet+5),4);
memcpy((void*)&x,(void*)((DWORD)packet+5+4),4);
memcpy((void*)&y,(void*)((DWORD)packet+5+4+4),4);
itemX=x;
itemY=y
itemdrop=+0;
while (
itemdrop 1)
{
                
int difx=itemX-Player[0].X;
                
int dify=itemY-Player[0].Y;
                
float range=(difx*difx+dify*dify)*1.0;
                
printf("sqrt_Range: %d\n",range); 
                
printf("Item dropped [%d] [%d , %d]\n",itemid,itemX,itemY);
                
//move1=difx-255;
                //move2=dify-255;
if (sqrt(range) < 50.0)
{
SendDetour(0x20,"ddd",itemid,itemX/32,itemY/32);
printf("Item picked...\n");
itemdrop++;
}
else if (
sqrt(range) > 50.0)
{
                
unsigned char tempx=(double(difx)/sqrt(range))*30;
                
unsigned char tempy=(double(dify)/sqrt(range))*30
printf("Item too far away...walk to item...\n");
//SendDetour(0x15,"bbb",tempitemx,tempitemy,0);
SendDetour(0x15,"bbb",tempx,tempy,0);
printf("Walk: X %d Y %d\n",difx,dify);
SendDetour(0x20,"ddd",itemid,itemX/32,itemY/32);
itemdrop++;
}

}

so ich bin langsam echt am verzweifeln
er läuft....er läuft sogar sehr gut
aber:
1.sqrt_range ist bei mir immer eine 6-stellige zahl selbst wenn ich neben meinem char ein item droppe.
2.er läuft zwar als erstes in meine richtung, läuft aber bei jedem gedroppten item einfach weiter und weiter, sprich an mir vorbei.
3.wie löse ich das jetzt? ich mein ich hab mir kalhack11 angeguckt, ich hab mir von chibis den code angeguckt. und die haben es nicht wirklich anders.
warum geht das nicht bei mir?
bitte bitte liebe epvpers hilt mir
danke an dieser stelle nochmal an meak1, der mir bis jetzt ganz gut geholfen hat ^^
04/19/2009 21:16 Grabgewalt#21
Quote:
Originally Posted by Mahatma View Post
der maximale x/y/z wert, der pro 0x14/0x15 packet gesendet werden kann is 255
ihr müsst das also auf mehrere packets aufteilen....geht net alles in einem packet^^
haste daran gedacht?
04/19/2009 21:20 kalhacker9000#22
ich weiß nich wie ich das auf mehrere packete aufteile...und selbst wenn er rennt ja einfach weiter....falls er in meine richtung rennt manchmal auch woanders hin.
:D
04/19/2009 21:22 bloodx#23
dann mach halt if(itempicked = true) soll er wieder neu anfangen so läuft er dann nicht immer zum nächsten item sondern ers wenn das erste gepickt wurde.. hoffe du hast verstanden kann nicht ausführlich schreiben
Freundin grade auf klo nicht viel zeit XD
04/19/2009 21:24 kalhacker9000#24
alles klar :D:D danke ich werde es morgen testen...naja erstmal mit ner freundin stadt und so....und versicherung und und und
shit :D keine zeit für reallife :D:D
nein aber danke :P
so off jetzt
haunse rein
04/19/2009 22:16 meak1#25
hm zum item läuft er ohne probleme und lootet es jez mit den mobs klappts nich so richtig da range ausrechnen und den nähesten nehmen bla ;S und bei mob appear is manchmal der gleiche mob ;<
04/20/2009 11:24 kalhacker9000#26
Quote:
Originally Posted by meak1 View Post
hm zum item läuft er ohne probleme und lootet es jez mit den mobs klappts nich so richtig da range ausrechnen und den nähesten nehmen bla ;S und bei mob appear is manchmal der gleiche mob ;<
wenn es dir nichts ausmacht würde ich gerne einmal deinen code sehen um zu sehen was ich falsch mache :D kannst ja ne pm schicken...
04/20/2009 15:46 meak1#27
hm das doof das der gleiche mob öfters appeared, bzw. das da so steht, weil er speichert das dann in int i und wenn der mob moved wird auch 5x - 10 auf der X achse abgezoggen
also so oft wie der mob appeared ist, dass is crap

Edit: ok habs wusste nich genau wie man das kontrolliert ob die zahl schon vorkam jez habe ich es ;>
04/20/2009 21:22 BorSti#28
hab auch mal ne frage


_____________
l........................l
l........................l
l........................l
l..........X............l
l........................l
l_____________l

x bin ich

der rahmen soll ein map von kal sein wie gehe ich nun nach links an den rand via packet? normalerweise ya -(minus)x aber (minus)coordinaten gibs ja beim walk packet net ....

wie lasse ich ihn nach links gehen?!
04/20/2009 22:15 meak1#29
wenn du jez - 30 reingehen willst nach links musst du 256 - 30 rechnen sind 226 dann 226 senden und er geht - 30 nach links ;>?

EDIT:
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 ;<
04/21/2009 08:23 BorSti#30
okay schon mal gut danke - aber dennoch verstehe ich es nicht ...wenn ich 255 also das maximale nach links gehen möchte - 256-255= 1 sende ich 1 geht er in die andere richtung (nach rechts)

sende ich -1 geht er 255 nach links habe ich das gefühl ...

255 entpricht doch aber nicht 255 skalaeinheiten auf der x achse oder? .....