public void Execute(Character character, string[] args) { if (args.Length < 2) { character.SendMessage("[Spawn] /spawn <objType: npc, doodad> <unitId>"); return; } if (uint.TryParse(args[1], out var unitId)) { switch (args[0]) { case "npc": if (!NpcManager.Instance.Exist(unitId)) { character.SendMessage("[Spawn] NPC {0} don't exist", unitId); return; } var npcSpawner = new NpcSpawner(); npcSpawner.Id = 0; npcSpawner.UnitId = unitId; npcSpawner.Position = character.Position.Clone(); npcSpawner.Position.Y += 3; npcSpawner.SpawnAll(); break; case "doodad": if (!DoodadManager.Instance.Exist(unitId)) { character.SendMessage("[Spawn] Doodad {0} don't exist", unitId); return; } var doodadSpawner = new DoodadSpawner(); doodadSpawner.Id = 0; doodadSpawner.UnitId = unitId; doodadSpawner.Position = character.Position.Clone(); doodadSpawner.Position.Y += 3; doodadSpawner.Spawn(0); break; } } else { character.SendMessage("[Spawn] Throw parse unitId"); } }
public override void Apply(Unit caster, SkillCaster casterObj, BaseUnit target, SkillCastTarget targetObj, CastAction castObj, Skill skill, SkillObject skillObject, DateTime time) { _log.Debug("PutDownBackpackEffect"); Character character = (Character)caster; if (character == null) { return; } SkillItem packItem = (SkillItem)casterObj; if (packItem == null) { return; } Item item = character.Inventory.GetItem(packItem.ItemId); if (item == null) { return; } InventoryHelper.RemoveItemAndUpdateClient(character, item, 1); // Spawn doodad var doodadSpawner = new DoodadSpawner(); doodadSpawner.Id = 0; doodadSpawner.UnitId = BackpackDoodadId; doodadSpawner.Position = character.Position.Clone(); doodadSpawner.Spawn(0); }