本文整理汇总了C++中Zone::getOuterRect方法的典型用法代码示例。如果您正苦于以下问题:C++ Zone::getOuterRect方法的具体用法?C++ Zone::getOuterRect怎么用?C++ Zone::getOuterRect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zone
的用法示例。
在下文中一共展示了Zone::getOuterRect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
//////////////////////////////////////////////////////////////////////////////
// 뱀파이어 인벤토리 핸들러
//////////////////////////////////////////////////////////////////////////////
void BloodyTunnel::execute(Vampire* pVampire, ObjectID_t InvenObjectID, ObjectID_t InventoryItemObjectID, CoordInven_t X, CoordInven_t Y, CoordInven_t TargetX, CoordInven_t TargetY, VampireSkillSlot* pSkillSlot)
throw(Error)
{
__BEGIN_TRY
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " Begin" << endl;
Assert(pVampire != NULL);
Assert(pSkillSlot != NULL);
try
{
Player* pPlayer = pVampire->getPlayer();
Zone* pZone = pVampire->getZone();
Inventory* pInventory = pVampire->getInventory();
Assert(pPlayer != NULL);
Assert(pZone != NULL);
Assert(pInventory!= NULL);
// 전쟁 존이라면 BloodyTunnel를 사용할 수 없다.
// 일단은 ZoneID로 가는데.. ZoneInfo에 넣도록 해야한다.
///*
//if (pZone->getZoneID()==1122 || pZone->getZoneID()==1123)
// 이벤트 경기장/OX 막기. by sigi. 2002.8.31
//int zoneID = pZone->getZoneID();
//if (zoneID==1005 || zoneID==1006)
if (pZone->isNoPortalZone()
|| pZone->isMasterLair()
|| pZone->isCastle()
|| pZone->isHolyLand())
{
executeSkillFailException(pVampire, getSkillType());
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
return;
}
//*/
SubInventory* pInventoryItem = NULL;
int invenID = 0;
if (InventoryItemObjectID != 0 )
{
//cout << "서브 인벤토리에서 사용 : " << InventoryItemObjectID << endl;
CoordInven_t X, Y;
pInventoryItem = dynamic_cast<SubInventory*>(pInventory->findItemOID(InventoryItemObjectID, X, Y ));
TradeManager* pTradeManager = pZone->getTradeManager();
Assert(pTradeManager != NULL);
if (pInventoryItem == NULL || pTradeManager->hasTradeInfo(pVampire->getName()) )
{
//cout << "근데 서브 인벤토리가 없다." <<endl;
executeSkillFailException(pVampire, getSkillType());
return;
}
pInventory = pInventoryItem->getInventory();
invenID = pInventoryItem->getItemID();
}
Item* pItem = pInventory->getItem(X, Y);
// 아이템이 없거나, 뱀파이어 포탈 아이템이 아니거나, OID가 틀리다면 기술 사용 불가
if (pItem == NULL || pItem->getItemClass() != Item::ITEM_CLASS_VAMPIRE_PORTAL_ITEM || pItem->getObjectID() != InvenObjectID)
{
executeSkillFailException(pVampire, getSkillType());
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
return;
}
VampirePortalItem* pVampirePortalItem = dynamic_cast<VampirePortalItem*>(pItem);
Assert(pVampirePortalItem != NULL);
// 뱀파이어 포탈 아이템에 기록된 위치가 없을 경우에는 실패다.
ZoneID_t zoneid = pVampirePortalItem->getZoneID();
ZoneCoord_t tx = pVampirePortalItem->getX();
ZoneCoord_t ty = pVampirePortalItem->getY();
if (zoneid == 0)
{
executeSkillFailException(pVampire, getSkillType());
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
return;
}
// 얻어온 목표 존과 좌표를 검증한다.
Zone* pTargetZone = getZoneByZoneID(zoneid);
// 아담의 성지와 다른 존과는 연결되지 않는다.
if (pZone->isHolyLand() != pTargetZone->isHolyLand())
{
executeSkillFailException(pVampire, getSkillType());
return;
}
//cout << "타겟 존 포인터 획득 성공" << endl;
VSRect* pRect = pTargetZone->getOuterRect();
//.........这里部分代码省略.........