本文整理汇总了C++中P_CHAR::Wears方法的典型用法代码示例。如果您正苦于以下问题:C++ P_CHAR::Wears方法的具体用法?C++ P_CHAR::Wears怎么用?C++ P_CHAR::Wears使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P_CHAR
的用法示例。
在下文中一共展示了P_CHAR::Wears方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Packitem
P_ITEM Packitem(P_CHAR pc) // Find packitem
{
if(pc == NULL)
return NULL;
P_ITEM pi = FindItemBySerial(pc->packitem);
if (pi != NULL)
{
if (pc->Wears(pi) && pi->layer==0x15)
{
return pi;
}
}
// - For some reason it's not defined, so go look for it.
unsigned int ci = 0;
vector<SERIAL> vecContainer = contsp.getData(pc->serial);
for ( ci = 0; ci < vecContainer.size(); ci++)
{
P_ITEM pi = FindItemBySerial(vecContainer[ci]);
if (pi != NULL && pi->layer==0x15)
{
pc->packitem = pi->serial; //Record it for next time
return (pi);
}
}
return NULL;
}
示例2: dropOnItem
void cDragItems::dropOnItem( P_CLIENT client, P_ITEM pItem, P_ITEM pCont, const Coord_cl &dropPos )
{
P_CHAR pChar = client->player();
if( pItem->isMulti() )
{
client->sysMessage( "You cannot put houses in containers" );
bounceItem( client, pItem );
return;
}
// If the target belongs to another character
// It needs to be our vendor or else it's denied
P_CHAR packOwner = GetPackOwner( pCont );
if( ( packOwner != NULL ) && ( packOwner != pChar ) )
{
// For each item someone puts into there
// He needs to do a snoop-check
if( pChar->canSnoop() )
{
if( !Skills->CheckSkill( pChar, SNOOPING, 0, 1000 ) )
{
client->sysMessage( QString( "You fail to put that into %1's pack" ).arg( packOwner->name.c_str() ) );
bounceItem( client, pItem );
return;
}
}
if( !packOwner->isNpc() || ( packOwner->npcaitype() != 17 ) || !pChar->Owns( packOwner ) )
{
client->sysMessage( "You cannot put that into the belongings of another player" );
bounceItem( client, pItem );
return;
}
}
// If we put the item into a trade-window
// Reset the trade-status for both players
if( pCont->layer() == 0 && pCont->id() == 0x1E5E && pChar->Wears( pCont ) )
{
// Trade window???
P_ITEM tradeWindow = FindItemBySerial( calcserial( pCont->moreb1(), pCont->moreb2(), pCont->moreb3(), pCont->moreb4() ) );
// If it *IS* a trade-window, replace the status
if( tradeWindow && ( pCont->morez || tradeWindow->morez ) )
{
tradeWindow->morez = 0;
pCont->morez = 0;
sendtradestatus( tradeWindow, pCont );
}
}
if( !pChar->canPickUp( pItem ) )
{
bounceItem( client, pItem );
return;
}
// Trash can
if( pCont->type()==87 )
{
Items->DeleItem( pItem );
client->sysMessage( "As you let go of the item it disappears." );
return;
}
// Spell Book
if( pCont->type() == 9 )
{
UI08 spellId = Magic->calcSpellId( pItem->id() );
if( spellId < 0 )
{
client->sysMessage( "You can only put scrolls into a spellbook" );
bounceItem( client, pItem );
return;
}
if( Magic->hasSpell( pCont, spellId ) )
{
client->sysMessage( "That spellbook already contains this spell" );
bounceItem( client, pItem );
return;
}
}
// We drop something on the belongings of one of our playervendors
if( ( packOwner != NULL ) && ( packOwner->npcaitype() == 17 ) && pChar->Owns( packOwner ) )
{
client->sysMessage( "You drop something into your playervendor" );
bounceItem( client, pItem );
return;
}
// Playervendors (chest equipped by the vendor - opened to the client)
/*if( !( pCont->pileable() && pItem->pileable() && pCont->id() == pItem->id() || ( pCont->type() != 1 && pCont->type() != 9 ) ) )
{
//.........这里部分代码省略.........