CUCEKO.NET ▌ 83/1 PK FARM SERVER ▌ FULL İTEM BAŞLANGIÇ ▌ OFFICIAL: 29.03.2024 / SAAT 22:000
Cuceko
Cuceko

[1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi

  •         

            

            

            

            

  • HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding
K Çevrimdışı

Karaeski

Kayıtlı Üye
8 Mart 2012
387
0
16
33
Herkeze kolay gelsin, bu kod için epey zaman harcamıştım. Sizde alın uygulayın kullanın öğrenin :)



Kod yazmak, roma rakamları gibidir. Hangi kodu nereye koyacağınız çıkacak olan sonucu belirler.

Bknz. İşler güçler / 28 Bölüm / 1 Kısım / 14.dk ;)



Aşşağıdaki kod satırlarını anlamayan, anlamakta güçlük çeken veya işleyiş hakkında bilgi edinmek isteyen arkadaşlar için, bu kodun

daha minimal halini C# üzerinde yazmıştım.

İçerik Açılmıştır Teşekkürler :)
Buradan indirebilirsiniz.


LİNK2 :
İçerik Açılmıştır Teşekkürler :)


Ufak bir yapı oluşturdum, böylece kullanıcıları bu yapı içinde array olarak barındırıp, buradaki değerlere göre sıralayıp filitrelendirebilecez.

Kod:
struct _RANK_INFO {

    short m_Sid;

    short m_sNation;

    int   m_iLoyalty;

};



Bu kod, bir sıralama algoritmasıdır. BubbleSort dediğimiz bu algoritma bir dizi içerisindeki rakamları büyükten küçüğe veya

küçükten büyüğe sıralar. Bunu kullanıcıları NP'lerine göre sıralarken kullanıyoruz.

Kod:
/* Efe - 19:13 19.02.2013 */

_RANK_INFO* CEbenezerDlg::Sort(_RANK_INFO* pRankInfo)

{

    _RANK_INFO Temp;

    for (int i = m_sRankInfoIndex - 1; i > 0; i--)

    {

        for (int j = 1; j <= i; j++)

        {

            if( pRankInfo[j - 1].m_iLoyalty < pRankInfo[j].m_iLoyalty ) {

                Temp = pRankInfo[j - 1];

                pRankInfo[j - 1] = pRankInfo[j];

                pRankInfo[j] = Temp;

            }

        }

    }

    return pRankInfo;

}





Bu kod RankProcess, Rank'ın çalışmasını işlemesini koşullara bağlı olarak np ekleme silme vb. işlemleri yapan kod kısmı. Bİraz uzunca ama incelerseniz anlarsanınız.

Kod:
/* Efe - 19:13 20.02.2013 */

void CEbenezerDlg::RankProcess( CUser* pUser, short Type ) {



    // Add

    if( Type == 1 ) {

        

        if( pUser->m_pUserData->m_bNation == 1 ) {

            for(int i = 0; i < 3000; i++) 

            {

                if( pKarusRank[i].m_Sid == 0 ) {

                    pKarusRank[i].m_Sid = pUser->GetSocketID();

                    pKarusRank[i].m_sNation = pUser->m_pUserData->m_bNation;

                    pKarusRank[i].m_iLoyalty = pUser->m_iLoyaltyDaily;

                    pUser->m_iLoyaltyDaily = 0;

                    m_sKarusIndex++;

                    m_sRankInfoIndex++;

                    // TRACE("### pKarusRank - Add Sid : %d ###\r\n", pKarusRank[i].m_Sid );

                    break;

                }

            }

        }



        if( pUser->m_pUserData->m_bNation == 2 ) {

            for(int i = 0; i < 3000; i++) 

            {

                if( pHumanRank[i].m_Sid == 0 ) {

                    pHumanRank[i].m_Sid = pUser->GetSocketID();

                    pHumanRank[i].m_sNation = pUser->m_pUserData->m_bNation;

                    pHumanRank[i].m_iLoyalty = pUser->m_iLoyaltyDaily;

                    pUser->m_iLoyaltyDaily = 0;

                    m_sHumanIndex++;

                    m_sRankInfoIndex++;

                    // TRACE("### pHumanRank - Add Sid : %d ###\r\n", pHumanRank[i].m_Sid );

                    break;

                }

            }

        }

    }



    // Remove

    if( Type == 2 ) {

        if( pUser->m_pUserData->m_bNation == 1 ) {

            for(int i = 0; i < 3000; i++) 

            {

                if( pKarusRank[i].m_Sid == pUser->GetSocketID() ) {

                    pKarusRank[i].m_Sid = 0;

                    pKarusRank[i].m_sNation = 0;

                    pKarusRank[i].m_iLoyalty = 0;

                    pUser->m_iLoyaltyDaily = 0;

                    m_sKarusIndex--;

                    m_sRankInfoIndex--;

                    // TRACE("### pKarusRank - Remove Sid : %d ###\r\n", pUser->GetSocketID() );

                    break;

                }

            }

        }



        if( pUser->m_pUserData->m_bNation == 2 ) {

            for(int i = 0; i < 3000; i++) 

            {

                if( pHumanRank[i].m_Sid == pUser->GetSocketID() ) {

                    pHumanRank[i].m_Sid = 0;

                    pHumanRank[i].m_sNation = 0;

                    pHumanRank[i].m_iLoyalty = 0;

                    pUser->m_iLoyaltyDaily = 0;

                    m_sHumanIndex--;

                    m_sRankInfoIndex--;

                    // TRACE("### pHumanRank - Remove Sid : %d ###\r\n", pUser->GetSocketID() );

                    break;

                }

            }

        }

    }



    // Update

    if( Type == 3 ) {



        if( pUser->m_pUserData->m_bNation == 1 ) {

            for(int i = 0; i < 3000; i++) 

            {

                if( pKarusRank[i].m_Sid == pUser->GetSocketID() ) {

                    pKarusRank[i].m_iLoyalty = pUser->m_iLoyaltyDaily;

                    // TRACE("### pKarusRank - Update Sid : %d ###\r\n", pKarusRank[i].m_Sid );

                    break;

                }

            }

        }



        if( pUser->m_pUserData->m_bNation == 2 ) {

            for(int i = 0; i < 3000; i++) 

            {

                if( pHumanRank[i].m_Sid == pUser->GetSocketID()) {

                    pHumanRank[i].m_iLoyalty = pUser->m_iLoyaltyDaily;

                    // TRACE("### pHumanRank - Update Sid : %d ###\r\n", pHumanRank[i].m_Sid );

                    break;

                }

            }

        }

    }

}



Bu Alt'a basıtığınızda kullanıcıdan gelen paket doğrultusunda çalışan void, rank tablosundaki paketlerin hepsi burada, aynı zamanda içinde chaos rank listesinin paketleri de var oda süpriz hediye olsun ;)

Kod:
/* Efe - 12:19 20.02.2013 */

void CUser::RankInfo( char* pBuf, CUser* pTUser )

{

    int send_index = 0, index = 0;

    char send_buff[1024]; memset( send_buff, 0x00, 1024 );

    short myindex = 0, sMark = 0;

    int k;



    m_pMain->m_sKarus = 0;

    m_pMain->m_sHuman = 0;



    _RANK_INFO* pKarusRank = new _RANK_INFO();

    pKarusRank = m_pMain->Sort( m_pMain->pKarusRank );



    _RANK_INFO* pHumanRank = new _RANK_INFO();

    pHumanRank = m_pMain->Sort( m_pMain->pHumanRank );



    if( m_pUserData->m_bNation == 1 ) {

        for(int i = 0; i < m_pMain->m_sKarusIndex; i++) 

        {

            if( pKarusRank[i].m_Sid == m_Sid ) {

                myindex = i+1;

                break;

            }

        }

    } 



    if( m_pUserData->m_bNation == 2 ) {

        for(int i = 0; i < m_pMain->m_sHumanIndex; i++) 

        {

            if( pHumanRank[i].m_Sid == m_Sid ) {

                myindex = i;

                break;

            }

        }

    }



    if( m_pUserData->m_bNation == 1 ) {

        for(int i = 0; i < m_pMain->m_sKarusIndex; i++) 

        {

            if( pKarusRank[i].m_Sid > 0 ) {

                if( m_pMain->m_sKarus < 10 ) {

                    m_pMain->m_sKarus++;

                }

            }

        }

    } 



    if( m_pUserData->m_bNation == 2 ) {

        for(int i = 0; i < m_pMain->m_sHumanIndex; i++) 

        {

            if( pHumanRank[i].m_Sid > 0 ) {

                if( m_pMain->m_sHuman < 10 ) {

                    m_pMain->m_sHuman++;

                }

            }

        }

    }



    BYTE Type = GetByte(pBuf, index);

    SetByte( send_buff, WIZ_RANKINFO, send_index );

    SetByte( send_buff, Type, send_index );



    switch( Type ) 

    {

        // 0x01 - Colony Zone Rank

        case 1:

            SetShort( send_buff, m_pMain->m_sKarus, send_index );

            for( k = 0; k < m_pMain->m_sKarus; k++) 

            {

                CUser* pUser = NULL;

                 pUser = (CUser*)m_pMain->m_Iocport.m_SockArray[pKarusRank[k].m_Sid];

                if( !pUser ) {

                    continue;

                }



                CKnights* pKnights = NULL;

                pKnights = m_pMain->m_KnightsArray.GetData( pUser->m_pUserData->m_bKnights );



                SetShort( send_buff, strlen(pUser->m_pUserData->m_id), send_index );

                SetString( send_buff, pUser->m_pUserData->m_id, strlen(pUser->m_pUserData->m_id), send_index );

                if( pKnights ) {

                    if( pKnights->m_byGrade <= 3 ) {

                        sMark = 0x01;

                    }

                    else {

                        sMark = 0x00;

                    }



                    SetByte( send_buff, sMark, send_index );

                    SetShort( send_buff, pUser->m_pUserData->m_bKnights, send_index );

                    SetShort( send_buff, pKnights->m_sMarkVersion, send_index );

                    SetShort( send_buff, strlen(pKnights->m_strName), send_index );

                    SetString( send_buff, pKnights->m_strName, strlen(pKnights->m_strName), send_index );

                }

                else {

                    SetByte( send_buff, sMark, send_index );

                    SetShort( send_buff, 0x00, send_index );

                    SetShort( send_buff, 0x00, send_index );

                    SetShort( send_buff, 0x00, send_index );

                    //SetString( send_buff, "", 0, send_index );

                }

                SetDWORD( send_buff, pUser->m_iLoyaltyDaily, send_index );

                SetShort( send_buff, pUser->m_iLoyaltyCont, send_index );

            }



            // Human

            if( m_pMain->pHumanRank[0].m_Sid == 0 ) {

                m_pMain->m_sHuman = 0;

            }

            SetShort( send_buff, m_pMain->m_sHuman, send_index );

            for(k = 0; k < m_pMain->m_sHuman; k++) 

            {

                CUser* pUser = NULL;

                pUser = (CUser*)m_pMain->m_Iocport.m_SockArray[pHumanRank[k].m_Sid];

                if( !pUser ) {

                    continue;

                }



                CKnights* pKnights = NULL;

                pKnights = m_pMain->m_KnightsArray.GetData( pUser->m_pUserData->m_bKnights );



                SetShort( send_buff, strlen(pUser->m_pUserData->m_id), send_index );

                SetString( send_buff, pUser->m_pUserData->m_id, strlen(pUser->m_pUserData->m_id), send_index );

                if( pKnights ) {

                    if( pKnights->m_byGrade <= 3 ) {

                        sMark = 0x01;

                    }

                    else {

                        sMark = 0x00;

                    }



                    SetByte( send_buff, sMark, send_index );

                    SetShort( send_buff, pUser->m_pUserData->m_bKnights, send_index );

                    SetShort( send_buff, pKnights->m_sMarkVersion, send_index );

                    SetShort( send_buff, strlen(pKnights->m_strName), send_index );

                    SetString( send_buff, pKnights->m_strName, strlen(pKnights->m_strName), send_index );

                }

                else {

                    SetByte( send_buff, sMark, send_index );

                    SetShort( send_buff, 0x00, send_index );

                    SetShort( send_buff, 0x00, send_index );

                    SetShort( send_buff, 0x00, send_index );

                    //SetString( send_buff, "", 0, send_index );

                }



                SetDWORD( send_buff, pUser->m_iLoyaltyDaily, send_index );

                SetShort( send_buff, pUser->m_iLoyaltyCont, send_index );

            }



            // Source

            SetShort( send_buff, myindex, send_index );

            SetDWORD( send_buff, m_iLoyaltyDaily, send_index );

            SetShort( send_buff, m_iLoyaltyCont, send_index );

            Send( send_buff, send_index );

            break;



        // 0x02 - Unkown

        case 2:

            break;



        // 0x03 - Chaos War List

        case 3:

            SetByte( send_buff, 5, send_index ); // List count,

            for(int i = 0; i < 4; i++) {

                SetShort( send_buff, strlen("test"), send_index); // id len

                SetString( send_buff, "test", strlen("test"), send_index ); // id

                SetShort( send_buff, 11+i, send_index ); // kill

                SetShort( send_buff, 5, send_index ); // dead

            }

            SetShort( send_buff, strlen(m_pUserData->m_id), send_index);

            SetString( send_buff, m_pUserData->m_id, strlen(m_pUserData->m_id), send_index );

            SetShort( send_buff, 3, send_index );

            SetShort( send_buff, 0, send_index );

            

            SetDWORD( send_buff, 1500000, send_index ); // event exp bonus

            SetDWORD( send_buff, 1500000, send_index ); // premium exp bonus

            Send(send_buff, send_index );

            break;

    }

}



İlerleyen günlerde, paylaşımlarım devam edicek benden - bizden - forumdan geliştirmekten, merak etmekten, araştırmaktan ayrılmayın.
 
D Çevrimdışı

DoctorWalk

Kayıtlı Üye
22 Mayıs 2013
76
0
6
25
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Şu Ranking Olayınıda Twostars'dan Forum'dan Aldım Diye Yazssaydin iyi Olurdu Kardesim Yinede Emeğine Sağlık...
 
H Çevrimdışı

HiFi

Kayıtlı Üye
9 Mart 2012
575
8
18
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Şu Ranking Olayınıda Twostars'dan Forum'dan Aldım Diye Yazssaydin iyi Olurdu Kardesim Yinede Emeğine Sağlık...



Arkadaş girip o dediğin forumdan Bu kodu bul getir desem beceremessin milete camur atarsın :D
 
K Çevrimdışı

Karaeski

Kayıtlı Üye
8 Mart 2012
387
0
16
33
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Twostars'ın foruma yazan "Ernosto" da benim üyeliğim arkadaşım. Bize her şey orjinal ;) Melih bir ara sana full source vericem aklımdasın sana seviom :D sadece sana vercem :D
 
D Çevrimdışı

DoctorWalk

Kayıtlı Üye
22 Mayıs 2013
76
0
6
25
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Arkadaş girip o dediğin forumdan Bu kodu bul getir desem beceremessin milete camur atarsın :D

Yazdiğim Cümleyi iyi Oku Rahatsız.. Ranking Dalgasından Bahsediyorum Ben KOD'dan Herhangi bir Cümlemi Yazmısım Ranking Dalgasından Bahsediyoruz Burda.. Sen Herşeyi Cok iyi Biliyorsun Zaten Aslanım.. Sen Git ilyas Abinle Calısmalarına Devam et.. :)
 
H Çevrimdışı

HiFi

Kayıtlı Üye
9 Mart 2012
575
8
18
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Yazdiğim Cümleyi iyi Oku Rahatsız.. Ranking Dalgasından Bahsediyorum Ben KOD'dan Herhangi bir Cümlemi Yazmısım Ranking Dalgasından Bahsediyoruz Burda.. Sen Herşeyi Cok iyi Biliyorsun Zaten Aslanım.. Sen Git ilyas Abinle Calısmalarına Devam et.. :)

Pekiiii
 
C Çevrimdışı

Che

Kayıtlı Üye
3 Nisan 2013
462
11
18
32
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



basarılı tskler ..
 
D Çevrimdışı

Direnish

Kayıtlı Üye
4 Eylül 2012
493
2
18
31
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Tesekkürler Reyiz İnş Millete Yararlı Olur :)
 
C Çevrimdışı

CikitaMux

Kayıtlı Üye
4 Mayıs 2013
37
1
8
32
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Bu adam bir baska eyw efe cok saol
 
J Çevrimdışı

Jayden JameS

Kayıtlı Üye
10 Aralık 2012
234
0
16
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Efe Kardeşim 0sk1 sourceye sorunsuz bir şekilde ekledim hiç bir hata almadan ama ebenzer patlıyor sebebini bulamadım bir yardımcı olurmusun
 
C Çevrimdışı

cєηgℓу

Kayıtlı Üye
4 Temmuz 2013
495
1
18
28
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Teşekkür ederim kullanıcağım.
 
bigahega Çevrimdışı

bigahega

Administrator
Yönetici
KoCuce.Com
7 Mart 2012
12,841
364
83
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



Merak ettim :D Karaeski buglu halimi yoksa :D bugsuzmu belirtirsen ona göre bişiler yapalım :D
 
bigahega Çevrimdışı

bigahega

Administrator
Yönetici
KoCuce.Com
7 Mart 2012
12,841
364
83
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



0sk1 sourcelerin socket sorunu var onuda çözmen imkansız :D
 
N Çevrimdışı

NumarK

Kayıtlı Üye
27 Mart 2012
718
1
18
34
Cevap: [1453 / 1534 / 1886 / 19xx] Cz, Ardream Rank Sistemi



eline saglık dostum