示例#1
0
void Character::PlugImplant( uint32 itemID )
{
	// Get itemID, change its location to characterID
	// and change the flag to flagImplant
	// So now its on character's brain
	InventoryItemRef item = m_factory.GetItem( itemID );

	// First of all check if we already have this
	Implants::iterator cur, end;

	cur = m_implants.begin();
	end = m_implants.end();

	for(; cur != end; cur++ )
	{
		InventoryItemRef implant = m_factory.GetItem( cur->itemID );

		if( implant == NULL ) return;

		// Ok, we already have this booster, return
		if( item->typeID() == implant->typeID() ) return;
	}

	item->MoveInto( *this, flagImplant );

	EvilNumber num = 1;
	item->SetAttribute( AttrIsOnline, num, true );
	item->SaveAttributes();

	cImplants i;
	i.itemID = itemID;

	m_implants.push_back( i );
}
示例#2
0
void Character::PlugBooster( uint32 itemID )
{
	// Get itemID, change its location to characterID
	// and change the flag to flagBooster
	// So now its on character's brain
	InventoryItemRef item = m_factory.GetItem( itemID );

	// First of all check if we already have this
	Boosters::iterator cur, end;

	cur = m_boosters.begin();
	end = m_boosters.end();

	for(; cur != end; cur++ )
	{
		InventoryItemRef booster = m_factory.GetItem( cur->itemID );

		if( booster == NULL ) return;
		// Ok, we already have this booster, return
		if( item->typeID() == booster->typeID() )return;
	}

	item->MoveInto( *this, flagBooster );

	EvilNumber num = 1;
	item->SetAttribute( AttrIsOnline, num, true );
	item->SaveAttributes();

	cBoosters i;
	i.itemID = itemID;
	i.plugDate = Win32TimeNow();
	i.expiretime = item->GetAttribute( AttrBoosterDuration ).get_int();

	m_boosters.push_back( i );
}