示例#1
0
 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;
         }
     }
 }
示例#2
0
        void Notice_Test()
        {
            Log("Notice_Test: Test 1");
            TesterPlayer.Notice("");

            Log("Notice_Test: Test 2");
            TesterPlayer.Notice(null);
        }
示例#3
0
 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;
         }
     }
 }
示例#4
0
        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!");
            }
        }
示例#6
0
 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();
         }
     }
 }
示例#7
0
 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!");
            }
        }
示例#9
0
 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.");
                         }
                     }
                 }
             }
         }
     }
 }
示例#10
0
 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);
     }
 }
示例#11
0
        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;
                        }
                    }
                }
            }
        }
示例#12
0
文件: AdvGod.cs 项目: samvds/CSharp
 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);
            }
        }
示例#14
0
 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;
         }
     }
 }
示例#15
0
        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;
            }
        }
示例#16
0
 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;
         }
     }
 }
示例#17
0
        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>");
            }
        }
示例#18
0
 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;
         }
     }
 }
示例#19
0
        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.");
                }
            }
        }
示例#20
0
 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");
         }
     }
 }
示例#21
0
文件: AdvGod.cs 项目: samvds/CSharp
 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");
     }
 }
示例#22
0
 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!");
             }
         }
     }
 }
示例#23
0
        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);
        }
示例#24
0
文件: AdvGod.cs 项目: samvds/CSharp
 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();
                 }
             }
         }
     }
 }
示例#25
0
        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;
                            }
                        }
                    }
                }
            }
        }
示例#26
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");
                }
            }
        }
        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);
                }
            }
        }
示例#28
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!");
            }
        }
示例#29
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]");
                    }
                }
            }
        }
示例#30
0
        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;
                        }
                    }
                }
            }
        }