D 1
delimuratt
noisiv 1
noisiv
Manwe Work 1
Manwe Work
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
onur akbaş 1
onur akbaş
PrimeAC 1
PrimeAC
Mt2Hizmet 1
Mt2Hizmet
romegames 1
romegames
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

n2play files hakkında

  • Konuyu başlatan Konuyu başlatan apikomt2
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 1
  • Görüntüleme Görüntüleme 273

apikomt2

Level 6
Uzman
Katılım
11 May 2023
Konular
270
Mesajlar
1,144
Çözüm
2
Online süresi
1mo 25d
Reaksiyon Skoru
746
Altın Konu
1
Başarım Puanı
199
MmoLira
1,258
DevLira
381
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Bu filesi tüm paylşaılan fileslardan farklı kılan özelliği.
syncleri çok iyi olması
örneğin ws atma sistemi kaymasızdır.
kodlama tipi biraz daha yeni nesildir.
dxmath steptimer directx9 bulunmaktadır.
oyun biraz da canlı gözükmektedir.
64 bit yapısı bulunması ve windows serverde çalışması
kendi anti cheati bulunması.
denediğimde hız hilesi yapılıyordu fakat atak hilesi yapılmıyordu.(cheat engine)
fakat hile engel sistemi geliştirilebilir.
küçük değişiklikler yapabilirsiniz.
meseal full canla başlama.
hani 1 level başlıyorsa bunu 99 levelde başlatma.
ama ücretli bi sistem alsanız meley gibi bunu kuramayabilirsiniz

dezavantajları.
çok basit kadim sistemini bile eklerken kopyala yapıştır yapıyoruz standat fileslarda
ama bu filesin kodlama biçimi farklı olduğu için
filesa göre ekleme yapmak gerekmekte.


kurulum şöyle
visual stduio 2019
cmake 3.16.9
python 2.7

buil ederken hata alabilirsiniz.
cmake taraflı yada source taraflı hata alabilirsiniz.


örnek bi kod ekliyorum

char.cpp ownersync
Kod:
bool CHARACTER::SetSyncOwner(CHARACTER *ch, bool bRemoveFromList)
{
    // TRENT_MONSTER
    if (IS_SET(m_pointsInstant.dwAIFlag, AIFLAG_NOMOVE))
        return false;
    // END_OF_TRENT_MONSTER

    if (IS_SET(m_pointsInstant.dwAIFlag, AIFLAG_NOPUSH))
        return false;

    if (ch == this) { return false; }

    if (!ch)
    {
        if (bRemoveFromList && m_pkChrSyncOwner) { m_pkChrSyncOwner->m_kLst_pkChrSyncOwned.remove(this); }

        // 리스트에서 제거하지 않더라도 포인터는 NULL로 셋팅되어야 한다.
        m_pkChrSyncOwner = nullptr;
    }
    else
    {
        const auto mapIndex = ch->GetMapIndex();

        if (m_pkChrSyncOwner != ch)
        {
            if (m_pkChrSyncOwner) { m_pkChrSyncOwner->m_kLst_pkChrSyncOwned.remove(this); }

            m_pkChrSyncOwner = ch;
            m_pkChrSyncOwner->m_kLst_pkChrSyncOwned.push_back(this);

            // SyncOwner가 바뀌면 LastSyncTime을 초기화한다.
            static const timeval zero_tv = {0, 0};
            SetLastSyncTime(zero_tv);
        }

#ifdef ENHANCED_FLY_FIX
        m_fSyncTime = get_float_time();
#endif
    }

    // TODO: Sync Owner가 같더라도 계속 패킷을 보내고 있으므로,
    //       동기화 된 시간이 3초 이상 지났을 때 풀어주는 패킷을
    //       보내는 방식으로 하면 패킷을 줄일 수 있다.
    TPacketGCOwnership pack;
    pack.dwOwnerVID = ch ? ch->GetVID() : 0;
    pack.dwVictimVID = GetVID();

    PacketAround(m_map_view, this,HEADER_GC_OWNERSHIP, pack);
    return true;
}
 
Paylaşım için teşekkürler.

İyi forumlar
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst