n2play files hakkında

apikomt2

Level 6
Katılım
11 May 2023
Konular
237
Mesajlar
1,032
Online süresi
1ay 23g
Reaksiyon Skoru
678
Altın Konu
1
Başarım Puanı
176
TM Yaşı
2 Yıl 11 Ay 15 Gün
MmoLira
503
DevLira
315

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. 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 : 1, Üye: 0, Misafir: 1)