本文整理汇总了C++中P_ITEM::serial方法的典型用法代码示例。如果您正苦于以下问题:C++ P_ITEM::serial方法的具体用法?C++ P_ITEM::serial怎么用?C++ P_ITEM::serial使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P_ITEM
的用法示例。
在下文中一共展示了P_ITEM::serial方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: toDouble
/*!
Returns the variant as a double if the variant has type()
StringType, CString, DoubleType, IntType, UInt, or Bool; or 0.0 otherwise.
If \a ok is non-null, \a *ok is set to TRUE if the value could be
converted to a double and FALSE otherwise.
\sa asDouble()
*/
double cVariant::toDouble( bool* ok ) const
{
if ( typ == StringType )
return ( ( QString * ) value.ptr )->toDouble( ok );
if ( ok )
*ok = canCast( DoubleType );
if ( typ == DoubleType )
return value.d;
if ( typ == IntType )
return ( double ) value.i;
if ( typ == LongType )
return ( double ) value.d;
if ( typ == BaseCharType )
{
P_CHAR pChar = static_cast<P_CHAR>( value.ptr );
return pChar ? ( double ) pChar->serial() : ( double ) INVALID_SERIAL;
}
if ( typ == ItemType )
{
P_ITEM pItem = static_cast<P_ITEM>( value.ptr );
return pItem ? ( double ) pItem->serial() : ( double ) INVALID_SERIAL;
}
return 0.0;
}
示例2: toInt
/*!
Returns the variant as an int if the variant has type()
StringType, CString, IntType, UInt, DoubleType, Bool or KeySequence; or 0 otherwise.
If \a ok is non-null, \a *ok is set to TRUE if the value could be
converted to an int and FALSE otherwise.
\sa asInt() canCast()
*/
int cVariant::toInt( bool* ok ) const
{
if ( typ == StringType )
return hex2dec( *( ( QString * ) value.ptr ) ).toInt( ok );
if ( ok )
*ok = canCast( IntType );
if ( typ == IntType )
return value.i;
if ( typ == LongType )
return ( int ) value.d;
if ( typ == DoubleType )
return ( int ) value.d;
if ( typ == BaseCharType )
{
P_CHAR pChar = static_cast<P_CHAR>( value.ptr );
return pChar ? pChar->serial() : INVALID_SERIAL;
}
if ( typ == ItemType )
{
P_ITEM pItem = static_cast<P_ITEM>( value.ptr );
return pItem ? pItem->serial() : INVALID_SERIAL;
}
return 0;
}
示例3: postWorldLoading
void cAllSpawnRegions::postWorldLoading()
{
cItemIterator iItems;
for( P_ITEM pItem = iItems.first(); pItem; pItem = iItems.next() )
{
QString srname = pItem->spawnregion();
if( !srname.isNull() )
{
cSpawnRegion* spawnregion = region( srname );
if( spawnregion )
spawnregion->add( pItem->serial() );
}
}
}
示例4: reSpawn
// do one spawn and reset the timer
void cSpawnRegion::reSpawn( void )
{
this->checkForDeleted();
UI16 i = 0;
for( i = 0; i < this->npcsPerCycle_; i++ )
{
if( this->npcSerials_.size() < this->maxNpcAmt_ )
{
// spawn a random npc
// first find a valid position for the npc
Coord_cl pos;
if( this->findValidSpot( pos ) )
{
QString NpcSect = this->npcSections_[ RandomNum( 1, this->npcSections_.size() ) - 1 ];
P_NPC pc = cCharStuff::createScriptNpc( NpcSect, pos );
if( pc != NULL )
{
this->npcSerials_.push_back( pc->serial() );
pc->setSpawnregion( this->name_ );
}
}
}
}
for( i = 0; i < this->itemsPerCycle_; i++ )
{
if( this->itemSerials_.size() < this->maxItemAmt_ )
{
// spawn a random item
// first find a valid position for the item
Coord_cl pos;
if( this->findValidSpot( pos ) )
{
QString ItemSect = this->itemSections_[ RandomNum( 1, this->itemSections_.size() ) - 1 ];
P_ITEM pi = cItem::createFromScript( ItemSect );
if( pi != NULL )
{
pi->moveTo( pos );
this->itemSerials_.push_back( pi->serial() );
// pi->setSpawnRegion( this->name_ );
}
}
}
}
this->nextTime_ = uiCurrentTime + RandomNum( this->minTime_, this->maxTime_ ) * MY_CLOCKS_PER_SEC;
}
示例5: reSpawnToMax
void cSpawnRegion::reSpawnToMax( void )
{
this->checkForDeleted();
while( this->npcSerials_.size() < this->maxNpcAmt_ )
{
// spawn a random npc
// first find a valid position for the npc
Coord_cl pos;
if( this->findValidSpot( pos ) )
{
QString NpcSect = this->npcSections_[ RandomNum( 1, static_cast<uint>(this->npcSections_.size()) ) - 1 ];
P_NPC pc = cCharStuff::createScriptNpc( NpcSect, pos );
if( pc != NULL )
{
this->npcSerials_.push_back( pc->serial() );
pc->setSpawnregion( this->name_ );
pc->update();
}
}
}
while( this->npcSerials_.size() < this->maxNpcAmt_ )
{
// spawn a random item
// first find a valid position for the item
Coord_cl pos;
if( this->findValidSpot( pos ) )
{
QString ItemSect = this->itemSections_[ RandomNum( 1, this->itemSections_.size() ) - 1 ];
P_ITEM pi = cItem::createFromScript( ItemSect );
if( pi != NULL )
{
pi->setPos( pos );
this->itemSerials_.push_back( pi->serial() );
// pi->setSpawnRegion( this->name_ );
}
}
}
this->nextTime_ = uiCurrentTime + RandomNum( this->minTime_, this->maxTime_ ) * MY_CLOCKS_PER_SEC;
}
示例6: toString
/*!
Returns the variant as a QString if the variant has type()
StringType, CString, ByteArray, IntType, Uint, Bool, DoubleType, Date, Time, or DateTime,
or QString::null otherwise.
\sa asString()
*/
const QString cVariant::toString() const
{
if ( typ == IntType )
return QString::number( value.i );
if ( typ == LongType )
return QString::number( value.d );
if ( typ == DoubleType )
return QString::number( toDouble() );
if ( typ == BaseCharType )
{
P_CHAR pChar = static_cast<P_CHAR>( value.ptr );
if ( pChar )
return "0x" + QString::number( ( unsigned int ) pChar->serial(), 16 );
else
return "0x" + QString::number( ( unsigned int ) INVALID_SERIAL, 16 );
}
if ( typ == ItemType )
{
P_ITEM pItem = static_cast<P_ITEM>( value.ptr );
if ( pItem )
return "0x" + QString::number( ( unsigned int ) pItem->serial(), 16 );
else
return "0x" + QString::number( ( unsigned int ) INVALID_SERIAL, 16 );
}
if ( typ == CoordType )
{
Coord* pos = static_cast<Coord*>( value.ptr );
return QString( "%1,%2,%3,%4" ).arg( pos->x ).arg( pos->y ).arg( pos->z ).arg( pos->map );
}
if ( typ != StringType )
return QString();
return *( ( QString * ) value.ptr );
}
示例7: dropOnChar
void cDragItems::dropOnChar( cUOSocket *socket, P_ITEM pItem, P_CHAR pOtherChar )
{
// Three possibilities:
// If we're dropping it on ourself: packintobackpack
// If we're dropping it on some other player: trade-window
// If we're dropping it on some NPC: checkBehaviours
// If not handeled: Equip the item if the NPC is owned by us
// To prevent bad effects remove it from the clients view first
cUOTxRemoveObject rObject;
rObject.setSerial( pItem->serial() );
socket->send( &rObject );
P_CHAR pChar = socket->player();
if( pItem->onDropOnChar( pOtherChar ) )
{
// Still dragging? Bounce!
if( socket->dragging() == pItem )
socket->bounceItem( pItem, BR_NO_REASON );
return;
}
if( pOtherChar->onDropOnChar( pItem ) )
{
// Still dragging? Bounce!
if( socket->dragging() == pItem )
socket->bounceItem( pItem, BR_NO_REASON );
return;
}
// Dropped on ourself
if( pChar == pOtherChar )
{
pItem->toBackpack( pChar );
return;
}
// Are we in range of our target
if( !inrange1p( pChar, pOtherChar ) )
{
socket->bounceItem( pItem, BR_OUT_OF_REACH );
return;
}
// Can wee see our target
if( !lineOfSight( pChar->pos(), pOtherChar->pos(), TREES_BUSHES|WALLS_CHIMNEYS|DOORS|ROOFING_SLANTED|FLOORS_FLAT_ROOFING|LAVA_WATER ) )
{
socket->bounceItem( pItem, BR_OUT_OF_SIGHT );
return;
}
// Open a secure trading window
if( pOtherChar->objectType() == enPlayer && dynamic_cast<P_PLAYER>(pOtherChar)->socket() )
{
// Check if we're already trading,
// if not create a new window
P_ITEM tradeWindow = pChar->atLayer( cBaseChar::TradeWindow );
//if( !tradeWindow )
// tradeWindow = Trade->tradestart( client->socket(), pOtherChar );
socket->bounceItem( pItem, BR_NO_REASON );
socket->sysMessage( "Trading is disabled" );
return;
tradeWindow->addItem( pItem, false, false );
pItem->setPos( Coord_cl(rand() % 60, rand() % 60, 9) );
pItem->removeFromView( false );
pItem->update();
return;
}
// Dropping based on AI Type
/*switch( pOtherChar->npcaitype() )
{
case 4:
dropOnGuard( client, pItem, pOtherChar );
break;
case 5:
dropOnBeggar( client, pItem, pOtherChar );
break;
case 8:
dropOnBanker( client, pItem, pOtherChar );
break;
case 19:
dropOnBroker( client, pItem, pOtherChar );
break;
};
// Try to train - works for any NPC
if( pOtherChar->cantrain() )
if( pChar->trainer() == pOtherChar->serial )
dropOnTrainer( client, pItem, pOtherChar );
else
pOtherChar->talk( "You need to tell me what you want to learn first" );*/
// Finally lets check if it is simple food
if( pItem->type() == 14 )
//.........这里部分代码省略.........
示例8: saveItem
void cTempEffect::saveItem(unsigned int id, QString key, P_ITEM item ) {
unsigned int value = item->serial();
persistentBroker->executeQuery( QString( "REPLACE INTO effects_properties VALUES(%1,'%2','%3','%4');" ).arg( id ).arg( persistentBroker->quoteString( key ) ).arg( "item" ).arg( value ) );
}