当前位置: 首页>>代码示例>>C++>>正文


C++ nlnet::CMessage类代码示例

本文整理汇总了C++中nlnet::CMessage的典型用法代码示例。如果您正苦于以下问题:C++ CMessage类的具体用法?C++ CMessage怎么用?C++ CMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CMessage类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: pushMessageToLocalQueueFromMessage

void CMirrorService::pushMessageToLocalQueueFromMessage( std::vector<TMessageCarrier>& msgQueue, NLNET::CMessage& msgin )
{
	TMessageCarrier mc( true );
	msgQueue.push_back( mc );
	msgin.serial( msgQueue.back().SenderId );
	msgin.serialMemStream( msgQueue.back().Msg );
}
开发者ID:mixxit,项目名称:solinia,代码行数:7,代码来源:ms_automaton.cpp

示例2: cbDisengageNotification

//--------------------------------------------------------------
//					cbDisengageNotification()  
//--------------------------------------------------------------
void cbDisengageNotification( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
	H_AUTO(cbDisengageNotification);
	
	if ( ! Mirror.mirrorIsReady() )
	{
		nlwarning("<cbDisengageNotification> Received from %s service but mirror not yet ready", serviceName.c_str() );
		return;
	}
	
	if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0)
	{
		TDataSetRow entityRowId;
		msgin.serial( entityRowId );
		
		INFOLOG("<cbDisengageNotification> received disengage notification for entity %s", TheDataset.getEntityId(entityRowId).toString().c_str());
		
		CPhraseManager::getInstance().disengage( entityRowId, true );
	}
	else
	{
		CEntityId entityId;
		msgin.serial( entityId );
		
		INFOLOG("<cbDisengageNotification> received disengage notification for entity %s", entityId.toString().c_str());
		
		CPhraseManager::getInstance().disengage( TheDataset.getDataSetRow(entityId), true );
	}
	
} // cbDisengageNotification //
开发者ID:Darkhunter,项目名称:Tranquillien-HCRP-Project-using-NeL,代码行数:33,代码来源:phrase_manager_callbacks.cpp

示例3: cbDisengage

//--------------------------------------------------------------
//					cbDisengage()  
//--------------------------------------------------------------
void cbDisengage( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
	H_AUTO(cbDisengage);
	
	if ( ! Mirror.mirrorIsReady() )
	{
		nlwarning("<cbDisengage> Received from %s service but mirror not yet ready", serviceName.c_str() );
		return;
	}

	if (serviceName == "AIS")
	{
		TDataSetRow entityRowId;
		msgin.serial( entityRowId );
		
		DEBUGLOG("<cbDisengage> AIS Disengage entity %s", TheDataset.getEntityId(entityRowId).toString().c_str() );
		
		CPhraseManager::getInstance().disengage( entityRowId, true /*chatMsg*/, true /*disengageCreature*/);
	}
	else
	{
		CEntityId entityId;
		msgin.serial( entityId );

		DEBUGLOG("<cbDisengage> Service %s Disengage entity %s", serviceName.c_str(), entityId.toString().c_str() );

		CPhraseManager::getInstance().disengage( TheDataset.getDataSetRow(entityId), true );
	}
	
} // cbDisengage //
开发者ID:Darkhunter,项目名称:Tranquillien-HCRP-Project-using-NeL,代码行数:33,代码来源:phrase_manager_callbacks.cpp

示例4: cbReleaseRange

void cbReleaseRange( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId mirrorServiceId )
{
	vector<string> datasetNames;
	NLNET::TServiceId declaratorServiceId;
	msgin.serialCont( datasetNames );
	msgin.serial( declaratorServiceId );
	RMMInstance->releaseRanges( datasetNames, declaratorServiceId, mirrorServiceId );
}
开发者ID:,项目名称:,代码行数:8,代码来源:

示例5:

/*
 * PDS init failed, stop everything!
 */
void	cbPDSInitFailed(NLNET::CMessage& msgin, const std::string &serviceName, TServiceId serviceId)
{
	uint32	databaseId;
	msgin.serial(databaseId);
	string	error;
	msgin.serial(error);

	nlerror("Database '%d' initialisation failed: '%s'", databaseId, error.c_str());
}
开发者ID:,项目名称:,代码行数:12,代码来源:

示例6: cbClientBotChatPickStaticMission

//----------------------------------------------------------------------------
void cbClientBotChatPickStaticMission( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
    if ( !MissionSystemEnabled )
        return;
    CEntityId userId;
    uint8 index;
    msgin.serial(userId);
    msgin.serial(index);
    //get the user and the asked mission
    if (!checkPlayer(userId, "cbClientBotChatPickStaticMission")) return;
    CCharacter	* user = PlayerManager.getChar( userId );

    // Create the debug string
    string sDebugPrefix = string("user:") + userId.toString().c_str() + " cbClientBotChatPickStaticMission :";

    // Check for user
    if ( user == NULL )
    {
        MISLOG("%s cant find user.", sDebugPrefix.c_str());
        return;
    }

    // Check that index falls in good range
    if ( index >= user->getCurrentMissionList().size() )
    {
        MISLOG("%s invalid index %u, there are %u", sDebugPrefix.c_str(), index, user->getCurrentMissionList().size() );
        return;
    }

    // Check if the user is not cheating (trying to get a mission grayed)
    if ( user->getCurrentMissionList()[index].PreReqState != MISSION_DESC::PreReqSuccess)
    {
        MISLOG("%s user choose a mission with failed prerequesit (index %u)", sDebugPrefix.c_str(), index);
        return;
    }

    CCreature * bot = CreatureManager.getCreature( user->getCurrentInterlocutor() );
    if (!bot || bot->getAlias() == CAIAliasTranslator::Invalid )
    {
        MISLOG("%s invalid interlocutor", sDebugPrefix.c_str());
        return;
    }

    // End the user bot chat (must be done before instanciateMission() because it would clear any dynchat's interlocutor open by the mission
    user->endBotChat();
    user->setAfkState(false);

    std::list< CMissionEvent* > eventList;
    CMissionManager::getInstance()->instanciateMission(user, user->getCurrentMissionList()[index].Mission,
            bot->getAlias(), eventList);
    user->processMissionEventList( eventList,true, CAIAliasTranslator::Invalid );
}
开发者ID:mixxit,项目名称:solinia,代码行数:53,代码来源:mission_client_callbacks.cpp

示例7: cbStopNpcControlNotification

static void cbStopNpcControlNotification(NLNET::CMessage &msgin, const std::string &serviceName, TServiceId sid)
{
	TAIAlias alias;
	CEntityId creatureId;
	msgin.serial(alias);
	msgin.serial(creatureId);
	CDynamicMapService* dms = CDynamicMapService::getInstance();
	IServerAnimationModule*  imodule= dms->getAnimationModule();
	CServerAnimationModule* module = safe_cast<CServerAnimationModule*>(imodule);

	module->onStopNpcControlNotification(creatureId);

}
开发者ID:mixxit,项目名称:solinia,代码行数:13,代码来源:dynamic_scenario_service.cpp

示例8: nextTaskId

/*
 * Add RBS Task
 */
NLNET::CMessage&	CDbManager::addTask(const std::string& msg, ITaskEventListener* listener, void* arg)
{
	NLNET::CMessage*	msgrbs = new NLNET::CMessage(msg);
	_RBSMessages.push_back(msgrbs);

	uint32	id = nextTaskId();
	msgrbs->serial(id);

	// add listener to task listeners
	if (listener != NULL)
		_TaskListeners[id] = std::make_pair<ITaskEventListener*, void*>(listener, arg);

	return *msgrbs;
}
开发者ID:,项目名称:,代码行数:17,代码来源:

示例9: cbClientMissionGroupWake

//----------------------------------------------------------------------------
void cbClientMissionGroupWake( NLNET::CMessage& msgin, const std::string & serviceName, NLNET::TServiceId serviceId )
{
    CEntityId userId;
    msgin.serial(userId);

    uint8 missionGroupIndex;
    msgin.serial(missionGroupIndex);

    CCharacter * user = PlayerManager.getChar(userId);
    if ( !user || !user->getEnterFlag() )
        return;

    user->setAfkState(false);

    CTeam * team = TeamManager.getRealTeam( user->getTeamId() );
    if ( !team )
    {
        MISLOG("user:%s cbClientMissionGroupWake : Invalid team", userId.toString().c_str());
        return;
    }
    if ( team->getLeader() != userId )
    {
        return;
    }

    if ( missionGroupIndex >=  team->getMissions().size() )
    {
        MISLOG("user:%s cbClientMissionGroupWake : Invalid group mission %u ( count %u )",
               userId.toString().c_str(), missionGroupIndex, team->getMissions().size());
        return;
    }


    CMissionTeam* mission = team->getMissions()[missionGroupIndex];
    nlassert(mission);

    if ( mission->getFinished() == false )
    {
        CMissionTemplate * templ = CMissionManager::getInstance()->getTemplate( mission->getTemplateId() );
        if ( !templ )
        {
            MISLOG("user:%s cbClientGroupAbandonMission : invalid group mission alias %u",
                   userId.toString().c_str(), mission->getTemplateId());
            return;
        }

        CMissionQueueManager::getInstance()->playerWakesUp (userId, templ->Alias );
    }
}
开发者ID:mixxit,项目名称:solinia,代码行数:50,代码来源:mission_client_callbacks.cpp

示例10: cbClientContinueMission

//----------------------------------------------------------------------------
void cbClientContinueMission( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
    CEntityId userId;
    uint8 index;
    msgin.serial(userId);
    msgin.serial(index);

    if (!checkPlayer(userId, "cbClientContinueMission")) return;
    CCharacter	* user = PlayerManager.getChar( userId );

    if ( !user->startBotChat( BOTCHATTYPE::UnknownFlag ) )
        return;
    user->botChatMissionAdvance(index);
    user->setAfkState(false);
}
开发者ID:mixxit,项目名称:solinia,代码行数:16,代码来源:mission_client_callbacks.cpp

示例11: cbClientBotChatDynChatSend

//----------------------------------------------------------------------------
void cbClientBotChatDynChatSend( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
    CEntityId userId;
    TDataSetIndex index;
    uint8 choice;
    msgin.serial(userId);
    msgin.serial(index);
    msgin.serial(choice);

    if (!checkPlayer(userId, "cbClientBotChatDynChatSend")) return;
    CCharacter* user = PlayerManager.getChar( userId );

    CMissionManager::getInstance()->dynChatChoice( user, TheDataset.getCurrentDataSetRow(index) , choice);
    user->setAfkState(false);
}
开发者ID:mixxit,项目名称:solinia,代码行数:16,代码来源:mission_client_callbacks.cpp

示例12:

void	cbStallMode( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
	try
	{
		bool		stalled;
		std::string	reason;

		msgin.serial(stalled, reason);

		if (stalled)
		{
			CMessage	msgout("HALT_TICK");
			msgout.serial(reason);

			nlwarning("Shard stalled by %s: %s", serviceName.c_str(), reason.c_str());

			CUnifiedNetwork::getInstance()->send("TICKS", msgout);
		}
		else
		{
			CMessage	msgout("RESUME_TICK");

			nlwarning("Shard resumed by %s: %s", serviceName.c_str(), reason.c_str());

			CUnifiedNetwork::getInstance()->send("TICKS", msgout);
		}
	}
	catch (Exception&)
	{
	}

}
开发者ID:Darkhunter,项目名称:Tranquillien-HCRP-Project-using-NeL,代码行数:32,代码来源:common_shard_callbacks.cpp

示例13: cbClientMissionWake

//----------------------------------------------------------------------------
void cbClientMissionWake( NLNET::CMessage& msgin, const std::string & serviceName, NLNET::TServiceId serviceId )
{
    CEntityId userId;
    msgin.serial(userId);

    uint8 missionIndex;
    msgin.serial(missionIndex);

    CCharacter * user = PlayerManager.getChar(userId);
    if ( !user || !user->getEnterFlag() )
        return;

    user->setAfkState(false);

    CMission* mission = NULL;
    CMissionTemplate * templ = NULL;
    for ( map<TAIAlias, CMission*>::iterator it =  user->getMissionsBegin(); it != user->getMissionsEnd(); ++it )
    {
        mission = (*it).second;
        if ( mission && mission->getClientIndex() == missionIndex )
        {
            templ = CMissionManager::getInstance()->getTemplate( mission->getTemplateId() );
            if ( templ->Tags.NoList ) // skip invisible missions
                continue;
            break;
        }
    }
    if ( !mission )
    {
        MISDBG( "user:%s abandonMission : ERROR : invalid mission index %u sent ",userId.toString().c_str(), missionIndex);
        return;
    }
    if ( mission->getFinished() == false )
    {
        if ( !templ )
        {
            MISDBG( "user:%s abandonMission : ERROR : invalid mission alias %u", userId.toString().c_str(), mission->getTemplateId() );
            return;
        }
    }

    CMissionQueueManager::getInstance()->playerWakesUp (userId, templ->Alias );
}
开发者ID:mixxit,项目名称:solinia,代码行数:44,代码来源:mission_client_callbacks.cpp

示例14: cbOutpostSquadDied

//----------------------------------------------------------------------------
static void cbOutpostSquadDied( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
	COutpostSquadDiedMsg params;
	msgin.serial(params);
	NLMISC::CSmartPtr<COutpost> outpost = COutpostManager::getInstance().getOutpostFromAlias(params.Outpost);
	if (outpost)
	{
		outpost->aieventSquadDied(params.GroupId);
	}
}
开发者ID:Darkhunter,项目名称:Tranquillien-HCRP-Project-using-NeL,代码行数:11,代码来源:outpost_manager.cpp

示例15: cbClientGroupAbandonMission

//----------------------------------------------------------------------------
void cbClientGroupAbandonMission( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
    CEntityId userId;
    uint8 index;
    msgin.serial(userId,index);

    if (!checkPlayer(userId, "cbClientGroupAbandonMission")) return;
    CCharacter * user = PlayerManager.getChar( userId );

    user->setAfkState(false);
    CTeam * team = TeamManager.getRealTeam( user->getTeamId() );
    if ( !team )
    {
        MISLOG("user:%s cbClientGroupAbandonMission : Invalid team", userId.toString().c_str());
        return;
    }
    if ( team->getLeader() != userId )
    {
        CCharacter::sendDynamicSystemMessage( user->getEntityRowId(), "REQ_LEADER_TO_ABANDON_MISSION" );
        return;
    }

    if ( index >=  team->getMissions().size() )
    {
        MISLOG("user:%s cbClientGroupAbandonMission : Invalid group mission %u ( count %u )",
               userId.toString().c_str(), index, team->getMissions().size());
        return;
    }


    CMissionTeam* mission = team->getMissions()[index];
    nlassert(mission);

    if ( mission->getFinished() == false )
    {
        CMissionTemplate * templ = CMissionManager::getInstance()->getTemplate( mission->getTemplateId() );
        if ( !templ )
        {
            MISLOG("user:%s cbClientGroupAbandonMission : invalid group mission alias %u",
                   userId.toString().c_str(), mission->getTemplateId());
            return;
        }
        if ( templ->Tags.NonAbandonnable )
        {
            MISLOG("user:%s cbClientGroupAbandonMission : group mission alias %u is not abandonnable but user tries to abandon it",
                   userId.toString().c_str(), mission->getTemplateId());
            return;
        }
        set<CEntityId> excluded;
        excluded.insert( userId );

        team->sendDynamicMessageToMembers( "ABANDON_GROUP_MISSION",TVectorParamCheck(), excluded );
    }
    team->removeMission( index, mr_abandon );
}
开发者ID:mixxit,项目名称:solinia,代码行数:56,代码来源:mission_client_callbacks.cpp


注:本文中的nlnet::CMessage类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。