private void Server_SendingConsoleCommand(Exiled.Events.EventArgs.SendingConsoleCommandEventArgs ev) { if (ev.Name.ToUpper() == "COMBUST") { var controller = ev.Player.GameObject.GetComponent <SCP457Controller>(); if (controller != null) { if (controller.combustdelay == 0f) { foreach (var plr in Player.List) { var brn = plr.GameObject.GetComponent <BurningComponent>(); if (brn != null) { if (brn.burning) { var temp = brn.burningtime; temp += Config.commands.combust.burning_time; if (temp < Config.commands.combust.burning_time_max) { plr.ReferenceHub.playerStats.HurtPlayer(new PlayerStats.HitInfo(MainClass.singleton.Config.commands.combust.dmg_amount, "SCP457", DamageTypes.Asphyxiation, 0), plr.GameObject); brn.burningtime = temp; brn.colatime = MainClass.singleton.Config.attack_settings.cola_duration; plr.ReferenceHub.playerEffectsController.EnableEffect <CustomPlayerEffects.Scp207>(MainClass.singleton.Config.attack_settings.cola_duration); plr.ReferenceHub.playerEffectsController.GetEffect <CustomPlayerEffects.Scp207>().ServerChangeIntensity(1); plr.ReferenceHub.playerEffectsController.EnableEffect <CustomPlayerEffects.Flashed>(1f); } } } } ev.IsAllowed = false; ev.ReturnMessage = Config.commands.combust.command_used_message; controller.combustdelay = Config.commands.combust.cooldown; } else { ev.IsAllowed = false; ev.ReturnMessage = Config.commands.combust.cooldown_message.Replace("%seconds%", ((int)controller.combustdelay).ToString()); } } } }
public void Server_SendingConsoleCommand(Exiled.Events.EventArgs.SendingConsoleCommandEventArgs ev) { switch (ev.Name.ToUpper()) { case "GAMESTORE": ev.IsAllowed = false; if (ev.Arguments.Count == 0) { ev.Player.SendConsoleMessage(Config.messages["GAMESTORE_CMD"].Replace("%bal%", $"{ecoController.GetPlayerBalance(ev.Player)}"), "green"); } else if (ev.Arguments.Count == 1) { switch (ev.Arguments[0].ToUpper()) { case "BALANCE": case "BAL": ev.Player.SendConsoleMessage(Config.messages["BALANCE_CMD"].Replace("%bal%", $"{ecoController.GetPlayerBalance(ev.Player)}"), "green"); break; case "BUY": ev.Player.SendConsoleMessage(Config.messages["BUY_LIST_CMD"], "green"); var cats3 = Config.categories.Where(p => p.Value.restrictedTeam != Team.RIP && p.Value.restrictedTeam != ev.Player.Team).ToList(); if (cats3.Count == 0) { ev.Player.SendConsoleMessage(Config.messages["BUY_LIST_ITEM_EMPTY_CMD"], "green"); } else { foreach (var cat in cats3) { ev.Player.SendConsoleMessage(Config.messages["BUY_LIST_ITEM_CMD"].Replace("%categoryid%", $"{cat.Key}").Replace("%categoryname%", cat.Value.CategoryName).Replace("%categorydesc%", cat.Value.CategoryDescription), "green"); } } ev.Player.SendConsoleMessage(Config.messages["BUY_LIST_FOOTER_CMD"], "green"); break; } } else if (ev.Arguments.Count == 2) { switch (ev.Arguments[0].ToUpper()) { case "BUY": if (int.TryParse(ev.Arguments[1], out int categoryId)) { foreach (var cat in Config.categories) { if (cat.Key == categoryId) { if (cat.Value.BuyableItems.Count == 0) { ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_EMPTY_CMD"], "green"); return; } ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_CMD"].Replace("%categoryname%", cat.Value.CategoryName), "green"); foreach (var item in cat.Value.BuyableItems) { ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_ITEM_CMD"].Replace("%itemid%", $"{item.Key}").Replace("%itemname%", item.Value.ItemName).Replace("%itemprice%", $"{item.Value.CoinsCost}").Replace("%itemdesc%", item.Value.ItemDesc), "green"); } ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_FOOTER_CMD"].Replace("%categoryid%", $"{cat.Key}"), "green"); return; } } List <string> cats = new List <string>(); foreach (var t in Config.categories) { cats.Add($"[{t.Key}] {t.Value.CategoryName}"); } ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_NOTFOUND_CMD"].Replace("%id%", $"{categoryId}").Replace("%categories%", string.Join(", ", cats)), "green"); } else { ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_SYNTAX_CMD"], "green"); } break; } } else if (ev.Arguments.Count == 3) { switch (ev.Arguments[0].ToUpper()) { case "BUY": if (int.TryParse(ev.Arguments[1], out int categoryId)) { if (int.TryParse(ev.Arguments[2], out int itemId)) { foreach (var cat in Config.categories) { if (cat.Key == categoryId) { if (cat.Value.restrictedTeam != Team.RIP && cat.Value.restrictedTeam != ev.Player.Team) { foreach (var item in cat.Value.BuyableItems) { if (item.Key == itemId) { if (item.Value.MaxPerRound != plugin.GetUsesLeft(ev.Player, categoryId, itemId)) { if (ecoController.GetPlayerBalance(ev.Player) >= item.Value.CoinsCost) { plugin.UsesLeftAdd(ev.Player, categoryId, itemId); ecoController.RemovePlayerBalance(ev.Player, item.Value.CoinsCost); if (Config.rewards.ContainsKey(item.Value.RewardName)) { var reward = Config.rewards[item.Value.RewardName]; foreach (var itemReward in reward.Items) { if (plugin.IsInChance(itemReward.Chance)) { if (itemReward.ClassRole != RoleType.None) { if (itemReward.InventorySetup.Count != 0) { ev.Player.SessionVariables.Add("STP", itemReward.InventorySetup); } ev.Player.Role = itemReward.ClassRole; } else { if (itemReward.HPAmount != -1) { ev.Player.Health = itemReward.HPAmount; } if (itemReward.InventorySetup.Count != 0) { ev.Player.ClearInventory(); foreach (var item4 in itemReward.InventorySetup) { ev.Player.AddItem(item4); } } } if (itemReward.AmmoSetup.Count != 0) { foreach (var ammo in itemReward.AmmoSetup) { ev.Player.Ammo[(int)ammo.Key] = ammo.Value; } } if (itemReward.HPAmount != -1 && itemReward.ClassRole != RoleType.None) { ev.Player.MaxHealth = (int)itemReward.HPAmount; ev.Player.Health = itemReward.HPAmount; } for (int x = 0; x < itemReward.Amount; x++) { if (itemReward.CustomItemID != -1) { try { CustomItem.TryGive(ev.Player, itemReward.CustomItemID); } catch (Exception) { Log.Info("Failed to give player customitem, Exiled.Customitems not installed"); } } else if (!string.IsNullOrEmpty(itemReward.CustomReward)) { switch (itemReward.CustomReward) { case "CONTRACT": var playersuserids = Player.List.Where(p => p.UserId != ev.Player.UserId && p.Team != ev.Player.Team && p.Team != Team.RIP).SelectMany(p2 => p2.UserId).ToList(); var us = playersuserids[UnityEngine.Random.Range(0, playersuserids.Count - 1)]; var targetPlayer = Player.Get(us); if (targetPlayer != null) { ev.Player.SendConsoleMessage(Config.messages["BUY_CONTRACT_CMD"].Replace("%playername%", targetPlayer.Nickname), "green"); ev.Player.Broadcast(item.Value.BroadcastTime, Config.messages["BUY_CONTRACT_BC"].Replace("%playername%", targetPlayer.Nickname)); targetPlayer.SendConsoleMessage(Config.messages["BUY_CONTRACT_TARGET_CMD"].Replace("%playername%", targetPlayer.Nickname), "green"); targetPlayer.Broadcast(item.Value.BroadcastTime, Config.messages["BUY_CONTRACT_TARGET_BC"].Replace("%playername%", ev.Player.Nickname)); } break; } } else if (itemReward.ItemType != ItemType.None) { ev.Player.AddItem(new Inventory.SyncItemInfo() { durability = 30f, id = itemReward.ItemType, modBarrel = itemReward.WeaponMods.Barrel, modSight = itemReward.WeaponMods.Sight, modOther = itemReward.WeaponMods.Other }); } } } } } if (item.Value.SendBroadcastAfterBuy) { ev.Player.Broadcast(item.Value.BroadcastTime, Config.messages["BUY_ITEM_BC"].Replace("%itemprice%", $"{item.Value.CoinsCost}").Replace("%itemname%", item.Value.ItemName).Replace("%playeritemlimit%", $"{plugin.GetUsesLeft(ev.Player, categoryId, itemId)}").Replace("%itemlimit%", $"{item.Value.MaxPerRound}"), Broadcast.BroadcastFlags.Normal); } ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_CMD"].Replace("%itemprice%", $"{item.Value.CoinsCost}").Replace("%itemname%", item.Value.ItemName).Replace("%playeritemlimit%", $"{plugin.GetUsesLeft(ev.Player, categoryId, itemId)}").Replace("%itemlimit%", $"{item.Value.MaxPerRound}"), "green"); } else { ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_MISSINGMONEY_CMD"].Replace("%itemprice%", $"{item.Value.CoinsCost}").Replace("%itemname%", item.Value.ItemName).Replace("%bal%", $"{ecoController.GetPlayerBalance(ev.Player)}"), "green"); } } else { ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_LIMIT_CMD"].Replace("%itemname%", item.Value.ItemName).Replace("%itemlimit%", $"{item.Value.MaxPerRound}"), "green"); } return; } } List <string> its = new List <string>(); foreach (var t in Config.categories[categoryId].BuyableItems) { its.Add($"[{t.Key}] {t.Value.ItemName}"); } ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_NOTFOUND_CMD"].Replace("%itemid%", $"{itemId}").Replace("%items%", string.Join(", ", its)), "green"); return; } else { ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_RESTRICTED_CMD"].Replace("%classname%", $"{ev.Player.Role}"), "green"); return; } } } List <string> cats = new List <string>(); foreach (var t in Config.categories) { cats.Add($"[{t.Key}] {t.Value.CategoryName}"); } ev.Player.SendConsoleMessage(Config.messages["BUY_CATEGORY_NOTFOUND_CMD"].Replace("%id%", $"{categoryId}").Replace("%categories%", string.Join(", ", cats)), "green"); } else { ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_SYNTAX_CMD"], "green"); } } else { ev.Player.SendConsoleMessage(Config.messages["BUY_ITEM_SYNTAX_CMD"], "green"); } break; } } break; case "BALANCE": case "BAL": ev.IsAllowed = false; ev.Player.SendConsoleMessage(Config.messages["BALANCE_CMD"].Replace("%bal%", $"{ecoController.GetPlayerBalance(ev.Player)}"), "green"); break; } }