public bool TryJoin(Player player, GlobalPlayerData iPlayerData, World world, Player i) { if (world.Id == -60) { player.SendInfo("Sorry but that user is in a restricted area!"); return(true); } if (world.Name == "Admin Room") { if (!iPlayerData.Solo || player.Client.Account.Rank > 3) { if (!iPlayerData.UsingGroup) { player.Client.Reconnect(new ReconnectPacket { Host = "", Port = 2050, GameId = world.Id, Name = world.Name, Key = Empty <byte> .Array, }); return(true); } else { foreach (var o in iPlayerData.JGroup) { if (o.Value == player.Client.Account.Name.ToLower()) { player.Client.Reconnect(new ReconnectPacket { Host = "", Port = 2050, GameId = world.Id, Name = world.Name, Key = Empty <byte> .Array, }); return(true); } } player.SendInfo("Not in " + i.Client.Account.Name + "'s group!"); return(true); } } else { player.SendInfo("Player is going solo!"); return(true); } } else { player.SendInfo("Sorry but that user is in a restricted area!"); return(true); } }
public void Execute(Player player, string[] args) { GlobalPlayerData PlayerData = PlayerDataList.GetData(player.Client.Account.Name); if (PlayerData.Solo) { PlayerData.Solo = false; player.SendInfo("Solo disabled! People can now join you!"); } else { PlayerData.Solo = true; player.SendInfo("Solo enabled! People can no longer join you!"); } }
public bool TryJoin(Player player, GlobalPlayerData iPlayerData, World world, Player i) { if (!iPlayerData.Solo) { if (!iPlayerData.UsingGroup) { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = world.Name, Key = Empty <byte> .Array, }); return(true); } else { foreach (var o in iPlayerData.JGroup) { if (o.Value == player.Client.Account.Name.ToLower()) { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = world.Name, Key = Empty <byte> .Array, }); return(true); } } player.SendInfo("Not in " + i.Client.Account.Name + "'s group!"); return(true); } } else { player.SendInfo("Player is going solo!"); return(true); } }
public void Execute(Player player, string[] args) { try { GlobalPlayerData PlayerData = PlayerDataList.GetData(player.Client.Account.Name); if (args.Length > 0) { string subcommand = args[0]; if (subcommand == "list") { string glist = "Players in your group: "; foreach (var i in PlayerData.JGroup) { if (glist != "Players in your group: ") { glist = glist + ", " + i; } else { glist = glist + i; } } player.SendInfo(glist); } else if (subcommand == "add" && args.Length > 1) { foreach (var i in PlayerData.JGroup) { if (i.Value == args[1].ToLower()) { player.SendInfo("Player already added!"); return; } } PlayerData.JGroup.TryAdd(PlayerData.JGroup.Count, args[1].ToLower()); player.SendInfo("Added " + args[1] + "!"); } else if (subcommand == "del" && args.Length > 1) { int remc = 0; foreach (var i in PlayerData.JGroup) { if (i.Value == args[1].ToLower()) { string absolutelynothingdisregardthis; player.SendInfo("Removed player " + i.Value + "!"); remc++; PlayerData.JGroup.TryRemove(i.Key, out absolutelynothingdisregardthis); } } if (remc < 1) { player.SendInfo("Player not found!"); } } } else { if (PlayerData.UsingGroup) { PlayerData.UsingGroup = false; player.SendInfo("Group-only join disabled!"); } else { PlayerData.UsingGroup = true; player.SendInfo("Group-only join enabled!"); } } } catch { player.SendInfo("Unexpected error in command!"); } }
public void Execute(Player player, string[] args) { string name = string.Join(" ", args.ToArray()).Trim(); try { GlobalPlayerData PlayerData = PlayerDataList.GetData(player.Client.Account.Name); foreach (var w in RealmManager.Worlds) { World world = w.Value; if (w.Key != 0) { foreach (var i in world.Players) { if (i.Value.Client.Account.Name.ToLower() == name.ToLower()) { GlobalPlayerData iPlayerData = PlayerDataList.GetData(i.Value.Client.Account.Name); if (!(player.Client.Account.Rank > 2)) { if (world.Name != "Vault") { if (world.Name != "Guild Hall") { TryJoin(player, iPlayerData, world, i.Value); return; } else { if ((world as GuildHall).Guild == player.Guild) { TryJoin(player, iPlayerData, world, i.Value); return; } else { player.SendInfo("Player is in " + i.Value.Guild + "'s guild hall!"); return; } } } else { if (world.Name == "Vault") { player.SendInfo("Player is in Vault!"); return; } else if (world.Name == "Guild Hall") { player.SendInfo("Player is in Guild Hall!"); return; } else { if (!iPlayerData.UsingGroup) { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = i.Value.Name + "'s Vault", Key = Empty <byte> .Array, }); return; } else { foreach (var o in iPlayerData.JGroup) { if (o.Value == player.Client.Account.Name.ToLower()) { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = i.Value.Name + "'s Vault", Key = Empty <byte> .Array, }); return; } } player.SendInfo("Not in " + i.Value.Client.Account.Name + "'s group!"); return; } } } } else { player.Client.Reconnect(new ReconnectPacket() { Host = "", Port = 2050, GameId = world.Id, Name = i.Value.Owner.Name, Key = Empty <byte> .Array, }); return; } } } } } player.SendHelp("Use /visit <playername>"); } catch { player.SendInfo("Unexpected error in command!"); } }
private void HandleIncomingGlobalPlayerPositions(PacketHeader packetHeader, Connection connection, GlobalPlayerData incomingObject) { Globals.locked = true; foreach (cPositionData pos in incomingObject.players.Values) { try { if (pos.SessionID != "") { if (!Globals.GlobalPlayerPositions.ContainsKey(pos.SessionID) && pos.SessionID != Globals.SessionID) { Globals.GlobalPlayerPositions.Add(pos.SessionID, pos); Globals.playersToSpawn.Add(pos.SessionID, pos); } else { Globals.locked = true; if (pos.SessionID == Globals.SessionID) { Globals.PlayerPosition = pos; Globals.InventoryItemsNew.Clear(); foreach (Data.Characters.Inventory.Inventory.ItemData item in pos.character.Inventory.Items.Values) { Globals.InventoryItemsNew.Add(item); } } Globals.GlobalPlayerPositions[pos.SessionID] = pos; if (!Globals.GlobalPlayerPositionsOld.ContainsKey(pos.SessionID)) { Globals.GlobalPlayerPositionsOld.Add(pos.SessionID, pos); } else { Globals.GlobalPlayerPositionsOld[pos.SessionID] = pos; } Globals.locked = false; } //GlobalPlayerPositionsOld[pos.SessionID] = GlobalPlayerPositions[pos.SessionID]; } } catch (Exception ex) { } } Globals.locked = false; }