Exemple #1
0
        void OnPlayerAttack(BasePlayer attacker, HitInfo hitinfo)
        {
            var victim = hitinfo.HitEntity as BasePlayer;

            if (victim && hitmarkeron.Contains(attacker))
            {
                bool isFriend = (Clans?.Call("HasFriend", attacker.userID, victim.userID) as bool?) ?? false;
                if (hitinfo.isHeadshot)
                {
                    if (enablesound == true)
                    {
                        Effect.server.Run(headshotsoundeffect, attacker.transform.position, Vector3.zero,
                                          attacker.net.connection);
                    }
                    DestroyLastCui(attacker);
                    core.DrawUI(attacker, "HitMarkerGUI", "menu", Images["hitmarker.hit.head"]);
                    destTimers[attacker] = timer.Once(0.5f, () => core.DestroyUI(attacker, "HitMarkerGUI", "menu"));
                }
                else
                {
                    if (enablesound)
                    {
                        Effect.server.Run(soundeffect, attacker.transform.position, Vector3.zero,
                                          attacker.net.connection);
                    }
                    DestroyLastCui(attacker);
                    core.DrawUI(attacker, "HitMarkerGUI", "menu",
                                Images["hitmarker.hit." + (isFriend ? "friend" : "normal")]);
                    destTimers[attacker] = timer.Once(0.5f, () => core.DestroyUI(attacker, "HitMarkerGUI", "menu"));
                }
            }
        }
Exemple #2
0
 void UIDrawNotifier(BasePlayer player, GatherData data, bool destroy = true)
 {
     if (destroy && data.amount != data.TotalAmount)
     {
         core.DestroyUI(player, "GatherAdvanced", "notifier");
         notifierLasthit[player] = Time + 2;
     }
     if (!itemsLoaclization.ContainsKey(data.shortname))
     {
         Puts("Invalid item: " + data.shortname);
     }
     core.DrawUI(player, "GatherAdvanced", "notifier", data.amount, itemsLoaclization[data.shortname], data.TotalAmount, data.Time);
 }
Exemple #3
0
        bool?CanWearItem(PlayerInventory inventory, Item item)
        {
            var player = inventory.gameObject.ToBaseEntity() as BasePlayer;

            if (InDuel(player))
            {
                return(true);
            }
            var ret = blockedItems.All(entry => !entry.Value.Contains(item.info.shortname)) ? (bool?)null : false;

            if (ret == false)
            {
                core.DrawUI(player, "ItemBlocker", "blockedItem", GetTime(item));
                timer.Once(2f, () => core.DestroyUI(player, "ItemBlocker", "blockedItem"));
            }
            return(ret);
        }
Exemple #4
0
 void DrawBatteries(BasePlayer player, int batteryCount)
 {
     DestroyBatteries(player);
     NextTick(() => {
         Puts("1");
         core.DrawUI(player, "CupboardSystem", "batteries", batteryCount, maxBatteryCount);
     });
     if (!uiBatteriesCache.Contains(player.userID))
     {
         uiBatteriesCache.Add(player.userID);
     }
 }
Exemple #5
0
        void DrawUI(BasePlayer player, BuildingGrade.Enum grade, int seconds)
        {
            if (!loaded)
            {
                return;
            }
            string imgString = seconds.ToString("00");
            string image1    = ImageStorage.FetchPng(imgString[0].ToString());
            string image2    = ImageStorage.FetchPng(imgString[1].ToString());

            core.DrawUI(player, "BuildingUpgrade", "menu", gradeImages[$"building.upgrade.{(int) grade}"], image1, image2);
        }
Exemple #6
0
        void DrawUI(BasePlayer player)
        {
            if (!loaded)
            {
                timer.Once(0.1f, () => DrawUI(player));
                return;
            }
            string imageStr = string.Join("",
                                          new[] { sleepers.ToString("000"), online.ToString("000"), queue.ToString("000") });
            var args = GetImages(imageStr);

            Array.Resize(ref args, args.Length + 1);
            args[args.Length - 1] = messageImages.ElementAt(PngCurrent).Value;
            core.DrawUI(player, "InfoPanel", "main", args);
        }
Exemple #7
0
        void SendKillFeed()
        {
            var tb = new StringBuilder();

            foreach (var row in rows)
            {
                tb.Append(row);
            }
            string text = tb.ToString();

            foreach (var player in BasePlayer.activePlayerList)
            {
                core.DrawUI(player, "KillFeed", "menu", text);
            }
        }
Exemple #8
0
        void OnEntityBuilt(Planner plan, GameObject go)
        {
            if (go == null || plan == null)
            {
                return;
            }
            if (go.name != "assets/prefabs/deployable/tool cupboard/cupboard.tool.deployed.prefab")
            {
                return;
            }
            var player = plan.GetOwnerPlayer();

            core.DrawUI(player, "CupboardNotify", "main");
            timer.Once(15f, () => core.DestroyUI(player, "CupboardNotify", "main"));
        }
Exemple #9
0
        void ShowBindsMenu(BasePlayer player)
        {
            core.DrawUI(player, "HotKeys", "menu");
            CuiHelper.DestroyUi(player, "bindscontainer");
            var container = new CuiElementContainer();
            var mainPanel = container.Add(new CuiPanel()
            {
                Image = { Color = "0 0 0 0" }
            }, "hotkeyBindsPanel", "bindscontainer");

            float width  = 0.5f;
            float height = 0.065f;
            float y      = 1 - height;
            float x      = 0;

            foreach (var bind in GetBinds(player))
            {
                var bindpanel = container.Add(new CuiPanel()
                {
                    RectTransform = { AnchorMin = $"{x} {y}", AnchorMax = $"{x+width} {y+height}", OffsetMax = "-9 -7", OffsetMin = "5 0" },
                    Image         = { Color = "0.5 0.5 0.5 1" }
                }, mainPanel);

                container.Add(new CuiLabel()
                {
                    RectTransform = { AnchorMin = "0.05 0", AnchorMax = "0.7 1" },
                    Text          = { Align = TextAnchor.MiddleLeft, Color = "1 1 1 1", FontSize = 14, Text = bind.Key }
                }, bindpanel);

                container.Add(new CuiButton()
                {
                    RectTransform = { AnchorMin = "0.75 0.1", AnchorMax = "0.985 0.9" },
                    Text          = { Align = TextAnchor.MiddleCenter, Color = "1 1 1 1", FontSize = 14, Text = bind.Value.ToUpper() },
                    Button        = { Command = $"hotkeybinds.selectkey {bind.Key}", Color = "0 0 0 0.7" }
                }, bindpanel);

                y -= height;
                if (y <= 0.01)
                {
                    y  = 1 - height;
                    x += 0.5f;
                }
            }

            CuiHelper.AddUi(player, container);
        }
Exemple #10
0
 void DuelManagerUI_ChoosePlayer(BasePlayer player, BasePlayer selected)
 {
     GetAvatar(selected.userID, avatar =>
     {
         var playerStats = GetStats(selected);
         core.DrawUI(player, "DuelManager", "menu", new object[]
         {
             avatar,
             playerStats.Rank(),
             playerStats.KD().ToString("F2"),
             playerStats.DuelWinPercent().ToString("F2"),
             playerStats.Kills,
             playerStats.Death,
             playerStats.DuelCount,
             playerStats.FavoriteWeapon()
         });
         DuelManagerUI_DrawPlayers(player, selected.userID);
     });
 }
Exemple #11
0
 void DrawUI(BasePlayer player)
 {
     core.DrawUI(player, "ModeratorTools", "menu");
 }
Exemple #12
0
        void DrawUI(BasePlayer player)
        {
            var imgs = GetImages(j++);

            core.DrawUI(player, "TestCui", "imgtext", imgs);
        }
Exemple #13
0
 void DrawUI(BasePlayer player)
 {
     core.DrawUI(player, "SortItems", "menu", toggleCaptions[putPlayers.Contains(player.userID) ? 1 : 0]);
 }
Exemple #14
0
 void DrawUI(BasePlayer player, int seconds)
 {
     core.DrawUI(player, "Remove", "menu", seconds);
 }
Exemple #15
0
 void DrawUI(BasePlayer player)
 {
     core.DrawUI(player, "Skins", "menu");
 }
Exemple #16
0
 void DrawUI(BasePlayer player)
 {
     core.DrawUI(player, "BuildingBlockGUI", "menu");
 }
Exemple #17
0
        void DrawCases(BasePlayer player)
        {
            CasePlayer casePlayer;

            if (!players.TryGetValue(player.userID, out casePlayer))
            {
                SendReply(player, "У вас нет кейсов");
                SendReply(player, "    <size=16><color=#fee3b4>Вы Автоматически будете получать кейсы</color></size>\n╔══════════════════════════════╗\n <size=15>                   Ресурсы Взрывчатка Оружие</size>\n<size=16><color=#fee3b4>            после покупки</color></size> <size=16><color=#fee3b4>Привелегии GOD</color></size>\n        в нашем магазине <size=16><color=#fee3b4>rustylife.gamestores.ru</color></size>\n╚══════════════════════════════╝");
                return;
            }
            core.DrawUI(player, "RandomCase", "menu");
            CuiHelper.DestroyUi(player, "casescontainer");

            var container = new CuiElementContainer();

            float gap       = 0f;
            float width     = 1f;
            float height    = 0.33f;
            float startxBox = 0.0f;
            float startyBox = 1f - height;

            float xmin = startxBox;
            float ymin = startyBox;

            int i = 0;

            var mainPanel = container.Add(new CuiPanel()
            {
                Image = { Color = "0 0 0 0" }
            }, "casesc", "casescontainer");

            Dictionary <string, int> casesCollapsed = new Dictionary <string, int>();

            foreach (var ccase in casePlayer.Inventory)
            {
                if (!casesCollapsed.ContainsKey(ccase))
                {
                    casesCollapsed[ccase] = 0;
                }
                casesCollapsed[ccase]++;
            }

            foreach (var ccase in casesCollapsed)
            {
                container.Add(new CuiButton()
                {
                    Button        = { Command = $"randomcase.open {ccase.Key}", Color = "0.1 0.1 0.1 0.7" },
                    RectTransform =
                    {
                        AnchorMin = xmin + " " + ymin,
                        AnchorMax = (xmin + width) + " " + (ymin + height),
                        OffsetMax = "-5 -7",
                        OffsetMin = "5 0"
                    }, Text = { Text = $"{ccase.Value} x {cases[ccase.Key].Name}", Align = TextAnchor.MiddleCenter, Color = "1 1 1 1", FontSize = 18 }
                }, mainPanel);
                xmin += width + gap;
                if (xmin + width >= 1)
                {
                    xmin  = startxBox;
                    ymin -= height + gap;
                }
                i++;
            }
            CuiHelper.AddUi(player, container);
        }