mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Started to implement private areas. Works mostly, but only one instance is created. All the push triggers work more or less except bounding box.
This commit is contained in:
		| @@ -22,8 +22,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor | ||||
|             { | ||||
|                 using (BinaryWriter binWriter = new BinaryWriter(mem)) | ||||
|                 { | ||||
|                     int value1 = 0x10; //Instance ID? | ||||
|                     int value2 = 0x3980; | ||||
|                     int value1 = 0x02; //Instance ID? | ||||
|                     int value2 = 0x2bc0; | ||||
|                     binWriter.Write((Int16)value1); | ||||
|                     binWriter.Write((Int16)value2); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(objectName), 0, Encoding.ASCII.GetByteCount(objectName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(objectName)); | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| using FFXIVClassic_Lobby_Server.packets; | ||||
| using FFXIVClassic_Map_Server.actors; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| @@ -13,7 +14,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|         public const ushort OPCODE = 0x016B; | ||||
|         public const uint PACKET_SIZE = 0x48; | ||||
|  | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, byte unknown1, byte unknown2, string conditionName) | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, EventList.NoticeEventCondition condition) | ||||
|         { | ||||
|             byte[] data = new byte[PACKET_SIZE - 0x20]; | ||||
|  | ||||
| @@ -21,9 +22,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|             { | ||||
|                 using (BinaryWriter binWriter = new BinaryWriter(mem)) | ||||
|                 { | ||||
|                     binWriter.Write((Byte)unknown1); | ||||
|                     binWriter.Write((Byte)unknown2); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(conditionName), 0, Encoding.ASCII.GetByteCount(conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(conditionName)); | ||||
|                     binWriter.Write((Byte)condition.unknown1); | ||||
|                     binWriter.Write((Byte)condition.unknown2); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| using FFXIVClassic_Lobby_Server.packets; | ||||
| using FFXIVClassic_Map_Server.actors; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| @@ -13,24 +14,22 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|         public const ushort OPCODE = 0x016F; | ||||
|         public const uint PACKET_SIZE = 0x58; | ||||
|  | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID) | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, EventList.PushCircleEventCondition condition) | ||||
|         { | ||||
|             byte[] data = new byte[PACKET_SIZE - 0x20]; | ||||
|  | ||||
|             string eventName = ""; | ||||
|  | ||||
|             using (MemoryStream mem = new MemoryStream(data)) | ||||
|             { | ||||
|                 using (BinaryWriter binWriter = new BinaryWriter(mem)) | ||||
|                 { | ||||
|                     binWriter.Write((Single)0.0f); | ||||
|                     binWriter.Write((UInt32)0); | ||||
|                     binWriter.Write((Single)0.0f); | ||||
|                     binWriter.Write((Single)condition.radius); | ||||
|                     binWriter.Write((UInt32)0x44533088); | ||||
|                     binWriter.Write((Single)100.0f); | ||||
|                     binWriter.Seek(4, SeekOrigin.Current); | ||||
|                     binWriter.Write((Byte)(condition.outwards ? 0x11 : 0x1)); //If == 0x10, Inverted Bounding Box | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(eventName), 0, Encoding.ASCII.GetByteCount(eventName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(eventName)); | ||||
|                     binWriter.Write((Byte)(condition.silent ? 0x1 : 0x0)); //Silent Trigger | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| using FFXIVClassic_Lobby_Server.packets; | ||||
| using FFXIVClassic_Map_Server.actors; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| @@ -13,27 +14,27 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|         public const ushort OPCODE = 0x0170; | ||||
|         public const uint PACKET_SIZE = 0x60; | ||||
|  | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID) | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, EventList.PushFanEventCondition condition) | ||||
|         { | ||||
|             byte[] data = new byte[PACKET_SIZE - 0x20]; | ||||
|  | ||||
|             string eventName = ""; | ||||
|  | ||||
|             using (MemoryStream mem = new MemoryStream(data)) | ||||
|             { | ||||
|                 using (BinaryWriter binWriter = new BinaryWriter(mem)) | ||||
|                 { | ||||
|                     binWriter.Write((Single)0.0f); | ||||
|                     binWriter.Write((UInt32)0); | ||||
|                     binWriter.Write((Single)0.0f); | ||||
|                     binWriter.Write((Single)condition.radius); | ||||
|                     binWriter.Write((UInt32)0xbfc90fdb); | ||||
|                     binWriter.Write((UInt32)0x3f860a92); | ||||
|                     binWriter.Write((UInt32)sourceActorID); //Actor Id | ||||
|                     binWriter.Write((Single)10.0f); | ||||
|                     binWriter.Seek(4, SeekOrigin.Current); | ||||
|                     binWriter.Write((Byte)(condition.outwards ? 0x11 : 0x1)); //If == 0x10, Inverted Bounding Box | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(eventName), 0, Encoding.ASCII.GetByteCount(eventName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(eventName)); | ||||
|                     binWriter.Write((Byte)(condition.silent ? 0x1 : 0x0)); //Silent Trigger | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             new SubPacket(OPCODE, sourceActorID, playerActorID, data).debugPrintSubPacket(); | ||||
|             return new SubPacket(OPCODE, sourceActorID, playerActorID, data); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| using FFXIVClassic_Lobby_Server.packets; | ||||
| using FFXIVClassic_Map_Server.actors; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| @@ -11,26 +12,24 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|     class SetPushEventConditionWithTriggerBox | ||||
|     { | ||||
|         public const ushort OPCODE = 0x0175; | ||||
|         public const uint PACKET_SIZE = 0x58; | ||||
|         public const uint PACKET_SIZE = 0x60; | ||||
|  | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID) | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, EventList.PushBoxEventCondition condition) | ||||
|         { | ||||
|             byte[] data = new byte[PACKET_SIZE - 0x20]; | ||||
|  | ||||
|             string eventName = ""; | ||||
|  | ||||
|             using (MemoryStream mem = new MemoryStream(data)) | ||||
|             { | ||||
|                 using (BinaryWriter binWriter = new BinaryWriter(mem)) | ||||
|                 { | ||||
|                     binWriter.Write((Single)0.0f); | ||||
|                     binWriter.Write((UInt32)0); | ||||
|                     binWriter.Write((Single)0.0f); | ||||
|                     binWriter.Seek(4, SeekOrigin.Current); | ||||
|                     binWriter.Write((UInt32)condition.size); | ||||
|                     binWriter.Write((UInt32)0x1A5); | ||||
|                     binWriter.Write((UInt32)4); | ||||
|                     binWriter.Seek(8, SeekOrigin.Current); | ||||
|                     binWriter.Write((Byte)(condition.outwards ? 0x11 : 0x1)); //If == 0x10, Inverted Bounding Box | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write((Byte)0); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(eventName), 0, Encoding.ASCII.GetByteCount(eventName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(eventName)); | ||||
|                     binWriter.Write((Byte)(condition.silent ? 0x1 : 0x0)); //Silent Trigger; | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| using FFXIVClassic_Lobby_Server.packets; | ||||
| using FFXIVClassic_Map_Server.actors; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| @@ -13,7 +14,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|         public const ushort OPCODE = 0x012E; | ||||
|         public const uint PACKET_SIZE = 0x48; | ||||
|  | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, byte unknown1, byte unknown2, string conditionName) | ||||
|         public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, EventList.TalkEventCondition condition) | ||||
|         { | ||||
|             byte[] data = new byte[PACKET_SIZE - 0x20]; | ||||
|  | ||||
| @@ -21,9 +22,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events | ||||
|             { | ||||
|                 using (BinaryWriter binWriter = new BinaryWriter(mem)) | ||||
|                 { | ||||
|                     binWriter.Write((Byte)unknown1); | ||||
|                     binWriter.Write((Byte)unknown2); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(conditionName), 0, Encoding.ASCII.GetByteCount(conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(conditionName)); | ||||
|                     binWriter.Write((Byte)condition.unknown1); | ||||
|                     binWriter.Write((Byte)condition.unknown2); | ||||
|                     binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user