mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Refactored how zones work. Cleaned out a lot of duplciations and smoothed out how Zones/PrivateAreas work.
This commit is contained in:
		| @@ -119,26 +119,26 @@ namespace Meteor.Map.actors.group | ||||
|             ulong time = Utils.MilisUnixTimeStampUTC(); | ||||
|             List<GroupMember> members = BuildMemberList(session.id); | ||||
|  | ||||
|             session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); | ||||
|             session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); | ||||
|             session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, this)); | ||||
|             session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, this)); | ||||
|  | ||||
|             int currentIndex = 0; | ||||
|  | ||||
|             while (true) | ||||
|             { | ||||
|                 if (GetMemberCount() - currentIndex >= 64) | ||||
|                     session.QueuePacket(ContentMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); | ||||
|                     session.QueuePacket(ContentMembersX64Packet.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, members, ref currentIndex)); | ||||
|                 else if (GetMemberCount() - currentIndex >= 32) | ||||
|                     session.QueuePacket(ContentMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); | ||||
|                     session.QueuePacket(ContentMembersX32Packet.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, members, ref currentIndex)); | ||||
|                 else if (GetMemberCount() - currentIndex >= 16) | ||||
|                     session.QueuePacket(ContentMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); | ||||
|                     session.QueuePacket(ContentMembersX16Packet.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, members, ref currentIndex)); | ||||
|                 else if (GetMemberCount() - currentIndex > 0) | ||||
|                     session.QueuePacket(ContentMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); | ||||
|                     session.QueuePacket(ContentMembersX08Packet.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, members, ref currentIndex)); | ||||
|                 else | ||||
|                     break; | ||||
|             } | ||||
|  | ||||
|             session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); | ||||
|             session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().CurrentArea.ZoneId, time, this)); | ||||
|         } | ||||
|  | ||||
|         public override uint GetTypeId() | ||||
| @@ -160,7 +160,7 @@ namespace Meteor.Map.actors.group | ||||
|                 Session s = Server.GetServer().GetSession(members[i]); | ||||
|                 if (s != null) | ||||
|                     s.GetActor().SetCurrentContentGroup(null); | ||||
|                 Actor a = director.GetZone().FindActorInArea(members[i]); | ||||
|                 Actor a = director.CurrentArea.FindActorInArea(members[i]); | ||||
|                 if (a is Npc) | ||||
|                     ((Npc)a).Despawn(); | ||||
|                 members.Remove(members[i]); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user