コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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);
        }