コード例 #1
0
        /// <summary>
        /// Delete the target <(0=World,1=Database)>
        /// </summary>
        /// <param name="plr">Player that initiated the command</param>
        /// <param name="values">List of command arguments (after command name)</param>
        /// <returns>True if command was correctly handled, false if operation was canceled</returns>
        public static bool NpcRemove(Player plr, ref List <string> values)
        {
            Object obj = GetObjectTarget(plr);

            if (!obj.IsCreature())
            {
                return(false);
            }

            int database = GetInt(ref values);

            obj.Dispose();

            if (database > 0)
            {
                Creature_spawn spawn = obj.GetCreature().Spawn;
                WorldMgr.Database.DeleteObject(spawn);

                GMCommandLog log = new GMCommandLog();
                log.PlayerName = plr.Name;
                log.AccountId  = (uint)plr.Client._Account.AccountId;
                log.Command    = "REMOVE CREATURE " + spawn.Entry + " " + spawn.Guid + " AT " + spawn.ZoneId + " " + spawn.WorldX + " " + spawn.WorldY;
                log.Date       = DateTime.Now;
                CharMgr.Database.AddObject(log);
            }

            plr.SendClientMessage("NPC REMOVE: Removed " + obj.GetCreature().Spawn.Guid);

            return(true);
        }
コード例 #2
0
        /// <summary>
        /// Converts selected Object to a Instance spawn <objective id>
        /// </summary>
        /// <param name="plr">Player that initiated the command</param>
        /// <param name="values">List of command arguments (after command name)</param>
        /// <returns>True if command was correctly handled, false if operation was canceled</returns>
        public static bool InstanceConvert(Player plr, ref List <string> values)
        {
            //<BossId> <spawngroup> <realm>

            int bossId     = GetInt(ref values);
            int spawngroup = GetInt(ref values);
            int realm      = GetInt(ref values);

            //creatures only atm
            Object obj = GetObjectTarget(plr);

            if (!obj.IsCreature())
            {
                return(false);
            }
            obj.Dispose();

            Creature_spawn spawn = obj.GetCreature().Spawn;

            WorldMgr.Database.DeleteObject(spawn);

            Instance_Spawn newSpawn = new Instance_Spawn();

            newSpawn.Instance_spawns_ID = Guid.NewGuid().ToString();
            newSpawn.Entry           = spawn.Entry;
            newSpawn.WorldO          = (ushort)spawn.WorldO;
            newSpawn.WorldY          = spawn.WorldY;
            newSpawn.WorldZ          = spawn.WorldZ;
            newSpawn.WorldX          = spawn.WorldX;
            newSpawn.ZoneID          = (ushort)spawn.ZoneId;
            newSpawn.Emote           = spawn.Emote;
            newSpawn.Level           = spawn.Level;
            newSpawn.SpawnGroupID    = (uint)spawngroup;
            newSpawn.ConnectedbossId = (uint)bossId;
            newSpawn.Realm           = (byte)realm;


            WorldMgr.Database.AddObject(newSpawn);

            return(true);
        }
コード例 #3
0
ファイル: PqCommands.cs プロジェクト: cooler-SAI/ProjectWAR
        /// <summary>
        /// Converts selected Object to a PQ spawn <objective id>
        /// </summary>
        /// <param name="plr">Player that initiated the command</param>
        /// <param name="values">List of command arguments (after command name)</param>
        /// <returns>True if command was correctly handled, false if operation was canceled</returns>
        public static bool PqConvert(Player plr, ref List <string> values)
        {
            int objective = GetInt(ref values);
            int type      = GetInt(ref values);

            //creatures only atm
            Object obj = GetObjectTarget(plr);

            switch (type)
            {
            case 1:
                if (!obj.IsCreature())
                {
                    return(false);
                }
                obj.Dispose();

                Creature_spawn spawn = obj.GetCreature().Spawn;
                WorldMgr.Database.DeleteObject(spawn);

                PQuest_Spawn newSpawn = new PQuest_Spawn();
                //Added pquest_spawns_ID here as it is required to correctly save it to DB after this field was
                //added in PQuest_spawn.cs
                newSpawn.pquest_spawns_ID = Guid.NewGuid().ToString();
                newSpawn.Entry            = spawn.Entry;
                newSpawn.Objective        = (uint)objective;
                newSpawn.Type             = 1; // npc
                newSpawn.WorldO           = spawn.WorldO;
                newSpawn.WorldY           = spawn.WorldY;
                newSpawn.WorldZ           = spawn.WorldZ;
                newSpawn.WorldX           = spawn.WorldX;
                newSpawn.ZoneId           = spawn.ZoneId;
                newSpawn.Emote            = spawn.Emote;
                newSpawn.Level            = spawn.Level;

                WorldMgr.Database.AddObject(newSpawn);
                break;

            case 2:
                if (!obj.IsGameObject())
                {
                    return(false);
                }
                obj.Dispose();

                GameObject_spawn gospawn = obj.GetGameObject().Spawn;
                WorldMgr.Database.DeleteObject(gospawn);

                PQuest_Spawn newSpawngo = new PQuest_Spawn();
                newSpawngo.pquest_spawns_ID = Guid.NewGuid().ToString();
                newSpawngo.Entry            = gospawn.Entry;
                newSpawngo.Objective        = (uint)objective;
                newSpawngo.Type             = 2; // go
                newSpawngo.WorldO           = gospawn.WorldO;
                newSpawngo.WorldY           = gospawn.WorldY;
                newSpawngo.WorldZ           = gospawn.WorldZ;
                newSpawngo.WorldX           = gospawn.WorldX;
                newSpawngo.ZoneId           = gospawn.ZoneId;
                newSpawngo.Unks             = gospawn.Unks;

                WorldMgr.Database.AddObject(newSpawngo);
                break;

            case 3:
                if (!obj.IsGameObject())
                {
                    return(false);
                }

                GameObject_spawn gointspawn = obj.GetGameObject().Spawn;

                PQuest_Spawn newSpawnintgo = new PQuest_Spawn();
                newSpawnintgo.pquest_spawns_ID = Guid.NewGuid().ToString();
                newSpawnintgo.Entry            = ((GameObject)obj).Spawn.Guid;
                newSpawnintgo.Objective        = (uint)objective;
                newSpawnintgo.Type             = 3; // change interaction of a spawned go
                WorldMgr.Database.AddObject(newSpawnintgo);
                break;
            }



            return(true);
        }