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")); } } }
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); }
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); }
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); } }
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); }
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); }
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); } }
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")); }
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); }
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); }); }
void DrawUI(BasePlayer player) { core.DrawUI(player, "ModeratorTools", "menu"); }
void DrawUI(BasePlayer player) { var imgs = GetImages(j++); core.DrawUI(player, "TestCui", "imgtext", imgs); }
void DrawUI(BasePlayer player) { core.DrawUI(player, "SortItems", "menu", toggleCaptions[putPlayers.Contains(player.userID) ? 1 : 0]); }
void DrawUI(BasePlayer player, int seconds) { core.DrawUI(player, "Remove", "menu", seconds); }
void DrawUI(BasePlayer player) { core.DrawUI(player, "Skins", "menu"); }
void DrawUI(BasePlayer player) { core.DrawUI(player, "BuildingBlockGUI", "menu"); }
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); }