Advertisement
Guest User

Untitled

a guest
May 27th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.43 KB | None | 0 0
  1. public static bool SwitchEquipment(GameState client, bool toAlternative)
  2.         {
  3.             if (client.Player.ContainsFlag((ulong)MsgUpdate.Flags.Fly))
  4.             {
  5.                 client.Send("You cannot switch equipment during flight.");
  6.                 return false;
  7.             }
  8.             if (client.Equipment.Free(MsgItemInfo.AlternateRightWeapon) && !client.Equipment.Free(MsgItemInfo.AlternateLeftWeapon))
  9.             {
  10.                 client.Send("Invalid weapons! Missing the important weapons? Unequip the alternative left weapon.");
  11.                 return false;
  12.             }
  13.             foreach (var eq in client.Equipment.Objects)
  14.             {
  15.                 if (eq != null)
  16.                 {
  17.                     if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(eq.ID))
  18.                     {
  19.                         client.Send("You cannot switch equipment because " + ((Enums.ItemPositionName)eq.Position).ToString().Replace("_", "~") + "'" + ((eq.Position % 20) == MsgItemInfo.Boots ? "" : "s") + " stats are not compatible with you (level or profession).");
  20.                         return false;
  21.                     }
  22.                     var itemInfo = Database.ConquerItemInformation.BaseInformations[eq.ID];
  23.                     if (!((ItemHandler.EquipPassLvlReq(itemInfo, client) || ItemHandler.EquipPassRbReq(itemInfo, client)) && ItemHandler.EquipPassJobReq(itemInfo, client)))
  24.                     {
  25.                         client.Send("You cannot switch equipment because " + ((Enums.ItemPositionName)eq.Position).ToString().Replace("_", "~") + "'" + ((eq.Position % 20) == MsgItemInfo.Boots ? "" : "s") + " stats are not compatible with you (level or profession).");
  26.                         return false;
  27.                     }
  28.                 }
  29.             }
  30.             client.Player.AttackPacket = null;
  31.             if (client.Player.ContainsFlag3((ulong)MsgUpdate.Flags3.PathOfShadow))
  32.                 client.Player.RemoveFlag3((ulong)MsgUpdate.Flags3.PathOfShadow);
  33.             if (client.Player.ContainsFlag((ulong)MsgUpdate.Flags.Fly))
  34.                 client.Player.RemoveFlag((ulong)MsgUpdate.Flags.Fly);
  35.             client.AlternateEquipment = toAlternative;
  36.             client.LoadItemStats();
  37.             client.Equipment.UpdateEntityPacket();
  38.             MsgPlayerAttriInfo Stats = new MsgPlayerAttriInfo(client);
  39.             client.Send(Stats.ToArray());
  40.             return true;
  41.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement