本文整理汇总了C++中P_NPC::bodyID方法的典型用法代码示例。如果您正苦于以下问题:C++ P_NPC::bodyID方法的具体用法?C++ P_NPC::bodyID怎么用?C++ P_NPC::bodyID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P_NPC
的用法示例。
在下文中一共展示了P_NPC::bodyID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PetCommand
bool PetCommand( cUOSocket *socket, P_PLAYER pPlayer, P_NPC pPet, const QString& comm )
{
if( pPet->owner() != pPlayer && !pPlayer->isGM() )
return false;
// player vendor
/* if( pPet->npcaitype() == 17 )
return false;*/
// too far away to hear us
if( pPlayer->dist( pPet ) > 7 )
return false;
QString petname = pPet->name();
bool bAllCommand = false;
if( !comm.contains( petname, false ) )
if( comm.contains( "ALL", false ) )
bAllCommand = true;
else
return false;
bool bReturn = false;
if( comm.contains( " FOLLOW" ) )
{
if( comm.contains( " ME" ) )
{
#pragma note( "TODO: implement state change here" )
// pPet->setWanderFollowTarget( pPlayer->serial() );
// pPet->setWanderType( enFollowTarget );
playmonstersound( pPet, pPet->bodyID(), SND_STARTATTACK );
}
else
{
// LEGACY: target( s, 0, 1, 0, 117, "Click on the target to follow." );
}
bReturn = true;
}
else if( ( comm.contains( " KILL" ) ) || ( comm.contains( " ATTACK" ) ) )
{
if( pPet->inGuardedArea() ) // Ripper..No pet attacking in town.
{
pPlayer->message( tr( "You can't have pets attack in town!" ) );
return false;
}
//pPlayer->setGuarded( false );
// >> LEGACY
//addx[s]=pPet->serial();
//target(s, 0, 1, 0, 118, "Select the target to attack.");//AntiChrist
bReturn = true;
}
else if( ( comm.contains( " FETCH" ) ) || ( comm.contains( " GET" ) ) )
{
//pPlayer->setGuarded(false);
// >> LEGACY
//addx[s]=pPet->serial();
//target(s, 0, 1, 0, 124, "Click on the object to fetch.");
bReturn = true;
}
else if( comm.contains( " COME" ) )
{
//pPlayer->setGuarded( false );
#pragma note( "TODO: implement state change here" )
// pPet->setWanderFollowTarget( pPlayer->serial() );
// pPet->setWanderType( enFollowTarget );
pPet->setNextMoveTime();
pPlayer->message( tr( "Your pet begins following you." ) );
bReturn = true;
}
else if( comm.contains( " GUARD" ) )
{
// LEGACY
/*addx[s] = pPet->serial(); // the pet's serial
addy[s] = 0;
if( comm.find( " ME" ) != string::npos )
addy[s]=1; // indicates we already know whom to guard (for future use)
// for now they still must click on themselves (Duke)
target(s, 0, 1, 0, 120, "Click on the char to guard.");*/
bReturn = true;
}
else if( ( comm.contains( " STOP" ) ) || ( comm.contains(" STAY") ) )
{
//pPlayer->setGuarded( false );
#pragma note( "TODO: implement state change here" )
// pPet->setWanderFollowTarget( INVALID_SERIAL );
pPet->setCombatTarget( INVALID_SERIAL );
if (pPet->isAtWar())
pPet->toggleCombat();
pPet->setWanderType( enHalt );
bReturn = true;
}
else if( comm.contains( " TRANSFER" ) )
{
//.........这里部分代码省略.........