Иконка ресурса

FREE Top : 1.0.4 1.0.4

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using Oxide.Core;
using Oxide.Core.Configuration;
using System.Globalization;
using UnityEngine;
using Oxide.Game.Rust.Cui;
using System.Linq;
namespace Oxide.Plugins {
    [Info("Top", "s1m0n", "1.0.4")]
    [Description("Топ игроков для сервера")]
    class Top : RustPlugin {
        //Создаем конфиг
        protected override void LoadDefaultConfig() {
            PrintWarning("Создание конфига");
            Config.Clear();
            Config["ЦветПанели"] = "0.0 0.0 0.0 0.8";
            //Config["КлавишаДляБинда"] = "P";
            Config["ВремяМеждуСообщениями"] = 300f;
            Config["ЦветОповещаний"] = "#ffa500";
            SaveConfig();
        }
        //Создаем чат команды
        [ChatCommand("rank")]
        void TurboRankCommand(BasePlayer player, string command) {
            var TopPlayer = (from x in Tops where x.UID == player.UserIDString select x).OrderByDescending(x => x.РакетВыпущено + x.ВзрывчатокИспользовано);
            player.ChatMessage($"<size=15>Статистика игрока <color=#ffa500>{player.displayName}</color></size>");
            foreach (var top in TopPlayer) {
                rust.SendChatMessage(player, $"<size=14><color=#ffffff>Убийств игроков: <color=#ffa500>{top.УбийствPVP}</color> | Смертей: <color=#ffa500>{top.Смертей}</color></color></size>", null, "0");
                rust.SendChatMessage(player, $"<size=14><color=#ffffff>Ракет выпущено: <color=#ffa500>{top.РакетВыпущено}</color> | Взрывчаток использовано: <color=#ffa500>{top.ВзрывчатокИспользовано}</color></color></size>", null, "0");
                rust.SendChatMessage(player, $"<size=14><color=#ffffff>Ресурсов собрано: <color=#ffa500>{top.РесурсовСобрано}</color> | Животных убито: <color=#ffa500>{top.УбийствЖивотных}</color></color></size>", null, "0");
                rust.SendChatMessage(player, $"<size=14><color=#ffffff>Пуль выпущено: <color=#ffa500>{top.ПульВыпущено}</color> | Стрел выпущено: <color=#ffa500>{top.СтрелВыпущено}</color></color></size>", null, "0");
                rust.SendChatMessage(player, $"<size=14><color=#ffffff>Предметов скрафчено: <color=#ffa500>{top.ПредметовСкрафчено}</color> | Вертолетов сбито: <color=#ffa500>{top.ВертолётовУничтожено}</color></color></size>", null, "0");
            }
            return;
        }
        [ChatCommand("top")]
        void TurboTopCommand(BasePlayer player, string command, string[] args) {
            if (args.Length == 1) {
                int n = 0;
                // Очистка статистики игроков
                if (args[0] == "reset") {
                    if (!player.IsAdmin) {
                        rust.SendChatMessage(player, $"<size=14><color=#FFA500>Ты кто такой? Давай досвиданье!</color></size>", null, "0");
                        return;
                    }
                    var TopPlayer = (from x in Tops select x);
                    foreach (var top in TopPlayer) {
                        top.РакетВыпущено = 0;
                        top.УбийствPVP = 0;
                        top.ВзрывчатокИспользовано = 0;
                        top.УбийствЖивотных = 0;
                        top.ПульВыпущено = 0;
                        top.СтрелВыпущено = 0;
                        top.Смертей = 0;
                        top.ПредметовСкрафчено = 0;
                        top.РесурсовСобрано = 0;
                        top.ВертолётовУничтожено = 0;
                        Saved();
                    }
                    rust.SendChatMessage(player, $"<size=14><color=#FFA500>Статистика игроков обнулена!</color></size>", null, "0");
                    return;
                }
                if (args[0] == "farm") {
                    bool prov = false;
                    player.ChatMessage("<size=14><color=#FF6347>[СТАТИСТИКА]</color> ТОП Фармеров</size>");
                    var TopPlayer = (from x in Tops select x).OrderByDescending(x => x.РесурсовСобрано);
                    foreach (var top in TopPlayer) {
                        n++;
                        if (n <= 5) {
                            rust.SendChatMessage(player, $"<size=14><color=#FFA500>{n}.</color> <color=#FF8C00>{top.Ник}</color> ({top.РесурсовСобрано})</size>", null, top.UID);
                            if (top.UID == player.UserIDString) {
                                prov = true;
                            }
                        }
                    }
                    if (!prov) {
                        player.ChatMessage("...");
                        int i = 0;
                        foreach (var top in TopPlayer) {
                            i++;
                            if (top.UID == player.UserIDString) {
                                rust.SendChatMessage(player, $"<size=14><color=#FFA500>{i}.</color> <color=#FF8C00>{top.Ник}</color> ({top.РесурсовСобрано})</size>", null, player.UserIDString);
                            }
                        }
                    }
                    return;
                }
                if (args[0] == "pvp") {
                    bool prov = false;
                    player.ChatMessage("<size=14><color=#FF6347>[СТАТИСТИКА]</color> ТОП Убийств PVP</size>");
                    var TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствPVP);
                    foreach (var top in TopPlayer) {
                        n++;
                        if (n <= 5) {
                            rust.SendChatMessage(player, $"<size=14><color=#FFA500>{n}.</color> <color=#FF8C00>{top.Ник}</color> ({top.УбийствPVP})</size>", null, top.UID);
                            if (top.UID == player.UserIDString) {
                                prov = true;
                            }
                        }
                    }
                    if (!prov) {
                        player.ChatMessage("<size=14>...</size>");
                        int i = 0;
                        foreach (var top in TopPlayer) {
                            i++;
                            if (top.UID == player.UserIDString) {
                                rust.SendChatMessage(player, $"<size=14><color=#FFA500>{i}.</color> <color=#FF8C00>{top.Ник}</color> ({top.УбийствPVP})</size>", null, player.UserIDString);
                            }
                        }
                    }
                    return;
                }
                if (args[0] == "raid") {
                    bool prov = false;
                    player.ChatMessage("<size=14><color=#FF6347>[СТАТИСТИКА]</color> ТОП Рейдеров</size>");
                    var TopPlayer = (from x in Tops select x).OrderByDescending(x => x.РакетВыпущено + x.ВзрывчатокИспользовано);
                    foreach (var top in TopPlayer) {
                        n++;
                        if (n <= 5) {
                            rust.SendChatMessage(player, $"<size=14><color=#FFA500>{n}.</color> <color=#FF8C00>{top.Ник}</color> ({top.РакетВыпущено + top.ВзрывчатокИспользовано})</size>", null, top.UID);
                            if (top.UID == player.UserIDString) {
                                prov = true;
                            }
                        }
                    }
                    if (!prov) {
                        player.ChatMessage("<size=14>...</size>");
                        int i = 0;
                        foreach (var top in TopPlayer) {
                            i++;
                            if (top.UID == player.UserIDString) {
                                rust.SendChatMessage(player, $"<size=14><color=#FFA500>{i}.</color> <color=#FF8C00>{top.Ник}</color> ({top.РакетВыпущено + top.ВзрывчатокИспользовано})</size>", null, player.UserIDString);
                            }
                        }
                    }
                    return;
                }
            }
            else {
                CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() {
                    connection = player.net.connection
                }
                , null, "DestroyUI", new Facepunch.ObjectList("Панелька", null, null, null, null));
                CuiElementContainer elements = CreatePanel("0");
                CuiHelper.AddUi(player, elements);
            }
        }
        // GUI панелька
        [ConsoleCommand("top.show")]
        private void TopShowOpenCmd2(ConsoleSystem.Arg arg) {
            BasePlayer player = arg.Player();
            if (player == null) return;
            CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() {
                connection = player.net.connection
            }
            , null, "DestroyUI", new Facepunch.ObjectList("Панелька", null, null, null, null));
            string number = arg.Args[0];
            CuiElementContainer elements = CreatePanel(number);
            CuiHelper.AddUi(player, elements);
            return;
        }
        CuiElementContainer CreatePanel(string number) {
            string cvet = Convert.ToString(Config["ЦветПанели"]);
            var elements = new CuiElementContainer();
            var panel = elements.Add(new CuiPanel {
                Image = {
                    Color = "0 0 0 0.75"
                }
                , RectTransform = {
                    AnchorMin = "0.2 0.13", AnchorMax = "0.8 0.95"
                }
                , CursorEnabled = true
            }
            , "Hud", "Панелька");
            elements.Add(new CuiPanel {
                Image = {
                    Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0 0.81", AnchorMax = "1 1"
                }
                ,
            }
            , panel);
            elements.Add(new CuiLabel {
                Text = {
                    Text = "<color=#ffa500>TOP 10 ИГРОКОВ</color>", FontSize = 30, Align = TextAnchor.MiddleCenter
                }
                , RectTransform = {
                    AnchorMin = "0 0.89", AnchorMax = "1 1"
                }
                ,
            }
            , panel);
            elements.Add(new CuiButton {
                Button = {
                    Command = "top.exit", Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0.9 0.90", AnchorMax = "1 1"
                }
                , Text = {
                    Text = "<color=#ffa500>X</color>", FontSize = 18, Align = TextAnchor.MiddleCenter
                }
            }
            , panel);
            elements.Add(new CuiPanel {
                Image = {
                    Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0 0.81", AnchorMax = "0.298 0.8899999"
                }
                ,
            }
            , panel);
            elements.Add(new CuiLabel {
                Text = {
                    Text = "<color=#ffa500>Игрок</color>", FontSize = 20, Align = TextAnchor.MiddleCenter
                }
                , RectTransform = {
                    AnchorMin = "0 0.81", AnchorMax = "0.29 0.8899999"
                }
                ,
            }
            , panel);
            elements.Add(new CuiButton {
                Text = {
                    Text = "<color=#ffa500>Убийства</color>", FontSize = 15, Align = TextAnchor.MiddleCenter
                }
                , Button = {
                    Command = "top.show 1", Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0.30 0.81", AnchorMax = "0.454 0.8899999"
                }
            }
            , panel);
            elements.Add(new CuiButton {
                Text = {
                    Text = "<color=#ffa500>Смертей</color>", FontSize = 15, Align = TextAnchor.MiddleCenter
                }
                , Button = {
                    Command = "top.show 2", Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0.455 0.81", AnchorMax = "0.578 0.8899999"
                }
            }
            , panel);
            elements.Add(new CuiButton {
                Text = {
                    Text = "<color=#ffa500>Животные</color>", FontSize = 15, Align = TextAnchor.MiddleCenter
                }
                , Button = {
                    Command = "top.show 3", Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0.58 0.81", AnchorMax = "0.678 0.8899999"
                }
            }
            , panel);
            elements.Add(new CuiButton {
                Text = {
                    Text = "<color=#ffa500>Взрывов</color>", FontSize = 15, Align = TextAnchor.MiddleCenter
                }
                , Button = {
                    Command = "top.show 4", Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0.68 0.81", AnchorMax = "0.859 0.8899999"
                }
            }
            , panel);
            elements.Add(new CuiButton {
                Text = {
                    Text = "<color=#ffa500>Ресурсы</color>", FontSize = 15, Align = TextAnchor.MiddleCenter
                }
                , Button = {
                    Command = "top.show 5", Color = $"{cvet}"
                }
                , RectTransform = {
                    AnchorMin = "0.86 0.81", AnchorMax = "1 0.8899999"
                }
            }
            , panel);
            string polosa = "0 0 0 0.9";
            int n = 0;
            var TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствPVP).Take(10);
            if (number == "2") {
                TopPlayer = (from x in Tops select x).OrderByDescending(x => x.Смертей).Take(10);
            }
            else if (number == "3") {
                TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствЖивотных).Take(10);
            }
            else if (number == "4") {
                TopPlayer = (from x in Tops select x).OrderByDescending(x => x.РакетВыпущено + x.ВзрывчатокИспользовано).Take(10);
            }
            else if (number == "5") {
                TopPlayer = (from x in Tops select x).OrderByDescending(x => x.РесурсовСобрано).Take(10);
            }
            else {
                TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствPVP).Take(10);
            }
            foreach (var top in TopPlayer) {
                if (n % 2 == 0) {
                    polosa = "0 0 0 0.7";
                }
                else {
                    polosa = "1 1 1 0.05";
                }
                elements.Add(new CuiPanel {
                    Image = {
                        Color = polosa
                    }
                    , RectTransform = {
                        AnchorMin = $"0 {0.72 - (n * 0.08)}", AnchorMax = $"1 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                elements.Add(new CuiLabel {
                    Text = {
                        Text = Convert.ToString(top.Ник), FontSize = 15, Align = TextAnchor.MiddleCenter
                    }
                    , RectTransform = {
                        AnchorMin = $"0 {0.72 - (n * 0.08)}", AnchorMax = $"0.29 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                elements.Add(new CuiLabel {
                    Text = {
                        Text = Convert.ToString(top.УбийствPVP), FontSize = 15, Align = TextAnchor.MiddleCenter
                    }
                    , RectTransform = {
                        AnchorMin = $"0.3 {0.72 - (n * 0.08)}", AnchorMax = $"0.454 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                elements.Add(new CuiLabel {
                    Text = {
                        Text = Convert.ToString(top.Смертей), FontSize = 15, Align = TextAnchor.MiddleCenter
                    }
                    , RectTransform = {
                        AnchorMin = $"0.455 {0.72 - (n * 0.08)}", AnchorMax = $"0.578 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                elements.Add(new CuiLabel {
                    Text = {
                        Text = Convert.ToString(top.УбийствЖивотных), FontSize = 15, Align = TextAnchor.MiddleCenter
                    }
                    , RectTransform = {
                        AnchorMin = $"0.58 {0.72 - (n * 0.08)}", AnchorMax = $"0.678 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                elements.Add(new CuiLabel {
                    Text = {
                        Text = $"{ Convert.ToString(top.ВзрывчатокИспользовано + top.РакетВыпущено)}", FontSize = 15, Align = TextAnchor.MiddleCenter
                    }
                    , RectTransform = {
                        AnchorMin = $"0.68 {0.72 - (n * 0.08)}", AnchorMax = $"0.85 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                elements.Add(new CuiLabel {
                    Text = {
                        Text = Convert.ToString(top.РесурсовСобрано), FontSize = 15, Align = TextAnchor.MiddleCenter
                    }
                    , RectTransform = {
                        AnchorMin = $"0.86 {0.72 - (n * 0.08)}", AnchorMax = $"0.99 {0.8 - (n * 0.08)}"
                    }
                    ,
                }
                , panel);
                n++;
            }
            return elements;
        }
        // Выход с панельки
        [ConsoleCommand("top.exit")]
        private void MagazineOpenCmd2(ConsoleSystem.Arg arg) {
            if (arg.Player() == null) return;
            BasePlayer player = arg.Player();
            CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() {
                connection = player.net.connection
            }
            , null, "DestroyUI", new Facepunch.ObjectList("Панелька", null, null, null, null));
        }
        void OnEntityDeath(BaseCombatEntity victim, HitInfo info) {
            if (victim.ToPlayer() != null) {
                string death = Convert.ToString(victim.ToPlayer().userID);
                TopData con = (from x in Tops where x.UID == death select x).FirstOrDefault();
                //Считаем смерти
                con.Смертей += 1;
                Saved();
            }
            if (!info.Initiator) return;
            if (info.Initiator.ToPlayer()) {
                string killer = Convert.ToString(info.Initiator.ToPlayer().userID);
                TopData con2 = (from x in Tops where x.UID == killer select x).FirstOrDefault();
                //Считаем убийства животных
                if ((bool)victim?.name?.Contains("agents")) {
                    con2.УбийствЖивотных += 1;
                }
                //Считаем количество сбитых "Гвинтокрилів"
                if (victim.name.Contains("patrolhelicopter.prefab") && victim.name.Contains("gibs")) {
                    con2.ВертолётовУничтожено += 1;
                }
                //Считаем убийства игроков
                if (victim.ToPlayer() != null && victim.ToPlayer() != info.Initiator.ToPlayer()) {
                    con2.УбийствPVP += 1;
                }
                Saved();
            }
            return;
        }
        //Считаем взрывчатку
        void OnExplosiveThrown(BasePlayer player, BaseEntity entity) {
            TopData con = (from x in Tops where x.UID == Convert.ToString(player.userID) select x).FirstOrDefault();
            con.ВзрывчатокИспользовано += 1;
            Saved();
        }
        //Считаем ракеты
        void OnRocketLaunched(BasePlayer player, BaseEntity entity) {
            TopData con = (from x in Tops where x.UID == Convert.ToString(player.userID) select x).FirstOrDefault();
            con.РакетВыпущено += 1;
            Saved();
        }
        //Считаем выстрелы
        void OnWeaponFired(BaseProjectile projectile, BasePlayer player, ItemModProjectile mod, ProtoBuf.ProjectileShoot projectiles) {
            TopData con = (from x in Tops where x.UID == Convert.ToString(player.userID) select x).FirstOrDefault();
            if (projectile.primaryMagazine.ammoType.itemid == -420273765 || projectile.primaryMagazine.ammoType.itemid == -1280058093) {
                con.СтрелВыпущено += 1;
            }
            else {
                con.ПульВыпущено += 1;
            }
            Saved();
        }
        //Считаем крафт
        void OnItemCraftFinished(ItemCraftTask task, Item item) {
            if (task.owner is BasePlayer) {
                TopData con = (from x in Tops where x.UID == Convert.ToString(task.owner.userID) select x).FirstOrDefault();
                con.ПредметовСкрафчено += 1;
                Saved();
            }
        }
        void OnCollectiblePickup(Item item, BasePlayer player) {
            DoGather(player, item);
        }
        void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item) {
            if (entity == null || !(entity is BasePlayer) || item == null || dispenser == null) return;
            if (entity.ToPlayer() is BasePlayer) DoGather(entity.ToPlayer(), item);
        }
        //Подсчитываем количество собраных ресурсов
        void DoGather(BasePlayer player, Item item) {
            if (player == null) return;
            //item.amount = (int)(item.amount);
            TopData con = (from x in Tops where x.UID == Convert.ToString(player.userID) select x).FirstOrDefault();
            con.РесурсовСобрано += item.amount;
            Saved();
            return;
        }
        void CreateInfo(BasePlayer player) {
            if (player == null) return;
            Tops.Add(new TopData((string)player.displayName, player.UserIDString, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
            Saved();
        }
        //Добавляем игрока в Базу Данных и Биндим клавишу
        void OnPlayerInit(BasePlayer player) {
            //timer.Once(2f, () =>
            //{
            //    player.SendConsoleCommand($"bind {Convert.ToString(Config["КлавишаДляБинда"])} top.show");
            //});
            var check = (from x in Tops where x.UID == player.UserIDString select x).Count();
            if (check == 0) CreateInfo(player);
            //Обновляем игровой ник
            TopData con = (from x in Tops where x.UID == Convert.ToString(player.userID) select x).FirstOrDefault();
            con.Ник = (string)player.displayName;
            Saved();
        }
        //Загружаем TopData.json и проверяем есть ли все игроки в Базе Данных
        void Loaded() {
            Tops = Interface.Oxide.DataFileSystem.ReadObject<List<TopData>>("TopData");
            foreach (var player in BasePlayer.activePlayerList) {
                var check = (from x in Tops where x.UID == player.UserIDString select x).Count();
                if (check == 0) CreateInfo(player);
            }
            //что то делаем
            timer.Repeat(Convert.ToInt32(Config["ВремяМеждуСообщениями"]), 0, () => {
                var TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствPVP).Take(1);
                int r = Core.Random.Range(1, 5);
                if (r == 1) {
                    TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствPVP).Take(1);
                    foreach (var top in TopPlayer) rust.BroadcastChat($"<size=16><color={Convert.ToString(Config["ЦветОповещаний"])}>TOP Киллер</color> - {top.Ник} ({top.УбийствPVP})</size>");
                }
                else if (r == 2) {
                    TopPlayer = (from x in Tops select x).OrderByDescending(x => x.УбийствЖивотных).Take(1);
                    foreach (var top in TopPlayer) rust.BroadcastChat($"<size=16><color={Convert.ToString(Config["ЦветОповещаний"])}>TOP Охотник</color> - {top.Ник} ({top.УбийствЖивотных})</size>");
                }
                else if (r == 3) {
                    TopPlayer = (from x in Tops select x).OrderByDescending(x => x.РакетВыпущено + x.ВзрывчатокИспользовано).Take(1);
                    foreach (var top in TopPlayer) rust.BroadcastChat($"<size=16><color={Convert.ToString(Config["ЦветОповещаний"])}>TOP Рейдер</color> - {top.Ник} ({top.РакетВыпущено + top.ВзрывчатокИспользовано})</size>");
                }
                else if (r == 4) {
                    TopPlayer = (from x in Tops select x).OrderByDescending(x => x.РесурсовСобрано).Take(1);
                    foreach (var top in TopPlayer) rust.BroadcastChat($"<size=16><color={Convert.ToString(Config["ЦветОповещаний"])}>TOP Фармер</color> - {top.Ник} ({top.РесурсовСобрано})</size>");
                }
            }
            );
        }
        //Сохраняем инфу в TopData
        void Saved() {
            Interface.Oxide.DataFileSystem.WriteObject("TopData", Tops);
        }
        public List<TopData> Tops = new List<TopData>();
        public class TopData {
            public TopData(string Ник, string UID, int РакетВыпущено, int УбийствPVP, int ВзрывчатокИспользовано, int УбийствЖивотных, int ПульВыпущено, int СтрелВыпущено, int Смертей, int ПредметовСкрафчено, int РесурсовСобрано, int ВертолётовУничтожено) {
                this.Ник = Ник;
                this.UID = UID;
                this.РакетВыпущено = РакетВыпущено;
                this.УбийствPVP = УбийствPVP;
                this.ВзрывчатокИспользовано = ВзрывчатокИспользовано;
                this.УбийствЖивотных = УбийствЖивотных;
                this.ПульВыпущено = ПульВыпущено;
                this.СтрелВыпущено = СтрелВыпущено;
                this.Смертей = Смертей;
                this.ПредметовСкрафчено = ПредметовСкрафчено;
                this.РесурсовСобрано = РесурсовСобрано;
                this.ВертолётовУничтожено = ВертолётовУничтожено;
            }
            public string Ник {
                get;
                set;
            }
            public string UID {
                get;
                set;
            }
            public int РакетВыпущено {
                get;
                set;
            }
            public int УбийствPVP {
                get;
                set;
            }
            public int ВзрывчатокИспользовано {
                get;
                set;
            }
            public int УбийствЖивотных {
                get;
                set;
            }
            public int ПульВыпущено {
                get;
                set;
            }
            public int СтрелВыпущено {
                get;
                set;
            }
            public int Смертей {
                get;
                set;
            }
            public int ПредметовСкрафчено {
                get;
                set;
            }
            public int РесурсовСобрано {
                get;
                set;
            }
            public int ВертолётовУничтожено {
                get;
                set;
            }
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху