本文整理汇总了C++中CItemWeapon::getSkillType方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemWeapon::getSkillType方法的具体用法?C++ CItemWeapon::getSkillType怎么用?C++ CItemWeapon::getSkillType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemWeapon
的用法示例。
在下文中一共展示了CItemWeapon::getSkillType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CheckFisherLuck
bool CheckFisherLuck(CCharEntity* PChar)
{
if (PChar->UContainer->GetType() != UCONTAINER_EMPTY)
{
ShowDebug(CL_CYAN"Player cannot fish! UContainer is not empty\n" CL_RESET);
return false;
}
CItemFish* PFish = nullptr;
CItemWeapon* WeaponItem = nullptr;
WeaponItem = (CItemWeapon*)PChar->getEquip(SLOT_RANGED);
DSP_DEBUG_BREAK_IF(WeaponItem == nullptr);
DSP_DEBUG_BREAK_IF(WeaponItem->isType(ITEM_WEAPON) == false);
DSP_DEBUG_BREAK_IF(WeaponItem->getSkillType() != SKILL_FSH);
uint16 RodID = WeaponItem->getID();
WeaponItem = (CItemWeapon*)PChar->getEquip(SLOT_AMMO);
DSP_DEBUG_BREAK_IF(WeaponItem == nullptr);
DSP_DEBUG_BREAK_IF(WeaponItem->isType(ITEM_WEAPON) == false);
DSP_DEBUG_BREAK_IF(WeaponItem->getSkillType() != SKILL_FSH);
uint16 LureID = WeaponItem->getID();
int32 FishingChance = WELL512::GetRandomNumber(100);
if (FishingChance <= 20)
{
const int8* Query =
"SELECT "
"fish.fishid," // 0
"fish.max," // 1
"fish.watertype," // 2
"fish.size," // 3
"fish.stamina," // 4
"fish.log," // 5
"fish.quest," // 6
"rod.flag " // 7
"FROM fishing_zone AS zone "
"INNER JOIN fishing_rod AS rod USING (fishid) "
"INNER JOIN fishing_lure AS lure USING (fishid) "
"INNER JOIN fishing_fish AS fish USING (fishid) "
"WHERE zone.zoneid = %u AND rod.rodid = %u AND lure.lureid = %u AND lure.luck = 0";
int32 ret = Sql_Query(SqlHandle, Query, PChar->getZone(), RodID, LureID);
if( ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0)
{
while(Sql_NextRow(SqlHandle) == SQL_SUCCESS)
{
// ловля предметов, необходимых для поисков
uint8 logid = (uint8)Sql_GetIntData(SqlHandle,5);
uint8 quest = (uint8)Sql_GetIntData(SqlHandle,6);
if(logid < MAX_QUESTAREA && quest < MAX_QUESTID)
{
uint8 current = PChar->m_questLog[logid].current [quest/8] & (1 << (quest % 8));
uint8 complete = PChar->m_questLog[logid].complete[quest/8] & (1 << (quest % 8));
if (complete == 0 && current != 0)
{
PFish = new CItemFish(*itemutils::GetItemPointer(Sql_GetIntData(SqlHandle,0)));
PChar->UContainer->SetType(UCONTAINER_FISHING);
PChar->UContainer->SetItem(0, PFish);
break;
}
}
// TODO: ловля простых предметов
}
}
}
else
{
const int8* Query =
"SELECT "
"fish.fishid," // 0
"fish.min," // 1
"fish.max," // 2
"fish.size," // 3
"fish.stamina," // 4
"fish.watertype," // 5
"rod.flag, " // 6
"lure.luck " // 7
"FROM fishing_zone AS zone "
"INNER JOIN fishing_rod AS rod USING (fishid) "
"INNER JOIN fishing_lure AS lure USING (fishid) "
"INNER JOIN fishing_fish AS fish USING (fishid) "
"WHERE zone.zoneid = %u AND rod.rodid = %u AND lure.lureid = %u AND lure.luck != 0 "
"ORDER BY luck";
int32 ret = Sql_Query(SqlHandle, Query, PChar->getZone(), RodID, LureID);
if( ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0)
{
int32 FisherLuck = 0;
//.........这里部分代码省略.........