Merhaba arkadaşlar,
Bu gün sizlere tamerin ilerlettiği sourceler üzerinde kullanılan bazı kodların ne anlama geldiklerini nasıl kullanıldıklarını aktarmaya çalışıcam.
CUser nedir, aşşağıdaki kod satırı ne işe yaramaktadır?
- CUser Ebenezer üzerinde tanımlanmış bir sınıftır, içerisinde oyuna bağlanan bir User'in ihtiyaç duyacağı fonksiyonlar bulunmaktadır.
CUser* pTUser satırı ise, (pTargetUser) anlanıma gelmektedir. Bu bir pointer atamasıdır aslında başındaki p harfide "Pointer" kelimesinden geliyor diye düşünüyorum.
pTUser = (CUser*)m_pMain->m_Iocport.m_SockArray[tid] ;
Burada pTUser'a m_pMain (Ebenezer'i belirtmekte) içinde her bağlanan kullanıcının bir m_SockArray dizisinde bir yeri var ve bu kullanıcıya ait bilgileri almak için "pTUser = (CUser*)m_pMain->m_Iocport.m_SockArray[tid] ;" bu kod satırını kullanıyoruz. Buradaki tid değeri ise "TargetID" hedef'in yine bu dizi içindeki yeri, yani siz kullanıcıya atak yapiyorsanız hangi kullanıcıya atak yaptığınızı belirtir.
if ( !pTUser ) return ;
Satırı ise, eğer pTUser'a herhangi bir değer atanamadıysa yani, TargetID yanlış veya kullanıcı oyundan bir şekilde düşmüş ise geri dönüyor işleme devam etmiyor, sonuç olarak olmayan hedefe atak yapamazsınız.
Aşşağıdaki kod ne işe yarar ?
yine elimizde hedef bir kullanıcı var pTUser hedef kullanıcının m_sAcAmount yani Ac miktarını pType->sAc değerine eşitliyor, buradaki pType->sAc ise pType bir skill magictype pointer'ı magic typedaki ac miktarını kullanıcının fazladan olan Ac (Defans) miktarına ekliyor. Tabi bu hedef kullanıcı kendiniz de olabilirsiniz.
Bu gün sizlere tamerin ilerlettiği sourceler üzerinde kullanılan bazı kodların ne anlama geldiklerini nasıl kullanıldıklarını aktarmaya çalışıcam.
CUser nedir, aşşağıdaki kod satırı ne işe yaramaktadır?
Kod:
CUser* pTUser;
pTUser = (CUser*)m_pMain->m_Iocport.m_SockArray[tid] ;
if ( !pTUser ) return ;
- CUser Ebenezer üzerinde tanımlanmış bir sınıftır, içerisinde oyuna bağlanan bir User'in ihtiyaç duyacağı fonksiyonlar bulunmaktadır.
CUser* pTUser satırı ise, (pTargetUser) anlanıma gelmektedir. Bu bir pointer atamasıdır aslında başındaki p harfide "Pointer" kelimesinden geliyor diye düşünüyorum.
pTUser = (CUser*)m_pMain->m_Iocport.m_SockArray[tid] ;
Burada pTUser'a m_pMain (Ebenezer'i belirtmekte) içinde her bağlanan kullanıcının bir m_SockArray dizisinde bir yeri var ve bu kullanıcıya ait bilgileri almak için "pTUser = (CUser*)m_pMain->m_Iocport.m_SockArray[tid] ;" bu kod satırını kullanıyoruz. Buradaki tid değeri ise "TargetID" hedef'in yine bu dizi içindeki yeri, yani siz kullanıcıya atak yapiyorsanız hangi kullanıcıya atak yaptığınızı belirtir.
if ( !pTUser ) return ;
Satırı ise, eğer pTUser'a herhangi bir değer atanamadıysa yani, TargetID yanlış veya kullanıcı oyundan bir şekilde düşmüş ise geri dönüyor işleme devam etmiyor, sonuç olarak olmayan hedefe atak yapamazsınız.
Aşşağıdaki kod ne işe yarar ?
Kod:
pTUser->m_sACAmount = pType->sAC;
yine elimizde hedef bir kullanıcı var pTUser hedef kullanıcının m_sAcAmount yani Ac miktarını pType->sAc değerine eşitliyor, buradaki pType->sAc ise pType bir skill magictype pointer'ı magic typedaki ac miktarını kullanıcının fazladan olan Ac (Defans) miktarına ekliyor. Tabi bu hedef kullanıcı kendiniz de olabilirsiniz.