• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ net::CBuffer类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: deserialize

	void CMessageHoundCharge::deserialize(Net::CBuffer& buffer) {
		buffer.read( &_isActive, sizeof(_isActive) );

		// Solo si la habilidad esta activa se mandan el resto 
		// de los atributos
		if(_isActive) {
			buffer.read( &_filterMask, sizeof(_filterMask) );
			buffer.read( &_force, sizeof(_force) );
		}	
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:10,代码来源:MessageHoundCharge.cpp


示例2: serialize

	Net::CBuffer CMessageHoundCharge::serialize() {
		Net::CBuffer buffer;
		buffer.serialize( std::string("CMessageHoundCharge"), true );

		buffer.write( &_isActive, sizeof(_isActive) );
		// El resto de los atributos nos interesan solo si se
		// activa la habilidad
		if(_isActive) {
			buffer.write( &_filterMask, sizeof(_filterMask) );
			buffer.write( &_force, sizeof(_force) );
		}

		return buffer;
	}//
开发者ID:franaisa,项目名称:Gloom,代码行数:14,代码来源:MessageHoundCharge.cpp


示例3: deserialize

	void CMessageInt::deserialize(Net::CBuffer &data)
	{

		CMessage::deserialize(data);
		data.read(&_int,  sizeof(_int));
			
	} // deserialize
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:7,代码来源:MessageInt.cpp


示例4: serialize

	void CMessageBool::serialize(Net::CBuffer &data)
	{
		CMessage::serialize(data);
		data.write((void*) (&_bool),	sizeof(_bool));
		
					
	} // serialize
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:7,代码来源:MessageBool.cpp


示例5: deserialize

	void CMessageSetOwner::deserialize(Net::CBuffer& buffer) {
		TEntityID id;
		// Por problemas con enumerados utilizamos directamente
		// el read en vez del deserialize
		buffer.read( &id, sizeof(id) );

		_entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(id);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:8,代码来源:MessageSetOwner.cpp


示例6: deserialize

	void CMessageBool::deserialize(Net::CBuffer &data)
	{

		CMessage::deserialize(data);
		data.read(&_bool,	sizeof(_bool));
		
			
	} // deserialize
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:8,代码来源:MessageBool.cpp


示例7: serialize

	// TODO FRS no es necesario enviar todo el transform siempre -> solo posicion / rotacion en eje vertical
	void CMessageTF::serialize(Net::CBuffer &data)
	{
		CMessage::serialize(data);

		for(int i = 0; i < 4; ++i)
			for(int j = 0; j < 4; ++j)
				data.write((void*)&_transform[i][j], sizeof(_transform[i][j]));
			
	} // serialize
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:10,代码来源:MessageTF.cpp


示例8: deserialize

	void CMessageTF::deserialize(Net::CBuffer &data)
	{
		CMessage::deserialize(data);

		for(int i = 0; i < 4; ++i)
			for(int j = 0; j < 4; ++j)
				data.read(&_transform[i][j], sizeof(_transform[i][j]));
			
	} // deserialize
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:9,代码来源:MessageTF.cpp


示例9: disconnectionPacketReceived

	void CGameServerState::disconnectionPacketReceived(Net::CPaquete* packet) {
		// Obtenemos el puntero al gestor de jugadores y el id de red del cliente que se quiere desconectar
		Net::NetID playerNetId = packet->getConexion()->getId();

		// Eliminamos la entidad manejada por el cliente que se quiere desconectar.
		// Para ello comprobamos si tiene asignado un id de entidad. Si no lo tiene, es que
		// no ha sido creada ninguna entidad (podria estar conectandose).
		if( _playersMgr->existsByNetId(playerNetId) ) {
			std::pair<Logic::TEntityID, bool> logicIdPair = _playersMgr->getPlayerId(playerNetId);
			if(logicIdPair.second) {
				Logic::CEntity* entityToBeDeleted = _map->getEntityByID(logicIdPair.first);
				Logic::CEntityFactory::getSingletonPtr()->deferredDeleteEntity(entityToBeDeleted, true);

				// A nivel logico, conviene que los clientes sepan quien se desconecta,
				// especialmente para eliminar cosas del hud
				Net::NetMessageType ackMsg = Net::PLAYER_OFF_MATCH;
				Net::CBuffer disconnectMsg;
				disconnectMsg.write(&ackMsg, sizeof(ackMsg));
				disconnectMsg.write(&playerNetId, sizeof(playerNetId));
				disconnectMsg.serialize(entityToBeDeleted->getName(), false);

				_netMgr->broadcast(disconnectMsg.getbuffer(), disconnectMsg.getSize());
			}

			// Eliminamos el jugador que se desconecta del manager de jugadores
			_playersMgr->removePlayer(playerNetId);
		}
	} // disconnexionPacketReceived
开发者ID:franaisa,项目名称:Gloom,代码行数:28,代码来源:GameServerState.cpp


示例10: serialize

	void CMessageAudio::serialize(Net::CBuffer &data)
	{
		CMessage::serialize(data);
		
		unsigned int size = _path.size();  
		data.write(&size,sizeof(size));		
		data.write((void*)_path.c_str(),size);

		size = _id.size();  
		data.write(&size,sizeof(size));		
		data.write((void*)_id.c_str(),size);

		data.write((void*)(&_position.x), sizeof(_position.x));
		data.write((void*)(&_position.y), sizeof(_position.y));
		data.write((void*)(&_position.z), sizeof(_position.z));

		data.write((void*) (&_notIfPlay),	sizeof(_notIfPlay));
		data.write((void*) (&_isPlayer),	sizeof(_isPlayer));
	
	}
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:20,代码来源:MessageAudio.cpp


示例11: deserialize

	void CMessageAudio::deserialize(Net::CBuffer &data) {

		unsigned int size;
			data.read(&size, sizeof(size)); 		
		char* aux = new char[size];		
			data.read(aux, size);
			_path.assign(aux,size); 
			delete[] aux;

		unsigned int size1;
			data.read(&size1, sizeof(size1)); 		
		char* aux1 = new char[size1];		
			data.read(aux1, size1);
			_id.assign(aux1,size1); 
			delete[] aux1;

		data.read(&_position.x, sizeof(_position.x));
		data.read(&_position.y, sizeof(_position.y));
		data.read(&_position.z, sizeof(_position.z));

		data.read(&_notIfPlay,	sizeof(_notIfPlay));
		data.read(&_isPlayer,	sizeof(_isPlayer));

	}
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:24,代码来源:MessageAudio.cpp


示例12: deserialize

	void CMessageControl::deserialize(Net::CBuffer& buffer) {
		buffer.deserialize(_seq);
		buffer.read(&_controlType, sizeof(_controlType));
		
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:5,代码来源:MessageControl.cpp


示例13: deserialize

	void CMessagePrimarySpell::deserialize(Net::CBuffer& buffer) {
		buffer.deserialize(_spell);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:3,代码来源:MessagePrimarySpell.cpp


示例14: deserialize

	void CMessagePrimaryShoot::deserialize(Net::CBuffer& buffer) {
		buffer.deserialize(_shoot);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:3,代码来源:MessagePrimaryShoot.cpp


示例15: deserialize

	void CMessageMouse::deserialize(Net::CBuffer& buffer) {
		_controlType = Control::MOUSE;
		buffer.deserialize(_seq);
		buffer.deserialize(_mouse[0]);
		buffer.deserialize(_mouse[1]);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:6,代码来源:MessageMouse.cpp


示例16: deserialize

	void CMessageHudShield::deserialize(Net::CBuffer& buffer) {
		buffer.deserialize(_shield);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:3,代码来源:MessageHudShield.cpp


示例17: serialize

	Net::CBuffer CMessageParticleStop::serialize() {
		Net::CBuffer buffer;
		buffer.serialize( std::string("CMessageParticleStop"), true );

		return buffer;
	}//
开发者ID:franaisa,项目名称:Gloom,代码行数:6,代码来源:MessageParticleStop.cpp


示例18: deserialize

	void CMessagePlayerSpawn::deserialize(Net::CBuffer& buffer) {
		buffer.deserialize(_position);
		buffer.deserialize(_orientation);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:4,代码来源:MessagePlayerSpawn.cpp


示例19: serialize

	void CMessageInt::serialize(Net::CBuffer &data)
	{
		CMessage::serialize(data);
		data.write((void*) (&_int),	sizeof(_int));
					
	} // serialize
开发者ID:MrLobo,项目名称:El-Rayo-de-Zeus,代码行数:6,代码来源:MessageInt.cpp


示例20: createAndMirrorSpectator

	void CGameServerState::createAndMirrorSpectator(Net::NetID playerNetId) {
		// Primero comprobamos si habia una entidad correspondiente a este jugador
		// ya que durante el juego tambien podemos cambiar de clase.
		// En caso de que la haya la eliminamos para crear la nueva
		std::pair<Logic::TEntityID, bool> id = _playersMgr->getPlayerId(playerNetId);
		if(id.second) { // Si el id devuelto es valido
			Logic::CEntity* deletePlayer = _map->getEntityByID( id.first );
			if(deletePlayer) {
				Logic::CEntityFactory::getSingletonPtr()->deleteEntity(deletePlayer, true);
			}
		}
		
		// Obtenemos el nickname del jugador que quiere espectar
		std::string nickname = _playersMgr->getPlayerNickname(playerNetId);
		// Creamos la entidad espectador con el nombre del jugador
		Logic::CEntity* spectator = _map->createPlayer(nickname, "Spectator");
		// Obtenemos la id logica de la entidad espectador
		Logic::TEntityID spectatorId = spectator->getEntityID();
		// Seteamos la id logica del jugador en el gestor de jugadores
		_playersMgr->setEntityID(playerNetId, spectatorId);

		// Escribimos el tipo de mensaje de red a enviar
		Net::NetMessageType netMsg = Net::LOAD_PLAYERS;
		int nbPlayers = 1;
				
		// Serializamos toda la información que se necesita para la creación de la entidad
		Net::CBuffer buffer;
		buffer.write(&netMsg, sizeof(netMsg));
		buffer.write(&nbPlayers, sizeof(nbPlayers));
		buffer.write(&playerNetId, sizeof(playerNetId));
		buffer.write(&spectatorId, sizeof(spectatorId));
		buffer.serialize(nickname, false); // Nombre del player
		buffer.serialize("Spectator", false); // Clase del player
		// Enviamos la entidad nueva al resto de jugadores
		_netMgr->broadcastIgnoring(playerNetId, buffer.getbuffer(), buffer.getSize());

		buffer.reset();

		// Enviamos la entidad nueva al jugador local
		netMsg = Net::LOAD_LOCAL_PLAYER;
		// Serializamos toda la información que se necesita para la creación de la entidad
		buffer.write(&netMsg, sizeof(netMsg));
		buffer.write(&playerNetId, sizeof(playerNetId));
		buffer.write(&spectatorId, sizeof(spectatorId));
		buffer.serialize(nickname, false); // Nombre del player
		buffer.serialize("Spectator", false); // Clase del player

		spectator->activate();
		spectator->start();

		_netMgr->sendTo(playerNetId, buffer.getbuffer(), buffer.getSize());

		_playersMgr->setPlayerState(playerNetId, false);
		_playersMgr->setPlayerTeam(playerNetId, Logic::TeamFaction::eNONE);
	}
开发者ID:franaisa,项目名称:Gloom,代码行数:55,代码来源:GameServerState.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ net::MessageIn类代码示例发布时间:2022-05-31
下一篇:
C++ ndt::type类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap