For whom this is still relevant, the problem with equipping a horse and a crow at the same time! go to the server opens the protocol.cpp file go to method
before him we announce
then we move to the case
replace the contents of this case with this
I spied this decision in the 13th season. In general, I did as I could if someone corrects it, I will be glad
Code:
void GameProtocol :: CGInventoryEquipment (_tagPMSG_REQ_INVENTORY_EQUIPMENT_ITEM * lpMsg, int iIndex)
Code:
#define DARK_HORSE 4
Code:
#define DARK_RAVEN 5
Code:
#define CLASS_DL DARK_HORSE
Code:
case ITEMGET (13,2): case ITEMGET (13,3): case ITEMGET (13,4): case ITEMGET (13,37):
Code:
case ITEMGET(13, 2): case ITEMGET(13, 3): case ITEMGET(13, 4): case ITEMGET(13, 37): case ITEMGET(13, 5): if (lpMsg->btValue == 254) { if (lpObj->pInventory[lpMsg->btItemPos].m_Type == ITEMGET(13, 4) && lpObj->Class != CLASS_DL) { goto DK_HORSE; } if (lpObj->pInventory[lpMsg->btItemPos].m_Type == ITEMGET(13, DARK_RAVEN) && lpObj->pInventory[lpMsg->btItemPos].m_JewelOfHarmonyOption == 0) { lpObj->pInventory[lpMsg->btItemPos].m_JewelOfHarmonyOption = 1; lpObj->m_btInvenPetPos = lpMsg->btItemPos; pMsg.btResult = -2; } if (lpObj->pInventory[lpMsg->btItemPos].m_Type != ITEMGET(13,DARK_RAVEN) && lpObj->pInventory[lpObj->m_btInvenPetPos].m_JewelOfHarmonyOption == 0) { lpObj->m_btInvenPetPos = lpMsg->btItemPos; lpObj->pInventory[lpMsg->btItemPos].m_JewelOfHarmonyOption = 1; pMsg.btResult = -2; } } if (lpMsg->btValue == 255) { if (lpObj->pInventory[lpMsg->btItemPos].m_JewelOfHarmonyOption == 1) { if (lpObj->pInventory[lpMsg->btItemPos].m_Type == ITEMGET(13, DARK_RAVEN)) { lpObj->m_btInvenPetPos = lpMsg->btItemPos; } else { lpObj->m_btInvenPetPos = lpMsg->btItemPos; } lpObj->pInventory[lpMsg->btItemPos].m_JewelOfHarmonyOption = 0; lpObj->m_wInvenPet = -1; pMsg.btResult= -1; } } gObjMakePreviewCharSet(iIndex); this->GCEquipmentChange(iIndex, lpMsg->btItemPos); DK_HORSE:IOCP.DataSend(iIndex, (LPBYTE)&pMsg, pMsg.h.size); break; default: DEF_SWITCH: gObjCalCharacter.CalcCharacter(iIndex); IOCP.DataSend(iIndex, (LPBYTE)&pMsg, pMsg.h.size); break;