本文整理汇总了C++中P_PLAYER::getPyObject方法的典型用法代码示例。如果您正苦于以下问题:C++ P_PLAYER::getPyObject方法的具体用法?C++ P_PLAYER::getPyObject怎么用?C++ P_PLAYER::getPyObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P_PLAYER
的用法示例。
在下文中一共展示了P_PLAYER::getPyObject方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
static PyObject *wpParty_getAttr(wpParty *self, char *name)
{
cParty *party = self->party;
if (!strcmp(name, "leader"))
{
return party->leader()->getPyObject();
}
else if (!strcmp(name, "members"))
{
QPtrList<cPlayer> members = party->members();
PyObject *list = PyList_New(0);
for (P_PLAYER member = members.first(); member; member = members.next())
PyList_Append(list, member->getPyObject());
return list;
}
else if (!strcmp(name, "canidates"))
{
QPtrList<cPlayer> canidates = party->canidates();
PyObject *list = PyList_New(0);
for (P_PLAYER canidate = canidates.first(); canidate; canidate = canidates.next())
PyList_Append(list, canidate->getPyObject());
return list;
}
else if (!strcmp(name, "lootingallowed"))
{
QPtrList<cPlayer> lootlist = party->lootingAllowed();
PyObject *list = PyList_New(0);
for (P_PLAYER member = lootlist.first(); member; member = lootlist.next())
PyList_Append(list, member->getPyObject());
return list;
}
return Py_FindMethod(wpPartyMethods, (PyObject*)self, name);
}
示例2: wpParty_getAttr
static PyObject* wpParty_getAttr( wpParty* self, char* name )
{
cParty* party = self->party;
/*
\rproperty party.leader A <object id="char">char</object> object for the leader of this party.
*/
if ( !strcmp( name, "leader" ) )
{
return party->leader()->getPyObject();
}
/*
\rproperty party.members A list of <object id="char">char</object> objects for the members in this party.
*/
else if ( !strcmp( name, "members" ) )
{
QPtrList<cPlayer> members = party->members();
PyObject* list = PyList_New( 0 );
for ( P_PLAYER member = members.first(); member; member = members.next() )
PyList_Append( list, member->getPyObject() );
return list;
}
/*
\rproperty party.canidates A list of <object id="char">char</object> objects for the canidates in this party.
*/
else if ( !strcmp( name, "canidates" ) )
{
QPtrList<cPlayer> canidates = party->canidates();
PyObject* list = PyList_New( 0 );
for ( P_PLAYER canidate = canidates.first(); canidate; canidate = canidates.next() )
PyList_Append( list, canidate->getPyObject() );
return list;
}
/*
\rproperty party.lootingallowed A list of <object id="char">char</object> objects for the members of this party who allowed looting their corpse.
*/
else if ( !strcmp( name, "lootingallowed" ) )
{
QPtrList<cPlayer> lootlist = party->lootingAllowed();
PyObject* list = PyList_New( 0 );
for ( P_PLAYER member = lootlist.first(); member; member = lootlist.next() )
PyList_Append( list, member->getPyObject() );
return list;
}
return Py_FindMethod( wpPartyMethods, ( PyObject * ) self, name );
}
示例3: response
/////////////////
// name: response
// purpose: tries to get a response from an npc standing around
// history: heavily revamped/rewritten by Duke, Oct 2001
// remark: The new logic tries to minimize the # of strstr() calls by *first* checking
// what kind of npcs are standing around and then checking only those keywords
// that they might be interested in.
// This is especially usefull in crowded places.
bool Speech::response( cUOSocket* socket, P_PLAYER pPlayer, const QString& comm, QValueVector<Q_UINT16>& keywords )
{
if ( !pPlayer->socket() || pPlayer->isDead() )
{
return false;
}
QString speechUpr = comm.upper();
MapCharsIterator ri = MapObjects::instance()->listCharsInCircle( pPlayer->pos(), 18 );
for ( P_CHAR pChar = ri.first(); pChar; pChar = ri.next() )
{
P_NPC pNpc = dynamic_cast<P_NPC>( pChar );
// We will only process NPCs here
if ( !pNpc )
continue;
// at least they should be on the screen
if ( pPlayer->dist( pNpc ) > 16 )
continue;
if ( pNpc->canHandleEvent( EVENT_SPEECH ) )
{
PyObject* pkeywords = PyTuple_New( keywords.size() );
// Set Items
for ( unsigned int i = 0; i < keywords.size(); ++i )
PyTuple_SetItem( pkeywords, i, PyInt_FromLong( keywords[i] ) );
PyObject* args = Py_BuildValue( "(NNNO)", pNpc->getPyObject(), pPlayer->getPyObject(), QString2Python( comm ), pkeywords );
bool result = pNpc->callEventHandler( EVENT_SPEECH, args );
Py_DECREF( args );
Py_DECREF( pkeywords );
if ( result )
return true;
}
if ( pNpc->ai() )
{
pNpc->ai()->onSpeechInput( pPlayer, speechUpr );
}
if ( QuestionSpeech( socket, pPlayer, pNpc, speechUpr ) )
return true;
}
return false;
}
示例4: 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 );
}