Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu Derece Sınırını Değiştirme & Yeni Derece Ekleme [C++ / Python]

5.00 yıldız(lar) 3 Değerlendirme Değerlendirenler
ÖNİZLEME

0408_203727.jpg


Merhaba, derece sınırını kaldırmanın yanı sıra tamamen yeni bir derece eklemeyle ilgili küçük bir eğitim.


32k'nin üzerinde yeni bir rank eklemek istiyorsak ve (Type) değişkenini int olarak ayarlamazsak, bu mümkün olmayacaktır.


İlk yapacağımız şey, bu sınırı kaldıralım,

açıyoruz Packet.h (SRC/GAME) Sonra birkaç yerde, tam olarak 2 kez, bir kod olacak aşağıdaki içerik:

Kod:
short    sAlignment;

Yani değişkenin (Type) değeri :

Kod:
Short

değiştir

Kod:
Int


  • Belki birisi bununla ilgileniyor, bu yüzden nedenini açıklayacağım.
    32,768 den 32,767 kadar Int bir değere sahiptir: -2,147,483,648 için 2,147,483,647
  • Yani int ayarlarsanız yukarıda gösterildiği gibi, sunucu üzerinde birçok Sıra olarak ayarlayabilirsiniz.
Bu işlevi arayın: ( Packet.h )

Kod:
typedef struct packet_update_char

İçinde:

Kod:
short    sAlignment;

ve şu şekilde değiştirin:

Kod:
int    sAlignment;

Ardından bu işlevi arayın:

Kod:
 typedef struct packet_char_additional_info

İçinde:

Kod:
short    sAlignment;

ve şu şekilde değiştirin:

Kod:
int    sAlignment;


Şimdi aynısını düzenlememiz gerekiyor _____________________________________________________________________________________________________________________________

Şimdi şu adrese gidin: Source_Client / Client / UserInterface / ve File InstanceBase.cpp'yi
arayın Sonra bu kodu arayın:

Kod:
void CInstanceBase::SetAlignment(short sAlignment)

Ve yukarıdaki ile aynıdır, değiştirme: ( short için int )

Ardından Source_Client / Client / UserInterface / 'e basın ve InstanceBase.h Dosyasını arayın

Kod:
WYSZUKAJ -   short    m_sAlignment;

değiştir ( Short için int ) (Bu 2 kez gerçekleşir.)

Kod:
WYSZUKAJ -   void     SetAlignment(short sAlignment);

değiştir ( Short için int )


Şimdi şu adrese gidin: Source_Client / Client / UserInterface / NetworkActorManager.h Bunu
arayın:

Kod:
WYSZUKAJ -   void     SetAlignment(short sAlignment);

ve gelen değişim ( Short için int ) ---- 2 Kez!

Çevirin: Source_Client / Client / UserInterface / Packet.h
Ara:

Kod:
short    m_sAlignment;

ve gelen değişim ( Short için int ) ---- 2 Kez!

Çevirin: Source_Client / Client / UserInterface / Packet.h
Ara:

Kod:
short    sAlignment;

ve değişim ( Short için int ) (3 kez meydana gelir)


  • Şimdi yeni bir Kademe ekleyeceğiz, yani:

    Kaynak kodumuza gidiyoruz / Src / Game / ve File Char_Battle.cpp'yi açıyoruz
    Şimdi arıyoruz:

Kod:
 int iAlignIndex;

Burada buna benzer bir şey görüyoruz:

Kod:
  if (GetRealAlignment() >= 120000)        // Kahraman
        iAlignIndex = 0;
    else if (GetRealAlignment() >= 80000)    // Soylu
        iAlignIndex = 1;
    else if (GetRealAlignment() >= 40000)    // İyi
        iAlignIndex = 2;
    else if (GetRealAlignment() >= 10000)    //  Arkadaşca
        iAlignIndex = 3;
    else if (GetRealAlignment() >= 0)        // Nötr Sıra (Yani 0'da)
        iAlignIndex = 4;
    else if (GetRealAlignment() > -40000)    //
        iAlignIndex = 5;
    else if (GetRealAlignment() > -80000)    //
        iAlignIndex = 6;
        iAlignIndex = 8;                    //  (bu durumda 20k olan sınırı kapatır 20k)

Ve kendimiz için düzenleriz. Örneğimde şu şekilde düzenliyorum:

Kod:
  if (GetRealAlignment() >= 1000000)        // Turkmmo (Yeni Sıralamam)
        iAlignIndex = 0;
    else if (GetRealAlignment() >= 500000)    // Replicant (Yeni Sıralamam)
        iAlignIndex = 1;
    else if (GetRealAlignment() >= 120000)    // Kahraman
        iAlignIndex = 2;
    else if (GetRealAlignment() >= 80000)    // Soylu
        iAlignIndex = 3;
    else if (GetRealAlignment() >= 40000)    // iyi
        iAlignIndex = 4;
    else if (GetRealAlignment() >= 10000)    // Arkadaşça
        iAlignIndex = 5;
    else if (GetRealAlignment() >= 0)       
        iAlignIndex = 6;
    else if (GetRealAlignment() > -40000)   
        iAlignIndex = 7;
    else if (GetRealAlignment() > -80000)   
        iAlignIndex = 8;
    else if (GetRealAlignment() > -120000)   
        iAlignIndex = 9;
    else if (GetRealAlignment() > -820000)    // Replicant (Yeni Negatif Sıram )
        iAlignIndex = 10;
    else
        iAlignIndex = 11;

Zaten kendiniz için düzenleme yaptıysanız, devam edelim! (Tabii ki, aynı dosyada, yani ( Char_Battle.cpp )
Aşağıdaki kodu arıyoruz:

Kod:
  if (g_iUseLocale && pkKiller->GetParty())
                        {
                            FPartyAlignmentCompute f(-20000, pkKiller->GetX(), pkKiller->GetY());
                            pkKiller->GetParty()->ForEachOnlineMember(f);

                            if (f.m_iCount == 0)
                                pkKiller->UpdateAlignment(-20000);
                            else
                            {
                                sys_log(0, "ALIGNMENT PARTY count %d amount %d", f.m_iCount, f.m_iAmount);

                                f.m_iStep = 1;
                                pkKiller->GetParty()->ForEachOnlineMember(f);
                        }
                        else
                            pkKiller->UpdateAlignment(-20000);
                    }
                }

Ve burada sınırımızın olduğu yerde - bizim durumumuza giriyoruz, benim durumumda:

Kod:
if (g_iUseLocale && pkKiller->GetParty())
                        {
                            FPartyAlignmentCompute f(-85000, pkKiller->GetX(), pkKiller->GetY());
                            pkKiller->GetParty()->ForEachOnlineMember(f);

                            if (f.m_iCount == 0)
                                pkKiller->UpdateAlignment(-85000);
                            else
                            {

                        }
                        else
                            pkKiller->UpdateAlignment(-850000);
                    }
                }

Sonra ararız:

Kod:
 m_iRealAlignment = MINMAX(-200000, m_iRealAlignment + iAmount, 200000);

Ve kendimiz için düzenleriz, benim durumumda - 85.000 ve + 100.000

Kod:
m_iRealAlignment = MINMAX(-850000, m_iRealAlignment + iAmount, 1000000);

  • Tamam, zaten yaptıysanız, oyununuzu derleyin!
    Kodumuzu düzenlemeye başlamanın zamanı geldi
    _____________________________________________________________________________________________________________________________

    Source_Client / Client / InstanceBase.h'yi açıyoruz ve bunu arıyoruz:

Kod:
TITLE_NUM = 9, 

TITLE_NONE = 4,

  • TITLE_NUM - Toplam Sıralar.
    TITLE_NONE - Nötr Sıra Numarası.
    Ve kendimiz için değişiyoruz, ki benim durumumda:

Kod:
TITLE_NUM = 12,

TITLE_NONE = 6,

Şimdi Source_Client / Client / InstanceBase.cpp'ye gidiyoruz ve arıyoruz:

Kod:
 UINT CInstanceBase::GetAlignmentGrade()
{
    if (m_sAlignment >= 12000)
        return 0;
    else if (m_sAlignment >= 8000)
        return 1;
    else if (m_sAlignment >= 4000)
        return 2;
    else if (m_sAlignment >= 1000)
        return 3;
    else if (m_sAlignment >= 0)
        return 4;
    else if (m_sAlignment > -4000)
        return 5;
    else if (m_sAlignment > -8000)
        return 6;
    else if (m_sAlignment > -12000)
        return 7;

    return 8;
}

  • Burada nasıl düzenleme yapacağınızı gerçekten göstermeme gerek yok, çünkü biz de aynısını yaptık, ancak Char_Battle.cpp'deki sunucu durumunda

    BU KILAVUZU DÜZENLEYİN VE DEVAM EDİN!
    __________________________________________________________________________________________________________________________________

    Tamam, yukarıda zaten yaptıysanız, başlatıyoruz, yani:
    Arıyoruz : ( InstanceBase.cpp'de daha fazla ) Bu: (ve ekleyin )

Kod:
int CInstanceBase::GetAlignmentType()
{
    switch (GetAlignmentGrade())
    {
        case 0:        ------> Ranga Pozytywna    // Kahraman
        case 1:        ------>    Ranga Pozytywna    // Soylu
        case 2:        ------>    Ranga Pozytywna    // İyi
        case 3:        ------>    Ranga Pozytywna    // Arkadaşça
        {
            return ALIGNMENT_TYPE_WHITE;
            break;

        case 8:        ------>    Ranga Negatywna    // Zalim
        {
            return ALIGNMENT_TYPE_DARK;
            break;
        }
    }

    return ALIGNMENT_TYPE_NORMAL;
}

Şimdi, 3 yeni Kademe eklediğimiz için (2'ye + 1'e - ) 3 durum eklemeliyiz .
Benim durumumda şöyle görünecek:

Kod:
 int CInstanceBase::GetAlignmentType()
{
    switch (GetAlignmentGrade())
    {
        case 0:        ------> Ranga Pozytywna    // Turkmmo (Moja Nowa Ranga Druga)
        case 1:        ------>    Ranga Pozytywna    // Replicant (Moja Nowa Ranga Pierwsza)
        case 2:        ------>    Ranga Pozytywna    // Kahraman
        case 3:        ------>    Ranga Pozytywna    // Soylu
        case 4:        ------>    Ranga Pozytywna    // İyi
        case 5:        ------>    Ranga Pozytywna    // Arkadaşça
        {
            return ALIGNMENT_TYPE_WHITE;
            break;
        }

        case 7:        ------>    Ranga Negatywna    // Agresif
        case 8:        ------>    Ranga Negatywna    // Hileli
        case 9:        ------>    Ranga Negatywna    // Kötü Niyetli
        case 10:        ------>    Ranga Negatywna    // Zalim
        case 11:        ------>    Ranga Negatywna    // Turkmmo (Yeni Negatif Derece)
        {
            return ALIGNMENT_TYPE_DARK;
            break;
        }
    }

  • Tamam, düzenlemeyi bitirdiyseniz, derleyebilirsiniz
    _____________________________________________________________________________________________________________________________
    Peki, şimdi

    Nasz_Client / Root'a gidin ve LocaleInfo.py ve Open'ı arayın
    Şimdi bunu arıyoruz:
Kod:
TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )

Ve burada 3 yeni Rütbemizi eklemeliyiz! Benim durumumda:

Kod:
(
PVP_LEVEL0,
PVP_LEVEL1,
PVP_LEVEL2,
PVP_LEVEL3,
PVP_LEVEL4,
PVP_LEVEL5,
PVP_LEVEL6,
PVP_LEVEL7,
PVP_LEVEL8,
PVP_LEVEL9,
PVP_LEVEL10,
PVP_LEVEL11,
)

Kaydedin ve sonraki Dosyaya gidin, yani IntroLoading.py (Client / Root)

Bunu arıyoruz:

Kod:
 ## Title
        TITLE_COLOR_DICT = (    colorInfo.TITLE_RGB_GOOD_4,
                                colorInfo.TITLE_RGB_GOOD_3,
                                colorInfo.TITLE_RGB_GOOD_2,
                                colorInfo.TITLE_RGB_GOOD_1,
                                colorInfo.TITLE_RGB_NORMAL,
                                colorInfo.TITLE_RGB_EVIL_1,
                                colorInfo.TITLE_RGB_EVIL_2,
                                colorInfo.TITLE_RGB_EVIL_3,
                                colorInfo.TITLE_RGB_EVIL_4,    )

Kendimiz için düzenleriz
Benim durumumda:

Kod:
 ## Title
        TITLE_COLOR_DICT = (    colorInfo.TITLE_RGB_GOOD_6,
                                colorInfo.TITLE_RGB_GOOD_5,
                                colorInfo.TITLE_RGB_GOOD_4,
                                colorInfo.TITLE_RGB_GOOD_3,
                                colorInfo.TITLE_RGB_GOOD_2,
                                colorInfo.TITLE_RGB_GOOD_1,
                                colorInfo.TITLE_RGB_NORMAL,
                                colorInfo.TITLE_RGB_EVIL_1,
                                colorInfo.TITLE_RGB_EVIL_2,
                                colorInfo.TITLE_RGB_EVIL_3,
                                colorInfo.TITLE_RGB_EVIL_5,                                )

  • Kaydedin ve UiCharacter.py'ye gidin (Client / Root) Aynısı
    , bunu arıyoruz:
Kod:
  COLOR_DICT = {    0 : colorInfo.TITLE_RGB_GOOD_4,
                        1 : colorInfo.TITLE_RGB_GOOD_3,
                        2 : colorInfo.TITLE_RGB_GOOD_2,
                        3 : colorInfo.TITLE_RGB_GOOD_1,
                        4 : colorInfo.TITLE_RGB_NORMAL,
                        5 : colorInfo.TITLE_RGB_EVIL_1,
                        6 : colorInfo.TITLE_RGB_EVIL_2,
                        7 : colorInfo.TITLE_RGB_EVIL_3,
                        8 : colorInfo.TITLE_RGB_EVIL_4, }


kendimiz için düzenleriz
Benim durumumda :

Kod:
 COLOR_DICT = {    0 : colorInfo.TITLE_RGB_GOOD_6,
                        1 : colorInfo.TITLE_RGB_GOOD_5,
                        2 : colorInfo.TITLE_RGB_GOOD_4,
                        3 : colorInfo.TITLE_RGB_GOOD_3,
                        4 : colorInfo.TITLE_RGB_GOOD_2,
                        5 : colorInfo.TITLE_RGB_GOOD_1,
                        6 : colorInfo.TITLE_RGB_NORMAL,
                        7 : colorInfo.TITLE_RGB_EVIL_1,
                        8 : colorInfo.TITLE_RGB_EVIL_2,
                        9 : colorInfo.TITLE_RGB_EVIL_3,
                        10 : colorInfo.TITLE_RGB_EVIL_4,
                        11 : colorInfo.TITLE_RGB_EVIL_5,                        }

  • Kaydedin ve ardından şu adrese gidin: Client / Root / Locale / pl / Locale_Game.txt

    Ve içinde saflarımızı ararız, yani:

Kod:
PVP_LEVEL0 Kahraman
PVP_LEVEL1 Soylu
PVP_LEVEL2 İyi
PVP_LEVEL3 Arkadaşça
PVP_LEVEL4 Nötr
PVP_LEVEL5 Agresif
PVP_LEVEL6 Hileli
PVP_LEVEL7 Kötü Niyetli
PVP_LEVEL8 Zalim

Ve kendimiz için düzenleriz, ki benim durumumda:


Kod:
PVP_LEVEL0 Turkmmo (Yeni Derece)
PVP_LEVEL1 Replicant (Yeni Derece)
PVP_LEVEL2 Kahraman
PVP_LEVEL3 Soylu
PVP_LEVEL4 İyi
PVP_LEVEL5 Arkadaşça
PVP_LEVEL6 Nötr
PVP_LEVEL7 Agresif
PVP_LEVEL8 Hileli
PVP_LEVEL9 Kötü Niyetli
PVP_LEVEL10 Zalim
PVP_LEVEL11 Turkmmo (Yeni Negatif Derece)


Muhtemelen Rütbelerimizin renklerini nasıl düzenleyeceğinizi merak ediyorsunuz!
Client / Root ve ColorInfo.py açılır
ve böyle bir şey var:

Kod:
TITLE_RGB_GOOD_4 = (  0, 204, 255)
TITLE_RGB_GOOD_3 = (  0, 144, 255)
TITLE_RGB_GOOD_2 = ( 92, 110, 255)
TITLE_RGB_GOOD_1 = (155, 155, 255)
TITLE_RGB_NORMAL = (255, 255, 255)
TITLE_RGB_EVIL_1 = (207, 117,   0)
TITLE_RGB_EVIL_2 = (235,  83,   0)
TITLE_RGB_EVIL_3 = (227,   0,   0)
TITLE_RGB_EVIL_4 = (255,   0,   0)

Ve kendimiz için düzenleriz, ki benim durumumda:

Kod:
TITLE_RGB_GOOD_6 = (  0, 204, 255) // Yeni Sıra 2 
TITLE_RGB_GOOD_5 = (  0, 204, 255) // Yeni Sıra 1 
TITLE_RGB_GOOD_4 = (  0, 204, 255) // Kahraman
TITLE_RGB_GOOD_3 = (  0, 144, 255) // Soylu
TITLE_RGB_GOOD_2 = ( 92, 110, 255) // İyi
TITLE_RGB_GOOD_1 = (155, 155, 255) // Arkadaşça
TITLE_RGB_NORMAL = (255, 255, 255) // Nötr
TITLE_RGB_EVIL_1 = (207, 117,   0) // Agresif 
TITLE_RGB_EVIL_2 = (235,  83,   0) // Hileli
TITLE_RGB_EVIL_3 = (227,   0,   0) // Kötü Niyetli
TITLE_RGB_EVIL_4 = (255,   0,   0) // Zalim
TITLE_RGB_EVIL_5 = (255,   0,   0) // Turkmmo (Yeni Negatif Derece)


Eline sağlık onur
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler başarıların devamını dilerim kardeşim
 

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

Geri
Üst