private void OnEntityHurt(Fougerite.Events.HurtEvent he) { if (he.AttackerIsPlayer && !he.IsDecay) { Fougerite.Player attacker = (Fougerite.Player)he.Attacker; if (DataStore.GetInstance().ContainsKey("OwnerSave", attacker.SteamID)) { if (he.WeaponName == "Shotgun") { attacker.MessageFrom(Name, "You Can't use Shotgun in this mode!"); return; } attacker.Notice("Entity Loc + Owner Saved!"); string logtext = " " + he.Entity.Name + " Owner: " + he.Entity.OwnerName + " (" + he.Entity.OwnerID + ") | X: " + he.Entity.X + " Y: " + he.Entity.Y + " Z: " + he.Entity.Z + " Saved by " + attacker.Name + ""; Log(logtext, "SavedOwners"); return; } if (DataStore.GetInstance().ContainsKey("OwnerMode", attacker.SteamID)) { if (he.WeaponName == "Shotgun") { attacker.MessageFrom(Name, "You Can't use Shotgun in this mode!"); return; } attacker.Notice(he.Entity.Name + "Is Owned by " + he.Entity.OwnerName); attacker.MessageFrom(Name, "[color #42f5b3]Owner: [color #f5e042]" + he.Entity.OwnerName + " [color #42f5b3]" + he.Entity.OwnerID); return; } } }
void Notice_Test() { Log("Notice_Test: Test 1"); TesterPlayer.Notice(""); Log("Notice_Test: Test 2"); TesterPlayer.Notice(null); }
static void OnPlayerHurt(HurtEvent he) { if (he.AttackerIsPlayer && he.Attacker != null) { Fougerite.Player player = (Fougerite.Player)he.Attacker; User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); if (!UserIsLogged(player)) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f); he.DamageAmount = 0; return; } if (he.VictimIsPlayer && he.Victim != null && he.Victim != he.Attacker) { Fougerite.Player victim = (Fougerite.Player)he.Victim; User victimPlayer = Data.Globals.usersOnline.Find(x => x.Name == victim.Name); if (!UserIsLogged(victim)) { char ch = '☢'; player.Notice(ch.ToString(), $"Este usuario no esta logueado, no puedes hacerle daño", 4f); he.DamageAmount = 0; return; } if (user.ClanID == victimPlayer.ClanID && user.ClanID != -1) { char ch = '☢'; player.Notice(ch.ToString(), $"Este usuario es de tu Clan, no puedes hacerle daño", 4f); he.DamageAmount = 0; return; } FriendsCommand command = (FriendsCommand)ChatCommand.GetCommand("amigos"); FriendList list = (FriendList)command.GetFriendsLists()[player.UID]; if (list == null) { list = new FriendList(); } if (list.isFriendWith(victim.UID)) { char ch = '☢'; player.Notice(ch.ToString(), $"No puedes hacer daño a tus amigos", 4f); he.DamageAmount = 0; return; } } } if (he.AttackerIsNPC && he.Attacker != null && he.VictimIsPlayer && he.Victim != null) { Fougerite.Player player = (Fougerite.Player)he.Victim; User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); if (!UserIsLogged(player)) { he.DamageAmount = 0; return; } } }
private void OnCommand(Fougerite.Player player, string cmd, string[] args) { if (cmd == "airdrop") { if (player.Admin || (player.Moderator && Mods) || WLS.Contains(player.SteamID)) { if (args.Length == 0) { player.Message("Usage: /airdrop here/random"); return; } object ttime = DataStore.GetInstance().Get("AirdropCD", "CD"); if (ttime == null) { ttime = 0; DataStore.GetInstance().Add("AirdropCD", "CD", 0); } double time = (double)ttime; double systick = TimeSpan.FromTicks(DateTime.Now.Ticks).TotalSeconds; double calc = systick - time; if (calc < 0) { time = 0; DataStore.GetInstance().Add("AirdropCD", "CD", 0); } if (calc >= Cooldown || time == 0 || Cooldown == 0) { if (args[0] == "here") { if (player.Admin || (player.Moderator && ModCalltoPos) || WLS.Contains(player.SteamID)) { World.GetWorld().AirdropAtOriginal(player.X, 700, player.Z); player.Notice("\u2708", "Airdrop has been spawned!", 3); DataStore.GetInstance().Add("AirdropCD", "CD", TimeSpan.FromTicks(DateTime.Now.Ticks).TotalSeconds); } } else if (args[0] == "random") { World.GetWorld().Airdrop(); player.Notice("\u2708", "Airdrop has been spawned!", 3); DataStore.GetInstance().Add("AirdropCD", "CD", TimeSpan.FromTicks(DateTime.Now.Ticks).TotalSeconds); } } else { double done = Math.Round(calc); double done2 = Math.Round((double)Cooldown, 2); player.Notice("\u2708", "Cooldown: " + done + "/" + done2 + " seconds."); } } } }
public virtual void UseItem(IInventoryItem inventoryItem) { var player = new Fougerite.Player(inventoryItem.controller.playerClient); if (player.Inventory.FreeSlots >= 7) { player.Inventory.AddItem("M4", 1); player.Inventory.AddItem("556 Ammo", 100); player.Inventory.AddItem("Leather Vest", 1); player.Inventory.AddItem("Leather Pants", 1); player.Inventory.AddItem("Leather Helmet", 1); player.Inventory.AddItem("Leather Boots", 1); player.Inventory.AddItem("Small Medkit", 2); int num = 1; if (inventoryItem.Consume(ref num)) { inventoryItem.inventory.RemoveItem(inventoryItem.slot); } else { inventoryItem.inventory.MarkSlotDirty(inventoryItem.slot); } } else { player.Notice("You don't have enough space in your inventory!"); } }
static void OnPlayerSpawned(Fougerite.Player player, SpawnEvent se) { if (player.Name == "" || player.Name == " ") { player.Disconnect(); } if (!UserIsLogged(player)) { //player.Inventory.ClearAll(); FreezePlayer(player); if (LanguageComponent.LanguageComponent.GetPlayerLang(player) == null) { AskLanguageTimer(player); } else { ShowLoginMessages(player); } } else { User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); if (user.SteamID != player.UID) { player.Notice("Ya estás conectado al servidor / Você já está conectado ao servidor."); player.Disconnect(); } } }
public void OnCommand(Fougerite.Player pl, string cmd, string[] args) { if (!pl.Admin) { pl.Notice("✖", "Usted no tiene acceso a este comando", 5f); return; } if (cmd == "radzone") { if (args.Length == 0) { pl.MessageFrom(Name, green + "---------- RadZones" + white + " by Pompeyo " + green + "----------"); pl.MessageFrom(Name, white + "/radzone set [zonename] [radius] - Create zone"); pl.MessageFrom(Name, white + "/radzone edit [zonename] [radius] - Edit radius of zone"); pl.MessageFrom(Name, white + "/radzone list - List all rad zones"); pl.MessageFrom(Name, white + "/radzone delete [zonename] - Delete rad zone"); pl.MessageFrom(Name, green + "--- --- --- --- --- --- --- --- --- --- --- --- ---"); } else { if (args[0] == "set") { if (args.Length >= 2) { CreateZone(pl, args[1], Convert.ToInt32(args[2])); } else { pl.MessageFrom("RadZones", orange + "Wrong usage. See /zone for help."); } } else if (args[0] == "edit") { if (args.Length >= 2) { EditZone(pl, args[1], Convert.ToInt32(args[2])); } else { pl.MessageFrom("RadZones", orange + "Wrong usage. See /radzone for help."); } } else if (args[0] == "list") { ListZones(pl); RadTimer(TimeRad * 1000, null).Start(); } else if (args[0] == "delete") { if (args.Length >= 2) { DeleteZone(pl, args[1]); } else { pl.MessageFrom("RadZones", orange + "Wrong usage. Write /radzone delete NAME"); } } } } }
public virtual void UseItem(IInventoryItem inventoryItem) { var player = new Fougerite.Player(inventoryItem.controller.playerClient); if (player.Inventory.FreeSlots >= 8) { player.Inventory.AddItem("Metal Ceiling", 20); player.Inventory.AddItem("Metal Doorway", 20); player.Inventory.AddItem("Metal Foundation", 20); player.Inventory.AddItem("Metal Pillar", 40); player.Inventory.AddItem("Metal Ramp", 10); player.Inventory.AddItem("Metal Stairs", 10); player.Inventory.AddItem("Metal Wall", 40); player.Inventory.AddItem("Metal Window", 10); int num = 1; if (inventoryItem.Consume(ref num)) { inventoryItem.inventory.RemoveItem(inventoryItem.slot); } else { inventoryItem.inventory.MarkSlotDirty(inventoryItem.slot); } } else { player.Notice("You don't have enough space in your inventory!"); } }
public static void OnEntityHurt(HurtEvent he) { if (he.AttackerIsPlayer && he.VictimIsEntity) { if (he.Attacker != null && he.Entity != null) { Fougerite.Entity entity = he.Entity; Fougerite.Player player = (Fougerite.Player)he.Attacker; Data.Entities.User user = Data.Globals.GetInternalUser(player); if (user.SpectingOwner) { string OwnerName = Data.Globals.GetUserNameBySteamid(entity.OwnerID); player.SendClientMessage($"Dueño: {entity.OwnerName} - {GetHouseOwner(entity.Location).ToString()}"); SetMaterialOfHouse(entity.Location); user.SpectingOwner = false; } if (entity.Name.ToLower().Contains("box") || entity.Name.ToLower().Contains("stash")) { if (entity.IsStorage()) { if (entity.hasInventory) { if (entity.Inventory.FreeSlots < entity.Inventory.Items.Length) { he.DamageAmount = 0f; player.Notice("No puedes destruir cofres con cosas adentro."); } } } } } } }
static void OnNPCKilled(DeathEvent de) { if (de.AttackerIsPlayer && de.Attacker != null) { Fougerite.Player player = (Fougerite.Player)de.Attacker; User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); if (!UserIsLogged(player)) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f); de.DamageAmount = 0; return; } System.Random random = new System.Random(); int randomNumber = random.Next(0, 30); user.Cash += randomNumber * user.HunterLevel; int comision = ((randomNumber * user.HunterLevel) * 10) / 100; if (user.ClanID != -1) { user.Cash -= comision; user.Clan.Cash += comision; } player.SendClientMessage($"[color yellow]<!>[/color] Recibiste ${(randomNumber * user.HunterLevel)-comision} por tu habilidad como Cazador."); user.AddFarmExp(1); } }
private void OnCommand(Fougerite.Player player, string cmd, string[] args) { if (cmd == "ebsban") { if (player.Admin || player.Moderator) { if (args.Length == 4) { Logger.Log("1"); Fougerite.Player target = Server.GetServer().FindPlayer(args[0]); Logger.Log("2"); if (target == null) { player.Notice("Couldn't find the target user"); return; } Logger.Log("3"); int time = int.Parse(args[1]); Logger.Log("4"); string letter = args[2].ToString(); Logger.Log("5"); string reason = args[3].ToString(); Logger.Log("6"); switch (letter) { case "m": BanForMinutes(target, player, time, reason); break; case "h": BanForHours(target, player, time, reason); break; case "d": BanForDays(target, player, time, reason); break; default: player.Notice("Syntax: /ebsban playername, time, m/h/d, reason"); break; } } } } }
public void OnPlayerHurt(HurtEvent he) { if (he.AttackerIsPlayer && he.VictimIsPlayer) { Fougerite.Player attacker = (Fougerite.Player)he.Attacker; Fougerite.Player victim = (Fougerite.Player)he.Victim; if (DataStore.GetInstance().ContainsKey("hasadvgod", victim.SteamID) || DataStore.GetInstance().ContainsKey("AdvgodOn", victim.SteamID)) { attacker.Notice("✘", victim.Name + " is currently in godmode this means you cant kill him"); he.DamageAmount = 0f; } else if (DataStore.GetInstance().ContainsKey("hasadvgod", attacker.SteamID) || DataStore.GetInstance().ContainsKey("AdvgodOn", attacker.SteamID)) { attacker.Notice("✘", "You cannot hurt people while in godmode"); he.DamageAmount = 0f; } } }
private void OnCommand(Fougerite.Player player, string cmd, string[] args) { if (cmd == "destroyc") { player.Notice("Look at the object you want to destroy and left click, right click to cancel!"); RPCDictionary[player.SteamID].WorldEditorStartDestroy(); } else if (cmd == "destroycall" && player.Admin) { var ids = new List <uint>(); foreach (var id in SpawnManager.SpawnedObjects.Keys) { ids.Add(id); } foreach (var id in ids) { SpawnManager.RemoveObject(id, true); } } else if (cmd == "destroycinfo" && player.Admin) { var colliders = Physics.OverlapSphere(player.Location, 5); for (var i = 0; i < colliders.Length; i++) { var collider = colliders[i]; var spawnableObjectBehaviour = collider.GetComponent <SpawnManager.SpawnableObjectBehaviour>(); if (spawnableObjectBehaviour != null) { Logger.Log("SpawnableObject[" + spawnableObjectBehaviour.SpawnableObject.ID + "]: Position: " + spawnableObjectBehaviour.SpawnableObject.GetPosition() + " | Distance: " + Vector3.Distance(player.Location, spawnableObjectBehaviour.SpawnableObject.GetPosition()) + " | SteamID: " + spawnableObjectBehaviour.SpawnableObject.SteamID); } } } else if (cmd == "sospawn" && player.Admin) { if (args.Length != 5) { player.MessageFrom("WorldEditor", "/sospawn (BUNDLE) (OBJECTNAME) (POSITION) (ROTATION) (SIZE)"); return; } var bundle = args[0]; var objectName = args[1]; var position = Utils.StringToVector3(args[2]); var rotation = Utils.StringToQuaternion(args[3]); var size = Utils.StringToVector3(args[4]); var spawnableObject = new SpawnManager.SpawnableObject(0, player.SteamID, bundle, objectName, position, rotation, size); SpawnManager.Spawn(spawnableObject); } }
public void PlayerHurt(HurtEvent he) { if (he.AttackerIsPlayer && he.VictimIsPlayer) { Fougerite.Player attacker = (Fougerite.Player)he.Attacker; Fougerite.Player victim = (Fougerite.Player)he.Victim; var id = victim.SteamID; var id1 = attacker.SteamID; if (Frozen.Contains(id1)) { attacker.Notice("✘", "Player " + victim.Name + " Is frozen you cant kill him"); he.DamageAmount = 0f; } else if (Frozen.Contains(id)) { attacker.Notice("✘", "You cant kill while being frozen"); he.DamageAmount = 0f; } } }
static void OnChat(Fougerite.Player player, ref ChatString text) { string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); if (!UserIsLogged(player)) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f); return; } }
public void OnEntityDeployed(Fougerite.Player pl, Fougerite.Entity e, Fougerite.Player actualplacer) { if (e.Name.ToLower().Contains("Wood shelter")) { e.Destroy(); { pl.MessageFrom("ShelterBlocker", "You cannot place shelters on this server"); pl.Notice("✘", "Shelters are forbidden"); return; } } }
public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments) { Fougerite.Player sender = Fougerite.Server.Cache[Arguments.argUser.userID]; string lang = LanguageComponent.GetPlayerLangOrDefault(sender); if (!RustPP.Data.Globals.UserIsLogged(sender)) { char ch = '☢'; sender.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f); return; } if (ChatArguments.Length >= 1) { if (this.replies.ContainsKey(sender.Name)) { string replyTo = (string)this.replies[sender.Name]; Fougerite.Player recipient = Fougerite.Server.GetServer().FindPlayer(replyTo); if (recipient == null) { sender.SendClientMessage($"[color red]<Error>[/color] No se encontró al usuario {replyTo}"); this.replies.Remove(sender.Name); return; } string message = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' }).Replace('"', 'ˮ'); if (message == string.Empty) { sender.SendClientMessage("[color red]<Sintaxis>[/color] /r <Mensaje>"); return; } recipient.SendClientMessage($"[color #e8c92d]((MP de {sender.Name}: {message}))"); sender.SendClientMessage($"[color #e8c92d]((MP para {recipient.Name}: {message}))"); if (this.replies.ContainsKey(replyTo)) { this.replies[replyTo] = sender.Name; } else { this.replies.Add(replyTo, sender.Name); } } else { sender.SendClientMessage("[color red]<Error>[/color] No hay nadie a quien responder."); } } else { sender.SendClientMessage("[color red]<Sintaxis>[/color] /r <Mensaje>"); } }
static void OnEntityHurt(HurtEvent he) { if (he.AttackerIsPlayer && he.Attacker != null) { Fougerite.Player player = (Fougerite.Player)he.Attacker; User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); if (!UserIsLogged(player)) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f); he.DamageAmount = 0; return; } if (he.VictimIsPlayer && he.Victim != null) { Fougerite.Player victim = (Fougerite.Player)he.Victim; User victimPlayer = Data.Globals.usersOnline.Find(x => x.Name == victim.Name); if (!UserIsLogged(victim)) { char ch = '☢'; player.Notice(ch.ToString(), $"Este usuario no esta logueado, no puedes hacerle daño", 4f); he.DamageAmount = 0; return; } } } if (he.AttackerIsNPC && he.Attacker != null && he.VictimIsPlayer && he.Victim != null) { Fougerite.Player player = (Fougerite.Player)he.Attacker; User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); if (!UserIsLogged(player)) { he.DamageAmount = 0; return; } } }
public void DoorBehaviour_Use(uint id) { if (SpawnManager.SpawnedObjects.TryGetValue(id, out var spawnableObjectBehaviour)) { if (Vector3.Distance(FougeritePlayer.Location, spawnableObjectBehaviour.transform.position) <= 4) { var door = DoorSettings.GetDoorFromID(id); if (!FougeritePlayer.Inventory.HasItem(door.Item)) { FougeritePlayer.Notice("You need to have " + door.Item + " in your inventory!"); return; } bool open; if (_doorOpenDictionary.ContainsKey(id)) { open = !_doorOpenDictionary[id]; } else { open = true; } spawnableObjectBehaviour.transform.FindChild("Lock").gameObject.SetActive(!open); _doorOpenDictionary[id] = open; foreach (var rpcDictionaryValue in WorldEditorServer.RPCDictionary.Values) { rpcDictionaryValue.DoorBehaviour_SetOpen(id, open); } if (!_doorBehaviour_closing) { StartCoroutine(DoorBehaviour_AutoCloseCoroutine(id)); } // Debug.Log("Set open to " + open); } else { DoorBehaviour_SetNearDoor(id, false); // Debug.Log("Set NearDoor to false."); } } }
public void OnCommand(Fougerite.Player player, string cmd, string[] args) { if (cmd == "stp") { if (player.Admin) { var id = player.SteamID; if (!ShootTP.Contains(id)) { ShootTP.Add(id); player.Notice("Shoot teleport enabled"); } else { ShootTP.Remove(id); player.Notice("Shoot teleport disabled"); } } else { player.Notice("You dont have permissions to use this command"); } } }
public void EntHurt(HurtEvent he) { Fougerite.Player attacker = (Fougerite.Player)he.Attacker; if (he.Attacker != null && (!he.IsDecay)) { if (DataStore.GetInstance().ContainsKey("hasadvgod", attacker.SteamID) || (DataStore.GetInstance().ContainsKey("AdvgodOn", attacker.SteamID))) { attacker.Notice("✘", "You cannot damage structures when in godmode"); he.DamageAmount = 0f; } } else { //Logger.LogWarning("Attacker was null while entity hurt or damage was decay"); } }
public void OnPlayerHurt(Fougerite.Events.HurtEvent he) { if (he.Attacker != null && he.Victim != null) { if (he.Attacker is Fougerite.Player && he.Victim is Fougerite.Player) { Fougerite.Player victim = (Fougerite.Player)he.Victim; Fougerite.Player attacker = (Fougerite.Player)he.Attacker; if (DataStore.GetInstance().ContainsKey("AdminDuty", attacker.SteamID) && attacker != victim) { he.DamageAmount = 0f; attacker.MessageFrom(Name, "[color #42b3f5]You [color #45f542]Can't [color #42b3f5]Damage anyone while you are in Admin-Duty!"); attacker.Notice("You Can't Damage anyone in Admin-Duty!"); victim.MessageFrom("AntiAbuse", "[color #42b3f5]Admin [color #45f542]" + attacker.Name + " [color #42b3f5]tried to [color #45f542]Damage [color #42b3f5]You in Admin-Duty!"); } } } }
public static void LoadPlayer(Fougerite.Player player, bool firstLogin) { string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); if (user != null) { if (user.BannedPlayer == 1) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("account_banned", lang), 4f); player.Disconnect(); } if (player.UID != user.SteamID) { Vector3 position = new Vector3(user.XPos, user.YPos, user.ZPos); player.TeleportTo(position); } if (!firstLogin) { //LoadInventory(player); //ShareCommand command = ChatCommand.GetCommand("share") as ShareCommand; //command.AddDoors(user.SteamID, player); } else { player.Inventory.RemoveItem(30); player.Inventory.RemoveItem(31); player.Inventory.RemoveItem(32); player.Inventory.AddItemTo("Stone Hatchet", 30, 1); player.Inventory.AddItemTo("Bandage", 31, 3); player.Inventory.AddItemTo("Cooked Chicken Breast", 32, 3); } } else { player.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_0102", lang)); } UnFreezePlayer(player); }
public void Cmd(Fougerite.Player netuser, string cmd, string[] args) { if (cmd == "god") { if (netuser.Admin || Hasflag(netuser, ADVGOD_FLAG)) { netuser.Notice("☤", "AdvGod by ice cold", 15f); netuser.MessageFrom(Name, yellow + "/godon >= Turn god on"); netuser.MessageFrom(Name, yellow + "/godoff >= Turn god off"); netuser.MessageFrom(Name, yellow + "/givegod <Name> >= Gives god to specific player"); netuser.MessageFrom(Name, yellow + "/remgod <Name> >= Remove god from specific player"); netuser.MessageFrom(Name, green + "Check all my public work on " + yellow + " https://github.com/icecolderino"); } else { netuser.MessageFrom(Name, red + "You dont have permissions to use /god"); } } else if (cmd == "godon") { if (netuser.Admin || Hasflag(netuser, ADVGOD_FLAG)) { if (!DataStore.GetInstance().ContainsKey("AdvgodOn", netuser.SteamID)) { var id = netuser.SteamID; netuser.MessageFrom(Name, green + "Godmode enabled"); Server.GetServer().BroadcastFrom(Name, green + netuser.Name + yellow + " Is now now in godmode"); netuser.Notice("☤", "Godmode enabled"); DataStore.GetInstance().Add("AdvgodOn", id, "on"); string line = DateTime.Now + " " + netuser.Name + ": Has used the /godon command"; file = new System.IO.StreamWriter(ppath, true); file.WriteLine(line); file.Close(); } else { netuser.MessageFrom(Name, yellow + "You already have godmode enabled type /godoff to disable it"); } } else { netuser.MessageFrom(Name, red + "You dont have permissions to use /godon"); } } else if (cmd == "godoff") { if (!netuser.Admin || !Hasflag(netuser, ADVGOD_FLAG)) { netuser.MessageFrom(Name, red + "The flag > " + ADVGOD_FLAG + " < is required for this command"); return; } if (DataStore.GetInstance().ContainsKey("AdvgodOn", netuser.SteamID)) { var id = netuser.SteamID; netuser.MessageFrom(Name, "Godmode disabled"); Server.GetServer().BroadcastFrom(Name, green + netuser.Name + yellow + " Has disabled godmode"); netuser.Notice("☤", "Godmode disabled"); DataStore.GetInstance().Remove("AdvgodOn", id); string line = DateTime.Now + " " + netuser.Name + ": Has used the /godon command"; file = new System.IO.StreamWriter(ppath, true); file.WriteLine(line); file.Close(); } } else if (cmd == "givegod") { if (netuser.Admin || Hasflag(netuser, ADVGOD_FLAG)) { string s = string.Join(" ", args); Fougerite.Player p = Fougerite.Server.GetServer().FindPlayer(s); if (p == null) { netuser.MessageFrom(Name, yellow + "Failed to find " + red + s); } else if (args.Length.Equals(0)) { netuser.MessageFrom(Name, yellow + "Wrong Syntax use /givegod <name>"); } else { Fougerite.Player targetuser = Fougerite.Server.GetServer().FindPlayer(string.Join(" ", args)) ?? null; if (!targetuser.Equals(null)) { var nname = netuser.Name; var tname = targetuser.Name; targetuser.MessageFrom(Name, "You have received godmode powers by " + nname); netuser.MessageFrom(Name, "You have given godmode to " + tname); netuser.Notice("☤", "You have given godmode to " + tname); targetuser.Notice("☤", nname + " has given godmoe to you"); DataStore.GetInstance().Add("hasadvgod", targetuser.SteamID, "on"); string line = DateTime.Now + " " + nname + ": Has used the /givegod command"; file = new System.IO.StreamWriter(ppath, true); file.WriteLine(line); file.Close(); } } } } else if (cmd == "remgod") { if (netuser.Admin || Hasflag(netuser, ADVGOD_FLAG)) { string s = string.Join(" ", args); Fougerite.Player p = Fougerite.Server.GetServer().FindPlayer(s); if (p == null) { netuser.MessageFrom(Name, yellow + "Failed to find " + red + s); } else if (args.Length.Equals(0)) { netuser.MessageFrom(Name, yellow + "Wrong Syntax use /remgod <name>"); } else { Fougerite.Player targetuser = Fougerite.Server.GetServer().FindPlayer(string.Join(" ", args)) ?? null; if (!targetuser.Equals(null)) { var nname = netuser.Name; var tname = targetuser.Name; targetuser.MessageFrom(Name, "Your godly powers are removed by " + nname); netuser.MessageFrom(Name, "You have removed godmode from " + tname); netuser.Notice("☤", "You have removed godmode from " + tname); targetuser.Notice("☤", nname + " has removed your godmode"); DataStore.GetInstance().Remove("hasadvgod", targetuser.SteamID); string line = DateTime.Now + " " + nname + ": Has used the /remgod command"; file = new System.IO.StreamWriter(ppath, true); file.WriteLine(line); file.Close(); } } } } }
void EntityDeployed(Fougerite.Player Player, Fougerite.Entity Entity) { if (Config.GetSetting("Settings", "enabled").ToLower() == "true" && Entity != null) { if (Entity.Name == "WoodFoundation" || Entity.Name == "MetalFoundation" || Entity.Name == "WoodRamp" || Entity.Name == "MetalRamp") { var name = Entity.Name; bool GiveBack = Config.GetSetting("Settings", "giveback").ToLower() == "true"; var two = Util.GetUtil().CreateVector(Entity.X, Entity.Y, Entity.Z); foreach (Entity ent in World.GetWorld().Entities) { var one = Util.GetUtil().CreateVector(ent.X, ent.Y, ent.Z); var dist = Util.GetUtil().GetVectorsDistance(one, two); if (ent.Name == "WoodRamp" || ent.Name == "MetalRamp") { if (Entity != ent && Entity.InstanceID != ent.InstanceID && dist == 0) { if (GiveBack && Player != null) { if (name == "WoodRamp") { name = "Wood Ramp"; } else if (name == "MetalRamp") { name = "Metal Ramp"; } Player.Inventory.AddItem(name, 1); } Entity.Destroy(); return; } } else if (ent.Name != "WoodRamp" && ent.Name != "MetalRamp" && ent.Name != "WoodFoundation" && ent.Name != "WoodDoorFrame" && ent.Name != "WoodWall" && ent.Name != "WoodPillar" && ent.Name != "WoodCeiling" && ent.Name != "MetalDoor" && ent.Name != "WoodStairs" && ent.Name != "WoodWindowFrame" && ent.Name != "MetalFoundation" && ent.Name != "MetalDoorFrame" && ent.Name != "MetalWall" && ent.Name != "MetalPillar" && ent.Name != "MetalCeiling" && ent.Name != "MetalStairs" && ent.Name != "MetalWindowFrame" && ent.Name != "Wood_Shelter" && ent.Name != "Barricade_Fence_Deployable" && ent.Name != "Wood Box" && ent.Name != "Metal Bars Window" && ent.Name != "CampFire" && ent.Name != "Wood Spike Wall" && ent.Name != "Large Wood Spike Wall") { if (Entity != ent && Entity.InstanceID != ent.InstanceID && dist <= 2.5) { if (Player != null) { Player.Notice("Ya can't place chest under foundation bitch!"); if (GiveBack) { if (name == "WoodFoundation") { name = "Wood Foundation"; } else if (name == "MetalFoundation") { name = "Metal Foundation"; } Player.Inventory.AddItem(name, 1); } } Entity.Destroy(); return; } } } } } }
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"); } } }
public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments) { Fougerite.Player sender = Fougerite.Server.Cache[Arguments.argUser.userID]; string lang = LanguageComponent.GetPlayerLangOrDefault(sender); if (!RustPP.Data.Globals.UserIsLogged(sender)) { char ch = '☢'; sender.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f); return; } if (ChatArguments.Length < 2) { sender.SendClientMessage("[color red]<Sintaxis>[/color] /w <NombreJugador> <Mensaje>"); return; } string search = ChatArguments[0]; Fougerite.Player recipient = Fougerite.Player.FindByName(search); if (recipient == null) { sender.SendClientMessage($"[color red]<Error>[/color] No se encontró al usuario {search}"); return; } if (!RustPP.Data.Globals.UserIsLogged(recipient)) { sender.SendClientMessage($"[color red]<Error>[/color] {search} no esta logueado."); return; } List <string> wth = ChatArguments.ToList(); wth.Remove(wth[0]); string message; try { message = string.Join(" ", wth.ToArray()).Replace(search, "").Trim(new char[] { ' ', '"' }).Replace('"', 'ˮ'); } catch { sender.SendClientMessage("[color red]<Error>[/color] Algo salio mal, intentalo nuevamente más tarde"); return; } if (message == string.Empty) { sender.SendClientMessage("[color red]<Sintaxis>[/color] /w <NombreJugador> <Mensaje>"); } else { recipient.SendClientMessage($"[color #e8c92d]((MP de {sender.Name}: {message}))"); sender.SendClientMessage($"[color #e8c92d]((MP para {recipient.Name}: {message}))"); Hashtable replies = (ChatCommand.GetCommand("r") as ReplyCommand).GetReplies(); if (replies.ContainsKey(recipient.Name)) { replies[recipient.Name] = sender.Name; } else { replies.Add(recipient.Name, sender.Name); } } }
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]"); } } } }
static void OnPlayerUpdate(Fougerite.Player player) { string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player); if (!UserIsLogged(player)) { char ch = '☢'; player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f); return; } User user = Data.Globals.usersOnline.Find(x => x.Name == player.Name); if (user != null) { EconomyComponent.EconomyComponent.CheckPurchases(user); if (user.TimeToKit >= 1) { user.TimeToKit -= 1; if (user.TimeToKit == 1) { player.SendClientMessage("[color cyan]<!>[/color] Ya puedes utilizar /tp."); } } if (user.TimeToTP >= 1) { user.TimeToTP -= 1; if (user.TimeToTP == 1) { player.SendClientMessage("[color cyan]<!>[/color] Ya puedes utilizar /tp."); } } if (user.TimeToDuda >= 1) { user.TimeToDuda -= 1; if (user.TimeToTP == 1) { player.SendClientMessage("[color cyan]<!>[/color] Ya puedes utilizar /duda."); } } if (user.TimeToChat >= 1) { user.TimeToChat -= 1; } if (user.TimeToPayDay >= 1) { user.TimeToPayDay -= 1; } else { user.TimeToPayDay = 1800; int dinero = 0; System.Random random = new System.Random(); int randomNumber = random.Next(0, 13); player.SendClientMessage($"[color orange]------------[/color] PayDay [color orange]------------"); player.SendClientMessage($"[color orange]- Base :[/color] $ {user.Level * 500} (Nivel {user.Level})"); dinero += user.Level * 500; player.SendClientMessage($"[color orange]- Cazador :[/color] + $ {user.HunterLevel * 150} (Nivel {user.HunterLevel})"); dinero += user.HunterLevel * 150; player.SendClientMessage($"[color orange]- Minero :[/color] + $ {user.MinerLevel * 50} (Nivel {user.MinerLevel})"); dinero += user.MinerLevel * 50; player.SendClientMessage($"[color orange]- Leñador :[/color] + $ {user.LumberjackLevel * 50} (Nivel {user.LumberjackLevel})"); dinero += user.LumberjackLevel * 50; int commision = (dinero * 10) / 100; if (user.ClanID != -1) { dinero -= commision; player.SendClientMessage($"[color orange]- Comisión Clan :[/color] [color #ea6b11]- $ {commision} "); } player.SendClientMessage($"[color orange]- Total :[/color] [color #ea6b11]$ {dinero} "); user.Cash += dinero; player.SendClientMessage($"[color orange]- Balance :[/color] [color #ea6b11]$ {user.Cash} "); string reward = RewardList[randomNumber]; player.SendClientMessage($"[color orange]- Recompensa :[/color] [color #ea6b11]{reward} "); player.SendClientMessage($"[color orange]----------------------------------------------------"); user.GiveExp(1); if (player.Inventory.FreeSlots >= 1) { player.Inventory.AddItem(reward); } else { player.SendClientMessage($"[color red]<PayDay>[/color] Perdiste la recompensa por no tener espacio en el inventario."); } if (user.ClanID != -1) { if (user.Clan != null) { user.Clan.addExp(1); user.Clan.Cash += commision; } } } } }