From 08fd86293990faba7d4e24f32fc2d42912b88850 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 20 Mar 2016 19:34:39 -0400 Subject: [PATCH] Implemented the emote and notice event conditions. --- FFXIVClassic Map Server/actors/Actor.cs | 6 +++--- .../send/Actor/events/SetEmoteEventCondition.cs | 11 ++++++----- .../send/Actor/events/SetNoticeEventCondition.cs | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 427a592d..dcb6bd89 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -117,19 +117,19 @@ namespace FFXIVClassic_Map_Server.Actors if (eventConditions.talkEventConditions != null) { foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions) - subpackets.Add(SetTalkEventCondition.buildPacket(playerActorId, actorId, condition.unknown1, condition.unknown2, condition.conditionName)); + subpackets.Add(SetTalkEventCondition.buildPacket(playerActorId, actorId, condition)); } if (eventConditions.noticeEventConditions != null) { foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions) - subpackets.Add(SetNoticeEventCondition.buildPacket(playerActorId, actorId, condition.unknown1, condition.unknown2, condition.conditionName)); + subpackets.Add(SetNoticeEventCondition.buildPacket(playerActorId, actorId, condition)); } if (eventConditions.emoteEventConditions != null) { foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions) - subpackets.Add(SetEmoteEventCondition.buildPacket(playerActorId, actorId, condition.unknown1, condition.unknown2, condition.emoteId, condition.conditionName)); + subpackets.Add(SetEmoteEventCondition.buildPacket(playerActorId, actorId, condition)); } if (eventConditions.pushWithCircleEventConditions != null) diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs index 7e47022b..da84c606 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs @@ -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 = 0x016C; public const uint PACKET_SIZE = 0x48; - public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, byte unknown1, byte unknown2, ushort emoteId, string conditionName) + public static SubPacket buildPacket(uint playerActorID, uint sourceActorID, EventList.EmoteEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -21,10 +22,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events { using (BinaryWriter binWriter = new BinaryWriter(mem)) { - binWriter.Write((Byte)unknown1); - binWriter.Write((Byte)unknown2); - binWriter.Write((UInt16)emoteId); - 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((UInt16)condition.emoteId); + binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs index 3677841c..e1c9204a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs @@ -22,8 +22,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events { using (BinaryWriter binWriter = new BinaryWriter(mem)) { - binWriter.Write((Byte)condition.unknown1); - binWriter.Write((Byte)condition.unknown2); + binWriter.Write((Byte)condition.unknown1); //Seen: 0, 1, E + binWriter.Write((Byte)condition.unknown2); //Seen: 0, 1 binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); } }