Exemplo n.º 1
0
/*
 * Return the number of changes (slow)
 */
sint32		CChangeTrackerBase::nbChanges() const
{
	sint32 nb = 0;
	TDataSetRow	entityIndex	(getFirstChanged());
	while ( entityIndex.getIndex() != LAST_CHANGED )
	{
		++nb;
		entityIndex = getNextChanged( entityIndex );
	}
	return nb;
}
void CMissionParser::solvePlayerName( TVectorParamCheck & params , const TDataSetRow & playerRow )
{
	CCharacter * user = PlayerManager.getChar(playerRow);
	if( !user )
	{
		nlwarning("<CMissionParser solvePlayerName>Invalid user %u",playerRow.getIndex());
		return;
	}
	for ( uint i = 0; i< params.size(); i++)
	{
		if ( params[i].Type == STRING_MANAGER::player  )
		{
			params[i].setEIdAIAlias( user->getId(), CAIAliasTranslator::getInstance()->getAIAlias(user->getId()) );
		}
	}
}
void CMissionParser::solveEntitiesNames( TVectorParamCheck & params , const TDataSetRow & playerRow,const NLMISC::CEntityId& giver )
{
	CCharacter * user = PlayerManager.getChar(playerRow);
	if( !user )
	{
		nlwarning("<CMissionParser solveEntitiesNames>Invalid user %u",playerRow.getIndex());
		return;
	}
	for ( uint i = 0; i< params.size(); i++)
	{
		if ( params[i].Type == STRING_MANAGER::player  )
		{
			params[i].setEIdAIAlias( user->getId(), CAIAliasTranslator::getInstance()->getAIAlias(user->getId()) );
		}
		else if ( params[i].Type == STRING_MANAGER::bot  )
		{
			if ( params[i].getEId() == NLMISC::CEntityId::Unknown )
			{
				if ( params[i].Identifier == "giver" )
				{
					params[i].setEIdAIAlias( giver, CAIAliasTranslator::getInstance()->getAIAlias(giver) );
				}
				else
				{
					params[i].setEIdAIAlias( CAIAliasTranslator::getInstance()->getEntityId( params[i].Int ), params[i].Int );
				}
			}
		}
		else if ( params[i].Type == STRING_MANAGER::string_id && params[i].Identifier == "$guild_name$" )
		{
			// resolve the player guild name
			/// todo guild mission
			/*
			CGuild *g = user->getGuild();
			if (g == NULL)
			{
				nlwarning("<CMissionParser solveEntitiesNames>No guild for user %u",playerRow.getIndex());
				return;
			}
			params[i].StringId = g->getNameId();
			*/
		}
	}
}