/// <summary> /// Creates a house. /// </summary> public void CreateHouse() { Guild.DbGuild.HasHouse = true; if (_house == null) { _house = Collections.MapCollection.GetDynamicMap(1099); _house.Show(); Guild.Warehouse = new CandyConquer.WorldApi.Collections.GuildWarehouse(Guild); foreach (var dbOwnerItem in Database.Dal.Warehouses.GetGuildWarehouseItems(Guild.Id)) { var item = Collections.ItemCollection.CreateItemById((uint)dbOwnerItem.ItemId); item.DbOwnerItem = dbOwnerItem; if (!string.IsNullOrWhiteSpace(dbOwnerItem.Color)) { item.Color = dbOwnerItem.Color.ToEnum <Enums.ItemColor>(); } item.Gem1 = dbOwnerItem.Gem1.ToEnum <Enums.Gem>(); item.Gem2 = dbOwnerItem.Gem2.ToEnum <Enums.Gem>(); Guild.Warehouse.Add(item, null, true); } var dbNpc = new Database.Models.DbNpc { Id = 200000, NpcId = 200000, Type = "Normal", Name = "GuildWarehouse", MapId = _house.Id, X = 44, Y = 23, Flag = 2, Mesh = 5280, Avatar = 0, Server = Drivers.Settings.WorldSettings.Server }; var npc = new Models.Entities.Npc(dbNpc); npc.TeleportDynamic(_house.Id, npc.X, npc.Y); } Guild.DbGuild.Update(); }
/// <summary> /// Creates a warehouse. /// </summary> public void CreateWarehouse() { if (PlayerHouse.DbPlayerHouse.Warehouse) { var dbNpc = new Database.Models.DbNpc { Id = 100000 + PlayerHouse.DbPlayerHouse.MapId, NpcId = (uint)(100000 + PlayerHouse.DbPlayerHouse.MapId), Type = "Normal", Name = "Warehouse", MapId = PlayerHouse.DynamicMapId, X = (ushort)(PlayerHouse.DbPlayerHouse.IsBig ? 44 : 32), Y = (ushort)(PlayerHouse.DbPlayerHouse.IsBig ? 23 : 25), Flag = 2, Mesh = 5280, Avatar = 0, Server = Drivers.Settings.WorldSettings.Server }; var npc = new Models.Entities.Npc(dbNpc); npc.TeleportDynamic(dbNpc.MapId, npc.X, npc.Y); } }
/// <summary> /// Loads the npc collection. /// </summary> public static void Load() { if (_npcs.Count > 0) { foreach (var npc in _npcs) { npc.Value.Despawn(); } } _npcs.Clear(); var dbNpcs = Database.Dal.Npcs.GetAll(Drivers.Settings.GlobalSettings.ServerName); foreach (var dbNpc in dbNpcs) { var npc = new Models.Entities.Npc(dbNpc); if (_npcs.TryAdd(npc.ClientId, npc)) { npc.Teleport(dbNpc.MapId, npc.X, npc.Y); } } }
/// <summary> /// Attempts to get a npc. /// </summary> /// <param name="npcId">The npc id.</param> /// <param name="npc">The npc.</param> /// <returns>True if the npc was retrieved, false otherwise.</returns> public static bool TryGetNpc(uint npcId, out Models.Entities.Npc npc) { return(_npcs.TryGetValue(npcId, out npc)); }