本文整理汇总了C++中P_CHAR::getPyObject方法的典型用法代码示例。如果您正苦于以下问题:C++ P_CHAR::getPyObject方法的具体用法?C++ P_CHAR::getPyObject怎么用?C++ P_CHAR::getPyObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P_CHAR
的用法示例。
在下文中一共展示了P_CHAR::getPyObject方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dispel
void cTempEffects::dispel( P_CHAR pc_dest, P_CHAR pSource, bool silent )
{
if (cPythonScript::canChainHandleEvent(EVENT_DISPEL, pc_dest->getEvents())) {
PyObject *source;
if (pSource) {
source = pSource->getPyObject();
} else {
Py_INCREF(Py_None);
source = Py_None;
}
PyObject *args = Py_BuildValue("(NNBBsN", pc_dest->getPyObject(), source, silent ? 1 : 0, 0, "", PyTuple_New(0));
bool result = cPythonScript::callChainedEventHandler(EVENT_DISPEL, pc_dest->getEvents(), args);
Py_DECREF(args);
if (result) {
return;
}
}
std::vector< cTempEffect* >::iterator i = teffects.begin();
for( i = teffects.begin(); i != teffects.end(); i++ )
if( (*i) != NULL && (*i)->dispellable && (*i)->getDest() == pc_dest->serial() )
{
if( isCharSerial( (*i)->getDest() ) )
{
P_CHAR pChar = FindCharBySerial( (*i)->getDest() );
if( pChar )
pChar->removeEffect( (*i) );
}
(*i)->Dispel( pSource, silent );
teffects.erase( i );
}
std::make_heap( teffects.begin(), teffects.end(), cTempEffects::ComparePredicate() );
}
示例2: Snooping
void cSkills::Snooping( P_PLAYER player, P_ITEM container )
{
P_CHAR owner = container->getOutmostChar();
if ( !owner )
return; // Snooping into something thats not equipped?!
PyObject *args = Py_BuildValue( "(NNN)", owner->getPyObject(), container->getPyObject(), player->getPyObject() );
// Event prfen
if ( player->canHandleEvent( EVENT_SNOOPING ) )
{
if ( player->callEventHandler( EVENT_SNOOPING, args ) )
{
Py_DECREF( args );
return;
}
}
if ( owner->canHandleEvent( EVENT_SNOOPING ) )
{
if ( owner->callEventHandler( EVENT_SNOOPING, args ) )
{
Py_DECREF( args );
return;
}
}
Py_DECREF( args );
cUOSocket* socket = player->socket();
if ( !socket )
return;
P_CHAR pc_owner = container->getOutmostChar();
P_PLAYER pp_owner = dynamic_cast<P_PLAYER>( pc_owner );
if ( pp_owner && pp_owner->isGMorCounselor() )
{
pp_owner->message( tr( "%1 is trying to snoop in your pack" ).arg( player->name() ) );
socket->sysMessage( 500209 ); // You can not peek into the container.
return;
}
else if ( player->checkSkill( SNOOPING, 0, 1000 ) )
{
socket->sendContainer( container );
socket->sysMessage( tr( "You successfully peek into that container." ) );
}
else
{
socket->sysMessage( 500210 ); // You failed to peek into the container.
if ( !pp_owner ) // is NPC ?
{
if ( pc_owner )
{
pc_owner->talk( tr( "Art thou attempting to disturb my privacy?" ) );
}
}
else
{
pp_owner->message( tr( "You notice %1 trying to peek into your pack!" ).arg( player->name() ) );
}
}
// SetTimerSec(player->objectdelay(), Config::instance()->objectDelay()+Config::instance()->snoopdelay());
player->setObjectDelay( Server::instance()->time() + ( Config::instance()->objectDelay() + Config::instance()->snoopdelay() ) * MY_CLOCKS_PER_SEC );
}