public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket) { // Example cast //FFPacket<PlayerDiedEvent> packet = (FFPacket<PlayerDiedEvent>)incommingPacket; return(1); // return positive number if message shouldn't be relayed to all other clients }
public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket) { Debug.LogError("Error, MessageInspector of type " + eventName + " called!"); // return zero to to have this inspector pass this message // return positive number if message shouldn't be relayed to all other clients return(1); // do not send to other clients }
public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket) { FFPacket <ClientSyncTimeEvent> packet = (FFPacket <ClientSyncTimeEvent>)incommingPacket; packet.message.serverLifeTime = FFServer.serverTime; clientSocket.SendNetPacket <ClientSyncTimeEvent>(packet, false); return(1); // return zero to to have this inspector pass this message }
public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket) { //Debug.Log("NetObjectDestroyedEvent Packet Recieved"); // debug FFPacket <NetObjectDestroyedEvent> packet = (FFPacket <NetObjectDestroyedEvent>)incommingPacket; // Remove copy of the object which exists for new clients to create the object // TODO: Low-Prio, Optimize for O(N), Needs custom List, very low prio. var list = FFServer.NetObjectsCreated; list.Remove(list.Find(x => x.gameObjectNetId == packet.message.gameObjectNetId)); return(0); }
public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket) { FFPacket <NetObjectCreatedEvent> packet = (FFPacket <NetObjectCreatedEvent>)incommingPacket; long netid = FFServer.GetNewNetId; GameObjectNetIdRecievedEvent reply = new GameObjectNetIdRecievedEvent(); reply.gameInstanceId = packet.message.gameObjectInstanceId; packet.message.gameObjectNetId = netid; reply.netId = netid; // TODO make this run off of netId on local server/dedicated version // SAVE NewObjectCreatedEvents so they can be sent to new clients later FFServer.NetObjectsCreated.Add(packet.message); clientSocket.SendMessage <GameObjectNetIdRecievedEvent>(reply, true); return(0); }
public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket) { FFPacket <ClientConnectedEvent> packet = (FFPacket <ClientConnectedEvent>)incommingPacket; clientSocket.clientData.clientName = packet.message.clientName; clientSocket.clientData.clientGuid = packet.message.clientGuid; packet.message.clientId = clientSocket.clientData.clientId; packet.message.serverTime = FFServer.serverTime; packet.message.serverStartTime = FFServer.serverStartTime; packet.message.serverName = FFServer.serverName; clientSocket.SendMessage <ClientConnectedEvent>(packet.message, true); // make a copy so that it doesn't get invalidated if another thread deletes something var netObjects = new List <NetObjectCreatedEvent>(FFServer.NetObjectsCreated); foreach (var netobj in netObjects) { clientSocket.SendMessage <NetObjectCreatedEvent>(netobj, true); } return(0); }