本文整理汇总了C++中broadcastMessage函数的典型用法代码示例。如果您正苦于以下问题:C++ broadcastMessage函数的具体用法?C++ broadcastMessage怎么用?C++ broadcastMessage使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了broadcastMessage函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: setDirection
void SceneObjectImplementation::updateDirection(float angleHeadingRadians) {
setDirection(angleHeadingRadians);
++movementCounter;
if (parent.get() != NULL) {
DataTransformWithParent* pack = new DataTransformWithParent(asSceneObject());
broadcastMessage(pack, true, true);
} else {
DataTransform* pack = new DataTransform(asSceneObject());
broadcastMessage(pack, true, true);
}
}
开发者ID:JigglyPoofSWG,项目名称:BSS,代码行数:13,代码来源:SceneObjectImplementation.cpp
示例2: assert
void TangibleObjectImplementation::addDefender(SceneObject* defender) {
if (defender == asTangibleObject())
return;
assert(defender);
for (int i = 0; i < defenderList.size(); ++i) {
if (defender == defenderList.get(i))
return;
}
//info("adding defender");
TangibleObjectDeltaMessage6* dtano6 = new TangibleObjectDeltaMessage6(asTangibleObject());
dtano6->startUpdate(0x01);
defenderList.add(defender, dtano6);
dtano6->close();
broadcastMessage(dtano6, true);
setCombatState();
notifyObservers(ObserverEventType::DEFENDERADDED, defender);
}
开发者ID:Nifdoolb,项目名称:Server,代码行数:26,代码来源:TangibleObjectImplementation.cpp
示例3: sendToAll
void GameServer::handleDisconnections()
{
for (auto itr = mPeers.begin(); itr != mPeers.end(); )
{
if ((*itr)->timedOut)
{
// Inform everyone of the disconnection, erase
for (sf::Int32 identifier : (*itr)->aircraftIdentifiers)
{
sendToAll(sf::Packet() << static_cast<sf::Int32>(Server::PlayerDisconnect) << identifier);
mAircraftInfo.erase(identifier);
}
mConnectedPlayers--;
mAircraftCount -= (*itr)->aircraftIdentifiers.size();
itr = mPeers.erase(itr);
// Go back to a listening state if needed
if (mConnectedPlayers < mMaxConnectedPlayers)
{
mPeers.push_back(PeerPtr(new RemotePeer()));
setListening(true);
}
broadcastMessage("An ally has disconnected.");
}
else
{
++itr;
}
}
}
开发者ID:mebobby2,项目名称:SFML_Game_Development,代码行数:34,代码来源:GameServer.cpp
示例4: PlayClientEffectObjectMessage
void SceneObjectImplementation::playEffect(const String& file,
const String& aux) {
PlayClientEffectObjectMessage* effect = new PlayClientEffectObjectMessage(
asSceneObject(), file, aux);
broadcastMessage(effect, true);
}
开发者ID:JigglyPoofSWG,项目名称:BSS,代码行数:7,代码来源:SceneObjectImplementation.cpp
示例5: info
void TangibleObjectImplementation::removeDefender(SceneObject* defender) {
//info("trying to remove defender");
for (int i = 0; i < defenderList.size(); ++i) {
if (defenderList.get(i) == defender) {
info("removing defender");
notifyObservers(ObserverEventType::DEFENDERDROPPED, defender);
TangibleObjectDeltaMessage6* dtano6 = new TangibleObjectDeltaMessage6(asTangibleObject());
dtano6->startUpdate(0x01);
if (defenderList.size() == 1)
defenderList.removeAll(dtano6);
else
defenderList.remove(i, dtano6);
dtano6->close();
broadcastMessage(dtano6, true);
//info("defender found and removed");
break;
}
}
if (defenderList.size() == 0)
clearCombatState(false);
//info("finished removing defender");
}
开发者ID:Nifdoolb,项目名称:Server,代码行数:31,代码来源:TangibleObjectImplementation.cpp
示例6: broadcastMessage
void TcpServer::broadcastMessage(ClientResponse* message) {
char* json = MessageConversion::convertResponseToJson(message, true);
if (json != nullptr) {
broadcastMessage(json);
}
delete[] json;
}
开发者ID:Robbiedobbie,项目名称:RaspberrySpotter,代码行数:7,代码来源:TcpServer.cpp
示例7: getLeader
bool Party::passLeadership(Player* player)
{
if(!player || getLeader() == player || !isPlayerMember(player))
return false;
//Remove it before to broadcast the message correctly
PlayerVector::iterator it = std::find(memberList.begin(), memberList.end(), player);
if(it != memberList.end())
memberList.erase(it);
Player* oldLeader = getLeader();
setLeader(player);
memberList.insert(memberList.begin(), oldLeader);
char buffer[125];
sprintf(buffer, "%s is now the leader of the party.", player->getName().c_str());
broadcastMessage(MSG_INFO_DESCR, buffer, true);
player->sendTextMessage(MSG_INFO_DESCR, "You are now the leader of the party.");
updateSharedExperience();
updateIcons(oldLeader);
updateIcons(player);
return true;
}
开发者ID:Fir3element,项目名称:035,代码行数:25,代码来源:party.cpp
示例8: broadcastMessage
void HooksUpdateDetector::terminate32Loader()
{
if (m_hookLoader32.getProcessHandle() != 0) {
// Send broadcast message to close the 32 bit hook loader.
broadcastMessage(HookDefinitions::LOADER_CLOSE_CODE);
}
}
开发者ID:sim0629,项目名称:tightvnc,代码行数:7,代码来源:HooksUpdateDetector.cpp
示例9: getGroupMember
void GroupObjectImplementation::calcGroupLevel() {
int highestPlayer = 0;
groupLevel = 0;
for (int i = 0; i < getGroupSize(); i++) {
Reference<SceneObject*> member = getGroupMember(i);
if (member->isPet()) {
CreatureObject* creature = cast<CreatureObject*>(member.get());
groupLevel += creature->getLevel() / 5;
} else if (member->isPlayerCreature()) {
CreatureObject* creature = cast<CreatureObject*>(member.get());
int memberLevel = creature->getLevel();
if (memberLevel > highestPlayer) {
groupLevel += (memberLevel - highestPlayer + (highestPlayer / 5));
highestPlayer = memberLevel;
} else {
groupLevel += memberLevel / 5;
}
}
}
GroupObjectDeltaMessage6* msg = new GroupObjectDeltaMessage6(_this.getReferenceUnsafeStaticCast());
msg->updateLevel(this->groupLevel);
msg->close();
broadcastMessage(msg);
}
开发者ID:grtest,项目名称:testgit,代码行数:33,代码来源:GroupObjectImplementation.cpp
示例10: trace
void RDOKernel::unregistered( RDOThread* thread )
{
#ifdef RDO_MT
threads_mutex.Lock();
#endif
if ( thread && std::find( threads.begin(), threads.end(), thread ) != threads.end() ) {
threads.remove( thread );
} else {
#ifdef RDO_MT
threads_mutex.Unlock();
#endif
return;
}
if ( thread_runtime && thread->getName() == "RDOThreadRunTime" ) thread_runtime = NULL;
if ( thread_simulator && thread->getName() == "RDOThreadSimulator" ) thread_simulator = NULL;
if ( thread_codecomp && thread->getName() == "RDOThreadCodeComp" ) thread_codecomp = NULL;
if ( thread_repository && thread->getName() == "RDOThreadRepository" ) thread_repository = NULL;
#ifdef CORBA_ENABLE
if ( thread_corba && thread->getName() == "RDOThreadCorba" ) thread_corba = NULL;
#endif
#ifdef RDO_MT
threads_mutex.Unlock();
#endif
#ifdef TR_TRACE
trace( getName() + " INFO: " + thread->getName() + " UNREGISTERED" );
#endif
broadcastMessage( RT_THREAD_UNREGISTERED, thread );
}
开发者ID:cerevra,项目名称:rdo_studio,代码行数:31,代码来源:rdokernel.cpp
示例11: onPropertyModification
// --------------------------------------------------------------------------
void Property::onInheritChange(const InheritValueChangeMsg &msg) {
// Consult the inheritor value change, and build a property change message
onPropertyModification(msg);
/* The broadcast of the property change is not done directly in the methods
above but here. The reason for this is that only the inheritor knows the
real character of the change, and the objects that the change inflicted
*/
PropertyChangeMsg pmsg;
pmsg.objectID = msg.objectID;
switch (msg.change) {
case INH_VAL_ADDED: // Property was added to an object
pmsg.change = PROP_ADDED;
break;
case INH_VAL_CHANGED: // property changed inherit value
pmsg.change = PROP_CHANGED;
break;
case INH_VAL_REMOVED: // property does not exist any more on the object (and
// not inherited)
pmsg.change = PROP_REMOVED;
break;
default:
return;
}
broadcastMessage(pmsg);
}
开发者ID:volca02,项目名称:openDarkEngine,代码行数:30,代码来源:Property.cpp
示例12: broadcastMessage
void GroupObject::broadcastDeltaRemove(Player* player)
{
mMembersUpdateCount++;
Message* newMessage;
gMessageFactory->StartMessage();
gMessageFactory->addUint32(0x12862153); // deltas
gMessageFactory->addUint64(mId);
gMessageFactory->addUint32(0x47525550); // GRUP
gMessageFactory->addUint8(6);
gMessageFactory->addUint32(15);
gMessageFactory->addUint16(1);
gMessageFactory->addUint16(1);
gMessageFactory->addUint32(1);
gMessageFactory->addUint32(mMembersUpdateCount);
gMessageFactory->addUint8(0);
gMessageFactory->addUint16(player->getGroupMemberIndex());
newMessage = gMessageFactory->EndMessage();
broadcastMessage(newMessage);
}
开发者ID:ANHcRush,项目名称:mmoserver,代码行数:27,代码来源:GroupObject.cpp
示例13: objectDestroyed
void QMetaObjectPublisher::signalEmitted(const QObject *object, const int signalIndex, const QVariantList &arguments)
{
if (!webChannel || webChannel->d_func()->transports.isEmpty()) {
if (signalIndex == s_destroyedSignalIndex)
objectDestroyed(object);
return;
}
if (!signalToPropertyMap.value(object).contains(signalIndex)) {
QJsonObject message;
const QString &objectName = registeredObjectIds.value(object);
Q_ASSERT(!objectName.isEmpty());
message[KEY_OBJECT] = objectName;
message[KEY_SIGNAL] = signalIndex;
if (!arguments.isEmpty()) {
message[KEY_ARGS] = wrapList(arguments);
}
message[KEY_TYPE] = TypeSignal;
broadcastMessage(message);
if (signalIndex == s_destroyedSignalIndex) {
objectDestroyed(object);
}
} else {
pendingPropertyUpdates[object][signalIndex] = arguments;
if (clientIsIdle && !blockUpdates && !timer.isActive()) {
timer.start(PROPERTY_UPDATE_INTERVAL, this);
}
}
}
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:29,代码来源:qmetaobjectpublisher.cpp
示例14: broadcastMessage
void GameServer::handleIncomingConnections() {
if (!mListeningState) return;
if (mListenerSocket.accept(mPeers[mConnectedPlayers]->socket) == sf::TcpListener::Done) {
// order the new client to spawn its own plane ( player 1 )
mAircraftInfo[mAircraftIdentifierCounter].position = sf::Vector2f(mBattleFieldRect.width / 2, mBattleFieldRect.top + mBattleFieldRect.height / 2);
mAircraftInfo[mAircraftIdentifierCounter].hitpoints = 100;
mAircraftInfo[mAircraftIdentifierCounter].missileAmmo = 2;
sf::Packet packet;
packet << static_cast<sf::Int32>(Server::SpawnSelf);
packet << mAircraftIdentifierCounter;
packet << mAircraftInfo[mAircraftIdentifierCounter].position.x;
packet << mAircraftInfo[mAircraftIdentifierCounter].position.y;
mPeers[mConnectedPlayers]->aircraftIdentifiers.push_back(mAircraftIdentifierCounter);
broadcastMessage("New player!");
informWorldState(mPeers[mConnectedPlayers]->socket);
notifyPlayerSpawn(mAircraftIdentifierCounter++);
mPeers[mConnectedPlayers]->socket.send(packet);
mPeers[mConnectedPlayers]->ready = true;
mPeers[mConnectedPlayers]->lastPacketTime = now(); // prevent initial timeouts
mAircraftCount++;
mConnectedPlayers++;
if (mConnectedPlayers >= mMaxConnectedPlayers)
setListening(false);
else // Add a new waiting peer
mPeers.push_back(PeerPtr(new RemotePeer()));
}
}
开发者ID:WillSams,项目名称:SFML-Book-Exercises,代码行数:33,代码来源:GameServer.cpp
示例15: locker
void GroupObjectImplementation::addMember(SceneObject* newMember) {
Locker locker(_this.get());
GroupObjectDeltaMessage6* grp = new GroupObjectDeltaMessage6(_this.get());
grp->startUpdate(1);
groupMembers.add(newMember, grp);
grp->close();
broadcastMessage(grp);
if (newMember->isPlayerCreature())
{
ManagedReference<CreatureObject*> playerCreature = cast<CreatureObject*>(newMember);
sendTo(playerCreature, true);
if (hasSquadLeader()) {
addGroupModifiers(playerCreature);
}
scheduleUpdateNearestMissionForGroup(playerCreature->getPlanetCRC());
}
calcGroupLevel();
}
开发者ID:Chilastra-Reborn,项目名称:Chilastra-source-code,代码行数:25,代码来源:GroupObjectImplementation.cpp
示例16: GroupObjectDeltaMessage6
void GroupObjectImplementation::makeLeader(SceneObject* player) {
if (groupMembers.size() < 2 || !player->isPlayerCreature())
return;
//SceneObject* obj = groupMembers.get();
Reference<SceneObject*> temp = groupMembers.get(0).get();
for (int i = 0; i < groupMembers.size(); ++i) {
if (groupMembers.get(i) == player) {
GroupObjectDeltaMessage6* grp = new GroupObjectDeltaMessage6(_this.get());
grp->startUpdate(1);
if (hasSquadLeader())
removeGroupModifiers();
groupMembers.set(0, player, grp, 2);
groupMembers.set(i, temp.get(), grp, 0);
grp->close();
broadcastMessage(grp);
if (hasSquadLeader())
addGroupModifiers();
return;
}
}
}
开发者ID:Chilastra-Reborn,项目名称:Chilastra-source-code,代码行数:30,代码来源:GroupObjectImplementation.cpp
示例17: getLeader
void GroupObjectImplementation::removeMember(CreatureObject* member) {
bool wasLeader = getLeader() == member;
if (hasSquadLeader()) {
if (wasLeader)
removeGroupModifiers();
else
removeGroupModifiers(member);
}
for (int i = 0; i < groupMembers.size(); i++) {
CreatureObject* scno = groupMembers.get(i).get().get();
if (scno == member) {
GroupObjectDeltaMessage6* grp = new GroupObjectDeltaMessage6(_this.getReferenceUnsafeStaticCast());
grp->startUpdate(1);
groupMembers.remove(i, grp);
grp->close();
broadcastMessage(grp);
}
}
if (member->isPlayerCreature()) {
// Remove member's pets
RemovePetsFromGroupTask* task = new RemovePetsFromGroupTask(member, _this.getReferenceUnsafeStaticCast());
task->execute();
//Close any open Group SUIs.
ManagedReference<PlayerObject*> ghost = member->getPlayerObject();
if (ghost != NULL) {
ghost->closeSuiWindowType(SuiWindowType::GROUP_LOOT_RULE);
ghost->closeSuiWindowType(SuiWindowType::GROUP_LOOT_CHANGED);
ghost->closeSuiWindowType(SuiWindowType::GROUP_LOOT_PICK_LOOTER);
ghost->removeWaypointBySpecialType(WaypointObject::SPECIALTYPE_NEARESTMISSIONFORGROUP);
}
//Reset Master Looter if needed.
if (getMasterLooterID() == member->getObjectID()) {
ManagedReference<CreatureObject*> groupLeader = getLeader();
GroupManager::instance()->changeMasterLooter(_this.getReferenceUnsafeStaticCast(), groupLeader, false);
}
if (wasLeader && hasSquadLeader()) {
addGroupModifiers();
}
Zone* zone = member->getZone();
if (zone != NULL) {
scheduleUpdateNearestMissionForGroup(zone->getPlanetCRC());
}
}
updatePvPStatusNearCreature(member);
calcGroupLevel();
}
开发者ID:ModTheGalaxy,项目名称:mtgserver,代码行数:59,代码来源:GroupObjectImplementation.cpp
示例18: broadcastMessage
void ENetServer::broadcast(DeliveryType type, StreamBuffer::Shared stream) const
{
auto msg = Message::alloc(
++currentMsgId_, // id
MessageType::DATA,
stream);
broadcastMessage(type, msg);
}
开发者ID:kbirk,项目名称:enet-example,代码行数:8,代码来源:ENetServer.cpp
示例19: broadcastMessage
void ComponentManager::broadcastMessage(const MessageBase& msg) {
unsigned int mid_index = msg.m_MID;
for (int i = 0; i < MAX_INTERFACES; i++)
if (m_subscriptions[i + MAX_INTERFACES * mid_index]) {
InterfaceTypeID iid = i;
broadcastMessage(iid, msg);
}
}
开发者ID:chrisschuette,项目名称:HephaestusLibrary,代码行数:9,代码来源:ComponentManager.cpp
示例20: while
void GroupObject::broadcastDeltaResetAll()
{
mMembersUpdateCount++;
Message* baselineBody;
gMessageFactory->StartMessage();
// two updates : reset all & set master looter to the new leaders'id
gMessageFactory->addUint16(2);
gMessageFactory->addUint16(1);
gMessageFactory->addUint32(1);
gMessageFactory->addUint32(mMembersUpdateCount);
gMessageFactory->addUint8(3); //reset all
gMessageFactory->addUint16((uint16)mMembers.size());
PlayerList::iterator listIt;
Player* runningPlayer;
listIt = mMembers.begin();
while(listIt != mMembers.end())
{
runningPlayer = (Player*)(*listIt);
gMessageFactory->addUint64(runningPlayer->getCharId());
gMessageFactory->addString(runningPlayer->getName());
++listIt;
}
// modify part 6 (master looter id)
gMessageFactory->addUint16(6);
gMessageFactory->addUint64(mMasterLooter);
baselineBody = gMessageFactory->EndMessage();
Message* newMessage;
gMessageFactory->StartMessage();
gMessageFactory->addUint32(0x12862153); // deltas
gMessageFactory->addUint64(mId);
gMessageFactory->addUint32(0x47525550); // GRUP
gMessageFactory->addUint8(6);
gMessageFactory->addUint32(baselineBody->getSize());
gMessageFactory->addData(baselineBody ->getData(), baselineBody->getSize());
newMessage = gMessageFactory->EndMessage();
gMessageFactory->DestroyMessage(baselineBody);
// update counter need to match the amount of modifications we did here
mMembersUpdateCount += mMembers.size();
broadcastMessage(newMessage);
}
开发者ID:ANHcRush,项目名称:mmoserver,代码行数:57,代码来源:GroupObject.cpp
注:本文中的broadcastMessage函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论