Sziasztok!
Ma dolgoztam forrásban és a potit sikeresen letiltottam, hogy ne tudják pvp közben használni.
De az Elixírekre valahogy ez nem hatott ki. Ugyan úgy lehet használni az Elixíreket pvp közben.
Találtam róla egy DEV -es leírást de nekem az valamiért nem működik. (https://metin2dev.org/board/index.php?/topic/14809-howtoanti-elixir-in-duel/)! Ha valaki esetleg ebben a dologban egy kis segítséget tudna nekem nyújtani azt meg köszönném.
Én így oldottam meg:
//@Source/Game/char_item.cpp
//1.) Add header:
#include "pvp.h"
case USE_POTION:
if (CPVPManager::instance().IsFighting(GetPlayerID()))
{
switch (item->GetVnum())
{
case 27001:
case 27002:
case 27003:
case 27004:
case 27005:
case 27006:
ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!");
return false;
break;
}
}
//@Source/Game/pvp.cpp
void CPVPManager::ConnectEx(LPCHARACTER pkChr, bool bDisconnect)
bool CPVPManager::IsFighting(LPCHARACTER pkChr)
{
if (!pkChr)
return false;
return IsFighting(pkChr->GetPlayerID());
}
bool CPVPManager::IsFighting(DWORD dwPID)
{
CPVPSetMap::iterator it = m_map_pkPVPSetByID.find(dwPID);
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++;
if (pkPVP->IsFight())
return true;
}
return false;
}
//@Source/Game/pvp.h
virtual ~CPVPManager();
bool IsFighting(LPCHARACTER pkChr);
bool IsFighting(DWORD dwPID);
A Válaszokat előre is köszönöm.!
Szia!
Mert az elixírek külön vannak.
Neked ez kell a char_item.cpp-ben:
case ITEM_AUTO_HP_RECOVERY_S:
case ITEM_AUTO_HP_RECOVERY_M:
case ITEM_AUTO_HP_RECOVERY_L:
case ITEM_AUTO_HP_RECOVERY_X:
case ITEM_AUTO_SP_RECOVERY_S:
case ITEM_AUTO_SP_RECOVERY_M:
case ITEM_AUTO_SP_RECOVERY_L:
case ITEM_AUTO_SP_RECOVERY_X:
Tehát ez alá:
if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
return false;
}
Beírod ezt:
if (CPVPManager::instance().IsFighting(GetPlayerID()))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Valami."));
return false;
}
Üdv, ~ MagicBoss
Oh csinálom is. Ki is ment a fejemből. Köszönöm a segítséget ment a +!