/// <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); }
/// <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); }
/// <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); }