romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
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

Replicant

Ehlî olmuşum elemlerin
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
TM Üye
Katılım
7 May 2010
Konular
10,579
Mesajlar
58,614
Çözüm
219
Online süresi
10mo 29d
Reaksiyon Skoru
16,721
Altın Konu
444
TM Yaşı
16 Yıl 1 Ay 2 Gün
Başarım Puanı
691
MmoLira
19,925
DevLira
601
Ticaret - 100%
2   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!

Ö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 (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,

Packet.h açıyoruz(SRC/GAME)

Kod:
short    sAlignment;

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

Kod:
Short

değiştir

Kod:
Int


( 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

Source_Client / Client / UserInterface / InstanceBase.cpp
Sonra bu kodu arayın:

Kod:
void CInstanceBase::SetAlignment(short sAlignment)

yukarıdaki ile aynıdır değiştir: ( short yerine int )

Ardından Source_Client / Client / UserInterface / InstanceBase.h Dosyasını arayın

Kod:
WYSZUKAJ -   short    m_sAlignment;

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

Kod:
WYSZUKAJ -   void     SetAlignment(short sAlignment);

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


Source_Client / Client / UserInterface / NetworkActorManager.h
Bunu arayın:

Kod:
WYSZUKAJ -   void     SetAlignment(short sAlignment);

ve gelen değişim ( Short yerine int ) (Bu 2 kez gerçekleşir)


Source_Client / Client / UserInterface / Packet.h

Ara:

Kod:
short    m_sAlignment;

ve gelen değişim ( Short yerine int ) (Bu 2 kez gerçekleşir)


Source_Client / Client / UserInterface / Packet.h

Ara:

Kod:
short    sAlignment;

ve değişim ( Short yerine int ) (Bu 3 kez gerçekleşir)


Şimdi yeni bir Kademe ekleyeceğiz
/ Src / Game / ve File Char_Battle.cpp'yi aç

Ş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)        //  Tarafsız 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 (aynı dosyada, 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);
                    }
                }

burada sınırımızın olduğu yerde durumumuza giriyoruz:

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 ara:

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);

Zaten yaptıysanız, oyununuzu derleyin



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 - Tarafsız Sıra Numarası.
    Ve kendimize göre değiştiriyoruz

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;
}



InstanceBase.cpp

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;
}


Eklendikten sonra şöyle görünecek:

Kod:
 int CInstanceBase::GetAlignmentType()
{
    switch (GetAlignmentGrade())
    {
        case 0:        ------> Ranga Pozytywna    // Turkmmo (Yeni derece 2)
        case 1:        ------>    Ranga Pozytywna    // Replicant (Yeni derece)
        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;
        }
    }

Düzenlemeyi bitirdiyseniz, derleyebilirsiniz



şimdi 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, )

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)

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 dereceleri ararız, yani:

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

kendimiz için düzenleriz, 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 Tarafsız
PVP_LEVEL7 Agresif
PVP_LEVEL8 Hileli
PVP_LEVEL9 Kötü Niyetli
PVP_LEVEL10 Zalim
PVP_LEVEL11 Turkmmo (Yeni Negatif Derece)


Derece renklerini düzenleme:

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)

Kendimiz için düzenleriz, 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) // Tarafsız
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)

 

Ekli dosyalar

  • 0408_203727.jpg
    0408_203727.jpg
    909.9 KB · Görüntüleme: 0
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

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

Geri
Üst