[C++] is_pvp

Metin2 Global - Un server de calitate !
Deconectat
Avatar utilizator
Electrico
Nivel 2
Nivel 2
Mesaje: 290
Membru din: 16 Oct 2015
Localitate: New York
Status: Online
Server Metin2: Respawn
Regat: Jinno
Mulțumiri acordate: 0
Mulțumiri primite: 1

[C++] is_pvp

Mesajde Electrico » 29 Oct 2015, 21:15

Ce face acest IS_PVP ?
Cand cineva da duel poti face sa se intample ceva, daca bagi de exemplu questu care l-am pus si esti in duel o sa iti apara say( test ).

Deschideți pvp.cpp.

Adăugați la sfârșit:

Cod: Selectaţi tot

bool CPVPManager::IsPvP(LPCHARACTER pkChr)
{
    CPVPSetMap::iterator it = m_map_pkPVPSetByID.find(pkChr->GetPlayerID());
 
    if (it == m_map_pkPVPSetByID.end())
        return false;
 
    TR1_NS::unordered_set<CPVP*>::iterator it2 = it->second.begin();
 
    while (it2 != it->second.end())
    {
        CPVP * pkPVP = *it2++;
                 

Deschideți pvp.h.
Căutați:

Cod: Selectaţi tot

void            Process();

Adăugați sub:

Cod: Selectaţi tot

bool            IsPvP(LPCHARACTER pkChr);

Deschideți questlua_pc.cpp.
Includeți pvp.h.

Cod: Selectaţi tot

#include "pvp.h"

Apoi adăugați funcția:

Cod: Selectaţi tot

int is_pvp(lua_State* L)
{
    LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
    LPCHARACTER npc = CQuestManager::instance().GetCurrentNPCCharacterPtr();
 
    if (!npc->IsPC())
    {
        lua_pushboolean(L, 0);
        return 1;
    }
 
    CPVP kPVP(ch->GetPlayerID(), npc->GetPlayerID());
    CPVP * pkPVP = CPVPManager::instance().Find(kPVP.m_dwCRC);
 
    if (!pkPVP || !pkPVP->IsFight())
    {
        lua_pushboolean(L, 0);
        return 1;
    }
 
    lua_pushboolean(L, 1);
    return 1;
}

În tabelul

Cod: Selectaţi tot

void RegisterPCFunctionTable()
adăugați:

Cod: Selectaţi tot

         { "is_pvp",      pc_is_pvp         },

Compilați și testați cu acest quest !

Cod: Selectaţi tot

quest is_pvp begin
   state start begin
        when login or dead begin
         if pc.is_pvp() then
            say("test")
            return
         end
      end
   end
end
Imagine

Daca te-am ajutat, apasa pe butonul "Multumesc" !

Deconectat
Avatar utilizator
M.Seby
Utilizator interzis !
Utilizator interzis !
Mesaje: 3013
Membru din: 10 Sep 2013
Localitate: Suceava
Reputație: Fost Administrator
Fost Organizator echipă
Status: Sunt bine mersi ^.^
Server Metin2: Not Found
Regat: Jinno
Mulțumiri acordate: 1
Mulțumiri primite: 9
Contact:

Re: [C++] is_pvp

Mesajde M.Seby » 29 Oct 2015, 21:31

Postat
Imagine

Contact:

Skype: seby_061


Înapoi la “Arhivă”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori