Find in Character.cs:
inside it put:
Code:
if (Equips.RightHand.ID >= 500003 && Equips.RightHand.ID < 500999 && arrowsloaded == false)
{
if (InventoryContains(1050000, 1) && Equips.LeftHand.ID != 1050000 && Equips.LeftHand.ID != 1050001 && Equips.LeftHand.ID != 1050002)
{
arrowsloaded = true;
Item I = Equips.Get(5);
I.ID = 1050000;
I.UID = (uint)Rnd.Next(10000000);
I.MaxDur = I.DBInfo.Durability;
I.CurDur = I.MaxDur;
if (I.UID == 0)
{
I.UID = (uint)Rnd.Next(10000000);
}
MyClient.AddSend(Packets.AddItem(I, 5));
RemoveItem(this.NextItem(1050000));
}
if (InventoryContains(1050001, 1) && Equips.LeftHand.ID != 1050001 && Equips.LeftHand.ID != 1050000 && Equips.LeftHand.ID != 1050002)
{
arrowsloaded = true;
Item I = Equips.Get(5);
I.ID = 1050001;
I.UID = (uint)Rnd.Next(10000000);
I.MaxDur = I.DBInfo.Durability;
I.CurDur = I.MaxDur;
if (I.UID == 0)
{
I.UID = (uint)Rnd.Next(10000000);
}
MyClient.AddSend(Packets.AddItem(I, 5));
RemoveItem(this.NextItem(1050001));
}
if (InventoryContains(1050002, 1) && Equips.LeftHand.ID != 1050002 && Equips.LeftHand.ID != 1050001 && Equips.LeftHand.ID != 1050000)
{
arrowsloaded = true;
Item I = Equips.Get(5);
I.ID = 1050002;
I.UID = (uint)Rnd.Next(10000000);
I.MaxDur = I.DBInfo.Durability;
I.CurDur = I.MaxDur;
if (I.UID == 0)
{
I.UID = (uint)Rnd.Next(10000000);
}
MyClient.AddSend(Packets.AddItem(I, 5));
RemoveItem(this.NextItem(1050002));
}
}
/*
Add more arrows down here, this is a really simple way, could be done much better
*/
define in character.cs
Code:
public bool arrowsloaded = false;
now find:
Code:
public uint PrepareAttack(byte AtkType, bool ArrowCost)
replace it with:
Code:
public uint PrepareAttack(byte AtkType, bool ArrowCost)
{
AtkMem.LastAttack = DateTime.Now;
AttackType A = (AttackType)AtkType;
bool EnoughArrows = true;
if (A == AttackType.Ranged && ArrowCost)
{
if (Loc.Map != 1039)
{
if (Equips.LeftHand.ID != 0 && Item.IsArrow(Equips.LeftHand.ID))
{
Equips.LeftHand.CurDur -= 1;
if (Equips.LeftHand.CurDur == 0)
{
arrowsloaded = false;
MyClient.AddSend(Packets.ItemPacket(Equips.LeftHand.UID, 5, 6));
MyClient.AddSend(Packets.ItemPacket(Equips.LeftHand.UID, 0, 3));
Equips.LeftHand = new Item();
}
else
MyClient.AddSend(Packets.AddItem(Equips.LeftHand, 5));
}
else
{
AtkMem.Attacking = false;
EnoughArrows = false;
}
}
}