本文整理汇总了C++中Ousters::getFlagSet方法的典型用法代码示例。如果您正苦于以下问题:C++ Ousters::getFlagSet方法的具体用法?C++ Ousters::getFlagSet怎么用?C++ Ousters::getFlagSet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ousters
的用法示例。
在下文中一共展示了Ousters::getFlagSet方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
//.........这里部分代码省略.........
((pZoneInfo->isPayPlay() || pZoneInfo->isPremiumZone()) && (!pGamePlayer->isPayPlaying() && !pGamePlayer->isFamilyFreePass()))) {
//Statement* pStmt = NULL;
string connectIP = pGamePlayer->getSocket()->getHost();
// 유료 서비스 사용이 가능한가?
if (pGamePlayer->loginPayPlay(connectIP, pGamePlayer->getID())) {
sendPayInfo(pGamePlayer);
} else if (pZoneInfo->isPayPlay()) {
// 유료 서비스 사용 불가인 경우
GCSystemMessage gcSystemMessage;
if (g_pConfig->getPropertyInt("IsNetMarble") == 0) {
gcSystemMessage.setMessage(g_pStringPool->getString(STRID_CANNOT_ENTER));
} else {
gcSystemMessage.setMessage(g_pStringPool->getString(STRID_CANNOT_ENTER));
}
pGamePlayer->sendPacket (&gcSystemMessage);
bCancel = true;
}
}
#endif
if (!bCancel) {
// 이동시키기 전에 이펙트를 삭제한다.
if (pCreature->isSlayer())
pCreature->removeFlag(Effect::EFFECT_CLASS_SLAYER_PORTAL);
if (pCreature->isOusters()) {
Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);
Assert(pOusters != NULL);
GCNoticeEvent gcNoticeEvent;
// 대지정령의 뿔을 사용할라면 시오람과 계약을 맺었어야 한다.
if (!pOusters->getFlagSet()->isOn(FLAGSET_GNOMES_HORN)) {
gcNoticeEvent.setCode(NOTICE_EVENT_CONTRACT_GNOMES_HORN);
pPlayer->sendPacket(&gcNoticeEvent);
return;
}
Level_t level = pOusters->getLevel();
Price_t price = sPriceMap[level];
if (price == 0) {
price = (Price_t)(pow((double)level, 1.3) * 100) / 2;
sPriceMap[level] = price;
}
/*if (g_pFlagManager->hasFlagWar() &&
pPacket->getZoneID() == 32 &&
pPacket->getX() == 124 &&
pPacket->getY() == 144 ) price = 0;*/
if (pOusters->getGold() < price) {
gcNoticeEvent.setCode(NOTICE_EVENT_NOT_ENOUGH_MONEY);
pPlayer->sendPacket(&gcNoticeEvent);
return;
} else {
pOusters->decreaseGoldEx(price);
GCModifyInformation gcMI;
gcMI.addLongData(MODIFY_GOLD, pOusters->getGold());
pPlayer->sendPacket(&gcMI);
}
}
// 올바른 웨이포인트라면 슬레이어를 이동시켜준다.
pPC->getGQuestManager()->illegalWarp();
transportCreature(pCreature, id, x, y, false);
}
}
} catch (NoSuchElementException&) {
bCancel = true;
}
}
}
if (bCancel && pCreature->isSlayer()) {
Zone* pZone = pCreature->getZone();
Assert(pZone != NULL);
// id, x, y가 모두 0일 경우 이동을 취소한다는 뜻이다.
pCreature->removeFlag(Effect::EFFECT_CLASS_SLAYER_PORTAL);
// 헬기를 제거하라고 뿌려준다.
GCAddHelicopter gcAddHelicopter;
gcAddHelicopter.setObjectID(pCreature->getObjectID());
gcAddHelicopter.setCode(1);
pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcAddHelicopter);
}
}
catch (Throwable & t) {
cerr << t.toString() << endl;
}
#endif // __GAME_SERVER__
__END_DEBUG_EX __END_CATCH
}