Ejemplo n.º 1
0
        public void OnRegionEnter(RegionHooks.RegionEnteredEventArgs args)
        {
            RegionBuff rb = Array.Find(config.regionbuffs, p => p.regionName == args.Region.Name && p.buffs.Count > 0);

            if (rb == null)
            {
                return;
            }

            if (hasAnnounced[args.Player.Index].Contains(args.Region.Name))
            {
                return;
            }

            args.Player.SendSuccessMessage("You have entered a region with the following buffs enabled: {0}", string.Join(", ", rb.buffs.Keys.Select(p => Main.buffName[p])));
            hasAnnounced[args.Player.Index].Add(args.Region.Name);

            //KeyValuePair<string, List<int>> regionkvp;

            //regionkvp = new KeyValuePair<string, List<int>>("null", new List<int>() { 0 });

            //foreach (RegionBuff rb in config.regionbuffs)
            //{
            //    if (rb.regionName == args.Region.Name && rb.buffIDs.Count > 0)
            //    {
            //        regionkvp = kvp;
            //    }
            //}

            //if (regionkvp.Key != "null" && !hasAnnounced[args.Player.Index].Contains(args.Region.Name))
            //{
            //    args.Player.SendSuccessMessage("You have entered a region with the following buffs enabled: {0}", string.Join(", ", regionkvp.Value.Select(p => Main.buffName[p])));
            //    hasAnnounced[args.Player.Index].Add(args.Region.Name);
            //}
        }
Ejemplo n.º 2
0
        private async void OnRegionEntered(RegionHooks.RegionEnteredEventArgs e)
        {
            var city = await Cities.FindByRegionAsync(e.Region.Name);

            if (city != null)
            {
                var first = city.Discovered.Count == 0;
                if (!e.Player.HasPermission("citiez.all") && !city.Discovered.Contains(e.Player.Account.ID) &&
                    await Cities.DiscoverAsync(city.Name, e.Player))
                {
                    if (first && await Cities.AddDiscoveryAsync(city.Name, e.Player))
                    {
                        e.Player.SendInfoMessage(string.Format(Config.FirstDiscoveredCity, city.Name));
                    }
                    e.Player.SendInfoMessage(string.Format(Config.DiscoveredCity, city.Name));
                }

                var discovery = await Cities.GetDiscoveryAsync(city.Name);

                if (discovery == null)
                {
                    return;
                }
                e.Player.SendInfoMessage(string.Format(Config.WelcomeMessage, city.Name, discovery.User.Name));
            }
        }
Ejemplo n.º 3
0
        private void OnRegionEntered(RegionHooks.RegionEnteredEventArgs e)
        {
            var player     = e.Player;
            var playerInfo = player.GetOrCreatePlayerInfo();
            var region     = _manager.Get(e.Region.Name);

            if (region == null)
            {
                return;
            }

            if (!player.TPlayer.hostile && region.HasAction(RegionAction.ForcePvp))
            {
                player.TPlayer.hostile = true;
                NetMessage.SendData((int)PacketTypes.TogglePvp, -1, -1, NetworkText.Empty, player.Index);
                player.SendInfoMessage("You have entered a PvP area, your PvP is now forced.");
            }
            if (player.TPlayer.hostile && region.HasAction(RegionAction.ForcePvpOff))
            {
                player.TPlayer.hostile = false;
                NetMessage.SendData((int)PacketTypes.TogglePvp, -1, -1, NetworkText.Empty, player.Index);
                player.SendInfoMessage("You have entered a PvP free area, your PvP is now forced off.");
            }
            if (region.HasAction(RegionAction.TempGroup) && region.TempGroup != null)
            {
                playerInfo.PreviousGroup = player.Group;
                player.Group             = region.TempGroup;
                player.SendInfoMessage(
                    $"Your group has been changed to '{TShock.Utils.ColorTag(region.TempGroup.Name, new Color(region.TempGroup.R, region.TempGroup.G, region.TempGroup.B))}' due to region setup.");
            }
        }
 void OnRegionEnter(RegionHooks.RegionEnteredEventArgs e)
 {
     if (e.Region.Name.Contains(regionName))                                               // сисянчик попал в сеть склада
     {
         NetMessage.SendData(14, -1, e.Player.Index, null, e.Player.Index, false.ToInt()); // сисянчика закутали в сеть склада шобы невидно его было
     }
 }
Ejemplo n.º 5
0
        public void OnRegionEnter(RegionHooks.RegionEnteredEventArgs args)
        {
            RegionBuff rb = Array.Find(config.regionbuffs, p => p.regionName == args.Region.Name && p.buffs.Count > 0);

            if (rb == null)
            {
                return;
            }

            if (hasAnnounced[args.Player.Index].Contains(args.Region.Name))
            {
                return;
            }

            args.Player.SendSuccessMessage("You have entered a region with the following buffs enabled: {0}", string.Join(", ", rb.buffs.Keys.Select(p => Main.buffName[p])));
            hasAnnounced[args.Player.Index].Add(args.Region.Name);
        }
Ejemplo n.º 6
0
        public void OnRegionEnter(RegionHooks.RegionEnteredEventArgs args)
        {
            var Start       = DateTime.Now;
            var PlayerGroup = args.Player.Group.Name;

            lock (Database.Broadcasts)
                foreach (Broadcast broadcast in Database.Broadcasts)
                {
                    if (Timeout(Start))
                    {
                        return;
                    }
                    if (broadcast == null || !broadcast.Enabled || !broadcast.Groups.Contains(PlayerGroup))
                    {
                        continue;
                    }

                    List <string> msgs = broadcast.Messages;

                    for (int i = 0; i < msgs.Count; i++)
                    {
                        msgs[i] = msgs[i].Replace("{player}", args.Player.Name);
                        msgs[i] = msgs[i].Replace("{region}", args.Player.CurrentRegion.Name);
                    }

                    foreach (string reg in broadcast.TriggerRegions)
                    {
                        if (args.Player.CurrentRegion.Name == reg)
                        {
                            if (broadcast.RegionTriggerTo == "all")
                            {
                                BroadcastToAll(msgs, broadcast.Color);
                            }
                            else if (broadcast.RegionTriggerTo == "region")
                            {
                                BroadcastToRegion(reg, msgs, broadcast.Color);
                            }
                            else if (broadcast.RegionTriggerTo == "self")
                            {
                                BroadcastToPlayer(args.Player.Index, msgs, broadcast.Color);
                            }
                        }
                    }
                }
        }
Ejemplo n.º 7
0
        public void OnRegionEnter(RegionHooks.RegionEnteredEventArgs args)
        {
            RegionBuff rb = config.regionbuffs.FirstOrDefault(p => p.regionName == args.Region.Name && p.buffs.Count > 0);

            if (rb == null)
            {
                return;
            }

            //Probably occurs when this is thrown before Greet (ie when spawning)
            if (!hasAnnounced.ContainsKey(args.Player.Index))
            {
                return;
            }

            if (hasAnnounced[args.Player.Index].Contains(args.Region.Name))
            {
                return;
            }

            args.Player.SendSuccessMessage("You have entered a region with the following buffs enabled: {0}", string.Join(", ", rb.buffs.Keys.Select(p => TShock.Utils.GetBuffName(p))));
            hasAnnounced[args.Player.Index].Add(args.Region.Name);
        }
Ejemplo n.º 8
0
        private void OnRegionEntered(RegionHooks.RegionEnteredEventArgs args)
        {
            var rt = RtRegions.GetRtRegionByRegionId(args.Region.ID);

            if (rt == null)
            {
                return;
            }
            var dt = args.Player.GetData <RtPlayer>(Rtdataname);

            if (dt == null)
            {
                return;
            }

            if (rt.HasEvent(Events.EnterMsg))
            {
                if (string.IsNullOrWhiteSpace(rt.EnterMsg))
                {
                    args.Player.SendInfoMessage("You have entered region {0}", args.Region.Name);
                }
                else
                {
                    args.Player.SendMessage(rt.EnterMsg, Color.White);
                }
            }

            if (rt.HasEvent(Events.Message) && !string.IsNullOrWhiteSpace(rt.Message))
            {
                args.Player.SendInfoMessage(rt.Message, args.Region.Name);
            }

            if (rt.HasEvent(Events.TempGroup) && rt.TempGroup != null && !args.Player.HasPermission("regiontrigger.bypass.tempgroup"))
            {
                if (rt.TempGroup == null)
                {
                    TShock.Log.ConsoleError("TempGroup in region '{0}' is not valid!", args.Region.Name);
                }
                else
                {
                    args.Player.tempGroup = rt.TempGroup;
                    args.Player.SendInfoMessage("Your group has been changed to {0} in this region.", rt.TempGroup.Name);
                }
            }

            if (rt.HasEvent(Events.Kill) && !args.Player.HasPermission("regiontrigger.bypass.kill"))
            {
                args.Player.DamagePlayer(9999);
                args.Player.SendInfoMessage("You were killed!");
            }

            if (rt.HasEvent(Events.Godmode))
            {
                args.Player.GodMode = true;
                args.Player.SendInfoMessage("You are now in godmode!");
            }

            if (rt.HasEvent(Events.Pvp) && !args.Player.HasPermission("regiontrigger.bypass.pvp"))
            {
                dt.Pvp = true;
                if (!args.Player.TPlayer.hostile)
                {
                    args.Player.TPlayer.hostile = true;
                    args.Player.SendData(PacketTypes.TogglePvp, "", args.Player.Index);
                    TSPlayer.All.SendData(PacketTypes.TogglePvp, "", args.Player.Index);
                    args.Player.SendInfoMessage("Your PvP status is forced enabled in this region!");
                }
            }

            if (rt.HasEvent(Events.NoPvp) && !args.Player.HasPermission("regiontrigger.bypass.nopvp"))
            {
                dt.Pvp   = false;
                dt.NoPvp = true;
                if (args.Player.TPlayer.hostile)
                {
                    args.Player.TPlayer.hostile = false;
                    args.Player.SendData(PacketTypes.TogglePvp, "", args.Player.Index);
                    TSPlayer.All.SendData(PacketTypes.TogglePvp, "", args.Player.Index);
                    args.Player.SendInfoMessage("You can't enable PvP in this region!");
                }
            }

            if (rt.HasEvent(Events.Private) && !args.Player.HasPermission("regiontrigger.bypass.private"))
            {
                args.Player.Spawn();
                args.Player.SendErrorMessage("You don't have permission to enter that region.");
            }
        }