[Help] Again Bot/Coords

05/10/2009 09:48 Grabgewalt#16
kalhacker.. ich wollte helfen. und ich hab extra geschrieben, das du darauf achten musst wenn du kh11 benutzt. Wenn nicht dann is ja alles ok.. Wollte euch auf c++ ebene nur bissl helfen, weil ich damit garantiert mehr Erfahrung hab als ihr.
05/10/2009 10:24 kalhacker9000#17
Quote:
Originally Posted by Grabgewalt View Post
kalhacker.. ich wollte helfen. und ich hab extra geschrieben, das du darauf achten musst wenn du kh11 benutzt. Wenn nicht dann is ja alles ok.. Wollte euch auf c++ ebene nur bissl helfen, weil ich damit garantiert mehr Erfahrung hab als ihr.
ist auch in ordnung war gestern etwas bad drauf.
entschuldige^^
05/10/2009 17:53 kalhacker9000#18
PHP Code:
int difx=Mob[MonsterI].X-Player[0].X;
int dify=Mob[MonsterI].Y-Player[0].Y;
float MobRange=difx*difx+dify*dify;
DWORD MobRangesqrt= sqrt(MobRange);
printf("MobRange: %d",MobRangesqrt); 
so geht das ja nicht....wenn ich das
PHP Code:
float MobRange=difx*difx+dify*dify; 
in
PHP Code:
DWORD MobRange=difx*difx+dify*dify; 
ändere geht es schon....dann kann ich aber die sqrtrange nicht ausrechnen dann bekomm ich eine fehlermeldung das die funktion überladen ist.
So float geht aber auch nicht da ich engine.exe bekomm.....was für alternativen gibt es?
05/10/2009 20:05 meak1#19
du hast wahrscheinlich in deiner MonsterI kein break drin er geht alle 999999999 durch und deswegn gibs dann nen error glaube
05/10/2009 20:39 kalhacker9000#20
break ist schon drinne....am ende.
so ich hab das jetzt doch hinbekommen iwi kA wie aber naja es haut hin mit Float....naja gut wenn ich printf("Range: %d\n",range); mach dann kommt immer 0 ich denk mal das hängt mit der Warnung zusammen das int nicht in float umgewandelt werden kann und möglicher datenverlust oder so....das steht da immer.
gut ich bekomm trotzdem ein tempx und tempy raus und er bewegt sich auch...allerdings keine ahnung ob jetzt zum mob er macht nur ein paar schritte muss ich da eine while schleife mit einbauen oder GetTickCount?

hier dann nochmal der code:
PHP Code:
int difx=Mob[MonsterI].X-Player[0].X;
printf("difx: %d\n",difx);
int dify=Mob[MonsterI].Y-Player[0].Y;
printf("dify: %d\n",dify);
float range=(difx*difx+dify*dify)*1.0;
printf("range: %d\n",range);
DWORD MobRangesqrt= sqrt(range);
unsigned char tempx=(double(difx)/MobRangesqrt)*30;
unsigned char tempy=(double(dify)/MobRangesqrt)*30;
                    
printf("tempx %d, tempy %d\n",tempx,tempy);
Send_To_Server(0x15,"bbb",tempx,tempy,0);
printf("Walk!\n"); 
ich hab überall prints mit eingebaut um zu checken was abgeht xD
05/10/2009 21:56 Grabgewalt#21
wenn du über printf nen float werden ausgeben willst darfst du natürlich nicht %d benutzen sondern musst %f nehmen.
05/10/2009 21:58 kalhacker9000#22
Quote:
Originally Posted by Grabgewalt View Post
wenn du über printf nen float werden ausgeben willst darfst du natürlich nicht %d benutzen sondern musst %f nehmen.
oh.....xD
thx!
05/10/2009 22:00 Grabgewalt#23
Und du musst das ganze natürlich in eine Schleife packen. Und diese Schleife dann in einen extra thread, sonst schmiert dir kal wahrscheinlich ab. Und innerhalb des threads benutzt man dann die GetTickCount() funktion, was dann der Ersatz für Sleep wäre. Du musst ja zwischen den Schritten die der char läuft etwas Zeit lassen sonst läuft er zu schnell.

nochmal zu printf: [Only registered and activated users can see links. Click Here To Register...]
da findest du die ganzen specifier.