Marco Posted October 18, 2017 at 04:31 AM Share Posted October 18, 2017 at 04:31 AM Boas, deixo aqui um pequeno tutorial para desabilitar o uso de pot's e elixires em duelo Espero que sirva para alguém, game/src Ficheiro: char_item.cpp 1.) Add header: #include "pvp.h" 2.) Search: case USE_POTION: 3.) Add after: 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; } } game/src/ Ficheiro: pvp.cpp 1.) Search: void CPVPManager::ConnectEx(LPCHARACTER pkChr, bool bDisconnect) 2.) Add before: 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; } game/src Ficheiro: pvp.h 1.) Search: virtual ~CPVPManager(); 2.) Add after: bool IsFighting(LPCHARACTER pkChr); bool IsFighting(DWORD dwPID); ########################################################### ############# Os pot's já estão bloqueados :D ############# ########################################################### ########################################################### # Agora vamos bloquear os elixires ( Obrigado ao Tierri ) # ########################################################### game/src Ficheiro: char_item.cpp 1.) Search: 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: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S: { if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.")); return false; } 2.) Add after: if (CPVPManager::instance().IsFighting(GetPlayerID())){ ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!"); return false;} Relativamente a créditos não irei dar o meu nome, pois não fui eu que fiz tal coisa e obtive através de um amigo, um especial obrigado ao @Tierri Lopes pela parte dos elixires. 2 Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted October 18, 2017 at 12:33 PM Share Posted October 18, 2017 at 12:33 PM Caso também queiras bloquear os elixires, em char_item.cpp, procura por: 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: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S: { if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.")); return false; } Adiciona isto a seguir: if (CPVPManager::instance().IsFighting(GetPlayerID())){ ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!"); return false;} 1 Link to comment Share on other sites More sharing options...
Marco Posted October 18, 2017 at 08:16 PM Author Share Posted October 18, 2017 at 08:16 PM 7 horas atrás, Tierri Lopes disse: Caso também queiras bloquear os elixires, em char_item.cpp, procura por: 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: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S: { if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.")); return false; } Adiciona isto a seguir: if (CPVPManager::instance().IsFighting(GetPlayerID())){ ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!"); return false;} Editei o tópico e add essa parte Obrigado génio Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now