Example #1
0
    // Recived netId for locally registered object
    private static void OnGameObjectNetIdRecieved(GameObjectNetIdRecievedEvent e)
    {
        Debug.Log("GameObjectNetIdRecieved Event!"); // debug
        GameObjectData goData;
        int            id = e.gameInstanceId;

        if (singleton._localIdToGameObjectData.TryGetValue(id, out goData))
        {
            goData.gameObjectNetId = e.netId;
            singleton._netIdToGameObjectData.Add(e.netId, goData);
        }
        else
        {
            Debug.LogError("Error, GameObjectNetIdRecieved For an non-registered game object");
        }
    }
    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);
    }