Exemplo n.º 1
0
 public void damage(int damage, GameObject damager, PlayerServer playerServer)
 {
     if (!isServer)
     {
         return;
     }
     targetNetwork = playerServer;
     this.targetId = playerServer.connectionID;
     StartCoroutine(flash());
     health -= damage;
     //Server.spawnObject(e_Objects.VFX_IMPACT_MELEE_1, new Vector3(this.transform.position.x, this.transform.position.y+0.5f, this.transform.position.z));
     //GameObject o = Instantiate((GameObject)Resources.Load("Special Effects/Skills/"+this.impactHitPrefab.name));
     //o.transform.position = new Vector3(this.transform.position.x, this.transform.position.y+0.5f, this.transform.position.z);
     //NetworkServer.Spawn(o);
     if (damager != null)
     {
         target = damager;
     }
     else
     {
         Debug.LogError("damager is null MobManager.cs " + damager);
     }
     if (health <= 0)
     {
         //kill();
         this.state = e_States.DIE;
     }
 }
Exemplo n.º 2
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> param)
        {
            var myLogin = player.Public.Login;

            if (chat.Id == 1)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.AccessDeny, myLogin, chat, "From a shared channel, you can not leave"));
            }

            var r = player.Chats.Remove(chat);

            lock (chat)
            {
                chat.Posts.Add(new ChatPost()
                {
                    Time       = DateTime.UtcNow,
                    Message    = "User " + myLogin + " left the channel.",
                    OwnerLogin = "******"
                });

                chat.PartyLogin.Remove(myLogin);
                chat.LastChanged = DateTime.UtcNow;
            }
            Loger.Log("Server exitChat remove" + (r ? "1" : "0"));
            Repository.Get.ChangeData = true;

            return(new ModelStatus());
        }
Exemplo n.º 3
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> argsM)
        {
            var myLogin = player.Public.Login;

            if (!chat.OwnerMaker)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.AccessDeny, myLogin, chat, "You can not rename a shared channel"));
            }

            if (argsM.Count < 1)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.SetNameChannel, myLogin, chat, "No new name specified"));
            }

            if (chat.OwnerLogin != player.Public.Login && !player.IsAdmin)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.AccessDeny, myLogin, chat, "Operation is not available to you"));
            }

            chat.Posts.Add(new ChatPost()
            {
                Time       = DateTime.UtcNow,
                Message    = "The channel was renamed to " + argsM[0],
                OwnerLogin = "******"
            });

            chat.LastChanged = DateTime.UtcNow;
            Loger.Log("Server renameChat " + chat.Name + " -> " + argsM[0]);
            chat.Name = argsM[0];
            Repository.Get.ChangeData = true;

            return(new ModelStatus());
        }
Exemplo n.º 4
0
        private ModelInfo GetModelInfo(PlayerServer player)
        {
            var data   = Repository.GetData;
            var result =
                new ModelInfo()
            {
                My                        = player.Public,
                IsAdmin                   = player.IsAdmin,
                VersionInfo               = MainHelper.VersionInfo,
                VersionNum                = MainHelper.VersionNum,
                Seed                      = data.WorldSeed ?? "",
                MapSize                   = data.WorldMapSize,
                PlanetCoverage            = data.WorldPlanetCoverage,
                Difficulty                = data.WorldDifficulty,
                NeedCreateWorld           = Repository.GetSaveData.GetListPlayerDatas(player.Public.Login).Count == 0,
                ServerTime                = DateTime.UtcNow,
                IsModsWhitelisted         = ServerManager.ServerSettings.IsModsWhitelisted,
                ServerName                = ServerManager.ServerSettings.ServerName,
                DelaySaveGame             = player.SettingDelaySaveGame,
                DisableDevMode            = ServerManager.ServerSettings.DisableDevMode,
                MinutesIntervalBetweenPVP = ServerManager.ServerSettings.MinutesIntervalBetweenPVP,
                EnableFileLog             = player.SettingEnableFileLog,
                TimeChangeEnablePVP       = player.TimeChangeEnablePVP,
                ProtectingNovice          = ServerManager.ServerSettings.ProtectingNovice,
            };

            return(result);
        }
Exemplo n.º 5
0
        public ModelStatus Registration(ModelLogin packet)
        {
            if (Player != null)
            {
                return(null);
            }
            //Thread.Sleep(5000);
            var player = Repository.GetData.PlayersAll
                         .FirstOrDefault(p => p.Public.Login == packet.Login);

            if (player != null)
            {
                return(new ModelStatus()
                {
                    Status = 1,
                    Message = "This login already exists"
                });
            }
            player = new PlayerServer(packet.Login)
            {
                Pass    = packet.Pass,
                IsAdmin = Repository.GetData.PlayersAll.Count == 1
            };
            Repository.GetData.PlayersAll.Add(player);
            Repository.Get.ChangeData = true;
            Player = player;
            return(new ModelStatus()
            {
                Status = 0,
                Message = null
            });
        }
Exemplo n.º 6
0
    public float distanceToFlag; //can change to public getter and setters instead

    public void Setup(Transform spawnPoint, Transform flag, GenerateMaze generateMaze)
    {
        //sets random spawn point for tank
        this.spawnPoint = m_SpawnPoint.position;
        m_GenerateMaze  = generateMaze;

        m_Movement = m_Instance.GetComponent <TankMovement>();
        m_Movement.m_PlayerNumber = teamNumber;

        m_Shooting = m_Instance.GetComponent <TankShooting>();
        m_Shooting.m_PlayerNumber = teamNumber;

        //UI Healthbar manager
        m_Health                 = m_Instance.GetComponent <TankHealth>();
        healthCanvas             = GameObject.FindGameObjectWithTag("HealthBar" + teamNumber);
        m_Health.ui_HealthSlider = healthCanvas.GetComponentInChildren <Slider>();

        //Kill count Ui manager
        killCountCanvas = GameObject.FindGameObjectWithTag("KillCount" + teamNumber);
        killCount       = killCountCanvas.GetComponent <Text>();
        killCount.text  = "KILL COUNT: " + getKillCount().ToString();//Not updating for some reason

        // Observation
        m_tankObservation = m_Instance.GetComponent <TankObservation>();
        m_tankObservation.SetFlag(flag);

        m_Instance.GetComponentsInChildren <ScreenshotHandler>()[0].SetScreenshotName($"Player{teamNumber}");


        // Player server
        m_playerServer = new PlayerServer();

        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        if (teamNumber == 1)
        {
            m_PlayerColor = Color.red;
        }
        else if (teamNumber == 2)
        {
            m_PlayerColor = Color.blue;
        }
        else //this one shouldn't matter so long as I did the mod operation correctly
        {
            m_PlayerColor = Color.black;
        }

        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">TEAM " + teamNumber + "</color>"; //html like text to handle the text colour

        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();                                      //gets all mesh renderers in tank prefab

        //set all renderers in tank's meshrenderers to the player's colour
        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].material.color = m_PlayerColor;
        }
    }
Exemplo n.º 7
0
    void onLoadCharacter(NetworkMessage msg)
    {
        PlayerInfo packet = msg.ReadMessage <PlayerInfo>();
        int        id     = getCharacterID(packet.characterName);
        //PlayerServer player = getPlayerObject(msg.conn.connectionId);
        PlayerServer player = PlayerServer.getDefaultCharacter(msg.conn.connectionId);

        connections.Add(msg.conn.connectionId, packet.name);
        conns.Add(packet.name, msg.conn.connectionId);
        charactersOnline.Add(packet.characterName, getCharacterID(packet.characterName));
        characterConnections.Add(msg.conn.connectionId, packet.characterName);
        playerObjects.Add(msg.conn.connectionId, new PlayerServer(msg.conn.connectionId, id));

        MySqlConnection conn;
        MySqlDataReader reader;

        mysqlReader(out conn, out reader, "SELECT * FROM skills WHERE playerID = '" + id + "'");
        List <int> skillProperties = new List <int>();

        Debug.Log("SERVER: wew");
        while (reader.Read())
        {
            skillProperties.Add(reader.GetInt16("skillId"));
            skillProperties.Add(reader.GetInt16("currentPoints"));
            skillProperties.Add(reader.GetInt16("maxPoints"));
        }
        player.setSkills(skillProperties.ToArray());
        packet.skillProperties = skillProperties.ToArray();

        NetworkServer.SendToClient(msg.conn.connectionId, PacketTypes.LOAD_PLAYER, packet);
        conn.Close();
    }
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> argsM)
        {
            var ownLogin = player.Public.Login;

            if (argsM.Count < 1)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.PlayerNameEmpty, ownLogin, chat, "Player name is empty"));
            }

            var killPlayer = Repository.GetPlayerByLogin(argsM[0]);

            if (killPlayer == null)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.UserNotFound, ownLogin, chat, "User " + argsM[0] + " not found"));
            }

            //var msg = "User " + killPlayer.Public.Login + " deleted settlements.";
            //_chatManager.AddSystemPostToPublicChat(msg); //раскомментировать, чтобы постить в общем чате всем

            killPlayer.AbandonSettlement();
            Loger.Log("Server killhimplease " + killPlayer.Public.Login);

            return(new ModelStatus()
            {
                Status = 0
            });
        }
Exemplo n.º 9
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> argsM)
        {
            var ownLogin = player.Public.Login;

            if (argsM.Count < 1)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.PlayerNameEmpty, ownLogin, chat, "Player name is empty"));
            }

            var killPlayer = Repository.GetPlayerByLogin(argsM[0]);

            if (killPlayer == null)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.UserNotFound, ownLogin, chat, "User " + argsM[0] + " not found"));
            }

            var msg = "User " + killPlayer.Public.Login + " deleted settlements.";

            _chatManager.AddSystemPostToPublicChat(msg);

            Repository.DropUserFromMap(killPlayer.Public.Login);
            Repository.GetSaveData.DeletePlayerData(killPlayer.Public.Login);
            Repository.Get.ChangeData = true;
            Loger.Log("Server killhimplease " + killPlayer.Public.Login);

            return(new ModelStatus()
            {
                Status = 0
            });
        }
Exemplo n.º 10
0
        /// <summary>
        /// Ники тех кого мы видим
        /// </summary>
        /// <returns></returns>
        public static List <string> PartyLoginSee(PlayerServer player)
        {
            var ps = player.IsAdmin
               ? Repository.GetData.PlayersAll.Select(p => p.Public.Login)
           : ChatManager.Instance.PublicChat.PartyLogin;

            return(ps.ToList());
        }
Exemplo n.º 11
0
        public ModelStatus PostCommandAddPlayer(PlayerServer player, Chat chat, string who)
        {
            string myLogin = player.Public.Login;
            // проверка на корректность данных: это не системный чат, мы хозяин чата, такой пользователь существует.
            var newPlayer = Repository.GetPlayerByLogin(who);

            if (newPlayer == null)
            {
                return(PostCommandPrivatPostActivChat(ChatCmdResult.UserNotFound, myLogin, chat, "User " + who + " not found"));
            }

            if (!chat.OwnerMaker) // Вопрос к автору, что это такое, если отработает следующее условие:  The player is already here?
            {
                return(PostCommandPrivatPostActivChat(ChatCmdResult.CantAccess, myLogin, chat, "People can not be added to a shared channel"));
            }

            var isAdmin = (player.Public.Grants & Grants.SuperAdmin) > 0;

            if (chat.OwnerLogin != myLogin && !isAdmin)
            {
                return(PostCommandPrivatPostActivChat(ChatCmdResult.AccessDeny, myLogin, chat, "You can not add people"));
            }

            //if (!player.PublicChat.PartyLogin.Any(p => p == who))
            //    return PostCommandPrivatPostActivChat(ChatCmdResult.UserNotFound, myLogin, chat, "Can not access " + who + " player");

            lock (chat)
            {
                if (chat.PartyLogin.Any(p => p == who))
                {
                    return(PostCommandPrivatPostActivChat(ChatCmdResult.PlayerHere, myLogin, chat, "The player is already here"));
                }

                newPlayer.Chats.Add(chat, new ModelUpdateTime()
                {
                    Value = -1
                });
                chat.PartyLogin.Add(newPlayer.Public.Login);
            }

            var msg = "User " + newPlayer.Public.Login + " entered the channel.";

            chat.Posts.Add(new ChatPost()
            {
                Message    = msg,
                OwnerLogin = "******",
                Time       = DateTime.UtcNow,
            });

            Repository.Get.ChangeData = true;

            return(new ModelStatus()
            {
                Status = 0,
                Message = msg,
            });
        }
Exemplo n.º 12
0
 public UnitServer(int id, Vector2 currentPos, int combatStats, int movementStats, int sigthStats, PlayerServer playerId)
 {
     _id       = id;
     _pos      = currentPos;
     _combat   = combatStats;
     _movement = movementStats;
     _sight    = sigthStats;
     _player   = playerId;
 }
Exemplo n.º 13
0
 public UnitServer(int id,Vector2 currentPos, int combatStats, int movementStats, int sigthStats, PlayerServer playerId)
 {
     _id = id;
     _pos = currentPos;
     _combat = combatStats;
     _movement = movementStats;
     _sight = sigthStats;
     _player = playerId;
 }
Exemplo n.º 14
0
        public void SendClientData(PlayerServer player)
        {
            foreach (PlayerServer playerr in AllPlayers.players)
            {
                playerr.OperationContext.GetCallbackChannel <IClientCallback>().ConnectEnemy(player);
            }

            AllPlayers.players.Add(player);
        }
Exemplo n.º 15
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> argsM)
        {
            if (argsM.Count < 1)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.PlayerNameEmpty, player.Public.Login, chat, "Player name is empty"));
            }

            chat.LastChanged = DateTime.UtcNow;
            return(_chatManager.PostCommandAddPlayer(player, chat, argsM[0]));
        }
Exemplo n.º 16
0
    public void checkValidQuest(Quest quest, int connectionId, PlayerServer playerServer)
    {
        QuestJson qJson = lookUpQuest(quest);

        if (qJson != null)
        {
            quest.start(qJson);
            server.addOrUpdateQuestStatusToDatabase(quest, playerServer, true, PacketTypes.QUEST_START);
            playerServer.questList.Add(quest);
        }
    }
Exemplo n.º 17
0
 public List <UnitServer> getUnits(int playerId)
 {
     for (int i = 0; i < players.Count; i++)
     {
         PlayerServer p = players[i];
         if (p.playerId == playerId)
         {
             return(unitList[p]);
         }
     }
     return(null);
 }
Exemplo n.º 18
0
 public PlayerManager(RealmClient rClient)
 {
     RClient = rClient;
     Server = new PlayerServer();
     Server.ClientDisconnected += Server_ClientDisconnected;
     Server.NewClientConntected += Server_NewClientConntected;
     Server.NewDataReceived += Server_NewDataReceived;
     Server.NewDataSended += Server_NewDataSended;
     Server.Started += Server_Started;
     Server.Stoped += Server_Stoped;
     Server.NewException += Server_NewException;
 }
Exemplo n.º 19
0
 public PlayerManager(RealmClient rClient)
 {
     RClient = rClient;
     Server  = new PlayerServer();
     Server.ClientDisconnected  += Server_ClientDisconnected;
     Server.NewClientConntected += Server_NewClientConntected;
     Server.NewDataReceived     += Server_NewDataReceived;
     Server.NewDataSended       += Server_NewDataSended;
     Server.Started             += Server_Started;
     Server.Stoped       += Server_Stoped;
     Server.NewException += Server_NewException;
 }
Exemplo n.º 20
0
        private List <OrderTrade> getOrders(PlayerServer player)
        {
            //Список игроков кого видим
            var ps   = StaticHelper.PartyLoginSee(player);
            var data = Repository.GetData;

            return((data.Orders ?? new List <OrderTrade>())
                   .Where(o => player.Public.Login == o.Owner.Login ||
                          ps.Any(p => p == o.Owner.Login) &&
                          (o.PrivatPlayers.Count == 0 || o.PrivatPlayers.Any(p => p.Login == player.Public.Login)))
                   .ToList());
        }
Exemplo n.º 21
0
 // Use this for initialization
 void Start()
 {
     if (isClient && isLocalPlayer)
     {
         singleton = this;
         pCommmon.isServerSingleton = true;
     }
     else if (isServer && isClient && isLocalPlayer && hasAuthority)
     {
         singleton = this;
         pCommmon.isServerSingleton = true;
     }
 }
Exemplo n.º 22
0
        private void BeforeBeginSettlement(PlayerServer player)
        {
            player.StartMarketValue     = 0;
            player.StartMarketValuePawn = 0;
            player.TotalRealSecond      = 0;

            /* //если сбрасывать для новых поселений, то можно не заметить следов абуза в отчете
             * player.MaxDeltaGameMarketValue = 0;
             * player.MaxDeltaGameMarketValuePawn = 0;
             * player.MaxDeltaRealMarketValue = 0;
             * player.MaxDeltaRealMarketValuePawn = 0;
             */
        }
Exemplo n.º 23
0
 // Use this for initialization
 void Start()
 {
     if (isClient && isLocalPlayer)
     {
         singleton = this;
         pCommmon.isServerSingleton = true;
     }
     else if (isServer && isClient && isLocalPlayer && hasAuthority)
     {
         singleton = this;
         pCommmon.isServerSingleton = true;
     }
 }
Exemplo n.º 24
0
 public PlayerManager(RealmCore rCore)
 {
     RCore  = rCore;
     Server = new PlayerServer();
     QueueH = new QueueHandler(this);
     Server.ClientDisconnected  += Server_ClientDisconnected;
     Server.NewClientConntected += Server_NewClientConntected;
     Server.NewDataReceived     += Server_NewDataReceived;
     Server.NewDataSended       += Server_NewDataSended;
     Server.Started             += Server_Started;
     Server.Stoped       += Server_Stoped;
     Server.NewException += Server_NewException;
 }
 // Use this for initialization
 void Start()
 {
     if (isLocalPlayer)
     {
         client = gameObject.AddComponent <PlayerClient>();
     }
     else
     {
         observer = gameObject.AddComponent <PlayerObserver>();
     }
     if (isServer)
     {
         server = gameObject.AddComponent <PlayerServer>();
     }
 }
Exemplo n.º 26
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> param)
        {
            var userGrants = player.Public.Grants;

            var sb = new StringBuilder();

            foreach (var cmd in ChatManager.ChatCmds.Values.OrderBy(x => x.CmdID))
            {
                if (!Grants.NoPermissions.Equals(cmd.GrantsForRun & userGrants))
                {
                    sb.AppendLine(cmd.Help);
                }
            }

            return(_chatManager.PostCommandPrivatPostActivChat(0, player.Public.Login, chat, sb.ToString()));
        }
Exemplo n.º 27
0
        public override void buyout(PlayerType ePlayer)
        {
            PlayerServer pPlayer      = gameServer().playerServer(ePlayer);
            int          debtPerShare = pPlayer.getDebt() / 10;

            base.buyout(ePlayer);

            for (PlayerType eLoopPlayer = 0; eLoopPlayer < gameServer().getNumPlayers(); eLoopPlayer++)
            {
                PlayerServer pLoopPlayer = gameServer().playerServer(eLoopPlayer);
                int          sharesOwned = pLoopPlayer.getSharesOwned(ePlayer);
                if (sharesOwned > 0)
                {
                    pLoopPlayer.changeDebt(debtPerShare * sharesOwned);
                }
            }
        }
Exemplo n.º 28
0
        private void BeforeBeginSettlement(PlayerServer player)
        {
            player.GameProgress          = new PlayerGameProgress();
            player.AttacksWonCount       = 0;
            player.AttacksInitiatorCount = 0;

            player.StartMarketValue     = 0;
            player.StartMarketValuePawn = 0;
            player.TotalRealSecond      = 0;

            /* //если сбрасывать для новых поселений, то можно не заметить следов абуза в отчете
             * player.MaxDeltaGameMarketValue = 0;
             * player.MaxDeltaGameMarketValuePawn = 0;
             * player.MaxDeltaRealMarketValue = 0;
             * player.MaxDeltaRealMarketValuePawn = 0;
             */
        }
Exemplo n.º 29
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> argsM)
        {
            var data = Repository.GetData;

            lock (data)
            {
                data.EverybodyLogoff = true;
            }

            var msg = "Server is preparing to shut down (EverybodyLogoffCmd)";

            Loger.Log(msg);
            return(new ModelStatus()
            {
                Status = 0,
                Message = msg,
            });
        }
Exemplo n.º 30
0
 void Start()
 {
     map      = new MapServer(31, 31);
     unitList = new Dictionary <PlayerServer, List <UnitServer> >();
     players  = new List <PlayerServer>();
     Debug.Log("Server Start");
     for (int i = 0; i < numPlayers; i++)
     {
         PlayerServer      player = new PlayerServer(i);
         List <UnitServer> units  = new List <UnitServer>();
         players.Add(player);
         for (int u = 0; u < 5; u++)
         {
             units.Add(new UnitServer(u, new Vector2(14 + u, 16 - 2 * i), 1, 1, 2, player));
         }
         unitList[player] = units;
     }
 }
Exemplo n.º 31
0
        /// <summary>
        /// Starts a TCP server to listen to specific commands.
        /// </summary>
        private void StartServer()
        {
            this.Server  = new PlayerServer();
            this.Closed += (o, e) => {
                this.Server.Dispose();
            };

            this.Server.AttachModule(
                new SoftwareModule(),
                new PlaylistModule(this.Playlist),
                this.LyricsServerModule,
                this.PlayerServerModule
                );

            this.PlayerServerModule.OpenFiles    += (o, e) => this.Dispatcher.Invoke(() => this.OpenFilesAsync(e));
            this.PlayerServerModule.NextSong     += (o, e) => this.Dispatcher.Invoke(this.PlayNext);
            this.PlayerServerModule.PreviousSong += (o, e) => this.Dispatcher.Invoke(this.PlayPrevious);
        }
Exemplo n.º 32
0
 void Start()
 {
     map = new MapServer(31, 31);
     unitList= new Dictionary<PlayerServer, List<UnitServer>>();
     players = new List<PlayerServer>();
     Debug.Log("Server Start");
     for(int i = 0; i < numPlayers; i++)
     {
         PlayerServer player = new PlayerServer(i);
         List<UnitServer> units = new List<UnitServer>();
         players.Add(player);
         for(int u = 0; u < 5; u++)
         {
             units.Add(new UnitServer(u, new Vector2(14+u,16-2*i), 1, 1, 2, player));
         }
         unitList[player] = units;
     }
 }
Exemplo n.º 33
0
    public void turnInQuest(Quest quest, PlayerServer pServer)
    {
        bool isSame = false;

        foreach (Quest q in pServer.questList.ToArray())
        {
            if (quest.getId().Equals(q.getId()))
            {
                isSame = true;
            }
        }
        if (!isSame)
        {
            Debug.LogError("Error cannot complete quest - Quest Invalid");
            return;
        }
        quest.setStatus(e_QuestStatus.TURNED_IN);
        server.addOrUpdateQuestStatusToDatabase(quest, pServer, true, PacketTypes.QUEST_TURN_IN);
    }
Exemplo n.º 34
0
        public ModelStatus Execute(ref PlayerServer player, Chat chat, List <string> param)
        {
            if (chat.OwnerMaker)
            {
                return(_chatManager.PostCommandPrivatPostActivChat(ChatCmdResult.OnlyForPublicChannel, player.Public.Login, chat, "Operation only for the shared channel"));
            }

            //var msg = "User " + player.Public.Login + " deleted settlements.";
            //_chatManager.AddSystemPostToPublicChat(msg); //раскомментировать, чтобы постить в общем чате всем

            player.AbandonSettlement();
            Loger.Log("Server killmyallplease " + player.Public.Login);
            player = null; ///  значение передается по ссылке, и успешно обнуляет у передающего класса

            return(new ModelStatus()
            {
                Status = 0,
            });
        }