mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-25 22:27:45 +00:00

Added formulas for base EXP gain and chain experience Added basic scripts for most player abilities and effects Added stat gains for some abilities Changed status flags Fixed bug with player death Fixed bug where auto attacks didnt work when not locked on Added traits
52 lines
No EOL
1.7 KiB
C#
52 lines
No EOL
1.7 KiB
C#
using FFXIVClassic.Common;
|
|
using System;
|
|
using System.IO;
|
|
|
|
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
|
{
|
|
// see xtx_command
|
|
enum BattleActionX01PacketCommand : ushort
|
|
{
|
|
Disengage = 12002,
|
|
Attack = 22104,
|
|
}
|
|
|
|
class BattleActionX01Packet
|
|
{
|
|
public const ushort OPCODE = 0x0139;
|
|
public const uint PACKET_SIZE = 0x58;
|
|
|
|
public static SubPacket BuildPacket(uint sourceActorId, uint animationId, ushort commandId, BattleAction action)
|
|
{
|
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
|
|
|
using (MemoryStream mem = new MemoryStream(data))
|
|
{
|
|
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
|
{
|
|
binWriter.Write((UInt32)sourceActorId);
|
|
|
|
binWriter.Write((UInt32)animationId);
|
|
|
|
//Missing... last value is float, string in here as well?
|
|
|
|
binWriter.Seek(0x20, SeekOrigin.Begin);
|
|
binWriter.Write((UInt32)1); //Num actions (always 1 for this)
|
|
binWriter.Write((UInt16)commandId);
|
|
binWriter.Write((UInt16)0x801); //?
|
|
|
|
binWriter.Write((UInt32)action.targetId);
|
|
|
|
binWriter.Write((UInt16)action.amount);
|
|
binWriter.Write((UInt16)action.worldMasterTextId);
|
|
|
|
binWriter.Write((UInt32)action.effectId);
|
|
binWriter.Write((Byte)action.param);
|
|
binWriter.Write((Byte)1); //?
|
|
}
|
|
}
|
|
new SubPacket(OPCODE, sourceActorId, data).DebugPrintSubPacket();
|
|
return new SubPacket(OPCODE, sourceActorId, data);
|
|
}
|
|
}
|
|
} |