Guida [FIX]party_kill C++

Stato
Discussione chiusa ad ulteriori risposte.

Michs

Bannato
8 Dicembre 2015
1,789
70
257
593
Su richiesta di @Hik pubblico questa fix per il party_kill.

  • Qual'è il problema? Il leader del gruppo , utilizzando la funzione party_kill (es. -> 101.party_kill) riceve una doppia ricompensa degli item.

Recatevi sul file /game/src/questmanager.cpp e cercate questa stringa:
C++:
    void CQuestManager::Kill(unsigned int pc, unsigned int npc)
Modifica l'intero void con questo codice:
C++:
    void CQuestManager::Kill(unsigned int pc, unsigned int npc)
    {
        PC * pPC;

        sys_log(0, "CQuestManager::Kill QUEST_KILL_EVENT (pc=%d, npc=%d)", pc, npc);

        if ((pPC = GetPC(pc)))
        {
            if (!CheckQuestLoaded(pPC))
                return;

            if (npc >= MAIN_RACE_MAX_NUM) 
                m_mapNPC[npc].OnKill(*pPC);
            m_mapNPC[QUEST_NO_NPC].OnKill(*pPC);
 
            LPCHARACTER ch = GetCurrentCharacterPtr();
            LPPARTY pParty = ch->GetParty();
            LPCHARACTER leader = pParty ? pParty->GetLeaderCharacter() : ch;
            if (leader)
            {
                m_pCurrentPartyMember = ch;
                if (npc >= MAIN_RACE_MAX_NUM)
                    m_mapNPC[npc].OnPartyKill(*GetPC(leader->GetPlayerID()));
                m_mapNPC[QUEST_NO_NPC].OnPartyKill(*GetPC(leader->GetPlayerID()));

                pPC = GetPC(pc);
            }
        }
        else
            sys_err("QUEST: no such pc id : %d", pc);
    }

Spero che questa fix vi sia stata utile,

Cordiali Saluti.
 
  • Mi piace
Reazioni: Athes e Hik
Stato
Discussione chiusa ad ulteriori risposte.