first commit

This commit is contained in:
Beyhan Oğur
2026-09-03 04:45:36 +03:00
commit d5f52cc3d3
1038 changed files with 169579 additions and 0 deletions
@@ -0,0 +1,97 @@
using ClassicAssist.Shared;
using ClassicAssist.Data;
using ClassicAssist.Data.Macros.Commands;
using ClassicAssist.Shared.Resources;
using ClassicAssist.Shared.UO;
using ClassicAssist.UO.Data;
using ClassicAssist.UO.Network.PacketFilter;
using ClassicAssist.UO.Objects;
namespace ClassicAssist.UO.Network.Packets
{
public class Target : BasePacket, IMacroCommandParser
{
public Target()
{
}
public Target( int senderSerial, Entity entity, bool cancelClientCursor ) : this( TargetType.Object,
senderSerial, TargetFlags.None, entity.Serial, -1, -1, -1, entity.ID, cancelClientCursor )
{
}
public Target( TargetType targetType, int senderSerial, TargetFlags flags, int targetSerial, int x, int y,
int z, int id, bool cancelClientCursor )
{
if ( senderSerial == -1 )
{
senderSerial = Engine.TargetSerial;
}
if ( targetSerial > 0 )
{
Engine.Player.LastTargetSerial = targetSerial;
Engine.Player.LastTargetType = targetType;
}
if ( Engine.TargetFlags == TargetFlags.Harmful &&
Options.CurrentOptions.PreventTargetingFriendsWithHarmful &&
MobileCommands.InFriendList( targetSerial ) )
{
Commands.SystemMessage( Strings.Target_blocked____try_again___ );
Commands.ResendTargetToClient();
return;
}
_writer = new PacketWriter( 19 );
_writer.Write( (byte) 0x6C );
_writer.Write( (byte) targetType );
_writer.Write( senderSerial );
_writer.Write( (byte) flags );
_writer.Write( targetSerial );
_writer.Write( (short) x );
_writer.Write( (short) y );
_writer.Write( (short) z );
_writer.Write( (short) id );
Engine.TargetExists = false;
if ( cancelClientCursor )
{
Engine.SendPacketToClient( new Target( targetType, senderSerial, TargetFlags.Cancel, targetSerial, x, y,
z, id, false ) );
Engine.AddSendPreFilter( new PacketFilterInfo( 0x6C,
new[] { PacketFilterConditions.IntAtPositionCondition( senderSerial, 2 ) },
( p, pfi ) => { Engine.RemoveSendPreFilter( pfi ); } ) );
}
}
public string Parse( byte[] packet, int length, PacketDirection direction )
{
if ( packet[0] != 0x6C )
{
return null;
}
if ( direction == PacketDirection.Incoming )
{
return "WaitForTarget(5000)\r\n";
}
if ( packet[1] == 0 )
{
uint serial = (uint) ( ( packet[7] << 24 ) | ( packet[8] << 16 ) | ( packet[9] << 8 ) | packet[10] );
return $"Target(0x{serial:x})\r\n";
}
int x = ( packet[11] << 8 ) | packet[12];
int y = ( packet[13] << 8 ) | packet[14];
int z = (sbyte) ( packet[15] << 8 ) | (sbyte) packet[16];
int id = ( packet[17] << 8 ) | packet[18];
return id == 0 ? $"TargetXYZ({x}, {y}, {z})\r\n" : $"TargetXYZ({x}, {y}, {z}, {id})\r\n";
}
}
}