本文整理汇总了C++中PlayerCreature::getPotionPriceRatio方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerCreature::getPotionPriceRatio方法的具体用法?C++ PlayerCreature::getPotionPriceRatio怎么用?C++ PlayerCreature::getPotionPriceRatio使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerCreature
的用法示例。
在下文中一共展示了PlayerCreature::getPotionPriceRatio方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getPrice
//.........这里部分代码省略.........
OptionInfo* pOptionInfo = g_pOptionInfoManager->getOptionInfo(*itr);
Assert(pOptionInfo != NULL);
priceMultiplier = (double)(pOptionInfo->getPriceMultiplier());
finalPrice += (originalPrice* priceMultiplier / 100);
}
originalPrice = finalPrice;
}
// 아이템이 손상되었다면 손상된 만큼의 가격을 깍아야 한다.
double maxDurability = (double)computeMaxDurability(pItem);
double curDurability = (double)(pItem->getDurability());
// 아이템 중에 내구도가 없는 것들이 존재하기 때문에 처리해준다.
if (maxDurability > 1) finalPrice = originalPrice* curDurability / maxDurability;
else finalPrice = originalPrice;
// 상점 시세에 따라 가격을 다시 조정해준다.
finalPrice = finalPrice* nDiscount / 100;
// 상점의 종류에 따라 가격을 다시 조정해준다.
if (shopType == SHOP_RACK_MYSTERIOUS)
{
finalPrice *= 10;
}
// 크리쳐의 변화 요소에 따라 가격을 다시 조정해준다.
if (pCreature != NULL)
{
if (pCreature->isSlayer())
{
Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);
Attr_t CSTR = pSlayer->getSTR(ATTR_CURRENT);
Attr_t CDEX = pSlayer->getDEX(ATTR_CURRENT);
Attr_t CINT = pSlayer->getINT(ATTR_CURRENT);
if ((CSTR + CDEX + CINT <= 40) &&
(pItem->getItemClass() == Item::ITEM_CLASS_POTION) &&
(pItem->getItemType() == 0 || pItem->getItemType() == 5))
{
finalPrice = getPercentValue((int)finalPrice, 70);
}
}
else if (pCreature->isVampire())
{
// 뱀파이어가 해골을 팔 경우에는 해골의 가격을 반으로 줄여준다.
if (pItem->getItemClass() == Item::ITEM_CLASS_SKULL)
{
finalPrice = finalPrice / 2.0;
}
}
else if (pCreature->isOusters())
{
// 아우스터즈가 해골을 팔 경우에는 해골의 가격의 75%.
if (pItem->getItemClass() == Item::ITEM_CLASS_SKULL)
{
finalPrice *= 0.75;
}
}
}
// 유료 사용자이고 유료존 이면
if (g_pVariableManager->getVariable(PREMIUM_HALF_EVENT ) )
{
if (
pItem->getItemClass() == Item::ITEM_CLASS_POTION || pItem->getItemClass() == Item::ITEM_CLASS_SERUM ||
pItem->getItemClass() == Item::ITEM_CLASS_LARVA || pItem->getItemClass() == Item::ITEM_CLASS_PUPA ||
pItem->getItemClass() == Item::ITEM_CLASS_COMPOS_MEI
)
{
if (pCreature->isPC() )
{
PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature);
GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPC->getPlayer());
if (pGamePlayer->isPayPlaying() )
{
// 반 값.
finalPrice = finalPrice / 2;
}
}
}
}
// Blood Bible 보너스 적용
if (pItem->getItemClass() == Item::ITEM_CLASS_POTION || pItem->getItemClass() == Item::ITEM_CLASS_SERUM )
{
if (pCreature->isPC() )
{
PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature);
int ratio = pPC->getPotionPriceRatio();
if (ratio != 0 )
{
// ratio 값이 마이너스 값이다.
finalPrice += getPercentValue((int)finalPrice, ratio);
}
}
}
return max(1, (int)finalPrice);
}