[Packets]

06/16/2009 15:15 Doofy#1
Hallo,
so geht an die letzten Feinheiten meines Magebots.
Wir sieht es mit Skillanimationen aus? Nehmen wir mal an Ice Magic ist 0x10 b 2, muss ich dann für das animationspacket (0x21 ka weis es gerade net auswendig) auch 2 senden? bzw gibt es fälle in dennen sich das unterscheidet?

2. Das Alte Thema Z-Coord... gibt es nen funktionierendes HeightDetour irgendwo im forum, oder nix public? Bin im mom in der Uni, wie sieht mit dem hier aus:
3. Weis einer die Nr vom Expell-Packet? Ich bekomm ab und zu nen Expell mein "Schnellen Laufen". D.h an der häflte vom weg temp-d1 gibts nen expell. Bzw gibt auch momente in dennen ich einfach an einer total falschen stelle rauskomm. mach inzwischen schon nen sleep 50 zwischen jedem schritt.
liegt der fehler in meinem code, oder haben das mehr?

Ich schaff es einfach nicht direkt z.b d1r3 zu laufen. muss erst auf die stelle die mich ins d1 portet, und dann sleep(1000), coord von hand umsetzen und weiterlaufen.
Wenn ich direkt in r3 laufen will sehich 100%-ig irgendwo am maprand und mein bot meint er wäre da- is er aber nicht.
liegt das vllt auch an meiner z-koord die ich im mom ignorier?
06/16/2009 15:45 meak1#2
HighDetour für Z geht eig. noch von bakabug da... und mit dem packet 0x21 glaube ja skillid, aber musst mal gucken wie es aufgebaut ist, ich weiß es nichmehr ;s und das mit dem gleich zu d1r3 laufen bin mir nicht so sicher, selbst nich probiert. was willst mit der nr. von expell? der kommt wenn du zu schnell packets hintereinander schickst i think.
06/16/2009 17:02 Mahatma#3
0x21 is pickup, für skill animation brauchste 0x2b
und @ dungeons musste zuerst zu d1 eingangscoords laufen damit du vom server ins d1 geportet wirst...anders kommste net ins d1 rein
06/16/2009 18:11 Doofy#4
danke für alle antworten.
ich erzwing auch nen expell wenn hp zu niedrig ist... damit ich net sterb. (ob das sinnvoll ist lass ich ma im raum stehen).
Quote:
SendPacket(0x2b,"bd",attackNumber,targetMID);
Sleep(attackCharge);
SendPacket(0x10,"bbd",attackNumber,1,targetMID);
hatte ich schon, aber danke. ging nur darum ob die attackNumber bei 0x2b und 0x10 immer gleich ist

ok dann porte ich mich immer erst ins d1 mit den coords:
{282489,236806,18770}

danke für die antworten

@edi:
Bekomme das mit dem HeightDetour nicht hin...
Kann mir einer vllt erklären wie das funktioniert?
Quote:
if (offset != 0)
Intercept(INST_JMP,offset,(DWORD)MyRecvDetour,5);
MyRecvBack=offset+7;
printf("[%6d] Install GetHeight-Detour \n",offset=SearchPattern("55 8B EC 81 EC 94 00 00 00 D9 45 08 D8 35 x x x x D9 5D 08",0));

float Naked MyHeightDetour(DWORD x,DWORD y,...)
{
__asm
{
push ebp
mov ebp, esp
sub esp, 918h
}
//show info
//printf("Height 0x%08x 0x%08x %f\n ",x,y);
__asm
{
jmp MyHeightBack //back to original
}
}
ist jawohl der teil der mich interessiert.


nur MyHeightDetour(a,b) aufrufen bringt nix. gibt absturz wenn ich mich net irre

muss irgendwie an offset kommen. leider weis ich nicht wie.
kann einer mal bitte beschreiben wie es funktioniert(will keine lösung sonder vllt erklären was für logische schritte nötig sind)

danke
06/19/2009 09:41 katze123#5
du solltest vllt nicht mit Sleep(x) arbeiten... sondern mit GetTickCount()...
06/19/2009 12:49 5had0w#6
wieso soll er nicht mit sleep arbeiten?

so lustig...

doofy ich geb dir nen tipp

arbeite mit threads.
06/19/2009 13:14 meak1#7
wie gesagt fast richtig... es steht wirklich in bakabugs source ;o mehr sag ich nich
06/19/2009 13:45 Doofy#8
Quote:
Originally Posted by 5had0w View Post
wieso soll er nicht mit sleep arbeiten?

so lustig...

doofy ich geb dir nen tipp

arbeite mit threads.
arbeite schon mit threads. dahher wird das sleep auch keine probleme machen.
läuft ja schon alles sonst...

also hab das auch dem source geklaut:
PHP Code:
DWORD offset=SearchPattern("55 8B EC 81 EC 94 00 00 00 D9 45 08 D8 35 x x x x D9 5D 08",0x00400000,0x007FFFFF);
    if (
offset != 0){
        
Intercept(INST_JMP,offset,(DWORD)MyHeightDetour,5) ;
        
MyHeightBack=offset+9;
        
printf("[%6d] Install GetHeight-Detour \n",offset);
}



float Naked MyHeightDetour(DWORD x,DWORD y,...)
{
__asm
{
push ebp
mov ebp
esp
sub esp
918h 
}
//show info
printf("Height 0x%08x 0x%08x %f\n ",x,y);
__asm
{
jmp MyHeightBack //back to original
}

aber geht nicht, höhe immer 0
06/19/2009 14:54 meak1#9
ja weil noch was fehlt , was aber auch drinsteht -.-
da im source wird der befehl sogar aufgerufen von MyHeightDetour()...
06/19/2009 15:20 Doofy#10
ok thx ich schau nochmal....
die methode MyHeightDetour(DWORD x,DWORD y,...)

hab ich schon, aber so wie du das sagst muss es noch eine float MyHeightDetour()
geben?
06/19/2009 15:53 meak1#11
-_________________-
such einfach Myheightdetour im source und guck halt wie es benutzt wird meinte ich damit ;O
06/19/2009 16:40 Doofy#12
bin zu dumm dazu?
PHP Code:
DWORD Naked Something(DWORD some,DWORD some2,...)
{
    
_asm
    
{
        
push ebip
        mov ebp
esp
        push ecx
        fild 
[ebp+0x08]
        
mov eax, [ebp+0x0C]
        
shl eax0Dh
        mov 
[ebp-0x04], eax
        fisub 
[ebp-0x04]
        
mov espebp
        pop ebp
        fstp 
[ebp-0x04]
        
mov eax,[ebp-0x04]
        
retn
    
}

PHP Code:
DWORD offset=SearchPattern("55 8B EC 81 EC 94 00 00 00 D9 45 08 D8 35 x x x x D9 5D 08",0x00400000,0x007FFFFF);
if (
offset != 0){
    
Intercept(INST_JMP,offset,(DWORD)MyHeightDetour,5) ;
    
MyHeightBack=offset+9;
    
printf("[%6d] Install GetHeight-Detour \n",offset); 
PHP Code:
printf("Height test: %d %d %f!\n",Something(player.pos.X,0x20),Something(player.pos.Y,0x20),MyHeightDetour(Something(player.pos.X,0x20),Something(player.pos.Y,0x20))); 
kommt immer 0.00000 raus.

und ja: player.pos.X ist meine aktuelle position.i