本文整理汇总了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;未经允许,请勿转载。 |
请发表评论