first commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
using System.Linq;
|
||||
using ClassicAssist.Shared;
|
||||
using ClassicAssist.Shared.Resources;
|
||||
using ClassicAssist.UO.Network.PacketFilter;
|
||||
using ClassicAssist.UO.Network.Packets;
|
||||
using ClassicAssist.UO.Objects;
|
||||
using static ClassicAssist.Shared.UO.Commands;
|
||||
|
||||
namespace ClassicAssist.Data.Macros.Commands
|
||||
{
|
||||
public static class ConsumeCommands
|
||||
{
|
||||
private const int TIMEOUT = 5000;
|
||||
private static readonly int[] _bandageTypes = { 0xe21 };
|
||||
|
||||
[CommandsDisplay( Category = nameof( Strings.Actions ) )]
|
||||
public static bool BandageSelf()
|
||||
{
|
||||
PlayerMobile player = Engine.Player;
|
||||
|
||||
if ( player == null )
|
||||
{
|
||||
SystemMessage( Strings.Error__No_Player );
|
||||
return false;
|
||||
}
|
||||
|
||||
Item backpack = player.Backpack;
|
||||
|
||||
if ( backpack == null )
|
||||
{
|
||||
SystemMessage( Strings.Error__Cannot_find_player_backpack );
|
||||
return false;
|
||||
}
|
||||
|
||||
Item bandage = backpack.Container?.SelectEntity( i => _bandageTypes.Contains( i.ID ) );
|
||||
|
||||
if ( bandage == null )
|
||||
{
|
||||
SystemMessage( Strings.Error__Cannot_find_type );
|
||||
return false;
|
||||
}
|
||||
|
||||
ObjectCommands.UseObject( bandage.Serial );
|
||||
|
||||
PacketWaitEntry we = Engine.PacketWaitEntries.Add( new PacketFilterInfo( 0x6C ), PacketDirection.Incoming );
|
||||
|
||||
bool result = we.Lock.WaitOne( TIMEOUT );
|
||||
|
||||
if ( !result )
|
||||
{
|
||||
SystemMessage( Strings.Target_timeout___ );
|
||||
return false;
|
||||
}
|
||||
|
||||
byte[] packet = we.Packet;
|
||||
|
||||
int senderSerial = ( packet[2] << 24 ) | ( packet[3] << 16 ) | ( packet[4] << 8 ) | packet[5];
|
||||
|
||||
Engine.SendPacketToServer( new Target( senderSerial, player, true ) );
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user