Ejemplo n.º 1
0
 private static void ProcessPlayerUsingHEROsMod(int playerNumber)
 {
     if (Network.NetworkMode == NetworkMode.Server)
     {
         ModUtils.DebugText("ProcessPlayerUsingHEROsMod: " + playerNumber);
         Network.Players[playerNumber].UsingHEROsMod = true;
         LoginService.SendGroupList(playerNumber);
         LoginService.SendPlayerPermissions(playerNumber);
         SendWaypointListToPlayer(playerNumber);
         SendRegionListToPlayer(playerNumber);
         SendCurrentTogglesToPlayer(playerNumber);
         //CTF.CTFMessages.SendTeamObjectPositionToPlayer(CTF.CaptureTheFlag.RedTeam.Flag, playerNumber);
         //CTF.CTFMessages.SendTeamObjectPositionToPlayer(CTF.CaptureTheFlag.BlueTeam.Flag, playerNumber);
         //CTF.CTFMessages.SendTeamObjectPositionToPlayer(CTF.CaptureTheFlag.RedTeam.FlagPlatform, playerNumber);
         //CTF.CTFMessages.SendTeamObjectPositionToPlayer(CTF.CaptureTheFlag.BlueTeam.FlagPlatform, playerNumber);
         //CTF.CTFMessages.SendTeamObjectPositionToPlayer(CTF.CaptureTheFlag.RedTeam.SpawnPlatform, playerNumber);
         //CTF.CTFMessages.SendTeamObjectPositionToPlayer(CTF.CaptureTheFlag.BlueTeam.SpawnPlatform, playerNumber);
         //CTF.CTFMessages.SendTeamListToPlayer(playerNumber);
         //if (CTF.CaptureTheFlag.InPregameLobby || CTF.CaptureTheFlag.GameInProgress)
         //{
         //	CTF.CTFMessages.SendCTFSettings(playerNumber);
         //}
         //if (CTF.CaptureTheFlag.InPregameLobby)
         //{
         //	CTF.CTFMessages.TellClientLobbyStarted(playerNumber);
         //}
         //else if (CTF.CaptureTheFlag.GameInProgress)
         //{
         //	CTF.CTFMessages.TellClientGameStarted(playerNumber);
         //	CTF.CTFMessages.ChangePlayerTeam(Network.Players[playerNumber], CTF.TeamColor.None);
         //}
         Network.SendTextToPlayer(@"Click the 'Login' button on the HEROsMod hotbar to Login or Create an Account", playerNumber, Color.Red);
     }
 }
Ejemplo n.º 2
0
        public override void Update()
        {
            if (OverrideDrawAndUpdate)
            {
                scrollBar.Update();
            }
            else
            {
                base.Update();
            }
            if (!MouseLeftButton)
            {
                dragging = false;
            }

            float sbHeight = Height / ContentHeight * Height;

            if (sbHeight < 20)
            {
                sbHeight = 20;
            }
            if (sbHeight > Height)
            {
                sbHeight = Height;
            }
            float scrollSpace = Height - sbHeight;

            if (dragging)
            {
                float mouseOffset = (MouseY - DrawPosition.Y + Origin.Y) - dragAnchor.Y;
                float thing       = mouseOffset / scrollSpace;
                ScrollPosition = ContentHeight * thing;
            }
            else if (ScrollAmount != 0 && IsMouseInside())
            {
                ScrollPosition -= ScrollAmount;
                ModUtils.DebugText("Start");
                ModUtils.DebugText("ScrollAmmount!" + ScrollAmount);
                ModUtils.DebugText("PlayerInput.ScrollWheelDeltaForUI!" + PlayerInput.ScrollWheelDeltaForUI);
                ModUtils.DebugText("PlayerInput.ScrollWheelDelta!" + PlayerInput.ScrollWheelDelta);
                PlayerInput.ScrollWheelDelta       = 0;
                PlayerInput.ScrollWheelDeltaForUI *= -1;

                foreach (UIView child in children)
                {
                    if (child.GetType() != typeof(UIScrollBar))
                    {
                        float dest = (ScrollPosition / ContentHeight) * (ContentHeight - Height);
                        child.Offset = new Vector2(child.Offset.X, -dest);
                    }
                }
            }
            float y = ScrollPosition / ContentHeight * scrollSpace;

            this.scrollBar.Height   = sbHeight;
            this.scrollBar.Position = new Vector2(this.Width - scrollBar.Width, y);
        }
Ejemplo n.º 3
0
		public static void SendDataToServer()
		{
			ModUtils.DebugText("SendDataToServer " + memoryStream.ToArray());
			var a = HEROsMod.instance.GetPacket();
			a.Write(memoryStream.ToArray());
			a.Send();
			ResetWriter();
			//NetMessage.SendData(HEROsModNetworkMessageType);
		}
Ejemplo n.º 4
0
        void bKick_onLeftClick(object sender, EventArgs e)
        {
            UIButton button = (UIButton)sender;
            string   tag    = (string)button.Tag;

            ModUtils.DebugText("Kick tag " + tag);
            HEROsModNetwork.GeneralMessages.RequestKickPlayer(tag);
            //ServerTools.SendTextToServer(Messages.kickPlayer + tag);
            //TODO
        }
Ejemplo n.º 5
0
        void bBan_onLeftClick(object sender, EventArgs e)
        {
            //ServerTools.SendTextToServer(Messages.banPlayer + name);
            UIButton button = (UIButton)sender;
            string   tag    = (string)button.Tag;

            ModUtils.DebugText("Ban tag " + tag);

            HEROsModNetwork.GeneralMessages.RequestBanPlayer(tag);
        }
Ejemplo n.º 6
0
 private void HotbarIcon_onLeftClick(object sender, EventArgs e)
 {
     if (!_spawnWindow.Loaded)
     {
         ModUtils.DebugText("HotbarIcon_onLeftClick calling GetNPCList and BuildList");
         _spawnWindow.GetNPCList();
         _spawnWindow.BuildList();
     }
     _spawnWindow.Visible = !_spawnWindow.Visible;
 }
Ejemplo n.º 7
0
 // Network mode unknown at load time.
 public HEROsModService()
 {
     //        if(ModUtils.NetworkMode == NetworkMode.None)
     //        {
     HasPermissionToUse = true;
     ModUtils.DebugText("Permission granted: " + Name);
     //        }
     //        else
     //        {
     //            HasPermissionToUse = false;
     //ErrorLogger.Log("Permission not granted");
     //        }
 }
Ejemplo n.º 8
0
 private static void ProcessRemoveWaypointReqeust(ref BinaryReader reader, int playerNumber)
 {
     if (Network.Players[playerNumber].Group.HasPermission("EditWaypoints"))
     {
         ModUtils.DebugText("ProcessRemoveWaypointReqeust: " + playerNumber);
         List <HEROsModServices.Waypoint> points = HEROsModServices.Waypoints.points;
         int waypointIndex = reader.ReadInt32();
         if (waypointIndex >= 0 && waypointIndex < points.Count)
         {
             HEROsModServices.Waypoints.RemoveWaypoint(waypointIndex);
             SendWaypointListToPlayer(-2);
         }
     }
 }
Ejemplo n.º 9
0
 private static void ProcessRequestKickPlayer(ref BinaryReader reader, int playerNumber)
 {
     if (Network.Players[playerNumber].Group.HasPermission("Kick"))
     {
         string playerToKick = reader.ReadString();
         ModUtils.DebugText("Server Kick request received: " + playerToKick);
         for (int j = 0; j < 255; j++)
         {
             if (Main.player[j].active && Main.player[j].name.ToLower() == playerToKick)
             {
                 NetMessage.SendData(2, j, -1, NetworkText.FromKey("CLI.KickMessage", new object[0]), 0, 0f, 0f, 0f, 0, 0, 0);
             }
         }
     }
 }
Ejemplo n.º 10
0
 internal void ImportPermissions(string[] permissions)
 {
     RemoveAllPermissions();
     foreach (string p in permissions)
     {
         if (Permissions.ContainsKey(p))
         {
             Permissions[p] = true;
         }
         else
         {
             ModUtils.DebugText("Warning: Permission " + p + " not found during ImportPermissions");
         }
     }
 }
Ejemplo n.º 11
0
 private static void ProcessRequestBanPlayer(ref BinaryReader reader, int playerNumber)
 {
     if (Network.Players[playerNumber].Group.HasPermission("Ban"))
     {
         string playertoban = reader.ReadString();
         ModUtils.DebugText("Server Ban request received: " + playertoban);
         for (int k = 0; k < 255; k++)
         {
             if (Main.player[k].active && Main.player[k].name.ToLower() == playertoban)
             {
                 Netplay.AddBan(k);
                 NetMessage.SendData(2, k, -1, NetworkText.FromKey("CLI.BanMessage", new object[0]), 0, 0f, 0f, 0f, 0, 0, 0);
             }
         }
     }
 }
Ejemplo n.º 12
0
        public static KeyBinding AddKeyBinding(string bindName, string key)
        {
            for (int i = 0; i < bindings.Count; i++)
            {
                if (bindings[i].name == bindName)
                {
                    return(bindings[i]);
                }
            }
            ModUtils.DebugText("Binding " + bindName);
            HEROsMod.instance.RegisterHotKey(bindName, key);
            KeyBinding bind = new KeyBinding(bindName);

            bindings.Add(bind);
            return(bind);
            //return currentCategory.AddKeyBinding(bindName, key);
        }
Ejemplo n.º 13
0
        public static void SaveSetting(string settingName)
        {
            if (!Main.dedServ && Main.netMode == 2)
            {
                ModUtils.DebugText("WARNING: non ded client saving");
            }
            ModUtils.DebugText("SaveSetting");
            if (currentDatabaseWorld != null)
            {
                currentDatabaseWorld.waypoints.Clear();
                foreach (var waypoint in Waypoints.points)
                {
                    currentDatabaseWorld.waypoints.Add(new DatabaseWaypoint()
                    {
                        name = waypoint.name, x = waypoint.position.X, y = waypoint.position.Y
                    });
                }
                currentDatabaseWorld.GraveStonesDisabled      = !Network.GravestonesAllowed;
                currentDatabaseWorld.BanDestructiveExplosives = ItemBanner.ItemsBanned;
                currentDatabaseWorld.NPCSpawnsDiabled         = !EnemyToggler.EnemiesAllowed;
                currentDatabaseWorld.TimePaused = TimeWeatherChanger.TimePaused;
                if (currentDatabaseWorld.TimePaused)
                {
                    currentDatabaseWorld.TimePausedTime = TimeWeatherChanger.PausedTime;
                    //	currentDatabaseWorld.TimePausedIsDay = TimeWeatherChanger.PausedTimeDayTime;
                }
            }

            Directory.CreateDirectory(Main.SavePath);
            //DataContractSerializer serializer = new DataContractSerializer(typeof(HEROsModDatabase));
            string path = string.Concat(new object[]
            {
                Main.SavePath,
                Path.DirectorySeparatorChar,
                settingName,
                //".xml"
                ".json"
            });
            //XmlWriter writer = XmlWriter.Create(path);
            //serializer.WriteObject(writer, database);
            //writer.Close();
            string json = JsonConvert.SerializeObject(database, Newtonsoft.Json.Formatting.Indented);

            File.WriteAllText(path, json);
        }
Ejemplo n.º 14
0
        void _hotbarIcon_onLeftClick(object sender, EventArgs e)
        {
            // Toggle item browser window
            _itemBrowserWindow.Visible = !_itemBrowserWindow.Visible;
            // If browser window is visible, open the player inventory
            // Mouse items do no work unless the player inventory is open
            if (_itemBrowserWindow.Visible)
            {
                if (!UIKit.UIComponents.ItemBrowser.CategoriesLoaded)
                {
                    ModUtils.DebugText("_hotbarIcon_onLeftClick calling ParseList2");

                    UIKit.UIComponents.ItemBrowser.ParseList2();
                    _itemBrowserWindow.SelectedCategory = null;
                }
                Main.playerInventory = true;
                _itemBrowserWindow.SearchBox.Focus();
            }
        }
Ejemplo n.º 15
0
		public static void HEROsModMessaged(BinaryReader binaryReader, int playerNumber)
		{
			//if (msgType == HEROsModNetworkMessageType)
			{
				//We found a HEROsMod only message
				MessageType subMsgType = (MessageType)binaryReader.ReadByte();
				ModUtils.DebugText("subMsgType " + subMsgType);

				switch (subMsgType)
				{
					case MessageType.GeneralMessage:
						GeneralMessages.ProcessData(ref binaryReader, playerNumber);
						break;
					case MessageType.LoginMessage:
						LoginService.ProcessData(ref binaryReader, playerNumber);
						break;
						//case MessageType.CTFMessage:
						//	CTF.CTFMessages.ProcessData(ref binaryReader, playerNumber);
						//	break;
				}
			}
		}
Ejemplo n.º 16
0
        private static void ProcessPSA(Object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                return;
            }
            ModUtils.DebugText("Received from PSA: " + e.Result);
            PSAResponse r = JsonConvert.DeserializeObject <PSAResponse>(e.Result);

            if (r.msgbox != null)
            {
                foreach (var msg in r.msgbox)
                {
                    UIKit.MasterView.AddChildToMaster(new UIKit.UIMessageBox(msg));
                }
            }
            if (r.psa != null)
            {
                foreach (var psa in r.psa)
                {
                    Main.NewText(psa, 255, 241, 85);
                }
            }
        }
Ejemplo n.º 17
0
        public void SelectRegion(Region region)
        {
            scrollView.ClearContent();

            SelectedRegion = region;
            ModUtils.DebugText(string.Format(HEROsMod.HeroText("SelectedRegion"), region.Name, region.ID));
            bCreateRegion.Visible   = false;
            bDeleteRegion.Visible   = true;
            bAddGroup.Visible       = true;
            bAddPlayer.Visible      = true;
            bBack.Visible           = true;
            colorSlider.Visible     = true;
            bSaveColor.Visible      = true;
            bProtectChests.Visible  = true;
            bProtectChests.Selected = region.ChestsProtected;

            colorSlider.Value = Main.rgbToHsl(region.Color).X;
            //_prevRegionColor = new Color(region.Color.ToVector3());

            float yPos      = Spacing;
            int   itemCount = 0;

            for (int i = 0; i < region.AllowedGroupsIDs.Count; i++)
            {
                Group group = Network.GetGroupByID(region.AllowedGroupsIDs[i]);
                if (group == null)
                {
                    continue;
                }

                UIButton bRemove = new UIButton(HEROsMod.HeroText("Remove"));
                UIRect   bg      = new UIRect();
                bg.X      = LargeSpacing;
                bg.Y      = yPos;
                bg.Height = bRemove.Height + SmallSpacing * 2;
                bg.Width  = scrollView.Width - 20 - LargeSpacing * 2;

                yPos += bg.Height;

                bg.ForegroundColor = itemCount % 2 == 0 ? Color.Transparent : Color.Blue * .1f;

                UILabel label = new UILabel(HEROsMod.HeroText("Group"));
                label.X     = Spacing;
                label.Y     = Spacing;
                label.Scale = .5f;

                UILabel lName = new UILabel(group.Name);
                lName.X     = label.X + 100;
                lName.Y     = label.Y;
                lName.Scale = label.Scale;

                bRemove.X            = bg.Width - bRemove.Width - Spacing;
                bRemove.Y            = SmallSpacing;
                bRemove.Tag          = group.ID;
                bRemove.onLeftClick += RemoveGroup;

                bg.AddChild(label);
                bg.AddChild(bRemove);
                bg.AddChild(lName);

                scrollView.AddChild(bg);
                itemCount++;
            }

            for (int i = 0; i < region.AllowedPlayersIDs.Count; i++)
            {
                UserWithID user = null;
                for (int j = 0; j < Network.RegisteredUsers.Count; j++)
                {
                    if (Network.RegisteredUsers[j].ID == region.AllowedPlayersIDs[i])
                    {
                        user = Network.RegisteredUsers[j];
                        break;
                    }
                }
                if (user == null)
                {
                    continue;
                }

                UIButton bRemove = new UIButton(HEROsMod.HeroText("Remove"));
                UIRect   bg      = new UIRect();
                bg.X      = LargeSpacing;
                bg.Y      = yPos;
                bg.Height = bRemove.Height + SmallSpacing * 2;
                bg.Width  = scrollView.Width - 20 - LargeSpacing * 2;

                yPos += bg.Height;

                bg.ForegroundColor = itemCount % 2 == 0 ? Color.Transparent : Color.Blue * .1f;

                UILabel label = new UILabel(HEROsMod.HeroText("User"));
                label.X     = Spacing;
                label.Y     = Spacing;
                label.Scale = .5f;

                UILabel lName = new UILabel(user.Username);
                lName.X     = label.X + 100;
                lName.Y     = label.Y;
                lName.Scale = label.Scale;

                bRemove.X            = bg.Width - bRemove.Width - Spacing;
                bRemove.Y            = SmallSpacing;
                bRemove.Tag          = user.ID;
                bRemove.onLeftClick += RemovePlayer;

                bg.AddChild(label);
                bg.AddChild(bRemove);
                bg.AddChild(lName);

                scrollView.AddChild(bg);
                itemCount++;
            }
            scrollView.ContentHeight = yPos + Spacing;
        }
Ejemplo n.º 18
0
        public override void Unload()
        {
            ModUtils.DebugText("MobSpawner Unload False");

            _spawnWindow.Loaded = false;
        }
Ejemplo n.º 19
0
        internal void GetNPCList()
        {
            npcList = new List <NPCStats>();
            NPC npc;

            npc = new NPC();
            for (int i = 0; i < Main.npcTexture.Length; i++)
            {
                npc.SetDefaults(i);
                //if (npc.name != string.Empty)
                {
                    npcList.Add(new NPCStats(npc));
                }
            }
            for (int i = -1; i >= -MobSpawner.NumberOfNegativeNPCs; i--)
            {
                npc.SetDefaults(i);
                //if (npc.name != string.Empty)
                {
                    npcList.Add(new NPCStats(npc));
                }
            }
            ModUtils.DebugText("GetNPCList Loaded " + npcList.Count + " npc. npcTexture: " + Main.npcTexture.Length);

            //Golem
            RemoveNPCTypeFromList(246);
            RemoveNPCTypeFromList(247);
            RemoveNPCTypeFromList(248);
            RemoveNPCTypeFromList(249);
            RenameNPCFromList("Eater of Worlds", 13);
            RemoveNPCTypeFromList(14);
            RemoveNPCTypeFromList(15);
            RenameNPCFromList("Bone Serpent", 39);
            RemoveNPCTypeFromList(40);
            RemoveNPCTypeFromList(41);
            RenameNPCFromList("Devourer", 7);
            RemoveNPCTypeFromList(8);
            RemoveNPCTypeFromList(9);
            RenameNPCFromList("Giant Worm", 10);
            RemoveNPCTypeFromList(11);
            RemoveNPCTypeFromList(12);
            RenameNPCFromList("Digger", 95);
            RemoveNPCTypeFromList(96);
            RemoveNPCTypeFromList(97);
            RenameNPCFromList("World Feeder", 98);
            RemoveNPCTypeFromList(99);
            RemoveNPCTypeFromList(100);
            RenameNPCFromList("Leech", 117);
            RemoveNPCTypeFromList(118);
            RemoveNPCTypeFromList(119);
            RenameNPCFromList("Wyvern", 87);
            RemoveNPCTypeFromList(88);
            RemoveNPCTypeFromList(89);
            RemoveNPCTypeFromList(90);
            RemoveNPCTypeFromList(91);
            RemoveNPCTypeFromList(92);
            RenameNPCFromList("Skeletron", 35);
            RemoveNPCTypeFromList(36);
            //prime
            RemoveNPCTypeFromList(128);
            RemoveNPCTypeFromList(129);
            RemoveNPCTypeFromList(130);
            RemoveNPCTypeFromList(131);
            //plantera
            RemoveNPCTypeFromList(263);
            RemoveNPCTypeFromList(264);
            //destoryer
            RemoveNPCTypeFromList(135);
            RemoveNPCTypeFromList(136);
            //pumpking
            RemoveNPCTypeFromList(328);
            //WoF
            RemoveNPCTypeFromList(113);
            RemoveNPCTypeFromList(114);

            NPC wof = new NPC();

            wof.SetDefaults(113);
            npcList.Add(new WallOfFlesh(wof));

            //npcList.Add(new EaterOfWorlds());
            npc     = null;
            npcList = npcList.OrderBy(n => n.Name).ToList();

            category      = npcList;
            searchResults = category;

            Loaded = true;
        }
Ejemplo n.º 20
0
        public static void LoadSetting(string settingName)
        {
            ModUtils.DebugText("LoadSetting");
            Directory.CreateDirectory(Main.SavePath);
            string path = string.Concat(new object[]
            {
                Main.SavePath,
                Path.DirectorySeparatorChar,
                settingName,
                ".json"
            });

            if (File.Exists(path))
            {
                ModUtils.DebugText("LoadSetting File Exists");
                using (StreamReader r = new StreamReader(path))
                {
                    string json = r.ReadToEnd();
                    database = JsonConvert.DeserializeObject <HEROsModDatabase>(json);
                }
            }
            else
            {
                ModUtils.DebugText("LoadSetting File Doesn't Exist");
            }
            if (database == null)
            {
                ModUtils.DebugText("Warning: Database null in LoadSetting");
                database = new HEROsModDatabase();
            }
            if (database.players == null)
            {
                ModUtils.DebugText("Warning: Database players null in LoadSetting");
                database.players = new List <DatabasePlayer>();
            }
            if (database.worlds == null)
            {
                ModUtils.DebugText("Warning: Database worlds null in LoadSetting");
                database.worlds = new List <DatabaseWorld>();
            }
            //foreach (var world in database.worlds)
            //{
            //	if(world.worldID == Main.worldID)
            //	{
            //		currentDatabaseWorld = world;
            //	}
            //}
            //if(currentDatabaseWorld == null)
            //{
            //	currentDatabaseWorld = new DatabaseWorld() { worldID = Main.worldID };
            //}
            //if (database.regions == null)
            //{
            //	ModUtils.DebugText("Warning: Database regions null in LoadSetting");
            //	database.regions = new List<DatabaseRegion>();
            //}
            if (database.groups == null)
            {
                ModUtils.DebugText("Warning: Database groups null in LoadSetting");
                database.groups = new List <DatabaseGroup>();
            }
            //Console.WriteLine("LoadSetting End");
            //if (Main.netMode != (int)NetworkMode.Server)
            //{
            //	database.groups.Clear();
            //	database.players.Clear();
            //}
        }