- Mesaj
- 250
- Beğeni
- 109
- Puan
- 466
- Ticaret Puanı
- 0
Kod:
1. Hareketle İlgili Metotlar
Hareket ve Durum Kontrolü
bool IsStateMove() const
Karakterin şu anda hareket halinde olup olmadığını kontrol eder.
bool IsStateIdle() const
Karakterin şu anda hareketsiz (idle) durumda olup olmadığını kontrol eder.
bool IsWalking() const
Karakterin yürüyor olup olmadığını kontrol eder. Eğer dayanıklılığı (Stamina) sıfırsa, yürümek zorunda kalır.
void SetWalking(bool bWalkFlag)
Karakteri yürüme veya koşma moduna geçiren bir ayar.
void SetNowWalking(bool bWalkFlag)
Karakterin o anda yürüme durumunu değiştirir. (Detay kodda tanımlı olmalı.)
void ResetWalking()
Karakteri varsayılan yürüme durumuna sıfırlar.
Hareket Fonksiyonları
bool Goto(long x, long y)
Belirtilen (x, y) koordinatlarına doğru hareket eder.
void Stop()
Karakterin hareketini durdurur ve pozisyonunu sabitler.
bool Move(long x, long y)
Hareketi başlatır ve belirtilen hedefe pozisyonu senkronize eder.
bool CanMove() const
Karakterin belirli bir durumda hareket edip edemeyeceğini kontrol eder. Örneğin, donmuş (stun) veya mağazada (shop) olduğunda hareket edemez.
2. Pozisyon ve Senkronizasyon Metotları
void SyncPacket()
Karakterin pozisyon güncellemesini istemciye paket olarak gönderir.
bool Sync(long x, long y)
Karakterin yeni koordinatlara geçişini senkronize eder. Yeni pozisyonun geçerli bir alanda olup olmadığını kontrol eder.
void OnMove(bool bIsAttack = false)
Hareket sırasında çağrılan bir olay. Örneğin, saldırı sırasında pozisyon değiştirmek için kullanılabilir.
void CalculateMoveDuration()
Hareket süresini hesaplar. Karakterin hedefe varması için gereken süre, mesafe ve hız ile belirlenir.
void SendMovePacket(BYTE bFunc, BYTE bArg, DWORD x, DWORD y, DWORD dwDuration, DWORD dwTime=0, int iRot=-1)
Hareket paketini istemciye gönderir. Bu, karakterin hareket durumunu diğer oyunculara senkronize etmek için kullanılır.
3. Hareket ve Hız İlgili Metotlar
DWORD GetMotionMode() const
Karakterin hareket modunu belirler. Örneğin, yürüme, koşma, ata binme gibi modları döndürür.
float GetMoveMotionSpeed() const
Karakterin hareket moduna bağlı olarak hareket hızını hesaplar.
float GetMoveSpeed() const
Karakterin tüm etkileri (örneğin hız artırıcı veya azaltıcı eşyalar) göz önünde bulundurularak nihai hızını döndürür.
4. Zaman ve Durum Yönetimi
DWORD GetCurrentMoveDuration() const
Hareketin şu anda ne kadar sürdüğünü döndürür.
DWORD GetWalkStartTime() const
Yürümenin başladığı zamanı döndürür.
DWORD GetLastMoveTime() const
Karakterin son hareket ettiği zamanı döndürür.
DWORD GetLastAttackTime() const
Karakterin son saldırdığı zamanı döndürür.
void SetLastAttacked(DWORD time)
Karakterin son saldırıya uğradığı zamanı ayarlar.
5. Warp (Işınlanma) Fonksiyonları
bool WarpSet(long x, long y, long lRealMapIndex = 0)
Karakteri belirli bir haritada (x, y) koordinatlarına ışınlar.
void SetWarpLocation(long lMapIndex, long x, long y)
Işınlanma noktasını ayarlar.
void WarpEnd()
Işınlanma işlemini sonlandırır.
const PIXEL_POSITION & GetWarpPosition() const
Işınlanma noktasını döndürür.
bool WarpToPID(DWORD dwPID)
Belirli bir oyuncunun ID'sine (PID) ışınlanır.
6. Ekstra Fonksiyonlar
Dayanıklılık Yönetimi:
void StartStaminaConsume()
Hareket sırasında dayanıklılık tüketimini başlatır.
void StopStaminaConsume()
Dayanıklılık tüketimini durdurur.
bool IsStaminaConsume() const
Dayanıklılık tüketiminin aktif olup olmadığını kontrol eder.
bool IsStaminaHalfConsume() const
Dayanıklılığın yarım tüketim durumunu kontrol eder.
Senkronizasyon:
void ClearSync()
Senkronizasyon sahibini temizler.
bool SetSyncOwner(LPCHARACTER ch, bool bRemoveFromList = true)
Başka bir karakteri senkronizasyon sahibi olarak ayarlar.