public static void SetSecondaryAbility() { Item right = World.Player.GetItemOnLayer(Layer.RightHand); Item left = World.Player.GetItemOnLayer(Layer.LeftHand); AOSAbility a = AOSAbility.Invalid; if (right != null) { a = GetAbility(right.ItemID.Value, m_Secondary); } if (a == AOSAbility.Invalid && left != null) { a = GetAbility(left.ItemID.Value, m_Secondary); } if (a == AOSAbility.Invalid) { a = GetAbility(FistsID[0], m_Secondary); } if (a != AOSAbility.Invalid) { ClientCommunication.SendToServer(new UseAbility(a)); ClientCommunication.SendToClient(ClearAbility.Instance); World.Player.SendMessage(LocString.SettingAOSAb, a); } }
internal static void SetSecondaryAbility(bool wait) { Item right = World.Player.GetItemOnLayer(Layer.RightHand); Item left = World.Player.GetItemOnLayer(Layer.LeftHand); AOSAbility a = AOSAbility.Invalid; if (right != null) { a = GetAbility(right.ItemID.Value, m_Secondary); } if (a == AOSAbility.Invalid && left != null) { a = GetAbility(left.ItemID.Value, m_Secondary); } if (a == AOSAbility.Invalid) { a = GetAbility(FistsID[0], m_Secondary); } if (a != AOSAbility.Invalid) { if (right != null) // Fix per arma con special differente se in volo o meno gargoyle { if (right.ItemID == 0x0901 || right.ItemID == 0x406C) { if (World.Player.Flying) { a = AOSAbility.ParalyzingBlow; } else { a = AOSAbility.Dismount; } } } RazorEnhanced.SpellGrid.UpdateSAHighLight((int)a); World.Player.HasSpecial = HasSecondary = true; HasPrimary = false; if (wait) { Assistant.Client.Instance.SendToServerWait(new UseAbility(a)); Assistant.Client.Instance.SendToClientWait(ClearAbility.Instance); } else { Assistant.Client.Instance.SendToServer(new UseAbility(a)); Assistant.Client.Instance.SendToClient(ClearAbility.Instance); } World.Player.SendMessage(LocString.SettingAOSAb, a); } }
// ints are 'encoded' with a leading bool, if true then the number is 0, if flase then followed by all 4 bytes (lame :-) public UseAbility(AOSAbility a) : base(0xD7) { EnsureCapacity(1 + 2 + 4 + 2 + 4); Write((uint)World.Player.Serial); Write((ushort)0x19); if (a == AOSAbility.Clear) { Write(true); } else { Write(false); Write((int)a); } }
internal static void SetPrimaryAbility(bool wait) { if (HasPrimary) { return; } Item right = World.Player.GetItemOnLayer(Layer.RightHand); Item left = World.Player.GetItemOnLayer(Layer.LeftHand); AOSAbility a = AOSAbility.Invalid; if (right != null) { a = GetAbility(right.ItemID.Value, m_Primary); } if (a == AOSAbility.Invalid && left != null) { a = GetAbility(left.ItemID.Value, m_Primary); } if (a == AOSAbility.Invalid) { a = GetAbility(FistsID[0], m_Primary); } if (a != AOSAbility.Invalid) { World.Player.HasSpecial = true; HasPrimary = true; HasSecondary = false; RazorEnhanced.SpellGrid.UpdateSAHighLight((int)a); if (wait) { Assistant.Client.Instance.SendToServerWait(new UseAbility(a)); Assistant.Client.Instance.SendToClientWait(ClearAbility.Instance); } else { Assistant.Client.Instance.SendToServer(new UseAbility(a)); Assistant.Client.Instance.SendToClient(ClearAbility.Instance); } World.Player.SendMessage(LocString.SettingAOSAb, a); } }
internal static void SetSecondaryAbility() { Item right = World.Player.GetItemOnLayer(Layer.RightHand); Item left = World.Player.GetItemOnLayer(Layer.LeftHand); AOSAbility a = AOSAbility.Invalid; if (right != null) { a = GetAbility(right.ItemID.Value, m_Secondary); } if (a == AOSAbility.Invalid && left != null) { a = GetAbility(left.ItemID.Value, m_Secondary); } if (a == AOSAbility.Invalid) { a = GetAbility(FistsID[0], m_Secondary); } if (a != AOSAbility.Invalid) { if (right != null) // Fix per arma con special differente se in volo o meno gargoyle { if (right.ItemID == 0x0901 || right.ItemID == 0x406C) { if (World.Player.Flying) { a = AOSAbility.ParalyzingBlow; } else { a = AOSAbility.Dismount; } } } World.Player.HasSpecial = true; ClientCommunication.SendToServer(new UseAbility(a)); ClientCommunication.SendToClient(ClearAbility.Instance); World.Player.SendMessage(LocString.SettingAOSAb, a); } }
// ints are 'encoded' with a leading bool, if true then the number is 0, if flase then followed by all 4 bytes (lame :-) internal UseAbility(AOSAbility a) : base(0xD7) { EnsureCapacity(1 + 2 + 4 + 2 + 4); Write((uint)World.Player.Serial); Write((ushort)0x19); if (a == AOSAbility.Clear) { Write((byte)0x00); Write((byte)0x00); Write((byte)0x00); Write((byte)0x00); } else { Write(false); Write((int)a); } Write((byte)0x0A); }
public AbilityInfo( AOSAbility ab, params int[][] items ) { m_Ability = (AOSAbility)ab; m_Items = items; }
internal AbilityInfo(AOSAbility ab, params int[][] items) { m_Ability = (AOSAbility)ab; m_Items = items; }
public SetAbilityAction( AOSAbility a ) { m_Ability = a; }
public SetAbilityAction( string[] args ) { m_Ability = (AOSAbility)Convert.ToInt32( args[1] ); }
// ints are 'encoded' with a leading bool, if true then the number is 0, if flase then followed by all 4 bytes (lame :-) public UseAbility( AOSAbility a ) : base(0xD7) { EnsureCapacity( 1 + 2 + 4 + 2 + 4 ); Write( (uint)World.Player.Serial ); Write( (ushort)0x19 ); if ( a == AOSAbility.Clear ) { Write( true ); } else { Write( false ); Write( (int)a ); } }