本文整理汇总了C++中Creature::Delete方法的典型用法代码示例。如果您正苦于以下问题:C++ Creature::Delete方法的具体用法?C++ Creature::Delete怎么用?C++ Creature::Delete使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Creature
的用法示例。
在下文中一共展示了Creature::Delete方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ScrollOfMyzrael
bool ScrollOfMyzrael(uint32 i, Spell * pSpell)
{
Player * pPlayer = TO_PLAYER(pSpell->u_caster);
if(!pPlayer)
return true;
if(!pSpell->u_caster->IsPlayer())
return true;
QuestLogEntry *qle = pPlayer->GetQuestLogForEntry(656);
if(qle == NULL)
return true;
const float MyzraelPos[] = {-940.7374, -3111.1953, 48.9566, 3.327};
Creature * myzrael = pPlayer->GetMapMgr()->GetInterface()->GetCreatureNearestCoords(MyzraelPos[0], MyzraelPos[1], MyzraelPos[2], 2755);
if(myzrael != NULL)
{
if(!myzrael->isAlive())
myzrael->Delete();
else
return true;
}
myzrael = sEAS.SpawnCreature(pPlayer, 2755, MyzraelPos[0], MyzraelPos[1], MyzraelPos[2], MyzraelPos[3], 0);
return true;
}
示例2: GossipSelectOption
void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char * EnteredCode)
{
if(!plr)
return;
Creature *windwatcher = (Creature*)(pObject);
if (windwatcher == NULL)
return;
switch (IntId)
{
case 0:
GossipHello(pObject, plr, true);
break;
case 1:
{
if(plr == NULL || plr->GetMapMgr() == NULL || plr->GetMapMgr()->GetInterface() == NULL)
return;
Creature *whirlwind = plr->GetMapMgr()->GetInterface()->GetCreatureNearestCoords(plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ(), 6239);
if(whirlwind != NULL)
{
if(!whirlwind->isAlive())
{
whirlwind->Delete();
}
else
return;
}
whirlwind = EAS::SpawnCreature(plr, 6239, plr->GetPositionX()+7, plr->GetPositionY()+7, plr->GetPositionZ(), plr->GetOrientation(), 0);
whirlwind->Despawn(5*60*1000, 0);
}break;
}
}
示例3: CenarionLunardust
bool CenarionLunardust(uint32 i, Spell* pSpell) // Body And Heart (Horde)
{
const float pos[] = {-2449.117920f, -1627.319824f, 91.801430f, 0}; // x, y, z, o
Player *p_caster = pSpell->p_caster;
Creature *lunaclaw = p_caster->GetMapMgr()->GetInterface()->GetCreatureNearestCoords(pos[0], pos[1], pos[2], 12138);
if(lunaclaw != NULL)
{
if(!lunaclaw->isAlive())
lunaclaw->Delete();
else
return true;
}
lunaclaw = EAS::SpawnCreature(p_caster, 12138, pos[0], pos[1], pos[2], pos[3], 0);
lunaclaw->GetAIInterface()->SetNextTarget(p_caster);
EAS::MoveToPlayer(p_caster, lunaclaw);
return true;
}
示例4: CenarionMoondust
bool CenarionMoondust(uint32 i, Spell* pSpell) // Body And Heart (Alliance)
{
const float pos[] = {6348.540039f, 128.124176f, 22.024008f, 4.172032f}; // x, y, z, o
Player *p_caster = pSpell->p_caster;
Creature *lunaclaw = p_caster->GetMapMgr()->GetInterface()->GetCreatureNearestCoords(pos[0], pos[1], pos[2], 12138);
if(lunaclaw != NULL)
{
if(!lunaclaw->isAlive())
lunaclaw->Delete();
else
return true;
}
lunaclaw = EAS::SpawnCreature(p_caster, 12138, pos[0], pos[1], pos[2], pos[3], 0);
lunaclaw->GetAIInterface()->SetNextTarget(p_caster);
EAS::MoveToPlayer(p_caster, lunaclaw);
return true;
}
示例5: HandleDeleteCommand
bool ChatHandler::HandleDeleteCommand(const char* args, WorldSession* m_session)
{
uint64 guid = m_session->GetPlayer()->GetSelection();
if(guid == 0)
{
SystemMessage(m_session, "No selection.");
return true;
}
Creature* unit = m_session->GetPlayer()->GetMapMgr()->GetCreature(GET_LOWGUID_PART(guid));
if(!unit)
{
SystemMessage(m_session, "You should select a creature.");
return true;
}
if(unit->IsPet())
{
SystemMessage(m_session, "You can't delete a pet.");
return true;
}
sGMLog.writefromsession(m_session, "used npc delete, sqlid %u, creature %s, pos %f %f %f", unit->GetSQL_id(), unit->GetCreatureInfo()->Name, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ());
unit->GetAIInterface()->hideWayPoints(m_session->GetPlayer());
unit->DeleteFromDB();
if(unit->IsSummon())
{
unit->Delete();
}
else
{
if(unit->m_spawn)
{
uint32 cellx = uint32(((_maxX - unit->m_spawn->x) / _cellSize));
uint32 celly = uint32(((_maxY - unit->m_spawn->y) / _cellSize));
if(cellx <= _sizeX && celly <= _sizeY)
{
CellSpawns* sp = unit->GetMapMgr()->GetBaseMap()->GetSpawnsList(cellx, celly);
if(sp != NULL)
{
for(CreatureSpawnList::iterator itr = sp->CreatureSpawns.begin(); itr != sp->CreatureSpawns.end(); ++itr)
if((*itr) == unit->m_spawn)
{
sp->CreatureSpawns.erase(itr);
break;
}
}
delete unit->m_spawn;
unit->m_spawn = NULL;
}
}
unit->RemoveFromWorld(false, true);
}
BlueSystemMessage(m_session, "Creature deleted");
return true;
}