Yardım Lonca Savaşı Hakkında

  • Konuyu açan Konuyu açan DarkNight
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 337
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

DarkNight

Üye
Üye
Mesaj
100
Çözümler
8
Beğeni
24
Puan
449
Ticaret Puanı
0
Öncelikle herkese iyi forumlar diliyorum.
Üzerinde çalışmış olduğum filesimde lonca savaşları ile alakalı bir sürece geldim.
Bu süreçte bakmamı önerdiğiniz, kendi çalışmalarınızda hata aldığınız veya fixlenmesi gerektiğini düşündüğünüz hususlar nelerdir?
Bu bana rehber niteliğinde bir katkı sağlar ve ona göre testler ve düzenlemeler yapabilirim.​
 
Lonca exploit fixi:
Genişlet Daralt Kopyala
Game-Db Source/Server/common/service.h

gir ve müsait bir yere ekle;

#define ENABLE_LONCA_YANG_FIX

Game-Db Source/Server/game/src/input_main.cpp

gir ve arat;

                const int gold = MIN(*reinterpret_cast<const int*>(c_pData), 500000);

değiştir;

#ifdef ENABLE_LONCA_YANG_FIX
                const int gold = *reinterpret_cast<const int*>(c_pData);
#else
                const int gold = MIN(*reinterpret_cast<const int*>(c_pData), 500000);
#endif

tekrar arat;

                pGuild->RequestWithdrawMoney(ch, gold);

üstüne ekle ve derle;

#ifdef ENABLE_LONCA_YANG_FIX
                if(ch->GetGold()+gold/**/ >= /**/ GOLD_MAX)
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, "Yang miktarın maksimum seviyeye ulaşmış.");
                    return SubPacketLen;
                }
#endif
Lonca imparatorluk bugu fixi:
Genişlet Daralt Kopyala
//Game-Db Source/Server/game/src/char_change_empire.cpp

//gir ve arat;

        if (msg->Get()->uiAffectedRows > 0)
        {
            SetChangeEmpireCount();
            SetEmpire(empire);
            return 999;
        }

//değiştir ve derle;

        if (msg->Get()->uiAffectedRows > 0)
        {
            SetChangeEmpireCount();
            SetEmpire(empire); // bug fix ds_aim
            UpdatePacket();  // bug fix ds_aim thanks .Alpha
            return 999;
        }
Benden bunlar çıkar gerisi sizde arkadaşlar :D
 
Son düzenleme:
Lonca savaşlarıyla alakalı toplu bir konu yok ve yapılan fixler ne mantıkla yapıldı paylaşılmıyor.
Deneyim sonuç aldığım fixleri ve işlevlerini konu altında paylaşacağım.
Sizlerde katkıda bulunursanız sevinirim.​
Lonca Savaşı Esnasında Lonca Silmek Fix:
Genişlet Daralt Kopyala
questlua_pc.cpp'de arat ve değiştir.

#ifdef ENABLE_FIX_DESTROY_GUILD_IF_WAR_IS_ACTIVE
    int pc_destroy_guild(lua_State * L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        CGuild * g = ch->GetGuild();

        if (g)
        {
            if(g->UnderAnyWar())
            {
                ch->ChatPacket(CHAT_TYPE_INFO, "Lonca savasi esnasinda loncayi dagitamazsiniz");
                return 0;
            }
            else
                g->RequestDisband(ch->GetPlayerID());
        }

        return 0;
    }

    int pc_remove_from_guild(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        CGuild * g = ch->GetGuild();

        if (g)
        {
            if(g->UnderAnyWar())
            {
                ch->ChatPacket(CHAT_TYPE_INFO, "Lonca savasi esnasinda loncayi dagitamazsiniz");
                return 0;
            }
            else
                g->RequestRemoveMember(ch->GetPlayerID());
        }

        return 0;
    }
#else
    int pc_destroy_guild(lua_State * L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        CGuild * g = ch->GetGuild();

        if (g)
            g->RequestDisband(ch->GetPlayerID());

        return 0;
    }

    int pc_remove_from_guild(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        CGuild * g = ch->GetGuild();

        if (g)
            g->RequestRemoveMember(ch->GetPlayerID());

        return 0;
    }
#endif

Service.h:
Genişlet Daralt Kopyala
#define ENABLE_FIX_DESTROY_GUILD_IF_WAR_IS_ACTIVE
 
Üst