本文整理汇总了C++中PlayerCreature::getY方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerCreature::getY方法的具体用法?C++ PlayerCreature::getY怎么用?C++ PlayerCreature::getY使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerCreature
的用法示例。
在下文中一共展示了PlayerCreature::getY方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
void CGDisplayItemHandler::execute (CGDisplayItem* pPacket , Player* pPlayer)
throw(Error)
{
__BEGIN_TRY __BEGIN_DEBUG_EX
#ifdef __GAME_SERVER__
//#ifndef __TEST_SERVER__
// return;
//#endif
Assert(pPacket != NULL);
Assert(pPlayer != NULL);
GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);
Assert(pGamePlayer != NULL);
PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pGamePlayer->getCreature());
Assert(pPC != NULL);
Inventory* pInventory = pPC->getInventory();
Assert(pInventory != NULL);
Store* pStore = pPC->getStore();
Assert(pStore != NULL);
GCSystemMessage errorMsg;
GCNoticeEvent errorNotice;
if (pPacket->getIndex() > MAX_ITEM_NUM )
{
filelog("Store.log", "[%s:%s] (%u) 잘못된 인덱스입니다.",
pGamePlayer->getID().c_str(), pPC->getName().c_str(), pPacket->getIndex());
return;
}
if (pPacket->getX() >= pInventory->getWidth() || pPacket->getY() >= pInventory->getHeight() )
{
filelog("Store.log", "[%s:%s] (%u,%u) 인벤토리 좌표를 잘못 보내줬습니다..",
pGamePlayer->getID().c_str(), pPC->getName().c_str(), pPacket->getX(), pPacket->getY());
return;
}
Item* pItem = pInventory->getItem(pPacket->getX(), pPacket->getY());
if (pItem == NULL || pItem->getObjectID() != pPacket->getItemObjectID() )
{
filelog("Store.log", "[%s:%s] (%u, %u) : %u 아이템 좌표가 잘못되었거나 오브젝트 아이디가 잘못되었습니다.",
pGamePlayer->getID().c_str(), pPC->getName().c_str(), pPacket->getX(), pPacket->getY(), pPacket->getItemObjectID());
return;
}
if (pPC->getZone()->getTradeManager()->getTradeInfo(pPC->getName() ) != NULL )
{
filelog("Store.log", "[%s:%s] : 거래중에는 물건을 올려놓을 수 없습니다.",
pGamePlayer->getID().c_str(), pPC->getName().c_str());
return;
}
if (pStore->hasItem(pItem ) )
{
filelog("Store.log", "[%s:%s] (%u, %u) 이미 아이템이 상점에 있습니다.",
pGamePlayer->getID().c_str(), pPC->getName().c_str(), pItem->getObjectID(), pPacket->getIndex());
// errorMsg.setMessage("이미 진열된 아이템입니다.");
errorNotice.setCode(NOTICE_EVENT_ALREADY_DISPLAYED);
pGamePlayer->sendPacket(&errorNotice);
return;
}
if (pItem->isTimeLimitItem() || !canSell(pItem ) || !canTrade(pItem ) || !canTradeInventoryItem(pItem ) )
{
filelog("Store.log", "[%s:%s] (%s) 팔 수 없는 아이템입니다.",
pGamePlayer->getID().c_str(), pPC->getName().c_str(), pItem->toString().c_str());
// errorMsg.setMessage("판매할 수 없는 아이템입니다.");
errorNotice.setCode(NOTICE_EVENT_CANNOT_SELL);
pGamePlayer->sendPacket(&errorNotice);
return;
}
BYTE result = pStore->setStoreItem(pPacket->getIndex(), pItem, pPacket->getPrice());
if ( result != 0 )
{
filelog("Store.log", "[%s:%s] (%u) 아이템을 놓을 수 없습니다.",
pGamePlayer->getID().c_str(), pPC->getName().c_str(), result);
return;
}
GCMyStoreInfo gcInfo;
gcInfo.setStoreInfo(&(pStore->getStoreInfo()));
pGamePlayer->sendPacket(&gcInfo);
if (pStore->isOpen() )
{
GCAddStoreItem gcAdd;
gcAdd.setOwnerObjectID(pPC->getObjectID());
gcAdd.setIndex(pPacket->getIndex());
pStore->getStoreItem(pPacket->getIndex() ).makeStoreItemInfo(gcAdd.getItem());
pPC->getZone()->broadcastPacket(pPC->getX(), pPC->getY(), &gcAdd, pPC);
}
#endif // __GAME_SERVER__
//.........这里部分代码省略.........
示例2: executeEventTree
void CGUseMessageItemFromInventoryHandler::executeEventTree(CGUseMessageItemFromInventory* pPacket, Player* pPlayer)
throw(ProtocolException, Error)
{
__BEGIN_TRY __BEGIN_DEBUG_EX
#ifdef __GAME_SERVER__
Assert(pPacket != NULL);
Assert(pPlayer != NULL);
// 상위 함수에서 에러 체크를 많이 했기 때문에,
// 에러 체크를 대폭 축소한다.
GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);
Creature* pCreature = pGamePlayer->getCreature();
PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature);
Inventory* pInventory = pPC->getInventory();
Zone* pZone = pPC->getZone();
CoordInven_t InvenX = pPacket->getX();
CoordInven_t InvenY = pPacket->getY();
Item* pItem = pInventory->getItem(InvenX, InvenY);
ObjectID_t ItemObjectID = pItem->getObjectID();
MonsterType_t MType = 0;
int time = 0;
switch (pItem->getItemType() )
{
case 12:
MType = 482;
time = g_pVariableManager->getVariable(CHRISTMAS_TREE_DECAY_TIME ) / 10;
break;
case 26:
MType = 650;
time = 21600;
break;
case 27:
MType = 650;
time = 43200;
break;
case 28:
MType = 650;
time = 86400;
break;
default:
{
filelog("EventTree.log", "이상한 아템을 썼다. : %s 가 %d", pPC->getName().c_str(), pItem->getItemType());
GCCannotUse _GCCannotUse;
_GCCannotUse.setObjectID(pPacket->getObjectID());
pGamePlayer->sendPacket(&_GCCannotUse);
}
return;
}
// 타일에 스킬을 쓰는 것이라고 보고 쓸 수 있는지를 체크한다.
// 안전지대에서는 사용할 수 없다.
// 쓸 수 있는 아이템 타입인지 왁인한다. ItemType 이 12인 것만 사용할 수 있다.
// 근처에(플레이어 주위의 5x5타일 이내) 다른 트리가 있다면 사용할 수 없다.
if (!isAbleToUseTileSkill(pCreature )
|| pZone->isMasterLair()
|| ItemObjectID != pPacket->getObjectID()
|| checkCorpse(pZone, MType, pPC->getX() - 2, pPC->getY() - 2, pPC->getX() + 2, pPC->getY() + 2 )
)
{
GCCannotUse _GCCannotUse;
_GCCannotUse.setObjectID(pPacket->getObjectID());
pGamePlayer->sendPacket(&_GCCannotUse);
return;
}
// 성이면 성주 길드원만 쓸 수 있다.
if (!pPC->isGOD() )
{
if (pZone->isCastle() )
{
if (!g_pCastleInfoManager->isCastleMember(pZone->getZoneID(), pPC ) )
{
GCCannotUse _GCCannotUse;
_GCCannotUse.setObjectID(pPacket->getObjectID());
pGamePlayer->sendPacket(&_GCCannotUse);
return;
}
}
// 성이 아닌 곳의 안전지대에선 절대 못 쓴다.
else if (pZone->getZoneLevel(pCreature->getX(), pCreature->getY()) & SAFE_ZONE)
{
GCCannotUse _GCCannotUse;
_GCCannotUse.setObjectID(pPacket->getObjectID());
pGamePlayer->sendPacket(&_GCCannotUse);
return;
}
}
/* // 트리를 존에 추가한다. (트리는 몬스터 시체를 이용한다)
MonsterCorpse* pMonsterCorpse = new MonsterCorpse(482, pPacket->getMessage(), 2);
Assert(pMonsterCorpse!=NULL);
pZone->getObjectRegistry().registerObject(pMonsterCorpse);
// 생성된 시체를 존에 추가한다.
int delayTime = g_pVariableManager->getVariable(CHRISTMAS_TREE_DECAY_TIME); // by sigi. 2002.12.17
//.........这里部分代码省略.........
示例3: execute
////////////////////////////////////////////////////////////////////////////////
// 액션을 실행한다.
////////////////////////////////////////////////////////////////////////////////
void ActionEnterEventZone::execute (Creature * pNPC , Creature * pCreature)
throw(Error)
{
__BEGIN_TRY
__BEGIN_DEBUG
Assert(pCreature != NULL);
Assert(pCreature->isPC());
GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pCreature->getPlayer());
PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature);
Assert(pPC != NULL);
EventZoneInfo* pEventZoneInfo = EventZoneInfoManager::Instance().getZoneEventInfo(m_EventID )->getCurrentEventZoneInfo();
if (pEventZoneInfo == NULL )
{
transportCreature(pPC, pPC->getZone()->getZoneID(), pPC->getX(), pPC->getY(), true);
GCSystemMessage gcSystemMessage;
gcSystemMessage.setMessage(g_pStringPool->getString(STRID_CANNOT_ENTER ));
pGamePlayer->sendPacket (&gcSystemMessage);
return;
}
if (!pEventZoneInfo->canEnter() )
{
transportCreature(pPC, pPC->getZone()->getZoneID(), pPC->getX(), pPC->getY(), true);
GCSystemMessage gcSystemMessage;
gcSystemMessage.setMessage(g_pStringPool->getString(STRID_PKZONE_PC_LIMITED ));
pGamePlayer->sendPacket (&gcSystemMessage);
return;
}
bool bTransport = true;
#if defined(__PAY_SYSTEM_ZONE__) || defined(__PAY_SYSTEM_FREE_LIMIT__)
try {
ZoneInfo* pZoneInfo = g_pZoneInfoManager->getZoneInfo(pEventZoneInfo->getZoneID());
// 유료존인데 유료사용자가 아니면...
if (pZoneInfo==NULL
|| pZoneInfo->isPayPlay() && !pGamePlayer->isPayPlaying())
{
string connectIP = pGamePlayer->getSocket()->getHost();
// 유료 서비스 사용이 가능한가?
if (pGamePlayer->loginPayPlay(connectIP, pGamePlayer->getID()))
{
sendPayInfo(pGamePlayer);
}
else
{
// 유료 서비스 사용 불가인 경우
GCSystemMessage gcSystemMessage;
if (g_pConfig->getPropertyInt("IsNetMarble")==0)
{
gcSystemMessage.setMessage(g_pStringPool->getString(STRID_CANNOT_ENTER_PAY_ZONE ));
}
else
{
gcSystemMessage.setMessage(g_pStringPool->getString(STRID_CANNOT_ENTER ));
}
pGamePlayer->sendPacket (&gcSystemMessage);
bTransport = false;
return;
}
}
} catch (NoSuchElementException&) {
}
#endif
if (bTransport)
{
if (pPC->isSlayer() )
{
Slayer* pSlayer = dynamic_cast<Slayer*>(pPC);
Assert(pSlayer != NULL);
// 오토바이를 타고 있으면 오토바이에서 내린다.
if (pSlayer->hasRideMotorcycle() )
{
pSlayer->getOffMotorcycle();
}
}
if (pPC->isOusters() )
{
Ousters* pOusters = dynamic_cast<Ousters*>(pPC);
Assert(pOusters != NULL);
//.........这里部分代码省略.........
示例4: execute
//.........这里部分代码省略.........
pGamePlayer->sendPacket(&gcNV);
return;
}
if (pItem == NULL )
{
gcNV.setCode(NICKNAME_MODIFY_FAIL_NO_ITEM);
pGamePlayer->sendPacket(&gcNV);
return;
}
// pPC->removeFlag(Effect::EFFECT_CLASS_CAN_MODIFY_NICKNAME_0);
pNickname->setNickname(pPacket->getNickname());
Statement* pStmt = NULL;
BEGIN_DB
{
pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();
pStmt->executeQuery("UPDATE NicknameBook SET Nickname='%s' WHERE OwnerID='%s' AND nID=%u",
getDBString(pNickname->getNickname()).c_str(), pPC->getName().c_str(), pNickname->getNicknameID());
SAFE_DELETE(pStmt);
}
END_DB(pStmt)
gcNV.setCode(NICKNAME_MODIFY_OK);
pGamePlayer->sendPacket(&gcNV);
if (pItem->getItemType() == 22 )
{
pInventory->deleteItem(itemOID);
pItem->destroy();
SAFE_DELETE(pItem);
GCUseOK gcOK;
pGamePlayer->sendPacket(&gcOK);
}
if (pPC->getNickname() == pNickname )
{
GCModifyNickname gcMN;
gcMN.setObjectID(pPC->getObjectID());
gcMN.setNicknameInfo(pNickname);
pPC->getZone()->broadcastPacket(pPC->getX(), pPC->getY(), &gcMN);
}
break;
}
// 닉네임 추가하기
case 24 :
{
if (pItem == NULL )
{
gcNV.setCode(NICKNAME_MODIFY_FAIL_NO_ITEM);
pGamePlayer->sendPacket(&gcNV);
return;
}
NicknameInfo* pNickname = new NicknameInfo;
pNickname->setNicknameID(pPC->getNicknameBook()->popNicknameID());
pNickname->setNicknameType(NicknameInfo::NICK_CUSTOM);
pNickname->setNickname(pPacket->getNickname());
pPC->getNicknameBook()->setNicknameInfo(pNickname->getNicknameID(), pNickname);
Statement* pStmt = NULL;
BEGIN_DB
{
pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();
pStmt->executeQuery("INSERT INTO NicknameBook (nID, OwnerID, NickType, Nickname, Time) "
"VALUES (%u, '%s', %u, '%s', now())",
pNickname->getNicknameID(), pPC->getName().c_str(), pNickname->getNicknameType(), getDBString(pNickname->getNickname()).c_str());
SAFE_DELETE(pStmt);
}
END_DB(pStmt)
gcNV.setCode(NICKNAME_MODIFY_OK);
pGamePlayer->sendPacket(&gcNV);
Packet* pNickList = pPC->getNicknameBook()->getNicknameBookListPacket();
pGamePlayer->sendPacket(pNickList);
SAFE_DELETE(pNickList);
pInventory->deleteItem(itemOID);
pItem->destroy();
SAFE_DELETE(pItem);
GCUseOK gcOK;
pGamePlayer->sendPacket(&gcOK);
break;
}
}
#endif // __GAME_SERVER__
__END_DEBUG_EX __END_CATCH
}