本文整理汇总了C++中CItemInfo::getClassType方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemInfo::getClassType方法的具体用法?C++ CItemInfo::getClassType怎么用?C++ CItemInfo::getClassType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemInfo
的用法示例。
在下文中一共展示了CItemInfo::getClassType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: useItem
void CPlayer::useItem(int itemID)
{
std::string machineName = this->getMachineName();
size_t idx = machineName.find("Server");
if(idx != std::string::npos) {
// Server端處理
CItemInfo* pItemInfo = CItem::getInfo(itemID);
if(pItemInfo == NULL)
return;
if(pItemInfo->getClassType() == WEAPON) {
CWeaponInfo *pWp = (CWeaponInfo*) pItemInfo;
if(this->getLevel() >= pWp->getLevel()) {
if(ONE_HAND == pWp->getWield())
wearToEquipSlot(MAIN_HAND, itemID);
else if(TWO_HAND == pWp->getWield())
wearToEquipSlot(OFF_HAND, itemID);
}
}
else if(pItemInfo->getClassType() == ARMOR) {
CArmorInfo *pAm = (CArmorInfo*) pItemInfo;
if(this->getLevel() >= pAm->getLevel()) {
if(CLOTHES == pAm->getWear())
wearToEquipSlot(CHEST, itemID);
else if(BELTS == pAm->getWear())
wearToEquipSlot(BELT, itemID);
else if(PANTS == pAm->getWear())
wearToEquipSlot(LEGS, itemID);
else if(PAULDRONS == pAm->getWear())
wearToEquipSlot(SHOULDER, itemID);
else if(GLOVES == pAm->getWear())
wearToEquipSlot(GLOVE, itemID);
else if(BOOTS == pAm->getWear())
wearToEquipSlot(BOOT, itemID);
}
}
else if(pItemInfo->getClassType() == CONSUMABLE) {
CConsumableInfo *pConsumableInfo = (CConsumableInfo *)pItemInfo;
if(this->getLevel() >= pConsumableInfo->getLevel()) {
if(pConsumableInfo->getEffect() == EDIBLE_SKILL)
addSkill(pConsumableInfo->getMuch()); // 學習某項技能
else if(pConsumableInfo->getEffect() == EDIBLE_HP) {
if(getHPMax() == getHP())
return;
addHP(pConsumableInfo->getMuch()); // 補血
// Todo: 藥水是否有CD時間
}
else if(pConsumableInfo->getEffect() == EDIBLE_MP) {
if(getMP() == getMPMax())
return;
addMP(pConsumableInfo->getMuch()); // 補魔
// Todo: 藥水是否有CD時間
}
else
return;
// 背包物品減一
m_pBackpack->removeItem(itemID);
}
}
}
else {
// Client端處理
}
}