MoveToDestinition Nasıl Kullanılır ?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

TesterM2

Normal Üye
Katılım
4 May 2021
Mesajlar
10
Beğeniler
1
Bu kodla karakterim sürekli olarak "0,0" koordinatına yürüyor.
Hangi cordinat verirsem veriyim almıyor


MovToDest Fonksiyonunun C.E deki yeri
https://i.imgur.com/XtPPtw4.png

Oyun İçinde Karakterimin Sürekli Gitmeye Çalıştığı Yer:
https://i.imgur.com/7Mt0H0s.png


Kod:
bool MoveToDestinition(D3DVECTOR& getPos)
{
    DWORD Inst= GetMyInstance(); //MyInstance Adress
    DWORD call =  0x08e6340;                 //FunCall Adress
    __asm
    {
        mov ecx, [Inst]
        push getPos
        call[call]
    }
}


Kod:
D3DVECTOR position = {220.0f,220.0f}; //dynamic.x dynamic.y
MoveToDestinition(position);
 
Kod:
DWORD function = 0x08e6340;
mov ecx, py_player
push getPos
push Inst
call function

Normal kullanımı bu tarz olmalı yani ecx registeri instance almamalı ve ptr call yaparken pointer olarak alma.
Bu arada bazı sunucularda fonksiyon farklı olabiliyor bunu deneme yanılma ile anlarsın zaten.
Eğer hala işaret ettiğin koordinata değil de 0 noktasına gidiyorsa getPos'u pointer olarak tanımlaman gerekli.

Kod:
typedef struct Vector2 {
  float x;
  float y;
} Vector2;
Vector2* pGetPos;
pGetPos->x = getPos.x;
pGetPos->y = getPos.y;

asm -> push pGetPos
 
Kod:
ecx -> PyPlayer
push pos
push instance
call ptr

Normal kullanımı bu tarz olmalı yani ecx registeri instance almamalı ve ptr call yaparken pointer olarak alma

bu şekilde yapmamı istiyorsunuz sanırım
Kod:
 DWORD CallAdress = 0x08e6340;
__asm
    {
        push GelenPos      // dinamik olarak gönderdiğim pozisyon
        push GelenInst      //myinstance
        mov ecx, Address  //cpython addres
        call CallAdress  //function call
    }
 
bu şekilde yapmamı istiyorsunuz sanırım
Kod:
DWORD CallAdress = 0x08e6340;
__asm
    {
        push GelenPos      // dinamik olarak gönderdiğim pozisyon
        push GelenInst      //myinstance
        mov ecx, Address  //cpython addres
        call CallAdress  //function call
    }
Evet çalışmadığı takdirde pozisyonu pointer olarak tanımlarsın bi üst yazı da ekledim
 
Evet çalışmadığı takdirde pozisyonu pointer olarak tanımlarsın bi üst yazı da ekledim
Skeazvq.png


Bu Hala Çalışmıyor Malesef, Aksine Şuanda Hiç Yürümüyor ve Hata Dönderiyor.
 
Skeazvq.png


Bu Hala Çalışmıyor Malesef, Aksine Şuanda Hiç Yürümüyor ve Hata Dönderiyor.

Debug atabiliyorsanız sorunun sebebini anlarsınız bu arada assembly kısmı dediğim gibi bazı sunucularda farklı olabiliyor bunu dikkate alarak kullanmanız gerekli.
Örneğin pyPlayer gereksinimi olmayabilir ?
 
Debug atabiliyorsanız sorunun sebebini anlarsınız bu arada assembly kısmı dediğim gibi bazı sunucularda farklı olabiliyor bunu dikkate alarak kullanmanız gerekli.
Örneğin pyPlayer gereksinimi olmayabilir ?
Şöyle anlatıyım pyPlayer gereksinimi yok. debug ettiğimde aşağıdaki gibi bir sonuç alıyorum.
lhEy2wP.png

gereksinimi olmadığını ve kodun bir kısmının doğru olduğunu 0.0 a gittiğinden anlıyorum. bu çıktı oyun için mouse ile rastgele bir yere tıkladığım zaman gelen çıktı.
ben kendim tus ile gönderdiğimde eax 0000000 geliyor yani push ile attığım x.y değerini göremiyorum
 
Şöyle anlatıyım pyPlayer gereksinimi yok. debug ettiğimde aşağıdaki gibi bir sonuç alıyorum.
lhEy2wP.png

gereksinimi olmadığını ve kodun bir kısmının doğru olduğunu 0.0 a gittiğinden anlıyorum. bu çıktı oyun için mouse ile rastgele bir yere tıkladığım zaman gelen çıktı.
ben kendim tus ile gönderdiğimde eax 0000000 geliyor yani push ile attığım x.y değerini göremiyorum

O halde ya ikinci bir değer gerekli yani move(1,2) gibi ya da dediğim pointer halinde olmalı bu arada normal tıkladığında call yapılan bölümde eax a denk gelen değeri bul ve bu sırayı kullan, örneğin:

push ebx ( bu eaxa denk gelen kısım )
push edx ( bu ikinci değer )
mov ecx
 
O halde ya ikinci bir değer gerekli yani move(1,2) gibi ya da dediğim pointer halinde olmalı bu arada normal tıkladığında call yapılan bölümde eax a denk gelen değeri bul ve bu sırayı kullan, örneğin:

push ebx ( bu eaxa denk gelen kısım )
push edx ( bu ikinci değer )
mov ecx
FVmZAnv.png


Çağrıldığı yerdeki kullanımı bu şekilde yani içerisine tek push istiyor.

SIMzAt2.png


Çok ilginç ama çıktılar bu şekilde ne bir ikinci değer istiyor dene farklı bir şey istediği tek bir push var oda muhtemelen pointer şeklinde position
 
Kimse bu sorunla ilgili bir bilgiye sahip değil sanırım
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt