Example #1
0
        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;
                    }
                }
            }
        }
Example #2
0
 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));
     }
 }
Example #3
0
 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!");
         }
     }
 }
Example #4
0
        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!");
                    }
                }
            }
        }
Example #5
0
        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");
                }
            }
        }
Example #6
0
        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!");
            }
        }
Example #7
0
        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]");
                    }
                }
            }
        }
Example #8
0
 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);
                     }
                 }
             }
         }
     }
 }