本文整理汇总了C++中CGameItemPtr::addHp方法的典型用法代码示例。如果您正苦于以下问题:C++ CGameItemPtr::addHp方法的具体用法?C++ CGameItemPtr::addHp怎么用?C++ CGameItemPtr::addHp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGameItemPtr
的用法示例。
在下文中一共展示了CGameItemPtr::addHp方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
//---------------------------------------------------
void CCharacterVersionAdapter::adaptToVersion14(CCharacter &character) const
{
// parse all inventories and set items to max Hp when current Hp == 0
const uint sizeInv = INVENTORIES::NUM_INVENTORY;
for ( uint i = 0; i < sizeInv ; ++i )
if (character._Inventory[i] != NULL)
{
CInventoryPtr childSrc = character._Inventory[i];
for ( uint j = 0; j < childSrc->getSlotCount(); j++ )
{
CGameItemPtr item = childSrc->getItem(j);
if (item != NULL)
{
if (item->getSheetId() != CSheetId("stack.sitem") )
{
if (item->durability() == 0 && item->maxDurability() > 0)
{
nlinfo("player %s, patching item %s HP, new value= %u",
character.getId().toString().c_str(), item->getSheetId().toString().c_str(), item->maxDurability());
item->addHp(item->maxDurability());
}
}
}
}
}
}
示例2: preOrderSheet
//---------------------------------------------------
void CCharacterVersionAdapter::adaptToVersion17(CCharacter &character) const
{
// only for pre-order players
CPlayer * p = PlayerManager.getPlayer( PlayerManager.getPlayerId( character.getId() ) );
if (p != NULL && p->isPreOrder())
{
INVENTORIES::TInventory inventories[] =
{
INVENTORIES::bag,
INVENTORIES::pet_animal1,
INVENTORIES::pet_animal2,
INVENTORIES::pet_animal3,
INVENTORIES::pet_animal4,
INVENTORIES::player_room
};
CSheetId preOrderSheet("pre_order.sitem");
BOMB_IF(preOrderSheet == CSheetId::Unknown, "cannot find pre_order.sitem!", return);
// restore pre-order item hp to the max if any
bool foundPreOrderItem = false;
for (uint i = 0; i < sizeof(inventories)/sizeof(inventories[0]); ++i)
{
CInventoryPtr inv = character.getInventory(inventories[i]);
if (inv == NULL)
continue;
for (uint slot = 0; slot < inv->getSlotCount(); ++slot)
{
CGameItemPtr item = inv->getItem(slot);
if (item == NULL)
continue;
if (item->getSheetId() == preOrderSheet)
{
foundPreOrderItem = true;
item->addHp(item->maxDurability());
}
}
}
// give a new pre-order item to players who lost it
if (!foundPreOrderItem)
{
CGameItemPtr item = character.createItem(10, 1, preOrderSheet);
BOMB_IF(item == NULL, "cannot create pre_order.sitem!", return);
if (!character.addItemToInventory(INVENTORIES::bag, item))
if (!character.addItemToInventory(INVENTORIES::temporary, item))
item.deleteItem();
}