mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Linkshell and WorkValue work.
This commit is contained in:
		| @@ -75,5 +75,10 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|             session.clientConnection.QueuePacket(GroupMembersEndPacket.buildPacket(session.sessionId, session.currentZoneId, time, this), true, false); |             session.clientConnection.QueuePacket(GroupMembersEndPacket.buildPacket(session.sessionId, session.currentZoneId, time, this), true, false); | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         public virtual void SendInitWorkValues(Session session) | ||||||
|  |         { | ||||||
|  |  | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ using System.Linq; | |||||||
| using System.Text; | using System.Text; | ||||||
| using System.Threading.Tasks; | using System.Threading.Tasks; | ||||||
| using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | ||||||
|  | using FFXIVClassic.Common; | ||||||
|  |  | ||||||
| namespace FFXIVClassic_World_Server.DataObjects.Group | namespace FFXIVClassic_World_Server.DataObjects.Group | ||||||
| { | { | ||||||
| @@ -15,7 +16,7 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|  |  | ||||||
|         public LinkshellWork linkshellWork = new LinkshellWork(); |         public LinkshellWork linkshellWork = new LinkshellWork(); | ||||||
|  |  | ||||||
|         public Dictionary<ulong, LinkshellMember> members = new Dictionary<ulong, LinkshellMember>(); |         private List<LinkshellMember> members = new List<LinkshellMember>(); | ||||||
|  |  | ||||||
|         public Linkshell(ulong dbId,  ulong groupIndex, string name, ushort crestId, uint master, byte rank) : base(groupIndex) |         public Linkshell(ulong dbId,  ulong groupIndex, string name, ushort crestId, uint master, byte rank) : base(groupIndex) | ||||||
|         { |         { | ||||||
| @@ -48,6 +49,25 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|             linkshellWork._memberSave[index].rank = rank; |             linkshellWork._memberSave[index].rank = rank; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         public void AddMember(uint charaId) | ||||||
|  |         { | ||||||
|  |             members.Add(new LinkshellMember(charaId, dbId, 0xa)); | ||||||
|  |             members.Sort(); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public void RemoveMember(uint charaId) | ||||||
|  |         { | ||||||
|  |             for (int i = 0; i < members.Count; i++) | ||||||
|  |             { | ||||||
|  |                 if (members[i].charaId == charaId) | ||||||
|  |                 { | ||||||
|  |                     members.Remove(members[i]); | ||||||
|  |                     members.Sort(); | ||||||
|  |                     break; | ||||||
|  |                 } | ||||||
|  |             }                 | ||||||
|  |         } | ||||||
|  |  | ||||||
|         public override int GetMemberCount() |         public override int GetMemberCount() | ||||||
|         { |         { | ||||||
|             return members.Count; |             return members.Count; | ||||||
| @@ -66,9 +86,34 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|         public override List<GroupMember> BuildMemberList() |         public override List<GroupMember> BuildMemberList() | ||||||
|         { |         { | ||||||
|             List<GroupMember> groupMembers = new List<GroupMember>(); |             List<GroupMember> groupMembers = new List<GroupMember>(); | ||||||
|             foreach (LinkshellMember member in members.Values)             |             foreach (LinkshellMember member in members)             | ||||||
|                 groupMembers.Add(new GroupMember(member.charaId, -1, 0, false, Server.GetServer().GetSession(member.charaId) != null, Server.GetServer().GetNameForId(member.charaId))); |                 groupMembers.Add(new GroupMember(member.charaId, -1, 0, false, Server.GetServer().GetSession(member.charaId) != null, Server.GetServer().GetNameForId(member.charaId))); | ||||||
|             return groupMembers; |             return groupMembers; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         public override void SendInitWorkValues(Session session) | ||||||
|  |         { | ||||||
|  |  | ||||||
|  |             SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupIndex); | ||||||
|  |             groupWork.addProperty(this, "linkshellWork._globalSave.master"); | ||||||
|  |             groupWork.addProperty(this, "linkshellWork._globalSave.crestIcon[0]"); | ||||||
|  |             groupWork.addProperty(this, "linkshellWork._globalSave.rank"); | ||||||
|  |  | ||||||
|  |             for (int i = 0; i < members.Count; i++) | ||||||
|  |             { | ||||||
|  |                 linkshellWork._memberSave[i].rank = members[i].rank; | ||||||
|  |                 groupWork.addProperty(this, String.Format("linkshellWork._memberSave[{0}].rank", i)); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             groupWork.setTarget("/_init");             | ||||||
|  |             SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); | ||||||
|  |             test.DebugPrintSubPacket(); | ||||||
|  |             session.clientConnection.QueuePacket(test, true, false); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public void LoadMembers() | ||||||
|  |         { | ||||||
|  |             members = Database.GetLSMembers(this); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,19 +6,22 @@ using System.Threading.Tasks; | |||||||
|  |  | ||||||
| namespace FFXIVClassic_World_Server.DataObjects.Group | namespace FFXIVClassic_World_Server.DataObjects.Group | ||||||
| { | { | ||||||
|     class LinkshellMember |     class LinkshellMember : IComparable<LinkshellMember> | ||||||
|     { |     { | ||||||
|         public readonly uint charaId; |         public readonly uint charaId; | ||||||
|         public readonly ulong lsId; |         public readonly ulong lsId; | ||||||
|         public readonly ushort slot; |         public readonly byte rank; | ||||||
|         public readonly ushort rank; |  | ||||||
|          |          | ||||||
|         public LinkshellMember(uint charaId, ulong lsId, ushort slot, ushort rank) |         public LinkshellMember(uint charaId, ulong lsId, byte rank) | ||||||
|         { |         { | ||||||
|             this.charaId = charaId; |             this.charaId = charaId; | ||||||
|             this.lsId = lsId; |             this.lsId = lsId; | ||||||
|             this.slot = slot; |  | ||||||
|             this.rank = rank; |             this.rank = rank; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         public int CompareTo(LinkshellMember other) | ||||||
|  |         { | ||||||
|  |             return Server.GetServer().GetNameForId(charaId).CompareTo(Server.GetServer().GetNameForId(other.charaId)); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| using FFXIVClassic_World_Server.Actor.Group.Work; | using FFXIVClassic.Common; | ||||||
|  | using FFXIVClassic_World_Server.Actor.Group.Work; | ||||||
| using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | ||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| @@ -28,17 +29,15 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|             return (uint)(partyGroupWork._globalTemp.owner & 0xFFFFFF); |             return (uint)(partyGroupWork._globalTemp.owner & 0xFFFFFF); | ||||||
|         } |         } | ||||||
|          |          | ||||||
|         /* |         public override void SendInitWorkValues(Session session) | ||||||
|         public override void sendWorkValues(Session session) |  | ||||||
|         { |         { | ||||||
|             SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupId); |             SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupIndex); | ||||||
|             groupWork.addProperty(this, "partyGroupWork._globalTemp.owner"); |             groupWork.addProperty(this, "partyGroupWork._globalTemp.owner"); | ||||||
|             groupWork.setTarget("/_init"); |             groupWork.setTarget("/_init"); | ||||||
|  |  | ||||||
|             SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); |             SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); | ||||||
|             session.clientConnection.QueuePacket(test, true, false); |             session.clientConnection.QueuePacket(test, true, false); | ||||||
|         }         |         }         | ||||||
|         */ |  | ||||||
|  |  | ||||||
|         public override int GetMemberCount() |         public override int GetMemberCount() | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | using FFXIVClassic.Common; | ||||||
|  | using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | ||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Linq; | using System.Linq; | ||||||
| @@ -37,5 +38,17 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|             return groupMembers; |             return groupMembers; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         public override void SendInitWorkValues(Session session) | ||||||
|  |         { | ||||||
|  |             SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupIndex); | ||||||
|  |             groupWork.addProperty(this, "work._globalTemp.host"); | ||||||
|  |             groupWork.addProperty(this, "work._globalTemp.variableCommand"); | ||||||
|  |             groupWork.setTarget("/_init"); | ||||||
|  |  | ||||||
|  |             SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); | ||||||
|  |             test.DebugPrintSubPacket(); | ||||||
|  |             session.clientConnection.QueuePacket(test, true, false); | ||||||
|  |         } | ||||||
|  |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| using FFXIVClassic_World_Server.Actor.Group.Work; | using FFXIVClassic.Common; | ||||||
|  | using FFXIVClassic_World_Server.Actor.Group.Work; | ||||||
| using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; | ||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| @@ -29,10 +30,9 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|             work._memberSave[index].level = level; |             work._memberSave[index].level = level; | ||||||
|         }         |         }         | ||||||
|          |          | ||||||
|         /* |         public override void SendInitWorkValues(Session session) | ||||||
|         public override void sendWorkValues(Session session) |  | ||||||
|         { |         { | ||||||
|             SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupId); |             SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupIndex); | ||||||
|             groupWork.addProperty(this, "work._memberSave[0].cdIDOffset"); |             groupWork.addProperty(this, "work._memberSave[0].cdIDOffset"); | ||||||
|             groupWork.addProperty(this, "work._memberSave[0].placeName"); |             groupWork.addProperty(this, "work._memberSave[0].placeName"); | ||||||
|             groupWork.addProperty(this, "work._memberSave[0].conditions"); |             groupWork.addProperty(this, "work._memberSave[0].conditions"); | ||||||
| @@ -42,7 +42,6 @@ namespace FFXIVClassic_World_Server.DataObjects.Group | |||||||
|             SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); |             SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); | ||||||
|             session.clientConnection.QueuePacket(test, true, false); |             session.clientConnection.QueuePacket(test, true, false); | ||||||
|         } |         } | ||||||
|         */ |  | ||||||
|          |          | ||||||
|         public override int GetMemberCount() |         public override int GetMemberCount() | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -159,27 +159,26 @@ namespace FFXIVClassic_World_Server | |||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static Dictionary<ulong, LinkshellMember> GetLSMembers(ulong lsId) |         public static List<LinkshellMember> GetLSMembers(Linkshell ls) | ||||||
|         { |         { | ||||||
|             Dictionary<ulong, LinkshellMember> memberList = new Dictionary<ulong, LinkshellMember>(); |             List<LinkshellMember> memberList = new List<LinkshellMember>();             | ||||||
|             using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) |             using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) | ||||||
|             { |             { | ||||||
|                 try |                 try | ||||||
|                 { |                 { | ||||||
|                     conn.Open(); |                     conn.Open(); | ||||||
|                     MySqlCommand cmd = new MySqlCommand("SELECT characterId, linkshellId, slot, rank FROM characters_linkshells WHERE linkshellId = @lsId", conn); |                     MySqlCommand cmd = new MySqlCommand("SELECT characterId, linkshellId, rank FROM characters_linkshells WHERE linkshellId = @lsId", conn); | ||||||
|                     cmd.Parameters.AddWithValue("@lsId", lsId); |                     cmd.Parameters.AddWithValue("@lsId", ls.dbId); | ||||||
|                     using (MySqlDataReader Reader = cmd.ExecuteReader()) |                     using (MySqlDataReader Reader = cmd.ExecuteReader()) | ||||||
|                     { |                     { | ||||||
|                         while (Reader.Read()) |                         while (Reader.Read()) | ||||||
|                         { |                         { | ||||||
|                             uint characterId = Reader.GetUInt32("characterId"); |                             uint characterId = Reader.GetUInt32("characterId"); | ||||||
|                             ulong linkshellId = Reader.GetUInt64("linkshellId"); |                             ulong linkshellId = Reader.GetUInt64("linkshellId"); | ||||||
|                             ushort slot = Reader.GetUInt16("slot"); |                             byte rank = Reader.GetByte("rank"); | ||||||
|                             ushort rank = Reader.GetUInt16("rank"); |  | ||||||
|  |  | ||||||
|                             LinkshellMember member = new LinkshellMember(characterId, linkshellId, slot, rank); |                             LinkshellMember member = new LinkshellMember(characterId, linkshellId, rank); | ||||||
|                             memberList.Add(characterId, member); |                             memberList.Add(member); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @@ -192,6 +191,7 @@ namespace FFXIVClassic_World_Server | |||||||
|                     conn.Dispose(); |                     conn.Dispose(); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |             memberList.Sort(); | ||||||
|             return memberList; |             return memberList; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -203,7 +203,7 @@ namespace FFXIVClassic_World_Server | |||||||
|                 try |                 try | ||||||
|                 { |                 { | ||||||
|                     conn.Open(); |                     conn.Open(); | ||||||
|                     MySqlCommand cmd = new MySqlCommand("SELECT characterId, linkshellId, slot, rank FROM characters_linkshells WHERE characterid = @charaId", conn); |                     MySqlCommand cmd = new MySqlCommand("SELECT characterId, linkshellId, rank FROM characters_linkshells WHERE characterid = @charaId", conn); | ||||||
|                     cmd.Parameters.AddWithValue("@lsId", charaId); |                     cmd.Parameters.AddWithValue("@lsId", charaId); | ||||||
|                     using (MySqlDataReader Reader = cmd.ExecuteReader()) |                     using (MySqlDataReader Reader = cmd.ExecuteReader()) | ||||||
|                     { |                     { | ||||||
| @@ -211,10 +211,9 @@ namespace FFXIVClassic_World_Server | |||||||
|                         { |                         { | ||||||
|                             uint characterId = Reader.GetUInt32("characterId"); |                             uint characterId = Reader.GetUInt32("characterId"); | ||||||
|                             ulong linkshellId = Reader.GetUInt64("linkshellId"); |                             ulong linkshellId = Reader.GetUInt64("linkshellId"); | ||||||
|                             ushort slot = Reader.GetUInt16("slot"); |                             byte rank = Reader.GetByte("rank"); | ||||||
|                             ushort rank = Reader.GetUInt16("rank"); |  | ||||||
|  |  | ||||||
|                             LinkshellMember member = new LinkshellMember(characterId, linkshellId, slot, rank); |                             LinkshellMember member = new LinkshellMember(characterId, linkshellId, rank); | ||||||
|                             memberList.Add(member); |                             memberList.Add(member); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|   | |||||||
| @@ -86,8 +86,7 @@ namespace FFXIVClassic_World_Server | |||||||
|  |  | ||||||
|                 if (result) |                 if (result) | ||||||
|                 { |                 { | ||||||
|                     LinkshellMember newMember = new LinkshellMember(charaId, ls.dbId, 0, 0); |                     ls.AddMember(charaId); | ||||||
|                     ls.members.Add(charaId, newMember); |  | ||||||
|                     return true; |                     return true; | ||||||
|                 } |                 } | ||||||
|                 else |                 else | ||||||
| @@ -112,8 +111,7 @@ namespace FFXIVClassic_World_Server | |||||||
|                     return false; |                     return false; | ||||||
|  |  | ||||||
|                 //Remove from group instance |                 //Remove from group instance | ||||||
|                 if (ls.members.ContainsKey(charaId)) |                 ls.RemoveMember(charaId); | ||||||
|                     ls.members.Remove(charaId); |  | ||||||
|  |  | ||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
| @@ -129,10 +127,10 @@ namespace FFXIVClassic_World_Server | |||||||
|                 lock (mGroupLockReference) |                 lock (mGroupLockReference) | ||||||
|                 { |                 { | ||||||
|                     Linkshell ls = Database.GetLinkshell(mServer.GetGroupIndex(), id); |                     Linkshell ls = Database.GetLinkshell(mServer.GetGroupIndex(), id); | ||||||
|  |                     ls.LoadMembers(); | ||||||
|  |  | ||||||
|                     if (ls != null) |                     if (ls != null) | ||||||
|                     {                         |                     {                         | ||||||
|                         ls.members = Database.GetLSMembers(id); |  | ||||||
|                         mLinkshellList.Add(id, ls); |                         mLinkshellList.Add(id, ls); | ||||||
|                         mCurrentWorldGroupsReference.Add(mServer.GetGroupIndex(), ls); |                         mCurrentWorldGroupsReference.Add(mServer.GetGroupIndex(), ls); | ||||||
|                         mServer.IncrementGroupIndex(); |                         mServer.IncrementGroupIndex(); | ||||||
|   | |||||||
| @@ -0,0 +1,35 @@ | |||||||
|  | using System; | ||||||
|  | using System.Collections.Generic; | ||||||
|  | using System.IO; | ||||||
|  | using System.Linq; | ||||||
|  | using System.Text; | ||||||
|  | using System.Threading.Tasks; | ||||||
|  |  | ||||||
|  | namespace FFXIVClassic_World_Server.Packets.Receive.Subpackets | ||||||
|  | { | ||||||
|  |     class GroupCreatedPacket | ||||||
|  |     {     | ||||||
|  |         public ulong groupId; | ||||||
|  |         public string workString; | ||||||
|  |  | ||||||
|  |         public bool invalidPacket = false; | ||||||
|  |  | ||||||
|  |         public GroupCreatedPacket(byte[] data) | ||||||
|  |         { | ||||||
|  |             using (MemoryStream mem = new MemoryStream(data)) | ||||||
|  |             { | ||||||
|  |                 using (BinaryReader binReader = new BinaryReader(mem)) | ||||||
|  |                 { | ||||||
|  |                     try{ | ||||||
|  |                         groupId = binReader.ReadUInt64(); | ||||||
|  |                         workString = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); | ||||||
|  |                     } | ||||||
|  |                     catch (Exception){ | ||||||
|  |                         invalidPacket = true; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -1,6 +1,7 @@ | |||||||
| using FFXIVClassic.Common; | using FFXIVClassic.Common; | ||||||
| using FFXIVClassic_World_Server.DataObjects; | using FFXIVClassic_World_Server.DataObjects; | ||||||
| using FFXIVClassic_World_Server.DataObjects.Group; | using FFXIVClassic_World_Server.DataObjects.Group; | ||||||
|  | using FFXIVClassic_World_Server.Packets.Receive.Subpackets; | ||||||
| using FFXIVClassic_World_Server.Packets.WorldPackets.Receive; | using FFXIVClassic_World_Server.Packets.WorldPackets.Receive; | ||||||
| using FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group; | using FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group; | ||||||
| using System; | using System; | ||||||
| @@ -161,12 +162,11 @@ namespace FFXIVClassic_World_Server | |||||||
|         public void OnReceiveSubPacketFromZone(ZoneServer zoneServer, SubPacket subpacket) |         public void OnReceiveSubPacketFromZone(ZoneServer zoneServer, SubPacket subpacket) | ||||||
|         { |         { | ||||||
|             uint sessionId = subpacket.header.targetId; |             uint sessionId = subpacket.header.targetId; | ||||||
|  |             Session session = GetSession(sessionId); | ||||||
|  |  | ||||||
|             if (subpacket.gameMessage.opcode >= 0x1000) |             if (subpacket.gameMessage.opcode >= 0x1000) | ||||||
|             { |             { | ||||||
|                 subpacket.DebugPrintSubPacket();                 |                 subpacket.DebugPrintSubPacket();                 | ||||||
|                 uint targetSession = subpacket.header.targetId; |  | ||||||
|                 Session session = GetSession(targetSession); |  | ||||||
|  |  | ||||||
|                 switch (subpacket.gameMessage.opcode) |                 switch (subpacket.gameMessage.opcode) | ||||||
|                 { |                 { | ||||||
| @@ -236,6 +236,21 @@ namespace FFXIVClassic_World_Server | |||||||
|                         break; |                         break; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |             //Special case for groups. If it's a world group, send values, else send to zone server | ||||||
|  |             else if (subpacket.gameMessage.opcode == 0x133) | ||||||
|  |             { | ||||||
|  |                 GroupCreatedPacket groupCreatedPacket = new GroupCreatedPacket(subpacket.data); | ||||||
|  |                 if (mCurrentWorldGroups.ContainsKey(groupCreatedPacket.groupId)) | ||||||
|  |                 { | ||||||
|  |                     mCurrentWorldGroups[groupCreatedPacket.groupId].SendInitWorkValues(session); | ||||||
|  |                 } | ||||||
|  |                 else //Not a world group, send to zone server | ||||||
|  |                 { | ||||||
|  |                     ClientConnection conn = mZoneSessionList[sessionId].clientConnection; | ||||||
|  |                     conn.QueuePacket(subpacket, true, false); | ||||||
|  |                     conn.FlushQueuedSendPackets(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|             else if (mZoneSessionList.ContainsKey(sessionId)) |             else if (mZoneSessionList.ContainsKey(sessionId)) | ||||||
|             { |             { | ||||||
|                 ClientConnection conn = mZoneSessionList[sessionId].clientConnection; |                 ClientConnection conn = mZoneSessionList[sessionId].clientConnection; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user