Elixir Block In Duel

Indította Xeron, 2018-03-17, 12:44:05

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.!
"A színpadon törtek elÅ' belÅ'lem a sötét erÅ'k!"

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
HTML5,CSS3,PHP,C#,C++,JS,Java,Python,LUA

Oh csinálom is. Ki is ment a fejemből. Köszönöm a segítséget ment a +!
"A színpadon törtek elÅ' belÅ'lem a sötét erÅ'k!"