Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CHARACTER::CanEquipNow(const LPITEM item, const TItemPos& srcCell, const TItemPos& destCell)
- {
- const TItemTable* itemTable = item->GetProto();
- switch (GetJob())
- {
- case JOB_WARRIOR:
- if (item->GetAntiFlag() & ITEM_ANTIFLAG_WARRIOR)
- return false;
- break;
- case JOB_ASSASSIN:
- if (item->GetAntiFlag() & ITEM_ANTIFLAG_ASSASSIN)
- return false;
- break;
- case JOB_SHAMAN:
- if (item->GetAntiFlag() & ITEM_ANTIFLAG_SHAMAN)
- return false;
- break;
- case JOB_SURA:
- if (item->GetAntiFlag() & ITEM_ANTIFLAG_SURA)
- return false;
- break;
- }
- for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
- {
- long limit = itemTable->aLimits[i].lValue;
- switch (itemTable->aLimits[i].bType)
- {
- case LIMIT_LEVEL:
- if (GetLevel() < limit)
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("레벨이 낮아 착용할 수 없습니다."));
- return false;
- }
- break;
- case LIMIT_STR:
- if (GetPoint(POINT_ST) < limit)
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("근력이 낮아 착용할 수 없습니다."));
- return false;
- }
- break;
- case LIMIT_INT:
- if (GetPoint(POINT_IQ) < limit)
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("지능이 낮아 착용할 수 없습니다."));
- return false;
- }
- break;
- case LIMIT_DEX:
- if (GetPoint(POINT_DX) < limit)
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("민첩이 낮아 착용할 수 없습니다."));
- return false;
- }
- break;
- case LIMIT_CON:
- if (GetPoint(POINT_HT) < limit)
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("체력이 낮아 착용할 수 없습니다."));
- return false;
- }
- break;
- }
- }
- if (item->GetWearFlag() & WEARABLE_UNIQUE)
- {
- if ((GetWear(WEAR_UNIQUE1) && GetWear(WEAR_UNIQUE1)->IsSameSpecialGroup(item)) ||
- (GetWear(WEAR_UNIQUE2) && GetWear(WEAR_UNIQUE2)->IsSameSpecialGroup(item))
- )
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같은 종류의 유니크 아이템 두 개를 동시에 장착할 수 없습니다."));
- return false;
- }
- if (marriage::CManager::instance().IsMarriageUniqueItem(item->GetVnum()) &&
- !marriage::CManager::instance().IsMarried(GetPlayerID()))
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("결혼하지 않은 상태에서 예물을 착용할 수 없습니다."));
- return false;
- }
- }
- if (item->GetType() & ITEM_RING)
- {
- if ((GetWear(WEAR_RING1) && GetWear(WEAR_RING1)->GetVnum()) ||
- (GetWear(WEAR_RING2) && GetWear(WEAR_RING2)->GetVnum()))
- {
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't put two same items in the same time."));
- return false;
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement