本文整理汇总了C++中GameObject::GetFlags方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObject::GetFlags方法的具体用法?C++ GameObject::GetFlags怎么用?C++ GameObject::GetFlags使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObject
的用法示例。
在下文中一共展示了GameObject::GetFlags方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleGOActivate
bool ChatHandler::HandleGOActivate(const char* args, WorldSession *m_session)
{
GameObject* GObj = NULLGOB;
GObj = m_session->GetPlayer()->m_GM_SelectedGO;
if( !GObj )
{
RedSystemMessage(m_session, "No selected GameObject...");
return true;
}
if(GObj->GetState() == 1)
{
// Close/Deactivate
GObj->SetState(0);
GObj->SetFlags(GObj->GetFlags()-1);
}
else
{
// Open/Activate
GObj->SetState(1);
GObj->SetFlags(GObj->GetFlags()+1);
}
BlueSystemMessage(m_session, "Gameobject opened/closed.");
return true;
}
示例2: HandleGOInfo
bool ChatHandler::HandleGOInfo(const char *args, WorldSession *m_session)
{
std::stringstream sstext;
GameObject *GObj = NULL;
GObj = m_session->GetPlayer()->m_GM_SelectedGO;
if( !GObj )
{
RedSystemMessage(m_session, "No selected GameObject...");
return true;
}
WhiteSystemMessage(m_session, "Information:");
if(GObj->m_spawn)
GreenSystemMessage(m_session, "SpawnID: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->m_spawn->id);
GreenSystemMessage(m_session, "Entry: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->GetEntry());
GreenSystemMessage(m_session, "Model: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->GetDisplayId());
GreenSystemMessage(m_session, "State: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->GetState());
GreenSystemMessage(m_session, "flags: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->GetFlags());
GreenSystemMessage(m_session, "dynflags: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->GetUInt32Value(GAMEOBJECT_DYNAMIC));
GreenSystemMessage(m_session, "faction: %s%u|r", MSG_COLOR_LIGHTBLUE, GObj->GetUInt32Value(GAMEOBJECT_FACTION));
std::stringstream gottext;
uint8 type = GObj->GetByte(GAMEOBJECT_BYTES_1, GAMEOBJECT_BYTES_TYPE_ID);
switch(type)
{
case GAMEOBJECT_TYPE_DOOR:
gottext << "Door";
break;
case GAMEOBJECT_TYPE_BUTTON:
gottext << "Button";
break;
case GAMEOBJECT_TYPE_QUESTGIVER:
gottext << "Quest Giver";
break;
case GAMEOBJECT_TYPE_CHEST:
gottext << "Chest";
break;
case GAMEOBJECT_TYPE_BINDER:
gottext << "Binder";
break;
case GAMEOBJECT_TYPE_GENERIC:
gottext << "Generic";
break;
case GAMEOBJECT_TYPE_TRAP:
gottext << "Trap";
break;
case GAMEOBJECT_TYPE_CHAIR:
gottext << "Chair";
break;
case GAMEOBJECT_TYPE_SPELL_FOCUS:
gottext << "Spell Focus";
break;
case GAMEOBJECT_TYPE_TEXT:
gottext << "Text";
break;
case GAMEOBJECT_TYPE_GOOBER:
gottext << "Goober";
break;
case GAMEOBJECT_TYPE_TRANSPORT:
gottext << "Transport";
break;
case GAMEOBJECT_TYPE_AREADAMAGE:
gottext << "Area Damage";
break;
case GAMEOBJECT_TYPE_CAMERA:
gottext << "Camera";
break;
case GAMEOBJECT_TYPE_MAP_OBJECT:
gottext << "Map Object";
break;
case GAMEOBJECT_TYPE_MO_TRANSPORT:
gottext << "Mo Transport";
break;
case GAMEOBJECT_TYPE_DUEL_ARBITER:
gottext << "Duel Arbiter";
break;
case GAMEOBJECT_TYPE_FISHINGNODE:
gottext << "Fishing Node";
break;
case GAMEOBJECT_TYPE_RITUAL:
gottext << "Ritual";
break;
case GAMEOBJECT_TYPE_MAILBOX:
gottext << "Mailbox";
break;
case GAMEOBJECT_TYPE_AUCTIONHOUSE:
gottext << "Auction House";
break;
case GAMEOBJECT_TYPE_GUARDPOST:
gottext << "Guard Post";
break;
case GAMEOBJECT_TYPE_SPELLCASTER:
gottext << "Spell Caster";
break;
case GAMEOBJECT_TYPE_MEETINGSTONE:
gottext << "Meeting Stone";
break;
case GAMEOBJECT_TYPE_FLAGSTAND:
gottext << "Flag Stand";
//.........这里部分代码省略.........
示例3: OnActivate
void OnActivate(Player* pPlayer)
{
QuestLogEntry* pQuest = pPlayer->GetQuestLogForEntry(10895);
if(pQuest != NULL)
{
// M4ksiu - WTF IS THIS FOR? :|
float SSX = pPlayer->GetPositionX();
float SSY = pPlayer->GetPositionY();
float SSZ = pPlayer->GetPositionZ();
GameObject* pBeacon = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(SSX, SSY, SSZ, 184661);
if(pBeacon != NULL && pBeacon->GetFlags() > 0)
{
pBeacon->SetFlags((pBeacon->GetFlags() - 1));
}
// Northern Zeth'Gor Tower
if(pQuest->GetMobCount(0) < pQuest->GetQuest()->required_mobcount[0])
{
GameObject* pNorthern = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(-820.0f, 2029.0f, 55.0f, 300150);
if(pNorthern != NULL && pPlayer->CalcDistance(pPlayer, pNorthern) < 40) // if reduced the server will crash when out of range
{
pQuest->SetMobCount(0, pQuest->GetMobCount(0) + 1);
pQuest->SendUpdateAddKill(0);
pQuest->UpdatePlayerFields();
GameObject* pGameobject = sEAS.SpawnGameobject(pPlayer, 183816, -819.77f, 2029.09f, 55.6082f, 0, 4, 0, 0, 0, 0);
if(pGameobject != NULL)
{
sEAS.GameobjectDelete(pGameobject, 1 * 60 * 1000);
}
return;
}
}
// Southern Zeth'Gor Tower
if(pQuest->GetMobCount(1) < pQuest->GetQuest()->required_mobcount[1])
{
GameObject* pSouthern = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(-1150.0f, 2110.0f, 84.0f, 300150);
if(pSouthern != NULL && pPlayer->CalcDistance(pPlayer, pSouthern) < 40)
{
pQuest->SetMobCount(1, pQuest->GetMobCount(1) + 1);
pQuest->SendUpdateAddKill(1);
pQuest->UpdatePlayerFields();
GameObject* pGameobject = sEAS.SpawnGameobject(pPlayer, 183816, -1150.53f, 2109.92f, 84.4204f, 0, 4, 0, 0, 0, 0);
if(pGameobject != NULL)
{
sEAS.GameobjectDelete(pGameobject, 1 * 60 * 1000);
}
return;
}
}
// Forge Zeth'Gor Tower
if(pQuest->GetMobCount(2) < pQuest->GetQuest()->required_mobcount[2])
{
GameObject* pForge = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(-893.0f, 1919.0f, 82.0f, 300150);
if(pForge != NULL && pPlayer->CalcDistance(pPlayer, pForge) < 40)
{
pQuest->SetMobCount(2, pQuest->GetMobCount(2) + 1);
pQuest->SendUpdateAddKill(2);
pQuest->UpdatePlayerFields();
GameObject* pGameobject = sEAS.SpawnGameobject(pPlayer, 183816, -893.499f, 1919.27f, 81.6449f, 0, 4, 0, 0, 0, 0);
if(pGameobject != NULL)
{
sEAS.GameobjectDelete(pGameobject, 1 * 60 * 1000);
}
return;
}
}
// Foothill Zeth'Gor Tower
if(pQuest->GetMobCount(3) < pQuest->GetQuest()->required_mobcount[3])
{
GameObject* pFoothill = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(-978.0f, 1879.0f, 111.0f, 300150);
if(pFoothill != NULL && pPlayer->CalcDistance(pPlayer, pFoothill) < 40)
{
pQuest->SetMobCount(3, pQuest->GetMobCount(3) + 1);
pQuest->SendUpdateAddKill(3);
pQuest->UpdatePlayerFields();
GameObject* pGameobject = sEAS.SpawnGameobject(pPlayer, 183816, -977.713f, 1879.500f, 110.892f, 0, 4, 0, 0, 0, 0);
if(pGameobject != NULL)
{
sEAS.GameobjectDelete(pGameobject, 1 * 60 * 1000);
}
return;
}
}
else
{
pPlayer->BroadcastMessage("You are to far away!");
}
//.........这里部分代码省略.........