Psych0SoociaL 1
Psych0SoociaL
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle

[C++ Python] Lycan tamamiyle kaldırma.

  • Konuyu başlatan Konuyu başlatan SelcukCUKUR
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 31
  • Görüntüleme Görüntüleme 11K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhaba forumda geliştirici arkadaşlar varmış global chat için bile 2 satır kod için bile full src full pack :D paylaşan neyse konuyu saptırmayacağım.

1. input_main.cpp açın.

Kod:
if (ch->GetJob() == JOB_WOLFMAN && bArg >= 16 && bArg <= 20)

Bunu aratın.

Kod:
if (ch->GetJob() == JOB_WOLFMAN && bArg >= 16 && bArg <= 20)
{
return false;
}

Bu satırı komple source içerisinden silin.

Kod:
if (CheckSpeedHack && ComboInterval < ch->GetValidComboInterval() - COMBO_HACK_ALLOWABLE_MS)

bu satırı aratın.

Kod:
                if (ch->GetJob() == JOB_WOLFMAN && Calc - ComboInterval < 400)
                {
                    return false;
                }

Komple kaldırın bu kısmı. Buradaki işimiz bitti.

2. input_login.cpp açın.

Kod:
case MAIN_RACE_WOLFMAN_M:
*ret_job = JOB_WOLFMAN;
break;

Şu kısmı bulup kaldırın.

Kod:
if (g_bEnableNewKingdomForWolfman && race == 8)

bunu aratın tekrardan.

Kod:
    //table->x        = CREATE_START_X(bEmpire) + number(-300, 300);
//    table->y        = CREATE_START_Y(bEmpire) + number(-300, 300);

    if (g_bEnableNewKingdomForWolfman && race == 8)
    {
        table->x = 808274 + number(-300, 300);
        table->y = 935090 + number(-300, 300);
    }
    else
    {
        table->x = CREATE_START_X(bEmpire) + number(-300, 300);
        table->y = CREATE_START_Y(bEmpire) + number(-300, 300);
    }

şöyle birr kodla karşılaşacaksınız büyük ihtimal sourcelerde farklılık gösterebilir ama ısaca kaldırmanız gereken yerleri görmüş olsanızda aynı yerlerde aramalar yaparak kaldırabilirsiniz ama farklılık göstermiyceğini düşünüyorum herkes kopyala yapıştır yapmış zaten .

aşağıdaki şekilde değiştirin o kod bloğunu.

Kod:
    table->x        = CREATE_START_X(bEmpire) + number(-300, 300);
    table->y        = CREATE_START_Y(bEmpire) + number(-300, 300);

buradaki işimizde bitti.

3. item.cpp açın.

Kod:
case JOB_WOLFMAN:

bu satırı aratın ve aşağıdaki kodu komple silin.

Kod:
case JOB_WOLFMAN:
if (GetAntiFlag() & ITEM_ANTIFLAG_WOLFMAN)
return false;
break;

buradaki işimizde bitti.

4. item_manager.cpp gülme krizine girdim burdaki eklemeyi gördüğümde :D

Kod:
if (LC_IsKorea() || LC_IsYMIR())

şu satırı aratın. ve aşağıdaki kodları kaldırın.

Kod:
DWORD dwSkillVnumWolfman;

Kod:
                dwSkillVnumWolfman = number(170, 175);
                CSkillProto * pkSki = CSkillManager::instance().Get(dwSkillVnumWolfman);
                if (!pkSki)
                    continue;

Buradan bu lycan sistemini eklyeen arkadaşı tebrik ediyorum bu kadar uğraşmak yerine skiller için üstteki ymirin orjinal ekli koduna zaten 1, 111 yerine 1,175 yapsaydı olurdu çünkü zaten officalinde olan bir şey lycan karakteri neyse konumuza dönelim.

Kod:
__WOLFMAN_CHARACTER__

bu satırı aratın ve aşağıdaki şekilde değiştirin.

Kod:
#ifdef __WOLFMAN_CHARACTER__
                        dwSkillVnum = number(221, 229);
#else
                        dwSkillVnum = number(221, 228);
#endif
                    }
                    else
                    {
#ifdef __WOLFMAN_CHARACTER__
                        dwSkillVnum = number(236, 244);
#else
                        dwSkillVnum = number(236, 243);
#endif

son hali aşağıdaki gibi olcak ordaki satırın.
Kod:
                if (number(1, 100) >= 70)
                {

                    item->SetSocket(0, dwSkillVnum);
                }

Burda bir aksaklık çıkabilir sorun yaşanırsa belirtin bir daha kontrol ederim benim kontrol etme fırsatım yok bu kısmı. Sorun çıkarsa eğer buildlenirken veya oyun içerisinde skill atarken ch düşebilir veya syserr verebilir verdiğinde büyük ihtimal if sorgusu boş döndüğündendir konuyla ilgili oyun hakında bilgisi olan bir geliştirmeci haberdar ederse ne olduğunu o satırda tam olarak düzenlerim oyunla çok alakam yok çünkü. tahminimce skill targetleri wolfman skilleriyle ilgili birşey.

buradaki işimizde bitti arkadaşlar. Game kısmından tamamiyle lycan'ı kaldırdık zaten paylaşılan dosyalarda lycan sorunsuz ve eksiksiz değilmiş bugluymuş. :)


EK OLARAK DEVAMI :)

ani.cpp açın. Ve aşağıdaki kod bloklarını kaldırın.

Kod:
        FN_NAME(WEAPON_CLAW);

Kod:
        case WEAPON_CLAW:
            strlcpy(format, "%s/%sclaw/combo_%02d.msa", sizeof(format));
            break;

Kod:
        case WEAPON_CLAW:

Kod:
        case WEAPON_CLAW:
            return "CLAW";

Kod:
        FN_NAME(MAIN_RACE_WOLFMAN_M);

Kod:
        case MAIN_RACE_WOLFMAN_M:

Kod:
        case MAIN_RACE_WOLFMAN_M:
            return "WOLFMAN_M";

ani.cpp ile işimiz bitti.


battle.cpp açın ve aşağıdaki kod bloklarını kaldırın.

Kod:
            case JOB_WOLFMAN:
                iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_WOLFMAN)) / 100;
                break;

Kod:
            case JOB_WOLFMAN:
                iAtk -= (iAtk * pkVictim->GetPoint(POINT_RESIST_WOLFMAN)) / 100;
                break;

Kod:
            case WEAPON_CLAW:
                break;

Kod:
            case WEAPON_CLAW:
                // iDam = iDam * (100 - pkVictim->GetPoint(POINT_RESIST_CLAW)) / 100;//orjinal pence sav
                iDam = iDam * (100 - pkVictim->GetPoint(POINT_RESIST_DAGGER)) / 100;//býcak sav oldu boyle
                break;

Kod:
    else if (item && item->GetSubType() == WEAPON_CLAW)
        real_speed /= 2;

Kod:
    // BLEED
    if (pkAttacker->GetPoint(POINT_BLEEDING_PCT) && !pkVictim->IsAffectFlag(AFF_BLEEDING) && !pkVictim->IsAffectFlag(AFF_POISON))
    {
        if (number(1, 100) <= pkAttacker->GetPoint(POINT_BLEEDING_PCT))
            pkVictim->AttackedByBleeding(pkAttacker);
    }

battle.cpp ile işimiz bitti.

char.cpp açın ve aşağıdaki kod bloklarını kaldırın.

Kod:
case POINT_BLEEDING_REDUCE:

Kod:
            case WEAPON_CLAW:
                dwMode = MOTION_MODE_CLAW;
                break;

Kod:
if (GetJob() == JOB_WOLFMAN && m_iComboHackCount <= 20)
        {
            return;
        }

Kod:
            case JOB_WOLFMAN:
                iStatAtk = (2 * GetPoint(POINT_ST));
                break;

aşağıdaki sutunu şu şekilde değiştirin.

Kod:
        case MAIN_RACE_WOLFMAN_M:
            return SEX_MALE;

Kod:
return SEX_MALE;

Kod:
        case MAIN_RACE_WOLFMAN_M:
            m_points.job = MAIN_RACE_WOLFMAN_M;
            break;

Kod:
        case POINT_ATTBONUS_WOLFMAN:

Kod:
        case POINT_BLEEDING_PCT:

char.cpp de işimiz bitti.

char_item.cpp açın ve aşağıdaki kod bloklarını değiştirin.

Kod:
        case JOB_WOLFMAN:
            if (item->GetAntiFlag() & ITEM_ANTIFLAG_WOLFMAN)
                return false;
            break;

char_item.cpp ile işimiz bitti.

char_manager.cpp açın ve aşağıdaki kod bloklarını kaldırın.

Kod:
#define FIND_JOB_WOLFMAN_0    (1 << 15)
#define FIND_JOB_WOLFMAN_1    (1 << 16)
#define FIND_JOB_WOLFMAN    (FIND_JOB_WOLFMAN_0 | FIND_JOB_WOLFMAN_1)

char_manager.cpp ile işimiz bitti.

char_resist.cpp açın ve aşağıdakileri kaldırın.

Kod:
    iRate = MAX(0, iRate - ch->GetPoint(POINT_BLEEDING_REDUCE));
    return iRate;

char_resist.cpp ile işimiz bitti.

char_skill.cpp açın ve aşağıdakileri kaldırın.

Kod:
else if (m_pkSk->dwVnum == SKILL_GONGDAB)
        {
            float adjust = 1.0;
            if (m_pkChr->GetWear(WEAR_WEAPON) && m_pkChr->GetWear(WEAR_WEAPON)->GetSubType() == WEAPON_CLAW)
            {
                adjust = 1.35f;
            }

            iAmount = (int)(iAmount * adjust);
        }

Kod:
                            case WEAPON_CLAW:
                                // iDam = iDam * (100 - pkChrVictim->GetPoint(POINT_RESIST_CLAW)) / 100;//orjinal pence sav
                                iDam = iDam * (100 - pkChrVictim->GetPoint(POINT_RESIST_DAGGER)) / 100;//Býcak sav oldu boyle
                                break;

char_skill.cpp ile işimiz bitti.

config.cpp açın ve şunu kaldırın.

Kod:
bool g_bEnableNewKingdomForWolfman = true;

Kod:
        TOKEN("enable_new_kingdom_for_wolfman")
        {
            str_to_number(g_bEnableNewKingdomForWolfman, value_string);
            continue;
        }

config.cpp ile işimiz bitti.


ve sourceden tamamiyle kaldırdık. hayırlı uğurlu olsun eklemek isteyenler tam tersini yapabilirler.

Python olarak, kaldırmayıda ekleyecektim fakat elemiyorum çünkü config kodları mevcut en sağlıklısı o olacaktır.

root.epk & root.eix açın.

consinfo.py içerisinde:

Kod:
WOLF_MAN = "ENABLED"    # ENABLED/DISABLED
WOLF_WOMEN = "ENABLED"    # ENABLED/DISABLED

Kısımlarını DISABLED yapın.

 
Son düzenleme:
Merhaba forumda geliştirici arkadaşlar varmış global chat için bile 2 satır kod için bile full src full pack :D paylaşan neyse konuyu saptırmayacağım.

1. input_main.cpp açın.

Kod:
if (ch->GetJob() == JOB_WOLFMAN && bArg >= 16 && bArg <= 20)

Bunu aratın.

Kod:
if (ch->GetJob() == JOB_WOLFMAN && bArg >= 16 && bArg <= 20)
{
return false;
}

Bu satırı komple source içerisinden silin.

Kod:
if (CheckSpeedHack && ComboInterval < ch->GetValidComboInterval() - COMBO_HACK_ALLOWABLE_MS)

bu satırı aratın.

Kod:
                if (ch->GetJob() == JOB_WOLFMAN && Calc - ComboInterval < 400)
                {
                    return false;
                }

Komple kaldırın bu kısmı. Buradaki işimiz bitti.

2. input_login.cpp açın.

Kod:
case MAIN_RACE_WOLFMAN_M:
*ret_job = JOB_WOLFMAN;
break;

Şu kısmı bulup kaldırın.

Kod:
if (g_bEnableNewKingdomForWolfman && race == 8)

bunu aratın tekrardan.

Kod:
    //table->x        = CREATE_START_X(bEmpire) + number(-300, 300);
//    table->y        = CREATE_START_Y(bEmpire) + number(-300, 300);

    if (g_bEnableNewKingdomForWolfman && race == 8)
    {
        table->x = 808274 + number(-300, 300);
        table->y = 935090 + number(-300, 300);
    }
    else
    {
        table->x = CREATE_START_X(bEmpire) + number(-300, 300);
        table->y = CREATE_START_Y(bEmpire) + number(-300, 300);
    }

şöyle birr kodla karşılaşacaksınız büyük ihtimal sourcelerde farklılık gösterebilir ama ısaca kaldırmanız gereken yerleri görmüş olsanızda aynı yerlerde aramalar yaparak kaldırabilirsiniz ama farklılık göstermiyceğini düşünüyorum herkes kopyala yapıştır yapmış zaten .

aşağıdaki şekilde değiştirin o kod bloğunu.

Kod:
    table->x        = CREATE_START_X(bEmpire) + number(-300, 300);
    table->y        = CREATE_START_Y(bEmpire) + number(-300, 300);

buradaki işimizde bitti.

3. item.cpp açın.

Kod:
case JOB_WOLFMAN:

bu satırı aratın ve aşağıdaki kodu komple silin.

Kod:
case JOB_WOLFMAN:
if (GetAntiFlag() & ITEM_ANTIFLAG_WOLFMAN)
return false;
break;

buradaki işimizde bitti.

4. item_manager.cpp gülme krizine girdim burdaki eklemeyi gördüğümde :D

Kod:
if (LC_IsKorea() || LC_IsYMIR())

şu satırı aratın. ve aşağıdaki kodları kaldırın.

Kod:
DWORD dwSkillVnumWolfman;

Kod:
                dwSkillVnumWolfman = number(170, 175);
                CSkillProto * pkSki = CSkillManager::instance().Get(dwSkillVnumWolfman);
                if (!pkSki)
                    continue;

Buradan bu lycan sistemini eklyeen arkadaşı tebrik ediyorum bu kadar uğraşmak yerine skiller için üstteki ymirin orjinal ekli koduna zaten 1, 111 yerine 1,175 yapsaydı olurdu çünkü zaten officalinde olan bir şey lycan karakteri neyse konumuza dönelim.

Kod:
__WOLFMAN_CHARACTER__

bu satırı aratın ve aşağıdaki şekilde değiştirin.

Kod:
#ifdef __WOLFMAN_CHARACTER__
                        dwSkillVnum = number(221, 229);
#else
                        dwSkillVnum = number(221, 228);
#endif
                    }
                    else
                    {
#ifdef __WOLFMAN_CHARACTER__
                        dwSkillVnum = number(236, 244);
#else
                        dwSkillVnum = number(236, 243);
#endif

son hali aşağıdaki gibi olcak ordaki satırın.
Kod:
                if (number(1, 100) >= 70)
                {

                    item->SetSocket(0, dwSkillVnum);
                }

Burda bir aksaklık çıkabilir sorun yaşanırsa belirtin bir daha kontrol ederim benim kontrol etme fırsatım yok bu kısmı. Sorun çıkarsa eğer buildlenirken veya oyun içerisinde skill atarken ch düşebilir veya syserr verebilir verdiğinde büyük ihtimal if sorgusu boş döndüğündendir konuyla ilgili oyun hakında bilgisi olan bir geliştirmeci haberdar ederse ne olduğunu o satırda tam olarak düzenlerim oyunla çok alakam yok çünkü. tahminimce skill targetleri wolfman skilleriyle ilgili birşey.

buradaki işimizde bitti arkadaşlar. Game kısmından tamamiyle lycan'ı kaldırdık zaten paylaşılan dosyalarda lycan sorunsuz ve eksiksiz değilmiş bugluymuş. :)

Client yani Pack kısmına gelelim.

Şimdi bende zeki arkadaşımız şöyle bir şey yapmış bir epk .eix oluşturup onun içerine atmış wolfman dosyalarını ne kadar zekibir arkadaş herşeyi birr yere toplayarak mb yükseltebildiği kadar yükseltmiş aynı dosyaları süreli iç içe sokmuş neyse.

pc2 veya pc3 şekilde epk.eix vardır sizde bende farklı.

içerisinden wolfman klasörünü silip aşağıdakileri aratın içerisinde ve onlarıda kaldırıp sonra paketleyebilirsiniz.

Kod:
wolf_m.tga
wolf_w.tga

root.eix dosyasını pack editörünüzle açın ve içerisinde aşağıdaki işlemleri uygulayın.

aşağıdaki dosyayı silin:

Kod:
wolfman_m.msm

uicharacter.py içerisinden kaldırın:

Kod:
playerSettingModule.RACE_WOLFMAN_M  : "icon/face/wolfman_m.tga",

Kod:
        playerSettingModule.JOB_WOLFMAN        : { 1 : localeInfo.JOB_WOLFMAN1,    2 : localeInfo.JOB_WOLFMAN2,},

uicharacter.py'dende kaldırırsınız wolfman ile ilgili kısımları konuyu daha fazla uzatamıycam çok uzun oldu.

WOLFMAN diye aratıp kısımları bakıp kaldırırsınız. "locale_tr.epk , locale_tr.eix"

Konuyu tamamlamanız için 24 saat süre verilmiştir bu haliyle tamamiyle kaldırılmayacaktır.
 
Merhaba forumda geliştirici arkadaşlar varmış global chat için bile 2 satır kod için bile full src full pack :D paylaşan neyse konuyu saptırmayacağım.

1. input_main.cpp açın.

Kod:
if (ch->GetJob() == JOB_WOLFMAN && bArg >= 16 && bArg <= 20)

Bunu aratın.

Kod:
if (ch->GetJob() == JOB_WOLFMAN && bArg >= 16 && bArg <= 20)
{
return false;
}

Bu satırı komple source içerisinden silin.

Kod:
if (CheckSpeedHack && ComboInterval < ch->GetValidComboInterval() - COMBO_HACK_ALLOWABLE_MS)

bu satırı aratın.

Kod:
                if (ch->GetJob() == JOB_WOLFMAN && Calc - ComboInterval < 400)
                {
                    return false;
                }

Komple kaldırın bu kısmı. Buradaki işimiz bitti.

2. input_login.cpp açın.

Kod:
case MAIN_RACE_WOLFMAN_M:
*ret_job = JOB_WOLFMAN;
break;

Şu kısmı bulup kaldırın.

Kod:
if (g_bEnableNewKingdomForWolfman && race == 8)

bunu aratın tekrardan.

Kod:
    //table->x        = CREATE_START_X(bEmpire) + number(-300, 300);
//    table->y        = CREATE_START_Y(bEmpire) + number(-300, 300);

    if (g_bEnableNewKingdomForWolfman && race == 8)
    {
        table->x = 808274 + number(-300, 300);
        table->y = 935090 + number(-300, 300);
    }
    else
    {
        table->x = CREATE_START_X(bEmpire) + number(-300, 300);
        table->y = CREATE_START_Y(bEmpire) + number(-300, 300);
    }

şöyle birr kodla karşılaşacaksınız büyük ihtimal sourcelerde farklılık gösterebilir ama ısaca kaldırmanız gereken yerleri görmüş olsanızda aynı yerlerde aramalar yaparak kaldırabilirsiniz ama farklılık göstermiyceğini düşünüyorum herkes kopyala yapıştır yapmış zaten .

aşağıdaki şekilde değiştirin o kod bloğunu.

Kod:
    table->x        = CREATE_START_X(bEmpire) + number(-300, 300);
    table->y        = CREATE_START_Y(bEmpire) + number(-300, 300);

buradaki işimizde bitti.

3. item.cpp açın.

Kod:
case JOB_WOLFMAN:

bu satırı aratın ve aşağıdaki kodu komple silin.

Kod:
case JOB_WOLFMAN:
if (GetAntiFlag() & ITEM_ANTIFLAG_WOLFMAN)
return false;
break;

buradaki işimizde bitti.

4. item_manager.cpp gülme krizine girdim burdaki eklemeyi gördüğümde :D

Kod:
if (LC_IsKorea() || LC_IsYMIR())

şu satırı aratın. ve aşağıdaki kodları kaldırın.

Kod:
DWORD dwSkillVnumWolfman;

Kod:
                dwSkillVnumWolfman = number(170, 175);
                CSkillProto * pkSki = CSkillManager::instance().Get(dwSkillVnumWolfman);
                if (!pkSki)
                    continue;

Buradan bu lycan sistemini eklyeen arkadaşı tebrik ediyorum bu kadar uğraşmak yerine skiller için üstteki ymirin orjinal ekli koduna zaten 1, 111 yerine 1,175 yapsaydı olurdu çünkü zaten officalinde olan bir şey lycan karakteri neyse konumuza dönelim.

Kod:
__WOLFMAN_CHARACTER__

bu satırı aratın ve aşağıdaki şekilde değiştirin.

Kod:
#ifdef __WOLFMAN_CHARACTER__
                        dwSkillVnum = number(221, 229);
#else
                        dwSkillVnum = number(221, 228);
#endif
                    }
                    else
                    {
#ifdef __WOLFMAN_CHARACTER__
                        dwSkillVnum = number(236, 244);
#else
                        dwSkillVnum = number(236, 243);
#endif

son hali aşağıdaki gibi olcak ordaki satırın.
Kod:
                if (number(1, 100) >= 70)
                {

                    item->SetSocket(0, dwSkillVnum);
                }

Burda bir aksaklık çıkabilir sorun yaşanırsa belirtin bir daha kontrol ederim benim kontrol etme fırsatım yok bu kısmı. Sorun çıkarsa eğer buildlenirken veya oyun içerisinde skill atarken ch düşebilir veya syserr verebilir verdiğinde büyük ihtimal if sorgusu boş döndüğündendir konuyla ilgili oyun hakında bilgisi olan bir geliştirmeci haberdar ederse ne olduğunu o satırda tam olarak düzenlerim oyunla çok alakam yok çünkü. tahminimce skill targetleri wolfman skilleriyle ilgili birşey.

buradaki işimizde bitti arkadaşlar. Game kısmından tamamiyle lycan'ı kaldırdık zaten paylaşılan dosyalarda lycan sorunsuz ve eksiksiz değilmiş bugluymuş. :)

Client yani Pack kısmına gelelim.

Şimdi bende zeki arkadaşımız şöyle bir şey yapmış bir epk .eix oluşturup onun içerine atmış wolfman dosyalarını ne kadar zekibir arkadaş herşeyi birr yere toplayarak mb yükseltebildiği kadar yükseltmiş aynı dosyaları süreli iç içe sokmuş neyse.

pc2 veya pc3 şekilde epk.eix vardır sizde bende farklı.

içerisinden wolfman klasörünü silip aşağıdakileri aratın içerisinde ve onlarıda kaldırıp sonra paketleyebilirsiniz.

Kod:
wolf_m.tga
wolf_w.tga

root.eix dosyasını pack editörünüzle açın ve içerisinde aşağıdaki işlemleri uygulayın.

aşağıdaki dosyayı silin:

Kod:
wolfman_m.msm

uicharacter.py içerisinden kaldırın:

Kod:
playerSettingModule.RACE_WOLFMAN_M  : "icon/face/wolfman_m.tga",

Kod:
        playerSettingModule.JOB_WOLFMAN        : { 1 : localeInfo.JOB_WOLFMAN1,    2 : localeInfo.JOB_WOLFMAN2,},

uicharacter.py'dende kaldırırsınız wolfman ile ilgili kısımları konuyu daha fazla uzatamıycam çok uzun oldu.

WOLFMAN diye aratıp kısımları bakıp kaldırırsınız. "locale_tr.epk , locale_tr.eix"


Sence lycan kodları bunlardan ibaret mi? bence değil.
 

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

Geri
Üst