public void TryGiveRad(Fougerite.Player pl) { if (pl.IsOnline && !pl.IsDisconnecting && pl.IsAlive) { foreach (var key in ZonesDictionary) { try { Vector3 loc = Util.GetUtil().ConvertStringToVector3(key.Key); int range = Convert.ToInt32(key.Value); var PlayerDist = Util.GetUtil().GetVectorsDistance(pl.Location, loc); if (PlayerDist < range) { pl.AddRads(RadLevelHight); pl.InventoryNotice(RadLevelHight + " Rads"); } else { pl.AddRads(RadLevelLow); pl.InventoryNotice(RadLevelLow + " Rads"); } } catch (Exception ex) { Debug.Log(Name + " Error B:" + ex.ToString()); continue; } } } }
public void OnEntityHurt(HurtEvent he) { if (weapons.Contains(he.WeaponName)) { Fougerite.Player pl = (Fougerite.Player)he.Attacker; int h = Convert.ToInt32(he.Entity.Health); int d = Convert.ToInt32(he.DamageAmount); pl.InventoryNotice(he.Entity.Name + " " + (h - d)); } }
private void OnEntityDeployedWithPlacer(Fougerite.Player player, Entity e, Fougerite.Player actualplacer) { if (e != null && !e.IsDestroyed) { if (DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID)) { e.Destroy(); player.Inventory.AddItem(e.Name); player.InventoryNotice("1 x " + e.Name + ""); player.MessageFrom("AntiAbuse", "[color #42b3f5]You [color #45f542]Can't [color #42b3f5]Build while you are in Admin-Duty!"); } } }
private void OnEntityHurt(Fougerite.Events.HurtEvent he) { if (he.AttackerIsPlayer && !he.IsDecay) { Fougerite.Player attacker = (Fougerite.Player)he.Attacker; ulong id = he.Entity.UOwnerID; ulong id2 = attacker.UID; if (DataStore.GetInstance().ContainsKey("RemoveTool", attacker.SteamID)) { if (he.WeaponName == "Shotgun") { attacker.MessageFrom(Name, "[color #fc0313]You Can't Use Shotgun!"); return; } if (he.Entity.Name == "MetalBarsWindow") { attacker.MessageFrom(Name, "You [color #fc0313]Can't[color white] Remove Metal Window Bars!"); return; } if (IsShared(id, id2) || id == id2) { if (!IsNotEligible(he.Entity)) { he.Entity.Destroy(); attacker.Inventory.AddItem(EntityList[he.Entity.Name]); attacker.InventoryNotice("+1 " + EntityList[he.Entity.Name]); } else { attacker.MessageFrom(Name, "[color #fc0313]Can't Remove this cause there is some Pillars/Ceilings on it!"); } } else { attacker.MessageFrom(Name, "This " + he.Entity.Name + " Owner [color #fc0313]has not[color white] Shared you!"); } } } }
public void OnCommand(Fougerite.Player player, string cmd, string[] args) { if (player.Admin || player.Moderator) { if (cmd == "ahelp") { player.MessageFrom(Name, "[color #42b3f5]/duty /unduty /warn /delwarn /hp "); player.MessageFrom(Name, "[color #42b3f5]/mtp /mtpback /ann /wipebar /wipeshelt "); player.MessageFrom(Name, "[color #42b3f5]/kick /ban /unban /rbban /rbunban /unbanip /mute /unmute "); return; } if (cmd == "duty") { if (!DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID)) { DataStore.GetInstance().Add("AdminDuty", player.SteamID, 0); player.Inventory.ClearArmor(); player.Inventory.AddItemTo("Invisible Helmet", 36, 1); player.Inventory.AddItemTo("Invisible Vest", 37, 1); player.Inventory.AddItemTo("Invisible Pants", 38, 1); player.Inventory.AddItemTo("Invisible Boots", 39, 1); player.Inventory.AddItem("Uber Hatchet", 1); Server.GetServer().BroadcastFrom(Name, "[color #42b3f5]Admin [color #f5e042]" + player.Name + " [color #42b3f5]is now [color #45f542]On Duty!"); } else { player.MessageFrom(Name, "[color #42b3f5]You are already OnDuty!!!"); } } if (cmd == "unduty") { if (DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID)) { DataStore.GetInstance().Remove("AdminDuty", player.SteamID); player.Inventory.ClearArmor(); player.Inventory.RemoveItem("Invisible Helmet", 1); player.Inventory.RemoveItem("Invisible Vest", 1); player.Inventory.RemoveItem("Invisible Pants", 1); player.Inventory.RemoveItem("Invisible Boots", 1); player.Inventory.RemoveItem("Uber Hatchet", 1); Server.GetServer().BroadcastFrom(Name, "[color #42b3f5]Admin [color #f5e042]" + player.Name + " [color #42b3f5]is now [color #f55142]Off Duty!"); } else { player.MessageFrom(Name, "[color #42b3f5]You are [color #f55142]not [color #42b3f5]On Duty!!!"); } } if (cmd == "warn") { if (args.Length == 0) { player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /warn PlayerName"); return; } else { Fougerite.Player playertor = FindSimilarPlayer(player, args); if (playertor == null) { return; } if (!DataStore.GetInstance().ContainsKey("warn", playertor.SteamID)) { DataStore.GetInstance().Add("warn", playertor.SteamID, 0); Server.GetServer().Broadcast("[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + "[color #42b3f5] Warned [color #f5e042] " + playertor.Name + "![color #f5e042](1/2)"); string logtext = player.Name + " Warned " + playertor.Name + "!(1/2)"; Log(logtext, "Warn"); return; } else { DataStore.GetInstance().Remove("warn", playertor.SteamID); Server.GetServer().Broadcast("[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + "[color #42b3f5] Warned[color #f5e042] " + playertor.Name + "![color red]Kicked (2/2)"); string logtext = player.Name + " Warned " + playertor.Name + "!Kicked (2/2)"; Log(logtext, "Warn"); playertor.Disconnect(); } } } if (cmd == "delwarn") { if (args.Length == 0) { player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /delwarn PlayerName"); return; } else { Fougerite.Player playertor = FindSimilarPlayer(player, args); if (playertor == null) { return; } if (DataStore.GetInstance().ContainsKey("warn", playertor.SteamID)) { DataStore.GetInstance().Remove("warn", playertor.SteamID); Server.GetServer().Broadcast("[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + " [color #42b3f5]Deleted [color #f5e042] " + playertor.Name + " [color #42b3f5]Warns![color #f5e042](0/2)"); string logtext = player.Name + " Deleted " + playertor.Name + " Warns!"; Log(logtext, "DeleteWarn"); return; } else { player.MessageFrom(Name, "[color #42b3f5]This Player [color #f55142]Doesn't [color #42b3f5]have any Warn!"); return; } } } if (cmd == "hp") { if (args.Length == 0) { player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /hp PlayerName"); return; } else { Fougerite.Player playertor = FindSimilarPlayer(player, args); if (playertor == null) { return; } player.MessageFrom(Name, playertor.Name + " HP : " + playertor.Health); string logtext = player.Name + " Used /HP On " + playertor.Name + ""; Log(logtext, "HP"); } } if (cmd == "mtp") { if (args.Length == 0) { player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /mtp PlayerName"); return; } else { if (DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID)) { Fougerite.Player playertor = FindSimilarPlayer(player, args); if (playertor == null) { return; } if (playertor.Moderator) { player.MessageFrom("AntiAbuse", "[color #42b3f5]You [color #f55142]Can't [color #42b3f5]Teleport to another Mods!"); return; } RecuperaListaDeClanes(); if (SonDeElMismoClan(player.SteamID, GetClanName(playertor.SteamID))) { player.MessageFrom("AntiAbuse", "[color #42b3f5]You [color #f55142]Can't [color #42b3f5]Teleport to your Clanmates!"); return; } if (!DataStore.GetInstance().ContainsKey("ModeratorLastLoc", player.UID)) { DataStore.GetInstance().Add("ModeratorLastLoc", player.UID, player.Location.ToString()); } player.TeleportTo(playertor, 1.5f, false); player.Notice("You have Teleported to " + playertor.Name + ""); player.InventoryNotice("Checkpoint Saved!"); playertor.Notice("Admin " + player.Name + " Teleported to You!"); string logtext = player.Name + " Teleported To " + playertor.Name + " !LOC: " + playertor.X + " " + playertor.Y + " " + playertor.Z + " "; Log(logtext, "Teleports"); } else { player.MessageFrom(Name, "[color #42b3f5]You are [color #f55142]not [color #42b3f5]OnDuty!!!"); } } } if (cmd == "mtpback") { if (DataStore.GetInstance().ContainsKey("ModeratorLastLoc", player.UID) && !DataStore.GetInstance().ContainsKey("HGIG", player.UID)) { var location = StringToVector3(DataStore.GetInstance().Get("ModeratorLastLoc", player.UID).ToString()); player.SafeTeleportTo(location, false); DataStore.GetInstance().Remove("ModeratorLastLoc", player.UID); player.Notice("You Teleported Back to your Checkpoint!"); string logtext = "Admin " + player.Name + " Teleported to his Checkpoint!"; Log(logtext, "Teleports"); } else { player.Notice("You Don't have any save Checkpoint or You Are in HungerGame!"); } } if (cmd == "ann") { if (args.Length == 0) { player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /ann TEXT"); } else { Server.GetServer().BroadcastNotice(string.Join(" ", args)); string logtext = player.Name + " /ann ==> : " + string.Join(" ", args); Log(logtext, "Announce"); } } if (cmd == "wipeshelt") { int c = 0; foreach (var x in World.GetWorld().Entities) { if (x.Name.ToLower().Contains("shelter")) { x.Destroy(); c++; } } Server.GetServer().BroadcastFrom("AntiLag", "[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + " [color #42b3f5]Deleted [color red] " + c + " [color #42b3f5]Shelters"); string logtext = player.Name + " Deleted " + c + " Shelters"; Log(logtext, "Shelter"); } if (cmd == "wipebar") { int c = 0; foreach (var x in World.GetWorld().Entities) { if (x.Name.ToLower().Contains("barricade")) { x.Destroy(); c++; } } Server.GetServer().BroadcastFrom("AntiLag", "[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + " [color #42b3f5]Deleted [color red] " + c + " [color #42b3f5]Barricades"); string logtext = player.Name + " Deleted " + c + " Barricades"; Log(logtext, "Barricade"); } } }
private void OnEntityDeployed(Fougerite.Player oldplayer, Entity entity, Fougerite.Player player) { var internalerror = false; if (CanBypass(player)) { return; } var thread = new Thread(() => { try { if (entity.Name.Contains("Pillar")) { var height = entity.Name.Contains("WoodPillar") ? _settings["Maximum Wood Height"] : _settings["Maximum Metal Height"]; foreach (var ent in entity.GetLinkedStructs()) { if (!ent.Name.Contains("Foundation")) { continue; } if (((entity.Y - ent.Y) / 4) > height) { if (_refund) { player.Inventory.AddItem(entity.Name, 1); player.InventoryNotice("1 x " + entity.Name); } if (!entity.IsDestroyed) { entity.Destroy(); } player.Notice("You have reached the maximum build height!"); } break; } } else if (entity.Name.Contains("Foundation")) { var foundations = entity.Name.Contains("WoodFoundation") ? _settings["Maximum Wood Foundations"] : _settings["Maximum Metal Foundations"]; var count = 0f; foreach (var ent in entity.GetLinkedStructs()) { if (!ent.Name.Contains("Foundation")) { continue; } count += 1f; } if (count >= foundations) { if (_refund) { player.Inventory.AddItem(entity.Name); player.InventoryNotice("1 x " + entity.Name); } if (!entity.IsDestroyed) { entity.Destroy(); } player.Notice("You have reached the maximum foundations!"); } } } catch (Exception e) { internalerror = true; if (!File.Exists(Path.Combine(ModuleFolder, "ErrorLog.ini"))) { File.Create(Path.Combine(ModuleFolder, "ErrorLog.ini")).Dispose(); _errorLog = new IniParser(Path.Combine(ModuleFolder, "ErrorLog.ini")); _errorLog.Save(); } _errorLog = new IniParser(Path.Combine(ModuleFolder, "ErrorLog.ini")); _errorLog.AddSetting(DateTime.Now.ToString("dd_MM_yyyy"), DateTime.Now.ToString("h:mm:ss"), Author + ":" + Version + " | Message: " + e.Message + " StackTrace: " + e.StackTrace); _errorLog.Save(); } }) { IsBackground = true }; thread.Start(); if (internalerror) { if (player.Admin || player.Moderator) { player.MessageFrom("BuildingRestriction", "Error in plugin, Check ErrorLog.ini for details on this error"); } Logger.LogError("[BuildingRestriction] Error in plugin, See ErrorLog.ini for details!"); } }
static void OnPlayerGathering(Fougerite.Player player, GatherEvent ge) { string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); if (!UserIsLogged(player)) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f); ge.Quantity = 0; return; } User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); ResourceTarget resource = ge.ResourceTarget; int quantity = ge.Quantity; if (resource != null) { if (resource.type == ResourceTarget.ResourceTargetType.WoodPile) { if (player.Inventory.FreeSlots > 0) { int clanCommision = 0; if (user.ClanID != -1) { clanCommision = (((quantity * user.LumberjackLevel - 1) / 2) * 10) / 100; user.Clan.Mats += clanCommision; } quantity = ((quantity * user.LumberjackLevel - 1) / 2) - clanCommision; player.Inventory.AddItem(ge.Item, quantity); player.InventoryNotice($"{quantity} x {ge.Item}"); user.AddWoodExp(quantity); } else { player.SendClientMessage($"[color red]<!>[/color] No tienes espacio en el inventario para recibir [color orange]{ge.Item}[/color]"); } } else if (resource.type == ResourceTarget.ResourceTargetType.Rock1 || resource.type == ResourceTarget.ResourceTargetType.Rock2 || resource.type == ResourceTarget.ResourceTargetType.Rock3) { if (player.Inventory.FreeSlots > 0) { int clanCommision = 0; quantity = (quantity * user.MinerLevel - 1) / 2; if (user.ClanID != -1) { clanCommision = (quantity * 10) / 100; user.Clan.Mats += clanCommision; } quantity -= clanCommision; player.Inventory.AddItem(ge.Item, quantity); player.InventoryNotice($"{quantity} x {ge.Item}"); if (ge.Item == "Metal Ore") { user.AddMetalExp(quantity); } else if (ge.Item == "Sulfur Ore") { user.AddSulfureExp(quantity); } } else { player.SendClientMessage($"[color red]<!>[/color] No tienes espacio en el inventario para recibir [color orange]{ge.Item}[/color]"); } } } }
public void OnCommand(Fougerite.Player player, string cmd, string[] args) { if (cmd == "freeze") { if (!player.Admin) { player.Notice("✘", "You are not allowed to freeze someone"); } else { string s = string.Join(" ", args); Fougerite.Player p = Fougerite.Server.GetServer().FindPlayer(s); if (p == null) { player.MessageFrom("Freezer", green + "Failed to find " + s); } else if (args.Length.Equals(0)) { player.MessageFrom("Freezer", green + "Wrong Syntax use /freeze <name>"); } else { Fougerite.Player pl = Fougerite.Server.GetServer().FindPlayer(string.Join(" ", args)) ?? null; if (!pl.Equals(null)) { var id = pl.SteamID; player.Notice("☢", pl.Name + " Was frozen"); pl.SendCommand("input.bind Left None None"); pl.SendCommand("input.bind Right None None"); pl.SendCommand("input.bind Up None None"); pl.SendCommand("input.bind Down None None"); pl.MessageFrom("Freezer", blue + "You has been frozen"); Frozen.Add(id); if (Announces) { Fougerite.Server.GetServer().Broadcast(pl.Name + blue + " Has been frozen by " + green + player.Name); } } } } } else if (cmd == "unfreeze") { if (!player.Admin) { player.Notice("✘", "You are not allowed to unfreeze someone"); } else { string s = string.Join(" ", args); Fougerite.Player p = Fougerite.Server.GetServer().FindPlayer(s); if (p == null) { player.MessageFrom("Freezer", green + "Failed to find " + s); } else if (args.Length.Equals(0)) { player.MessageFrom("Freezer", green + "Wrong Syntax use /unfreeze <name>"); } else { Fougerite.Player pl = Fougerite.Server.GetServer().FindPlayer(string.Join(" ", args)) ?? null; if (!pl.Equals(null)) { var id = pl.SteamID; player.Notice("☢", pl.Name + " Was unfrozen"); pl.SendCommand("input.bind Left A None"); pl.SendCommand("input.bind Right D None"); pl.SendCommand("input.bind Up W None"); pl.SendCommand("input.bind Down S None"); pl.MessageFrom("Freezer", blue + "You has been unfrozen"); pl.InventoryNotice("You have been paralyzed"); Frozen.Remove(id); if (Announces) { Fougerite.Server.GetServer().Broadcast(pl.Name + blue + " Has been unfrozen by " + green + player.Name); } } } } } }