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); } }
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); }
public static void SendDataToServer() { ModUtils.DebugText("SendDataToServer " + memoryStream.ToArray()); var a = HEROsMod.instance.GetPacket(); a.Write(memoryStream.ToArray()); a.Send(); ResetWriter(); //NetMessage.SendData(HEROsModNetworkMessageType); }
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 }
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); }
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; }
// 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"); // } }
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); } } }
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); } } } }
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"); } } }
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); } } } }
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); }
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); }
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(); } }
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; } } }
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); } } }
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; }
public override void Unload() { ModUtils.DebugText("MobSpawner Unload False"); _spawnWindow.Loaded = false; }
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; }
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(); //} }