Esempio n. 1
0
    public Room(int _id, Server _server, ServerMessageHandler _sender, int _maxPlayers, RoomLogger logger)
    {
        maxPlayers = _maxPlayers;
        numPlayers = 0;
        sender     = _sender;
        server     = _server;
        started    = false;
        record     = "";
        id         = _id;

        activatedSwitchGroups = new List <int>();
        systemsManager        = new RoomSystems();
        obstacleManager       = new RoomObstacles();
        objectManager         = new RoomDestroyedObjects();
        poisHandler           = new PoisHandler();
        players         = new List <NetworkPlayer>();
        switchs         = new List <RoomSwitch>();
        enemies         = new List <NetworkEnemy>();
        deathGameObject = new List <string>();

        hpManager = new RoomHpMp(this);

        if (logger == null)
        {
            log = new RoomLogger(this.id);
        }
        else
        {
            log = logger;
        }
        sceneToLoad = Server.instance.sceneToLoad;
    }
    private void SendPlayerLeftChatZoneSignal(string msg, string ip)
    {
        NetworkPlayer player = server.GetPlayer(ip);
        Room          room   = player.room;
        RoomLogger    log    = room.log;

        log.WritePlayernotCharging(player.id);
    }
    private void PlayerEnteredChatZone(string msg, string ip)
    {
        NetworkPlayer player = server.GetPlayer(ip);
        Room          room   = player.room;
        RoomLogger    log    = room.log;

        log.WritePlayerIsCharging(player.id);
    }
Esempio n. 4
0
    private void AddConnection(int connectionId)
    {
        int    port;
        byte   recError;
        string recAddress;

        UnityEngine.Networking.Types.NodeID    recNodeId;
        UnityEngine.Networking.Types.NetworkID recNetId;

        NetworkTransport.GetConnectionInfo(socketId, connectionId, out recAddress, out port, out recNetId, out recNodeId, out recError);
        NetworkPlayer player = GetPlayer(recAddress);

        // Jugador existía y se reconecta.
        if (player != null)
        {
            player.connected    = true;
            player.connectionId = connectionId;
            SendMessageToClient(connectionId, "ChangeScene/" + player.room.sceneToLoad, true);
            List <NetworkPlayer> players = player.room.players;
            foreach (NetworkPlayer connectedPlayer in players)
            {
                if (connectedPlayer.controlOverEnemies)
                {
                    SendMessageToClient(connectionId, "PlayerHasReturned/", true);
                    break;
                }
            }
            messageHandler.SendAllData(recAddress, player.room);
            player.room.SendControlEnemiesToClient(player, false);
            player.SendDataToRoomBoxManager();
            UnityEngine.Debug.Log("Client " + recAddress + " reconnected");
            return;
        }

        //Jugador no existía y se crea uno nuevo.
        Room room = SearchRoom();

        if (room == null)
        {
            roomCounter++;
            RoomLogger logger = null;
            if (lastDestroyedRoom != null)
            {
                logger            = lastDestroyedRoom.log;
                lastDestroyedRoom = null;
            }
            room = new Room(roomCounter, this, messageHandler, maxPlayers, logger);
            RoomManager rm = GameObject.FindGameObjectWithTag("RoomManager").GetComponent <RoomManager>();
            if (!rm)
            {
                UnityEngine.Debug.LogError("No se encontró RoomManager en ServerScene. uwu 1");
            }
            rm.AddNewRoom(room);
            rooms.Add(room);
        }

        room.AddPlayer(connectionId, recAddress);
    }
    private void HandleEnterButDontCare(string[] msg, string ip)
    {
        string poiID          = msg[1].ToString();
        string incomingPlayer = msg[2].ToString();

        NetworkPlayer player = server.GetPlayer(ip);
        Room          room   = player.room;
        RoomLogger    log    = player.room.log;

        log.WriteEnterPOIButDontCare(player.id, poiID);
    }
    private void HandleReadyPoi(string[] msg, string ip)
    {
        string        poiID  = msg[1];
        NetworkPlayer player = server.GetPlayer(ip);
        Room          room   = player.room;
        RoomLogger    log    = player.room.log;

        log.WritePoiIsReady(player.id, poiID);

        room.poisHandler.AddPoiReady(poiID);
        room.SendMessageToAllPlayersExceptOne("ReadyPoi" + "/" + poiID, ip, true);
    }
    private void HandleEnterPOI(string[] msg, string ip)
    {
        string poiID          = msg[1].ToString();
        string incomingPlayer = msg[2].ToString();

        NetworkPlayer player = server.GetPlayer(ip);
        Room          room   = player.room;
        RoomLogger    log    = player.room.log;

        log.WriteEnterPOI(player.id, poiID);

        room.SendMessageToAllPlayersExceptOne("PoiReached" + "/" + poiID + "/" + incomingPlayer, ip, true);
    }
    private void HandleChangeScene(string[] msg, string ip)
    {
        string scence = msg[1];

        NetworkPlayer player   = server.GetPlayer(ip);
        Room          room     = player.room;
        int           totalExp = room.hpManager.currentExp;
        RoomLogger    log      = room.log;

        log.WriteTotalExp(totalExp);
        log.WriteChangeScene(scence);

        SendChangeScene(scence, room);
    }
Esempio n. 9
0
    //Inicialización
    public Room(int id, Server server, ServerMessageHandler sender, int maxJugadores)
    {
        numJugadores      = 0;
        this.doorManager  = new ServerDoorsManager();
        this.maxJugadores = maxJugadores;
        this.id           = id;
        hpManaGer         = new RoomHpMp(this);
        log             = new RoomLogger(this.id);
        switchs         = new List <ServerSwitch>();
        players         = new List <NetworkPlayer>();
        enemies         = new List <NetworkEnemy>();
        activatedGroups = new List <int>();

        this.server = server;
        this.sender = sender;

        started   = false;
        historial = "";

        sceneToLoad = Server.instance.sceneToLoad;
    }