Yardım Ranking Sistem

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

MCB

Premium Üye
Premium Üye
MT Üye
Mesaj
208
Çözümler
16
Beğeni
55
Puan
109
Ticaret Puanı
0
1712687431572.png


1712687450317.png


Sistemde Sql tarafı kaydediyor fakat Oyunda güncellenmiyor Sebebi ne olabilir ?
 
game srcden kill fonksiyonları girmişsindir kesilen_metin ve kesilen_patron sütunlarının game src tarafını atar mısın
 
char.h:
    int                stamina;

    BYTE            skill_group;
#ifdef ENABLE_NEW_RANKING
    ULL            kesilenMetin;
    ULL            kesilenBoss;
    ULL            acilanSandik;
    ULL            metinHasar;
    ULL            patronHasar;
#endif
} CHARACTER_POINT;

public:
    int        GetDsLoadTime() const { return m_iDsLoadTime; }
    void    SetDsLoadTime() { m_iDsLoadTime = thecore_pulse(); }

    int        GetEquipLoadTime() const { return m_iEquipLoadTime; }
    void    SetEquipLoadTime() { m_iEquipLoadTime = thecore_pulse(); }
#endif // ENABLE_TIME_CONTROL
#ifdef ENABLE_NEW_RANKING
public:
    ULL        GetKesilenMetin() const { return m_points.kesilenMetin; }
    void    SetKesilenMetin(const ULL vnum) { m_points.kesilenMetin = vnum; }

    ULL        GetKesilenBoss() const { return m_points.kesilenBoss; }
    void    SetKesilenBoss(const ULL vnum) { m_points.kesilenBoss = vnum; }

    ULL        GetAcilanSandik() const { return m_points.acilanSandik; }
    void    SetAcilanSandik(const ULL vnum) { m_points.acilanSandik = vnum; }

    int        GetRankGiftTime() const { return m_iRankGiftTime; }
    void    SetRankGiftTime(const int value) { m_iRankGiftTime = value; }

    ULL        GetmetinHasar() const    { return m_points.metinHasar; }
    void        SetmetinHasar(const ULL vnum)    { m_points.metinHasar = vnum; }

    ULL        GetpatronHasar() const    { return m_points.patronHasar; }
    void        SetpatronHasar(const ULL vnum)    { m_points.patronHasar = vnum; }

private:
    int m_iRankGiftTime;
#endif
};

ESex GET_SEX(LPCHARACTER ch);

char.cpp:
    tab.sRandomHP = m_points.iRandomHP;
    tab.sRandomSP = m_points.iRandomSP;

#ifdef ENABLE_KILL_STATISTICS
    tab.iJinnoKills = GetJinnoKills();
    tab.iShinsooKills = GetShinsooKills();
    tab.iChunjoKills = GetChunjoKills();
    tab.iTotalKills = GetTotalKills();
    tab.iTotalDeaths = GetTotalDeaths();
    tab.iDuelsWon = GetDuelsWon();
    tab.iDuelsLost = GetDuelsLost();
    tab.iBossesKills = GetBossesKills();
    tab.iStonesKills = GetStonesKills();
    tab.iMobsKills = GetMobsKills();
    tab.top_damage = GetTopDamage();
#endif

#ifdef ENABLE_NEW_RANKING
    tab.kesilenMetin = GetKesilenMetin();
    tab.kesilenBoss = GetKesilenBoss();
    tab.acilanSandik = GetAcilanSandik();
    tab.metinHasar = GetmetinHasar();
    tab.patronHasar = GetpatronHasar();
#endif

    for (int i = 0; i < QUICKSLOT_MAX_NUM; ++i)
        tab.quickslot[i] = m_quickslot[i];

SetRace(t->job);

SetLevel(t->level);
SetExp(t->exp);
SetGold(t->gold);
#ifdef ENABLE_NEW_RANKING
SetKesilenMetin(t->kesilenMetin);
SetKesilenBoss(t->kesilenBoss);
SetAcilanSandik(t->acilanSandik);
SetmetinHasar(t->metinHasar);
SetpatronHasar(t->patronHasar);
#endif
SetMapIndex(t->lMapIndex);
SetXYZ(t->x, t->y, t->z);

ComputePoints();

SetHP(t->hp);
SetSP(t->sp);
SetStamina(t->stamina);

charbattle.cpp:
    if (pkKiller && pkKiller->IsPC())
    {
        if (pkKiller->m_pkChrTarget == this)
            pkKiller->SetTarget(NULL);

        if (!IsPC() && pkKiller->GetDungeon())
            pkKiller->GetDungeon()->IncKillCount(pkKiller, this);

        isAgreedPVP = CPVPManager::instance().Dead(this, pkKiller->GetPlayerID());
        isDuel = CArenaManager::instance().OnDead(pkKiller, this);

        if (IsPC())
        {
            CGuild* g1 = GetGuild();
            CGuild* g2 = pkKiller->GetGuild();

            if (g1 && g2)
                if (g1->UnderWar(g2->GetID()))
                    isUnderGuildWar = true;

            pkKiller->SetQuestNPCID(GetVID());
            quest::CQuestManager::instance().Kill(pkKiller->GetPlayerID(), quest::QUEST_NO_NPC);
            CGuildManager::instance().Kill(pkKiller, this);
        }
#ifdef ENABLE_NEW_RANKING
#    ifdef BOSS_ARENA
        if (GetMobRank() >= MOB_RANK_BOSS && IsMonster() && pkKiller && pkKiller->IsPC())
        {
            if (!pkKiller->GetBossArenaTest()) //Karakter test boss modunda degilse
                pkKiller->SetKesilenBoss(pkKiller->GetKesilenBoss() + 1); //Kesilen boss sayisini globalde arttir.
        }
#    else
        if (GetMobRank() >= MOB_RANK_BOSS && pkKiller && pkKiller->IsPC())
            pkKiller->SetKesilenBoss(pkKiller->GetKesilenBoss() + 1);
#    endif
        if (IsStone())
            pkKiller->SetKesilenMetin(pkKiller->GetKesilenMetin() + 1);
#endif
    }

#ifdef ENABLE_QUEST_DIE_EVENT
    if (IsPC())
    {
        if (pkKiller)
            SetQuestNPCID(pkKiller->GetVID());
        // quest::CQuestManager::instance().Die(GetPlayerID(), quest::QUEST_NO_NPC);
        quest::CQuestManager::instance().Die(GetPlayerID(), (pkKiller) ? pkKiller->GetRaceNum() : quest::QUEST_NO_NPC);
    }
#endif
 

Dosya Eklentileri

  • 1712769132842.png
    1712769132842.png
    12,2 KB · Gösterim: 8
  • 1712769175135.png
    1712769175135.png
    7,8 KB · Gösterim: 8
char.h:
    int                stamina;

    BYTE            skill_group;
#ifdef ENABLE_NEW_RANKING
    ULL            kesilenMetin;
    ULL            kesilenBoss;
    ULL            acilanSandik;
    ULL            metinHasar;
    ULL            patronHasar;
#endif
} CHARACTER_POINT;

public:
    int        GetDsLoadTime() const { return m_iDsLoadTime; }
    void    SetDsLoadTime() { m_iDsLoadTime = thecore_pulse(); }

    int        GetEquipLoadTime() const { return m_iEquipLoadTime; }
    void    SetEquipLoadTime() { m_iEquipLoadTime = thecore_pulse(); }
#endif // ENABLE_TIME_CONTROL
#ifdef ENABLE_NEW_RANKING
public:
    ULL        GetKesilenMetin() const { return m_points.kesilenMetin; }
    void    SetKesilenMetin(const ULL vnum) { m_points.kesilenMetin = vnum; }

    ULL        GetKesilenBoss() const { return m_points.kesilenBoss; }
    void    SetKesilenBoss(const ULL vnum) { m_points.kesilenBoss = vnum; }

    ULL        GetAcilanSandik() const { return m_points.acilanSandik; }
    void    SetAcilanSandik(const ULL vnum) { m_points.acilanSandik = vnum; }

    int        GetRankGiftTime() const { return m_iRankGiftTime; }
    void    SetRankGiftTime(const int value) { m_iRankGiftTime = value; }

    ULL        GetmetinHasar() const    { return m_points.metinHasar; }
    void        SetmetinHasar(const ULL vnum)    { m_points.metinHasar = vnum; }

    ULL        GetpatronHasar() const    { return m_points.patronHasar; }
    void        SetpatronHasar(const ULL vnum)    { m_points.patronHasar = vnum; }

private:
    int m_iRankGiftTime;
#endif
};

ESex GET_SEX(LPCHARACTER ch);

char.cpp:
    tab.sRandomHP = m_points.iRandomHP;
    tab.sRandomSP = m_points.iRandomSP;

#ifdef ENABLE_KILL_STATISTICS
    tab.iJinnoKills = GetJinnoKills();
    tab.iShinsooKills = GetShinsooKills();
    tab.iChunjoKills = GetChunjoKills();
    tab.iTotalKills = GetTotalKills();
    tab.iTotalDeaths = GetTotalDeaths();
    tab.iDuelsWon = GetDuelsWon();
    tab.iDuelsLost = GetDuelsLost();
    tab.iBossesKills = GetBossesKills();
    tab.iStonesKills = GetStonesKills();
    tab.iMobsKills = GetMobsKills();
    tab.top_damage = GetTopDamage();
#endif

#ifdef ENABLE_NEW_RANKING
    tab.kesilenMetin = GetKesilenMetin();
    tab.kesilenBoss = GetKesilenBoss();
    tab.acilanSandik = GetAcilanSandik();
    tab.metinHasar = GetmetinHasar();
    tab.patronHasar = GetpatronHasar();
#endif

    for (int i = 0; i < QUICKSLOT_MAX_NUM; ++i)
        tab.quickslot[i] = m_quickslot[i];
    SetRace(t->job);

    SetLevel(t->level);
    SetExp(t->exp);
    SetGold(t->gold);
#ifdef ENABLE_NEW_RANKING
    SetKesilenMetin(t->kesilenMetin);
    SetKesilenBoss(t->kesilenBoss);
    SetAcilanSandik(t->acilanSandik);
    SetmetinHasar(t->metinHasar);
    SetpatronHasar(t->patronHasar);
#endif
    SetMapIndex(t->lMapIndex);
    SetXYZ(t->x, t->y, t->z);

    ComputePoints();

    SetHP(t->hp);
    SetSP(t->sp);
    SetStamina(t->stamina);
[/CODE]

charbattle.cpp:
    if (pkKiller && pkKiller->IsPC())
    {
        if (pkKiller->m_pkChrTarget == this)
            pkKiller->SetTarget(NULL);

        if (!IsPC() && pkKiller->GetDungeon())
            pkKiller->GetDungeon()->IncKillCount(pkKiller, this);

        isAgreedPVP = CPVPManager::instance().Dead(this, pkKiller->GetPlayerID());
        isDuel = CArenaManager::instance().OnDead(pkKiller, this);

        if (IsPC())
        {
            CGuild* g1 = GetGuild();
            CGuild* g2 = pkKiller->GetGuild();

            if (g1 && g2)
                if (g1->UnderWar(g2->GetID()))
                    isUnderGuildWar = true;

            pkKiller->SetQuestNPCID(GetVID());
            quest::CQuestManager::instance().Kill(pkKiller->GetPlayerID(), quest::QUEST_NO_NPC);
            CGuildManager::instance().Kill(pkKiller, this);
        }
#ifdef ENABLE_NEW_RANKING
#    ifdef BOSS_ARENA
        if (GetMobRank() >= MOB_RANK_BOSS && IsMonster() && pkKiller && pkKiller->IsPC())
        {
            if (!pkKiller->GetBossArenaTest()) //Karakter test boss modunda degilse
                pkKiller->SetKesilenBoss(pkKiller->GetKesilenBoss() + 1); //Kesilen boss sayisini globalde arttir.
        }
#    else
        if (GetMobRank() >= MOB_RANK_BOSS && pkKiller && pkKiller->IsPC())
            pkKiller->SetKesilenBoss(pkKiller->GetKesilenBoss() + 1);
#    endif
        if (IsStone())
            pkKiller->SetKesilenMetin(pkKiller->GetKesilenMetin() + 1);
#endif
    }

#ifdef ENABLE_QUEST_DIE_EVENT
    if (IsPC())
    {
        if (pkKiller)
            SetQuestNPCID(pkKiller->GetVID());
        // quest::CQuestManager::instance().Die(GetPlayerID(), quest::QUEST_NO_NPC);
        quest::CQuestManager::instance().Die(GetPlayerID(), (pkKiller) ? pkKiller->GetRaceNum() : quest::QUEST_NO_NPC);
    }
#endif
 
Kill İstatistikten kontrol ettimde Patron kısmını Canavardan çekiyor. yani Metin keserken Canavar işlevli slotlar Patron olarak işliyor.
 
Geri
Üst