void Player_GiveGoldW(byte type, long gold)
{
#region Instert gold into storage
try
{
//Check if the user isnt in any state/action that we will not allow.
if (!Character.State.Die || !Character.Stall.Stallactive || !Character.Alchemy.working || !Character.Position.Walking)
{
//Check if the deposit gold is equally or higher then player inventory gold
if (Character.Information.Gold >= gold)
{
//If the user is storing in normal storage
if (!Character.Network.Guild.UsingStorage)
{
//Set new storage gold plus
Character.Account.StorageGold += gold;
//Update player inventory gold minus
Character.Information.Gold -= gold;
//Send update packet
client.Send(Packet.UpdateGold(Character.Information.Gold));
//Send visual packet of moving gold
client.Send(Packet.MoveItem(type, 0, 0, 0, gold, "MOVE_WAREHOUSE_GOLD"));
//Save gold information
SaveGold();
}
//If the user is using guild storage
else
{
//Set new storage gold plus
Character.Network.Guild.StorageGold += gold;
//Update player inventory gold minus
Character.Information.Gold -= gold;
//Send update packet
client.Send(Packet.UpdateGold(Character.Information.Gold));
client.Send(Packet.GuildGoldUpdate(Character.Network.Guild.StorageGold, 0x20));
client.Send(Packet.GuildStorageGold(Character));
//Save gold information
SaveGold();
//Save guild gold
SaveGuildGold();
}
}
//If gold is to low
else
{
//Send error message to player
client.Send(Packet.IngameMessages(SERVER_UPDATEGOLD, IngameMessages.UIIT_MSG_STRGERR_NOT_ENOUGH_GOLD));
}
}
}
catch (Exception ex)
{
Console.WriteLine("Deposit gold error {0}", ex);
Systems.Debugger.Write(ex);
}
//Save player information
SavePlayerInfo();
#endregion
}