Give command (Multiple items at once)
Multiple items at 1 time
Used such as:
/give 8 Kithio
^^
Even if you have 8 slots available , and do /give 20 you'll get how many slots you have available.
Click Here for Code
Code:
internal class GiveCommand : ICommand
{
public string Command
{
get { return "give"; }
}
public int RequiredRank
{
get { return 1; }
}
public void Execute(Player player, string[] args)
{
if (args.Length == 0)
{
player.SendHelp("Usage: /give [amount] <item name>");
}
else
{
var dir = @"logs";
int num;
int amount = 1;
var name = "";
if (args.Length > 0 && int.TryParse(args[0], out num)) //multi
{
name = string.Join(" ", args.Skip(1).ToArray()).Trim();
amount = int.Parse(args[0]);
}
else
{
name = string.Join(" ", args.ToArray()).Trim();
}
short objType;
var icdatas = new Dictionary<string, short>(XmlData*****ToType, StringComparer.OrdinalIgnoreCase);
if (!icdatas.TryGetValue(name, out objType))
{
player.SendError("Unknown item!");
return;
}
if (!XmlDatas.ItemDescs[objType].Secret || player.Client.Account.Rank >= 5)
{
for (var x = 0; x < amount; x++)
{
for (var i = 0; i < player.Inventory.Length; i++)
{
if (player.Inventory[i] == null)
{
player.Inventory[i] = XmlDatas.ItemDescs[objType];
player.UpdateCount++;
break;
}
else
{
if (i == 11 && x < amount)
{
player.SendError("Inventory full!");
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
using (var writer = new StreamWriter(@"logs\GiveLog.log", true))
{
writer.WriteLine(player.Name + " gave themselves " + amount + " " + name);
}
return;
}
}
}
}
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
using (var writer = new StreamWriter(@"logs\GiveLog.log", true))
{
writer.WriteLine(player.Name + " gave themselves " + amount + " " + name);
}
player.SendInfo("Success!");
return;
}
else
{
player.SendError("Item cannot be given!");
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
using (var writer = new StreamWriter(@"logs\GiveLog.log", true))
{
writer.WriteLine(player.Name + " tried to give themselves " + amount + " " + name);
}
}
}
}
}
[/SPOILER]