So this spawn command is to make any chest related things unspawnable and for you not to be able to spawn in Nexus but none of those things work no matter what rank you are! Can someone tell me why please!
Code:
internal class SpawnCommand : Command
{
public SpawnCommand()
: base("spawn", 5)
{
}
protected override bool Process(Player player, RealmTime time, string[] args)
{
int num;
if (args.Length > 0 && int.TryParse(args[0], out num)) //multi
{
string name = string.Join(" ", args.Skip(1).ToArray());
ushort objType;
//creates a new case insensitive dictionary based on the XmlDatas
Dictionary<string, ushort> icdatas = new Dictionary<string, ushort>(
player.Manager.GameData.IdToObjectType,
StringComparer.OrdinalIgnoreCase);
if (!icdatas.TryGetValue(name, out objType) ||
!player.Manager.GameData.ObjectDescs.ContainsKey(objType))
{
player.SendInfo("Unknown entity!");
return false;
}
foreach (KeyValuePair<string, Client> i in player.Manager.Clients)
if (i.Value.Player.Owner is Nexus)
{
player.SendInfo("You cant spawn in Nexus...");
return false;
}
if (name.ToLower().Contains("Vault Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("shtrs Chest Spawner 1"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("shtrs Chest Spawner 2"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("shtrs Chest Spawner 3"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Treasure Chests"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("shtrs Encounter Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("shtrs encounterchestspawner"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Puppet Loot Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Puppet Treasure Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Treasure Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Closed Vault Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Gift Chest Closed"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Gift Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
if (name.ToLower().Contains("Event Chest"))
{
player.SendError("Cannot spawn this object!");
return false;
}
int SpawnLimit = int.Parse(args[0]);
for (int i = 0; i < num; i++)
{
Entity entity = Entity.Resolve(player.Manager, objType);
entity.Move(player.X, player.Y);
player.Owner.EnterWorld(entity);
}
player.SendInfo("Success!");
}
else
{
string name = string.Join(" ", args);
ushort objType;
//creates a new case insensitive dictionary based on the XmlDatas
Dictionary<string, ushort> icdatas = new Dictionary<string, ushort>(
player.Manager.GameData.IdToObjectType,
StringComparer.OrdinalIgnoreCase);
if (!icdatas.TryGetValue(name, out objType) ||
!player.Manager.GameData.ObjectDescs.ContainsKey(objType))
{
player.SendHelp("Usage: /spawn <entityname>");
return false;
}
Entity entity = Entity.Resolve(player.Manager, objType);
entity.Move(player.X, player.Y);
player.Owner.EnterWorld(entity);
}
return true;
}
}
also, https://msdn.microsof*****m/en-us/library/f355wky8.aspx might be a help for you, so you dont have to add an extra 40 lines just for each new object you dont want spawned
edit: woops thats for c++, same idea tho, use || as "or" basically so like
Code:
if (player.Rank = 1 || player.Rank = 2) { player.SendInfo("your rank is either 1 or 2"); }