本文整理汇总了C++中CreaturePointer::GetEntry方法的典型用法代码示例。如果您正苦于以下问题:C++ CreaturePointer::GetEntry方法的具体用法?C++ CreaturePointer::GetEntry怎么用?C++ CreaturePointer::GetEntry使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreaturePointer
的用法示例。
在下文中一共展示了CreaturePointer::GetEntry方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GossipHello
void InnkeeperGossip::GossipHello(ObjectPointer pObject, PlayerPointer Plr, bool AutoSend)
{
CreaturePointer pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULLCREATURE;
if(pCreature==NULLCREATURE)
return;
GossipMenu *Menu;
uint32 TextID = 820;
uint32 Text = objmgr.GetGossipTextForNpc(pCreature->GetEntry());
if(Text != 0)
{
GossipText * text = NpcTextStorage.LookupEntry(Text);
if(text != 0)
TextID = Text;
}
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), TextID, Plr);
#ifdef EVENT_HALLOWEEN
if(!Plr->HasAura(SPELL_TRICK_OR_TREATED))
Menu->AddItem( 0, TRICK_OR_TREAT, 4 );
#endif
if( pObject->GetUInt32Value(UNIT_NPC_FLAGS) & UNIT_NPC_FLAG_VENDOR )
Menu->AddItem( 1, "I would like to browse your goods.", 1 );
Menu->AddItem( 5, "Make this inn your home.", 2 );
Menu->AddItem( 0, "What can I do at an inn?", 3 );
if(AutoSend)
Menu->SendTo(Plr);
}
示例2: HandleGOExport
bool ChatHandler::HandleGOExport(const char * args, WorldSession * m_session)
{
/*if(!m_session->GetPlayer()->m_GM_SelectedGO)
return false;
std::stringstream name;
if (*args)
{
name << "GO_" << args << ".sql";
}
else
{
name << "GO_" << m_session->GetPlayer()->m_GM_SelectedGO->GetEntry() << ".sql";
}
m_session->GetPlayer()->m_GM_SelectedGO->SaveToFile(name);
BlueSystemMessage(m_session, "Go saved to: %s", name.str().c_str());*/
CreaturePointer pCreature = getSelectedCreature(m_session, true);
if(!pCreature) return true;
WorldDatabase.WaitExecute("INSERT INTO creature_names_export SELECT * FROM creature_names WHERE entry = %u", pCreature->GetEntry());
WorldDatabase.WaitExecute("INSERT INTO creature_proto_export SELECT * FROM creature_proto WHERE entry = %u", pCreature->GetEntry());
WorldDatabase.WaitExecute("INSERT INTO vendors_export SELECT * FROM vendors WHERE entry = %u", pCreature->GetEntry());
QueryResult * qr = WorldDatabase.Query("SELECT * FROM vendors WHERE entry = %u", pCreature->GetEntry());
if(qr != NULL)
{
do
{
WorldDatabase.WaitExecute("INSERT INTO items_export SELECT * FROM items WHERE entry = %u", qr->Fetch()[1].GetUInt32());
} while (qr->NextRow());
delete qr;
}
return true;
}
示例3: HandleItemCommand
bool ChatHandler::HandleItemCommand(const char* args, WorldSession *m_session)
{
char* pitem = strtok((char*)args, " ");
if (!pitem)
return false;
uint64 guid = m_session->GetPlayer()->GetSelection();
if (guid == 0)
{
SystemMessage(m_session, "No selection.");
return true;
}
CreaturePointer pCreature = m_session->GetPlayer()->GetMapMgr()->GetCreature(GET_LOWGUID_PART(guid));
if(!pCreature)
{
SystemMessage(m_session, "You should select a creature.");
return true;
}
uint32 item = atoi(pitem);
int amount = -1;
char* pamount = strtok(NULL, " ");
if (pamount)
amount = atoi(pamount);
ItemPrototype* tmpItem = ItemPrototypeStorage.LookupEntry(item);
std::stringstream sstext;
if(tmpItem)
{
std::stringstream ss;
ss << "INSERT INTO vendors VALUES ('" << pCreature->GetUInt32Value(OBJECT_FIELD_ENTRY) << "', '" << item << "', '" << amount << "', 0, 0, 0 )" << '\0';
WorldDatabase.Execute( ss.str().c_str() );
pCreature->AddVendorItem(item, amount);
sstext << "Item '" << item << "' '" << tmpItem->Name1 << "' Added to list" << '\0';
}
else
{
sstext << "Item '" << item << "' Not Found in Database." << '\0';
}
sGMLog.writefromsession(m_session, "added item %u to vendor %u", item, pCreature->GetEntry());
SystemMessage(m_session, sstext.str().c_str());
return true;
}
示例4: OnDied
void OnDied( UnitPointer pKiller )
{
PlayerPointer QuestHolder = NULLPLR;
if ( pKiller->IsPlayer() )
QuestHolder = TO_PLAYER( pKiller );
else if ( pKiller->IsPet() && TO_PET( pKiller )->GetPetOwner() != NULLPLR )
QuestHolder = TO_PET( pKiller )->GetPetOwner();
if ( QuestHolder == NULLPLR )
return;
// M4ksiu: I don't think the method is correct, but it can stay the way it was until someone gives proper infos
QuestLogEntry* Quest = QuestHolder->GetQuestLogForEntry( 9670 );
CreaturePointer RandomCreature = NULLCREATURE;
if ( Quest == NULL )
{
// Creatures from Bloodmyst Isle
uint32 Id[ 51 ] = { 17681, 17887, 17550, 17323, 17338, 17341, 17333, 17340, 17353, 17320, 17339, 17337, 17715, 17322, 17494, 17654, 17342, 17328, 17331, 17325, 17321, 17330, 17522, 17329, 17524, 17327, 17661, 17352, 17334, 17326, 17324, 17673, 17336, 17346, 17589, 17609, 17608, 17345, 17527, 17344, 17347, 17525, 17713, 17523, 17348, 17606, 17604, 17607, 17610, 17358, 17588 };
RandomCreature = _unit->GetMapMgr()->GetInterface()->SpawnCreature( Id[ RandomUInt( 50 ) ], _unit->GetPositionX(), _unit->GetPositionY(), _unit->GetPositionZ(), _unit->GetOrientation(), true, false, 0, 0 );
if ( RandomCreature != NULLCREATURE )
{
RandomCreature->m_noRespawn = true;
RandomCreature->Despawn( 60000, 0 );
};
return;
}
else
{
uint32 Id[ 8 ] = { 17681, 17321, 17330, 17522, 17673, 17336, 17346, 17589 };
RandomCreature = _unit->GetMapMgr()->GetInterface()->SpawnCreature( Id[ RandomUInt( 7 ) ], _unit->GetPositionX(), _unit->GetPositionY(), _unit->GetPositionZ(), _unit->GetOrientation(), true, false, 0, 0 );
if ( RandomCreature != NULLCREATURE )
{
RandomCreature->m_noRespawn = true;
RandomCreature->Despawn( 60000, 0 );
if ( RandomCreature->GetEntry() == 17681 && Quest->GetMobCount( 0 ) < Quest->GetQuest()->required_mobcount[ 0 ] )
{
Quest->SetMobCount( 0, Quest->GetMobCount( 0 ) + 1 );
Quest->SendUpdateAddKill( 0 );
Quest->UpdatePlayerFields();
};
};
};
};
示例5: ForceofNeltharakuSpell
bool ForceofNeltharakuSpell(uint32 i, SpellPointer pSpell) // Becoming a Shadoweave Tailor
{
if(pSpell->u_caster->IsPlayer() == false)
return true;
PlayerPointer pPlayer= TO_PLAYER(pSpell->u_caster);
UnitPointer pUnit = TO_UNIT(pPlayer->GetMapMgr()->GetCreature(GET_LOWGUID_PART(pPlayer->GetSelection())));
if(pUnit == NULLUNIT)
return true;
if(!pUnit->IsCreature())
return true;
CreaturePointer pTarget = TO_CREATURE(pUnit);
QuestLogEntry *pQuest = pPlayer->GetQuestLogForEntry(10854);
if(pQuest == NULL)
return true;
if(pTarget->GetEntry() == 21722 && pPlayer->CalcDistance(pUnit)<30)
{
if ( pQuest && pQuest->GetMobCount(0) < pQuest->GetQuest()->required_mobcount[0] )
{
pTarget->CastSpell(pPlayer, dbcSpell.LookupEntry(38775), true);
pQuest->SetMobCount(0, pQuest->GetMobCount(0)+1);
pQuest->SendUpdateAddKill(0);
pQuest->UpdatePlayerFields();
if ( pTarget->GetScript() != NULL )
{
MoonScriptCreatureAI *pDrakeAI = static_cast<MoonScriptCreatureAI*>(pTarget->GetScript());
pDrakeAI->SetCanMove(true);
pDrakeAI->SetWaypointToMove(0);
}
}
}
return true;
}
示例6: HandleCharterBuy
// Charter part
void WorldSession::HandleCharterBuy(WorldPacket & recv_data)
{
/*
{CLIENT} Packet: (0x01BD) CMSG_PETITION_BUY PacketSize = 85
|------------------------------------------------|----------------|
|00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |0123456789ABCDEF|
|------------------------------------------------|----------------|
|50 91 00 00 6E 13 01 F0 00 00 00 00 00 00 00 00 |P...n...........|
|00 00 00 00 53 74 6F 72 6D 62 72 69 6E 67 65 72 |....Stormbringer|
|73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |s...............|
|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
|00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 |................|
|00 00 00 00 00 |..... |
-------------------------------------------------------------------
*/
uint64 creature_guid;
uint64 crap;
uint32 crap2;
string name;
uint8 error;
uint32 crap3,crap4,crap5,crap6,crap7,crap8,crap9,crap10,crap11,arena_index,crap12;
uint16 crap13;
uint8 crap14;
uint32 crap15;
recv_data >> creature_guid >> crap >> crap2 >> name;
recv_data >> crap3 >> crap4 >> crap5 >> crap6 >> crap7 >> crap8 >> crap9 >> crap10 >> crap11
>> crap12 >> crap13 >> crap14 >> arena_index >> crap15;
CreaturePointer crt = _player->GetMapMgr()->GetCreature(GET_LOWGUID_PART(creature_guid));
if(!crt)
{
Disconnect();
return;
}
if( arena_index >= NUM_CHARTER_TYPES )
return;
if(crt->GetEntry()==19861 || crt->GetEntry()==18897 || crt->GetEntry()==19856) /* i am lazy! */
{
uint32 arena_type = arena_index - 1;
if(arena_type > 2)
return;
if(_player->m_playerInfo->arenaTeam[arena_type])
{
SendNotification("You are already in an arena team.");
return;
}
if(_player->m_playerInfo->charterId[arena_index] != 0)
{
SendNotification("You already have an arena charter of this type.");
return;
}
ArenaTeam * t = objmgr.GetArenaTeamByName(name, arena_type);
if(t != NULL)
{
sChatHandler.SystemMessage(this,"That name is already in use.");
return;
}
if(objmgr.GetCharterByName(name, (CharterTypes)arena_index))
{
sChatHandler.SystemMessage(this,"That name is already in use.");
return;
}
static uint32 item_ids[] = {ARENA_TEAM_CHARTER_2v2, ARENA_TEAM_CHARTER_3v3, ARENA_TEAM_CHARTER_5v5};
static uint32 costs[] = {ARENA_TEAM_CHARTER_2v2_COST,ARENA_TEAM_CHARTER_3v3_COST,ARENA_TEAM_CHARTER_5v5_COST};
if(_player->GetUInt32Value(PLAYER_FIELD_COINAGE) < costs[arena_type] && !sWorld.free_arena_teams)
return; // error message needed here
ItemPrototype * ip = ItemPrototypeStorage.LookupEntry(item_ids[arena_type]);
ASSERT(ip);
SlotResult res = _player->GetItemInterface()->FindFreeInventorySlot(ip);
if(res.Result == 0)
{
_player->GetItemInterface()->BuildInventoryChangeError(NULLITEM, NULLITEM, INV_ERR_INVENTORY_FULL);
return;
}
error = _player->GetItemInterface()->CanReceiveItem(ip,1, NULL);
if(error)
{
_player->GetItemInterface()->BuildInventoryChangeError(NULLITEM,NULLITEM,error);
}
else
{
// Create the item and charter
ItemPointer i = objmgr.CreateItem(item_ids[arena_type], _player);
Charter * c = objmgr.CreateCharter(_player->GetLowGUID(), (CharterTypes)arena_index);
c->GuildName = name;
c->ItemGuid = i->GetGUID();
i->SetUInt32Value(ITEM_FIELD_STACK_COUNT, 1);
//.........这里部分代码省略.........