Got rid of some garbage packets. Emote packet implemented though bug with descriptions.

This commit is contained in:
Filip Maj
2015-10-12 02:03:47 -04:00
parent 810edfcee4
commit d3325676c5
22 changed files with 49 additions and 4 deletions
@@ -80,6 +80,7 @@
<Compile Include="packets\receive\LockTargetPacket.cs" />
<Compile Include="packets\receive\EndScriptPacket.cs" />
<Compile Include="packets\receive\StartScriptPacket.cs" />
<Compile Include="packets\send\actor\ActorDoEmotePacket.cs" />
<Compile Include="packets\send\actor\DeleteAllActorsPacket.cs" />
<Compile Include="packets\send\actor\inventory\EquipmentChangePacket.cs" />
<Compile Include="packets\send\actor\inventory\InventoryBeginChangePacket.cs" />
+5 -2
View File
@@ -307,6 +307,8 @@ namespace FFXIVClassic_Lobby_Server
break;
//Set Target
case 0x00CD:
subpacket.debugPrintSubPacket();
SetTargetPacket setTarget = new SetTargetPacket(subpacket.data);
player.setTarget(setTarget.actorID);
client.queuePacket(BasePacket.createPacket(SetActorTargetAnimatedPacket.buildPacket(player.actorID, player.actorID, setTarget.actorID), true, false));
@@ -319,8 +321,9 @@ namespace FFXIVClassic_Lobby_Server
//Start Script
case 0x012D:
subpacket.debugPrintSubPacket();
StartScriptPacket startScript = new StartScriptPacket(subpacket.data);
client.queuePacket(new BasePacket("./packets/script/bed.bin"));
//StartScriptPacket startScript = new StartScriptPacket(subpacket.data);
//client.queuePacket(new BasePacket("./packets/script/bed.bin"));
client.queuePacket(BasePacket.createPacket(ActorDoEmotePacket.buildPacket(player.actorID, player.getTargetedActor(), 137), true, false));
break;
//Script Result
case 0x012E:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -18,8 +18,8 @@ namespace FFXIVClassic_Map_Server.dataobjects
public uint characterID = 0;
public uint actorID = 0;
private uint currentTarget = 0;
private uint currentLockedTarget = 0;
private uint currentTarget = 0xC0000000;
private uint currentLockedTarget = 0xC0000000;
private uint currentZoneID = 0;
@@ -121,5 +121,10 @@ namespace FFXIVClassic_Map_Server.dataobjects
{
currentLockedTarget = actorID;
}
public uint getTargetedActor()
{
return currentTarget;
}
}
}
@@ -0,0 +1,36 @@
using FFXIVClassic_Lobby_Server.packets;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class ActorDoEmotePacket
{
public const ushort OPCODE = 0x00E1;
public const uint PACKET_SIZE = 0x30;
public static SubPacket buildPacket(uint playerActorID, uint targetActorID, uint emoteID)
{
byte[] data = new byte[PACKET_SIZE - 0x20];
using (MemoryStream mem = new MemoryStream(data))
{
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
uint realAnimID = 0x5000000 | ((emoteID - 100) << 12);
uint realDescID = 20000 + ((emoteID - 1) * 10) + (targetActorID == playerActorID || targetActorID == 0xC0000000 ? (uint)2 : (uint)1);
binWriter.Write((UInt32)realAnimID);
binWriter.Write((UInt32)targetActorID);
binWriter.Write((UInt32)realDescID);
}
}
SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data);
return packet;
}
}
}