/// <summary> /// Method to save the Patrol Path using the Patrol ID and the Component /// </summary> /// <param name="pathID"></param> /// <param name="path"></param> /// <param name="component"></param> public static void SavePatrolPath(string pathID, PathPoint path, GameKeepComponent component) { if (path == null) { return; } pathID.Replace('\'', '/'); // we must replace the ', found no other way yet GameServer.Database.DeleteObject(DOLDB <DBPath> .SelectObjects(DB.Column(nameof(DBPath.PathID)).IsEqualTo(pathID))); PathPoint root = MovementMgr.FindFirstPathPoint(path); //Set the current pathpoint to the rootpoint! path = root; DBPath dbp = new DBPath(pathID, ePathType.Loop); GameServer.Database.AddObject(dbp); int i = 1; do { DBPathPoint dbpp = new DBPathPoint(path.X, path.Y, path.Z, path.MaxSpeed); int x, y; SaveXY(component, dbpp.X, dbpp.Y, out x, out y); dbpp.X = x; dbpp.Y = y; dbpp.Z = dbpp.Z - component.Z; dbpp.Step = i++; dbpp.PathID = pathID; dbpp.WaitTime = path.WaitTime; GameServer.Database.AddObject(dbpp); path = path.Next; } while (path != null && path != root); }
/// <summary> /// This method is important, because players could fall through air /// if they are on the top of a keep when it is captured because /// the keep size will reset /// </summary> protected void ResetPlayersOfKeep() { ushort distance = 0; int id = 0; if (this is GameKeepTower) { distance = 750; id = 11; } else { distance = 1500; id = 10; } GameKeepComponent component = null; foreach (GameKeepComponent c in this.KeepComponents) { if (c.Skin == id) { component = c; break; } } if (component == null) { return; } if (!component.HookPoints.TryGetValue(97, out var hookpoint)) { return; } //predict Z DBKeepHookPoint hp = DOLDB <DBKeepHookPoint> .SelectObject(DB.Column("HookPointID").IsEqualTo(97).And(DB.Column("Height").IsEqualTo(Height))); if (hp == null) { return; } int z = component.Z + hp.Z; foreach (GamePlayer player in component.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE)) { int d = hookpoint.GetDistance(player as IPoint2D); if (d > distance) { continue; } if (player.Z > z) { player.MoveTo(player.CurrentRegionID, player.X, player.Y, z, player.Heading); } } }
/// <summary> /// Load the guard from the database /// </summary> /// <param name="mobobject">The database mobobject</param> public override void LoadFromDatabase(DataObject mobobject) { if (mobobject == null) { return; } base.LoadFromDatabase(mobobject); string sKey = mobobject.ObjectId; foreach (AbstractArea area in this.CurrentAreas) { if (area is KeepArea keepArea) { Component = new GameKeepComponent(); Component.Keep = keepArea.Keep; m_dataObjectID = mobobject.ObjectId; // mob reload command might be reloading guard, so check to make sure it isn't already added if (Component.Keep.Guards.ContainsKey(sKey) == false) { Component.Keep.Guards.Add(sKey, this); } // break; This is a bad idea. If there are multiple KeepAreas, we should put a guard on each } } RefreshTemplate(); }
public override void LoadFromDatabase(DataObject obj) { base.LoadFromDatabase(obj); foreach (AbstractArea area in this.CurrentAreas) { if (area is KeepArea) { AbstractGameKeep keep = (area as KeepArea).Keep; Component = new GameKeepComponent(); Component.AbstractKeep = keep; Component.AbstractKeep.Banners.Add(obj.ObjectId, this); if (this.Model == AlbionGuildModel || this.Model == MidgardGuildModel || this.Model == HiberniaGuildModel) { BannerType = eBannerType.Guild; } else { BannerType = eBannerType.Realm; } if (BannerType == eBannerType.Guild && Component.AbstractKeep.Guild != null) { ChangeGuild(); } else { ChangeRealm(); } break; } } }
public virtual void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { m_templateID = pos.TemplateID; m_component = component; BannerType = (eBannerType)pos.TemplateType; PositionMgr.LoadKeepItemPosition(pos, this); component.AbstractKeep.Banners[m_templateID] = this; if (BannerType == eBannerType.Guild) { if (component.AbstractKeep.Guild != null) { ChangeGuild(); Z += 1500; this.AddToWorld(); } } else { ChangeRealm(); Z += 1000; // this works around an issue where all banners are at keep level instead of on top // with a z value > height of the keep the banners show correctly - tolakram this.AddToWorld(); } }
public virtual void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { m_templateID = pos.TemplateID; m_component = component; PositionMgr.LoadKeepItemPosition(pos, this); component.AbstractKeep.Doors[m_templateID] = this; m_oldMaxHealth = MaxHealth; m_health = MaxHealth; m_name = "Keep Door"; m_oldHealthPercent = HealthPercent; m_doorID = GenerateDoorID(); m_model = 0xFFFF; m_state = eDoorState.Closed; if (AddToWorld()) { StartHealthRegeneration(); DoorMgr.RegisterDoor(this); } else { log.Error("Failed to load keep door from position! DoorID=" + m_doorID + ". Component SkinID=" + component.Skin + ". KeepID=" + component.AbstractKeep.KeepID); } }
public GameKeepHookPoint(DBKeepHookPoint dbhookPoint, GameKeepComponent component) { double angle = component.Keep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; Vector3 p = component.Position; switch (component.ComponentHeading) { case 0: p.X += (int)(Math.Cos(angle) * dbhookPoint.X + Math.Sin(angle) * dbhookPoint.Y); p.Y -= (int)(Math.Cos(angle) * dbhookPoint.Y + Math.Sin(angle) * dbhookPoint.X); break; case 1: p.X += (int)(Math.Cos(angle) * dbhookPoint.Y - Math.Sin(angle) * dbhookPoint.X); p.Y += (int)(Math.Cos(angle) * dbhookPoint.X + Math.Sin(angle) * dbhookPoint.Y); break; case 2: p.X -= (int)(Math.Cos(angle) * dbhookPoint.X - Math.Sin(angle) * dbhookPoint.Y); p.Y += (int)(Math.Cos(angle) * dbhookPoint.Y - Math.Sin(angle) * dbhookPoint.X); break; case 3: p.X -= (int)(Math.Cos(angle) * dbhookPoint.Y + Math.Sin(angle) * dbhookPoint.X); p.Y -= (int)(Math.Cos(angle) * dbhookPoint.X - Math.Sin(angle) * dbhookPoint.Y); break; } p.Z += dbhookPoint.Z; this.Position = p; this.Heading = (ushort)(component.Heading + dbhookPoint.Heading); this.m_index = dbhookPoint.HookPointID; this.Component = component; m_hookpointTimer = new HookpointTimer(this, this.Component); }
public GameKeepHookPoint(DBKeepHookPoint dbhookPoint, GameKeepComponent component) { double angle = component.AbstractKeep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; switch (component.ComponentHeading) { case 0: X = (int)(component.X + Math.Cos(angle) * dbhookPoint.X + Math.Sin(angle) * dbhookPoint.Y); Y = (int)(component.Y - Math.Cos(angle) * dbhookPoint.Y + Math.Sin(angle) * dbhookPoint.X); break; case 1: X = (int)(component.X + Math.Cos(angle) * dbhookPoint.Y - Math.Sin(angle) * dbhookPoint.X); Y = (int)(component.Y + Math.Cos(angle) * dbhookPoint.X + Math.Sin(angle) * dbhookPoint.Y); break; case 2: X = (int)(component.X - Math.Cos(angle) * dbhookPoint.X - Math.Sin(angle) * dbhookPoint.Y); Y = (int)(component.Y + Math.Cos(angle) * dbhookPoint.Y - Math.Sin(angle) * dbhookPoint.X); break; case 3: X = (int)(component.X - Math.Cos(angle) * dbhookPoint.Y + Math.Sin(angle) * dbhookPoint.X); Y = (int)(component.Y - Math.Cos(angle) * dbhookPoint.X - Math.Sin(angle) * dbhookPoint.Y); break; } this.Z = component.Z + dbhookPoint.Z; this.Heading = (ushort)(component.Heading + dbhookPoint.Heading); this.m_index = dbhookPoint.HookPointID; this.Component = component; m_hookpointTimer = new HookpointTimer(this, this.Component); }
public GameKeepHookPoint(DBKeepHookPoint dbhookPoint, GameKeepComponent component) { double angle = component.Keep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; switch (component.ComponentHeading) { case 0: X = (int)(component.X + Math.Cos(angle) * dbhookPoint.X + Math.Sin(angle) * dbhookPoint.Y); Y = (int)(component.Y - Math.Cos(angle) * dbhookPoint.Y + Math.Sin(angle) * dbhookPoint.X); break; case 1: X = (int)(component.X + Math.Cos(angle) * dbhookPoint.Y - Math.Sin(angle) * dbhookPoint.X); Y = (int)(component.Y + Math.Cos(angle) * dbhookPoint.X + Math.Sin(angle) * dbhookPoint.Y); break; case 2: X = (int)(component.X - Math.Cos(angle) * dbhookPoint.X - Math.Sin(angle) * dbhookPoint.Y); Y = (int)(component.Y + Math.Cos(angle) * dbhookPoint.Y - Math.Sin(angle) * dbhookPoint.X); break; case 3: X = (int)(component.X - Math.Cos(angle) * dbhookPoint.Y + Math.Sin(angle) * dbhookPoint.X); Y = (int)(component.Y - Math.Cos(angle) * dbhookPoint.X - Math.Sin(angle) * dbhookPoint.Y); break; } this.Z = component.Z + dbhookPoint.Z; this.Heading = (ushort)(component.Heading + dbhookPoint.Heading); this.m_index = dbhookPoint.HookPointID; this.Component = component; m_hookpointTimer = new HookpointTimer(this, this.Component); }
/// <summary> /// Load the guard from the database /// </summary> /// <param name="mobobject">The database mobobject</param> public override void LoadFromDatabase(DataObject mobobject) { base.LoadFromDatabase(mobobject); foreach (AbstractArea area in this.CurrentAreas) { if (area is KeepArea) { AbstractGameKeep keep = (area as KeepArea).Keep; Component = new GameKeepComponent(); Component.AbstractKeep = keep; m_dataObjectID = mobobject.ObjectId; // mob reload command might be reloading guard, so check to make sure it isn't already added if (Component.AbstractKeep.Guards.ContainsKey(m_dataObjectID) == false) { Component.AbstractKeep.Guards.Add(m_dataObjectID, this); } break; } } if (Component != null && Component.AbstractKeep != null) { Component.AbstractKeep.TemplateManager.GetMethod("RefreshTemplate").Invoke(null, new object[] { this }); } else { TemplateMgr.RefreshTemplate(this); } }
public GameKeepHookPoint(int id, GameKeepComponent component) { m_index = id; m_component = component; m_hookpointTimer = new HookpointTimer(this, this.Component); this.Position = component.Position; this.Heading = component.Heading; }
public void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { m_templateID = pos.TemplateID; m_component = component; component.Keep.Guards.Add(m_templateID + component.ID, this); PositionMgr.LoadGuardPosition(pos, this); RefreshTemplate(); this.AddToWorld(); }
public void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { if (component.Keep.DBKeep.BaseLevel < 50) return; m_component = component; PositionMgr.LoadKeepItemPosition(pos, this); this.m_component.Keep.TeleportStone = this; this.AddToWorld(); }
/// <summary> /// Method to retrieve the Patrol Path from the Patrol ID and Component /// /// We need this because we store this all using our offset system /// </summary> /// <param name="pathID">The path ID, which is the Patrol ID</param> /// <param name="component">The Component object</param> /// <returns>The Patrol path</returns> public static PathPoint LoadPatrolPath(string pathID, GameKeepComponent component) { SortedList sorted = new SortedList(); pathID.Replace('\'', '/'); // we must replace the ', found no other way yet DBPath dbpath = GameServer.Database.SelectObjects <DBPath>("`PathID` = @PathID", new QueryParameter("@PathID", pathID)).FirstOrDefault(); IList <DBPathPoint> pathpoints = null; ePathType pathType = ePathType.Once; if (dbpath != null) { pathType = (ePathType)dbpath.PathType; } if (pathpoints == null) { pathpoints = GameServer.Database.SelectObjects <DBPathPoint>("`PathID` = @PathID", new QueryParameter("@PathID", pathID)); } foreach (DBPathPoint point in pathpoints) { sorted.Add(point.Step, point); } PathPoint prev = null; PathPoint first = null; for (int i = 0; i < sorted.Count; i++) { DBPathPoint pp = (DBPathPoint)sorted.GetByIndex(i); PathPoint p = new PathPoint(pp.X, pp.Y, pp.Z, pp.MaxSpeed, pathType); int x, y; LoadXY(component, pp.X, pp.Y, out x, out y); p.X = x; p.Y = y; p.Z = component.AbstractKeep.Z + p.Z; p.WaitTime = pp.WaitTime; if (first == null) { first = p; } p.Prev = prev; if (prev != null) { prev.Next = p; } prev = p; } return(first); }
public GameKeepHookPoint(int id, GameKeepComponent component) { m_index = id; m_component = component; m_hookpointTimer = new HookpointTimer(this, this.Component); this.X = component.X; this.Y = component.Y; this.Z = component.Z; this.Heading = component.Heading; }
/// <summary> /// Creates a guard patrol position /// </summary> /// <param name="guardID">The guard ID</param> /// <param name="component">The component object</param> /// <param name="player">The player object</param> /// <returns>The position object</returns> public static DBKeepPosition CreatePatrolPosition(string guardID, GameKeepComponent component, GamePlayer player, AbstractGameKeep.eKeepType keepType) { DBKeepPosition pos = CreatePosition(guardID, component, player); pos.Height = 0; pos.ClassType = "DOL.GS.Keeps.Patrol"; pos.KeepType = (int)keepType; GameServer.Database.AddObject(pos); return(pos); }
public void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { if (component.Keep.DBKeep.BaseLevel < 50) { return; } m_component = component; PositionMgr.LoadKeepItemPosition(pos, this); this.m_component.Keep.TeleportStone = this; this.AddToWorld(); }
public static void CreateDoor(int doorID, GamePlayer player) { int ownerKeepId = (doorID / 100000) % 1000; int towerNum = (doorID / 10000) % 10; int keepID = ownerKeepId + towerNum * 256; int componentID = (doorID / 100) % 100; int doorIndex = doorID % 10; AbstractGameKeep keep = GameServer.KeepManager.GetKeepByID(keepID); if (keep == null) { player.Out.SendMessage("Cannot create door as keep is null!", eChatType.CT_System, eChatLoc.CL_SystemWindow); return; } GameKeepComponent component = null; foreach (GameKeepComponent c in keep.KeepComponents) { if (c.ID == componentID) { component = c; break; } } if (component == null) { player.Out.SendMessage("Cannot create door as component is null!", eChatType.CT_System, eChatLoc.CL_SystemWindow); return; } DBKeepPosition pos = new DBKeepPosition(); pos.ClassType = "DOL.GS.Keeps.GameKeepDoor"; pos.TemplateType = doorIndex; pos.ComponentSkin = component.Skin; pos.ComponentRotation = component.ComponentHeading; pos.TemplateID = Guid.NewGuid().ToString(); int x, y; SaveXY(component, player.X, player.Y, out x, out y); pos.XOff = x; pos.YOff = y; pos.ZOff = player.Z - component.Z; pos.HOff = player.Heading - component.Heading; GameServer.Database.AddObject(pos); player.Out.SendMessage("Added door as a position to keep. A server restart will be required to load this position.", eChatType.CT_System, eChatLoc.CL_SystemWindow); }
/// <summary> /// Method to retrieve the Patrol Path from the Patrol ID and Component /// /// We need this because we store this all using our offset system /// </summary> /// <param name="pathID">The path ID, which is the Patrol ID</param> /// <param name="component">The Component object</param> /// <returns>The Patrol path</returns> public static PathPoint LoadPatrolPath(string pathID, GameKeepComponent component) { SortedList sorted = new SortedList(); pathID.Replace('\'', '/'); // we must replace the ', found no other way yet var dbpath = DOLDB <DBPath> .SelectObject(DB.Column(nameof(DBPath.PathID)).IsEqualTo(pathID)); IList <DBPathPoint> pathpoints = null; ePathType pathType = ePathType.Once; if (dbpath != null) { pathType = (ePathType)dbpath.PathType; } if (pathpoints == null) { pathpoints = DOLDB <DBPathPoint> .SelectObjects(DB.Column(nameof(DBPathPoint.PathID)).IsEqualTo(pathID)); } foreach (DBPathPoint point in pathpoints) { sorted.Add(point.Step, point); } PathPoint prev = null; PathPoint first = null; for (int i = 0; i < sorted.Count; i++) { DBPathPoint pp = (DBPathPoint)sorted.GetByIndex(i); PathPoint p = new PathPoint(pp.X, pp.Y, pp.Z, pp.MaxSpeed, pathType); int x, y; LoadXY(component, pp.X, pp.Y, out x, out y); p.X = x; p.Y = y; p.Z = component.Keep.Z + p.Z; p.WaitTime = pp.WaitTime; if (first == null) { first = p; } p.Prev = prev; if (prev != null) { prev.Next = p; } prev = p; } return(first); }
/// <summary> /// load the keep door object from DB object /// </summary> /// <param name="obj"></param> public override void LoadFromDatabase(DataObject obj) { DBDoor door = obj as DBDoor; if (door == null) { return; } base.LoadFromDatabase(obj); Zone curZone = WorldMgr.GetZone((ushort)(door.InternalID / 1000000)); if (curZone == null) { return; } CurrentRegion = curZone.ZoneRegion; m_name = door.Name; m_Heading = (ushort)door.Heading; X = door.X; Y = door.Y; Z = door.Z; m_level = 0; m_model = 0xFFFF; m_doorID = door.InternalID; m_state = eDoorState.Closed; AddToWorld(); foreach (AbstractArea area in CurrentAreas) { if (area is KeepArea) { AbstractGameKeep keep = (area as KeepArea).Keep; if (!keep.Doors.Contains(door.InternalID)) { Component = new GameKeepComponent(); Component.AbstractKeep = keep; keep.Doors.Add(door.InternalID, this); } break; } } m_health = MaxHealth; StartHealthRegeneration(); DoorMgr.RegisterDoor(this); }
/// <summary> /// Load the guard from a position /// </summary> /// <param name="pos">The position for the guard</param> /// <param name="component">The component it is being spawned on</param> public void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { m_templateID = pos.TemplateID; m_component = component; component.AbstractKeep.Guards[m_templateID] = this; PositionMgr.LoadGuardPosition(pos, this); if (Component != null && Component.AbstractKeep != null) { Component.AbstractKeep.TemplateManager.GetMethod("RefreshTemplate").Invoke(null, new object[] { this }); } else { TemplateMgr.RefreshTemplate(this); } this.AddToWorld(); }
/// <summary> /// Saves X and Y offsets /// </summary> /// <param name="component">The assigned component object</param> /// <param name="inX">The argument X</param> /// <param name="inY">The argument Y</param> /// <param name="outX">The result X</param> /// <param name="outY">The result Y</param> public static void SaveXY(GameKeepComponent component, int inX, int inY, out int outX, out int outY) { double angle = component.Keep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; int gx = inX - component.X; int gy = inY - component.Y; double C = Math.Cos(angle); double S = Math.Sin(angle); switch (component.ComponentHeading) { case 0: { outX = (int)(gx * C + gy * S); outY = (int)(gx * S - gy * C); break; } case 1: { outX = (int)(gy * C - gx * S); outY = (int)(gx * C + gy * S); break; } case 2: { outX = (int)((gx * C + gy * S) / (-C * C - S * S)); outY = (int)(gy * C - gx * S); break; } case 3: { outX = (int)(gx * S - gy * C); outY = (int)((gx * C + gy * S) / (-C * C - S * S)); break; } default: { outX = 0; outY = 0; break; } } }
/// <summary> /// load the keep door object from DB object /// </summary> /// <param name="obj"></param> public override void LoadFromDatabase(DataObject obj) { DBDoor door = obj as DBDoor; if (door == null) { return; } base.LoadFromDatabase(obj); Zone curZone = WorldMgr.GetZone((ushort)(door.InternalID / 1000000)); if (curZone == null) { return; } this.CurrentRegion = curZone.ZoneRegion; m_name = door.Name; m_Heading = (ushort)door.Heading; Position = new Vector3(door.X, door.Y, door.Z); m_level = 0; m_model = 0xFFFF; m_doorID = door.InternalID; m_state = eDoorState.Closed; this.AddToWorld(); foreach (AbstractArea area in this.CurrentAreas) { if (area is KeepArea keepArea) { string sKey = door.InternalID.ToString(); if (!keepArea.Keep.Doors.ContainsKey(sKey)) { Component = new GameKeepComponent(); Component.Keep = keepArea.Keep; keepArea.Keep.Doors.Add(sKey, this); } break; } } m_health = MaxHealth; StartHealthRegeneration(); DoorMgr.RegisterDoor(this); }
public override void LoadFromDatabase(DataObject obj) { if (obj == null) { return; } base.LoadFromDatabase(obj); string sKey = this.InternalID; // InternalID is set to obj.ObjectID by base.LoadFromDatabase() foreach (AbstractArea area in this.CurrentAreas) { if (area is KeepArea keepArea && keepArea.Keep is AbstractGameKeep keep) { Component = new GameKeepComponent(); Component.Keep = keep; if (keep.Banners.ContainsKey(sKey) == false) { Component.Keep.Banners.Add(sKey, this); if (this.Model == AlbionGuildModel || this.Model == MidgardGuildModel || this.Model == HiberniaGuildModel) { BannerType = eBannerType.Guild; } else { BannerType = eBannerType.Realm; } if (BannerType == eBannerType.Guild && Component.Keep.Guild != null) { ChangeGuild(); } else { ChangeRealm(); } break; } else if (log.IsWarnEnabled) { log.Warn($"LoadFromDatabase(): KeepID {keep.KeepID} already a banner using ObjectID {sKey}"); } } } // foreach }
/// <summary> /// Creates a position /// </summary> /// <param name="templateID">The template ID</param> /// <param name="component">The component object</param> /// <param name="player">The creating player object</param> /// <returns>The position object</returns> public static DBKeepPosition CreatePosition(string templateID, GameKeepComponent component, GamePlayer player) { DBKeepPosition pos = new DBKeepPosition(); pos.ComponentSkin = component.Skin; pos.ComponentRotation = component.ComponentHeading; pos.TemplateID = templateID; int x, y; SaveXY(component, player.X, player.Y, out x, out y); pos.XOff = x; pos.YOff = y; pos.ZOff = player.Z - component.Z; pos.HOff = player.Heading - component.Heading; return(pos); }
/// <summary> /// Calculates X and Y based on component rotation and offset /// </summary> /// <param name="component">The assigned component object</param> /// <param name="inX">The argument X</param> /// <param name="inY">The argument Y</param> /// <param name="outX">The result X</param> /// <param name="outY">The result Y</param> public static void LoadXY(GameKeepComponent component, int inX, int inY, out int outX, out int outY) { double angle = component.Keep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; double C = Math.Cos(angle); double S = Math.Sin(angle); switch (component.ComponentHeading) { case 0: { outX = (int)(component.X + C * inX + S * inY); outY = (int)(component.Y - C * inY + S * inX); break; } case 1: { outX = (int)(component.X + C * inY - S * inX); outY = (int)(component.Y + C * inX + S * inY); break; } case 2: { outX = (int)(component.X - C * inX - S * inY); outY = (int)(component.Y + C * inY - S * inX); break; } case 3: { outX = (int)(component.X - C * inY + S * inX); outY = (int)(component.Y - C * inX - S * inY); break; } default: { outX = 0; outY = 0; break; } } }
public override void SendKeepComponentInfo(GameKeepComponent keepComponent) { GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.KeepComponentInfo)); pak.WriteShort((ushort)keepComponent.Keep.KeepID); pak.WriteShort((ushort)keepComponent.ID); pak.WriteInt((uint)keepComponent.ObjectID); pak.WriteByte((byte)keepComponent.Skin); pak.WriteByte((byte)(keepComponent.ComponentX));//relative to keep pak.WriteByte((byte)(keepComponent.ComponentY));//relative to keep pak.WriteByte((byte)keepComponent.ComponentHeading); pak.WriteByte((byte)keepComponent.Height); pak.WriteByte(keepComponent.HealthPercent); byte flag = keepComponent.Status; if (keepComponent.IsRaized) // Only for towers flag |= 0x04; if (flag == 0x00 && keepComponent.Climbing) flag = 0x02; pak.WriteByte(flag); pak.WriteByte(0x00); //unk SendTCP(pak); }
/// <summary> /// Calculates X and Y based on component rotation and offset /// </summary> /// <param name="component">The assigned component object</param> /// <param name="inX">The argument X</param> /// <param name="inY">The argument Y</param> /// <param name="outX">The result X</param> /// <param name="outY">The result Y</param> public static void LoadXY(GameKeepComponent component, int inX, int inY, out int outX, out int outY) { double angle = component.AbstractKeep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; double C = Math.Cos(angle); double S = Math.Sin(angle); switch (component.ComponentHeading) { case 0: { outX = (int)(component.X + C * inX + S * inY); outY = (int)(component.Y - C * inY + S * inX); break; } case 1: { outX = (int)(component.X + C * inY - S * inX); outY = (int)(component.Y + C * inX + S * inY); break; } case 2: { outX = (int)(component.X - C * inX - S * inY); outY = (int)(component.Y + C * inY - S * inX); break; } case 3: { outX = (int)(component.X - C * inY + S * inX); outY = (int)(component.Y - C * inX - S * inY); break; } default: { outX = 0; outY = 0; break; } } }
public virtual void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { if (pos == null || component == null) { return; } m_templateID = pos.TemplateID; m_component = component; BannerType = (eBannerType)pos.TemplateType; PositionMgr.LoadKeepItemPosition(pos, this); string sKey = this.TemplateID; if (component.Keep.Banners.ContainsKey(sKey) == false) { component.Keep.Banners.Add(sKey, this); if (BannerType == eBannerType.Guild) { if (component.Keep.Guild != null) { ChangeGuild(); Position += Vector3.UnitZ * 1500; this.AddToWorld(); } } else { ChangeRealm(); Position += Vector3.UnitZ * 1000; // this works around an issue where all banners are at keep level instead of on top // with a z value > height of the keep the banners show correctly - tolakram this.AddToWorld(); } } else if (log.IsWarnEnabled) { log.Warn($"LoadFromPosition(): There is already a Banner with TemplateID {this.TemplateID} on KeepID {component.Keep.KeepID}, not adding Banner for KeepPosition_ID {pos.ObjectId} on KeepComponent_ID {component.InternalID}"); } }
/// <summary> /// load all keeps from the DB /// </summary> /// <returns></returns> public static bool Load() { ClothingMgr.LoadTemplates(); //Dinberg - moved this here, battlegrounds must be loaded before keepcomponents are. LoadBattlegroundCaps(); if (!ServerProperties.Properties.LOAD_KEEPS) return true; lock (m_keeps.SyncRoot) { m_keeps.Clear(); var keeps = GameServer.Database.SelectAllObjects<DBKeep>(); foreach (DBKeep datakeep in keeps) { if (WorldMgr.GetRegion(datakeep.Region) == null) continue; //Dinberg - checking whether the keep is old or new. //The only way to do this is to examine the database entries for hookpoints and thus determine //in this manner whether the keep is old, new or 'both'. A keep will be 'both' if it is found to //have components of both sets, which is possible. bool isOld = false; bool isNew = false; //I don't want to touch the loading order of hookpoints, as i think they may depend on the //assumption keeps and towers are linked before population. So we will settle for a second //query. It's on server start, so it wont impact running performance. var currentKeepComponents = GameServer.Database.SelectObjects<DBKeepComponent>("`KeepID` = '" + datakeep.KeepID + "'"); //Pass through, and depending on the outcome of the components, determine the 'age' of the keep. foreach (DBKeepComponent dum in currentKeepComponents) { if (dum.Skin >= 0 && dum.Skin <= 20) //these are the min/max ids for old keeps. isOld = true; if (dum.Skin > 20) //any skinID greater than this are ids for new keeps. isNew = true; } //Now, consult server properties to decide our plan! //Quote: ServerProperties.cs //"use_new_keeps", "Keeps to load. 0 for Old Keeps, 1 for new keeps, 2 for both.", 2 if (ServerProperties.Properties.USE_NEW_KEEPS == 0 && isNew) continue; if (ServerProperties.Properties.USE_NEW_KEEPS == 1 && isOld) continue; //If we've got this far, we are permitted to load as per normal! AbstractGameKeep keep; if ((datakeep.KeepID >> 8) != 0) { keep = new GameKeepTower(); } else { keep = new GameKeep(); } keep.Load(datakeep); m_keeps.Add(datakeep.KeepID, keep); } // This adds owner keeps to towers / portal keeps foreach (AbstractGameKeep keep in m_keeps.Values) { GameKeepTower tower = keep as GameKeepTower; if (tower != null) { int index = tower.KeepID & 0xFF; GameKeep ownerKeep = getKeepByID(index) as GameKeep; if (ownerKeep != null) { ownerKeep.AddTower(tower); } tower.Keep = ownerKeep; } } bool missingKeeps = false; var keepcomponents = GameServer.Database.SelectAllObjects<DBKeepComponent>(); foreach (DBKeepComponent component in keepcomponents) { // if use old keeps don't try to load new components if (ServerProperties.Properties.USE_NEW_KEEPS == 0 && IsNewKeepComponent(component.Skin)) continue; // if use new keeps don't try and load old components if (ServerProperties.Properties.USE_NEW_KEEPS == 1 && !IsNewKeepComponent(component.Skin)) continue; AbstractGameKeep keep = getKeepByID(component.KeepID); if (keep == null) { missingKeeps = true; continue; } GameKeepComponent gamecomponent = new GameKeepComponent(); gamecomponent.LoadFromDatabase(component, keep); keep.KeepComponents.Add(gamecomponent); } if (missingKeeps && Logger.IsWarnEnabled) { Logger.WarnFormat("Some keeps not found while loading components, possibly old/new keeptype; see server properties"); } if (m_keeps.Count != 0) { foreach (AbstractGameKeep keep in m_keeps.Values) { if (keep.KeepComponents.Count != 0) keep.KeepComponents.Sort(); } } LoadHookPoints(); Logger.Info("Loaded " + m_keeps.Count + " keeps successfully"); } if (ServerProperties.Properties.USE_KEEP_BALANCING) UpdateBaseLevels(); if (ServerProperties.Properties.USE_LIVE_KEEP_BONUSES) KeepBonusMgr.UpdateCounts(); return true; }
public virtual void SendKeepComponentInteract(GameKeepComponent component) { }
public override void SendClearKeepComponentHookPoint(GameKeepComponent component, int selectedHookPointIndex) { GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.KeepComponentHookpointUpdate)); pak.WriteShort((ushort)component.Keep.KeepID); pak.WriteShort((ushort)component.ID); pak.WriteByte((byte)0); pak.WriteByte((byte)selectedHookPointIndex); SendTCP(pak); }
/// <summary> /// Checks if a keep component is an enemy of the player /// </summary> /// <param name="checker">The component checker</param> /// <param name="target">The player target</param> /// <returns>true if the player is an enemy of the component</returns> public virtual bool IsEnemy(GameKeepComponent checker, GamePlayer target) { return IsEnemy(checker.AbstractKeep, target); }
public virtual void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { m_templateID = pos.TemplateID; m_component = component; PositionMgr.LoadKeepItemPosition(pos, this); component.AbstractKeep.Doors[m_templateID] = this; m_oldMaxHealth = MaxHealth; m_health = MaxHealth; m_name = "Keep Door"; m_oldHealthPercent = HealthPercent; m_doorID = GenerateDoorID(); this.m_model = 0xFFFF; m_state = eDoorState.Closed; if (AddToWorld()) { StartHealthRegeneration(); DoorMgr.RegisterDoor(this); } else { log.Error("Failed to load keep door from position! DoorID=" + m_doorID + ". Component SkinID=" + component.Skin + ". KeepID=" + component.AbstractKeep.KeepID); } }
public HookpointTimer(GameKeepHookPoint hookpoint, GameKeepComponent component) : base(component) { m_hookpoint = hookpoint; }
public Patrol(GameKeepComponent component) { m_component = component; }
/// <summary> /// load all keeps from the DB /// </summary> /// <returns></returns> public virtual bool Load() { // first check the regions we manage foreach (Region r in WorldMgr.Regions.Values) { if (r.IsFrontier) { m_frontierRegionsList.Add(r.ID); } } // default to NF if no frontier regions found if (m_frontierRegionsList.Count == 0) { m_frontierRegionsList.Add(DEFAULT_FRONTIERS_REGION); } ClothingMgr.LoadTemplates(); //Dinberg - moved this here, battlegrounds must be loaded before keepcomponents are. LoadBattlegroundCaps(); if (!ServerProperties.Properties.LOAD_KEEPS) { return(true); } lock (m_keepList.SyncRoot) { m_keepList.Clear(); var keeps = GameServer.Database.SelectAllObjects <DBKeep>(); foreach (DBKeep datakeep in keeps) { Region keepRegion = WorldMgr.GetRegion(datakeep.Region); if (keepRegion == null) { continue; } AbstractGameKeep keep; if ((datakeep.KeepID >> 8) != 0 || ((datakeep.KeepID & 0xFF) > 150)) { keep = keepRegion.CreateGameKeepTower(); } else { keep = keepRegion.CreateGameKeep(); } keep.Load(datakeep); RegisterKeep(datakeep.KeepID, keep); } // This adds owner keeps to towers / portal keeps foreach (AbstractGameKeep keep in m_keepList.Values) { GameKeepTower tower = keep as GameKeepTower; if (tower != null) { int index = tower.KeepID & 0xFF; GameKeep ownerKeep = GetKeepByID(index) as GameKeep; if (ownerKeep != null) { ownerKeep.AddTower(tower); } tower.Keep = ownerKeep; tower.OwnerKeepID = index; if (tower.OwnerKeepID < 10) { log.WarnFormat("Tower.OwnerKeepID < 10 for KeepID {0}. Doors on this tower will not be targetable! ({0} & 0xFF < 10). Choose a different KeepID to correct this issue.", tower.KeepID); } } } if (ServerProperties.Properties.USE_NEW_KEEPS == 2) { log.ErrorFormat("ServerProperty USE_NEW_KEEPS is actually set to 2 but it is no longer used. Loading as if he were 0 but please set to 0 or 1 !"); } // var keepcomponents = default(IList<DBKeepComponent>); Why was this done this way rather than being strictly typed? IList <DBKeepComponent> keepcomponents = null; if (ServerProperties.Properties.USE_NEW_KEEPS == 0 || ServerProperties.Properties.USE_NEW_KEEPS == 2) { keepcomponents = DOLDB <DBKeepComponent> .SelectObjects(DB.Column(nameof(DBKeepComponent.Skin)).IsLessThan(20)); } else if (ServerProperties.Properties.USE_NEW_KEEPS == 1) { keepcomponents = DOLDB <DBKeepComponent> .SelectObjects(DB.Column(nameof(DBKeepComponent.Skin)).IsGreatherThan(20)); } if (keepcomponents != null) { keepcomponents .GroupBy(x => x.KeepID) .AsParallel() .ForAll(components => { foreach (DBKeepComponent component in components) { AbstractGameKeep keep = GetKeepByID(component.KeepID); if (keep == null) { //missingKeeps = true; continue; } GameKeepComponent gamecomponent = keep.CurrentRegion.CreateGameKeepComponent(); gamecomponent.LoadFromDatabase(component, keep); keep.KeepComponents.Add(gamecomponent); } }); } /*if (missingKeeps && log.IsWarnEnabled) * { * log.WarnFormat("Some keeps not found while loading components, possibly old/new keeptypes."); * }*/ if (m_keepList.Count != 0) { foreach (AbstractGameKeep keep in m_keepList.Values) { if (keep.KeepComponents.Count != 0) { keep.KeepComponents.Sort(); } } } LoadHookPoints(); log.Info("Loaded " + m_keepList.Count + " keeps successfully"); } if (ServerProperties.Properties.USE_KEEP_BALANCING) { UpdateBaseLevels(); } if (ServerProperties.Properties.USE_LIVE_KEEP_BONUSES) { KeepBonusMgr.UpdateCounts(); } return(true); }
/// <summary> /// Creates a position /// </summary> /// <param name="templateID">The template ID</param> /// <param name="component">The component object</param> /// <param name="player">The creating player object</param> /// <returns>The position object</returns> public static DBKeepPosition CreatePosition(string templateID, GameKeepComponent component, GamePlayer player) { DBKeepPosition pos = new DBKeepPosition(); pos.ComponentSkin = component.Skin; pos.ComponentRotation = component.ComponentHeading; pos.TemplateID = templateID; int x, y; SaveXY(component, player.X, player.Y, out x, out y); pos.XOff = x; pos.YOff = y; pos.ZOff = player.Z - component.Z; pos.HOff = player.Heading - component.Heading; return pos; }
/// <summary> /// Creates a guard patrol position /// </summary> /// <param name="guardID">The guard ID</param> /// <param name="component">The component object</param> /// <param name="player">The player object</param> /// <returns>The position object</returns> public static DBKeepPosition CreatePatrolPosition(string guardID, GameKeepComponent component, GamePlayer player, AbstractGameKeep.eKeepType keepType) { DBKeepPosition pos = CreatePosition(guardID, component, player); pos.Height = 0; pos.ClassType = "DOL.GS.Keeps.Patrol"; pos.KeepType = (int)keepType; GameServer.Database.AddObject(pos); return pos; }
/// <summary> /// Creates a position /// </summary> /// <param name="type"></param> /// <param name="height"></param> /// <param name="player"></param> /// <param name="guardID"></param> /// <param name="component"></param> /// <returns></returns> public static DBKeepPosition CreatePosition(Type type, int height, GamePlayer player, string guardID, GameKeepComponent component) { DBKeepPosition pos = CreatePosition(guardID, component, player); pos.Height = height; pos.ClassType = type.ToString(); GameServer.Database.AddObject(pos); return pos; }
/// <summary> /// Saves X and Y offsets /// </summary> /// <param name="component">The assigned component object</param> /// <param name="inX">The argument X</param> /// <param name="inY">The argument Y</param> /// <param name="outX">The result X</param> /// <param name="outY">The result Y</param> public static void SaveXY(GameKeepComponent component, int inX, int inY, out int outX, out int outY) { double angle = component.AbstractKeep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; int gx = inX - component.X; int gy = inY - component.Y; double C = Math.Cos(angle); double S = Math.Sin(angle); switch (component.ComponentHeading) { case 0: { outX = (int)(gx * C + gy * S); outY = (int)(gx * S - gy * C); break; } case 1: { outX = (int)(gy * C - gx * S); outY = (int)(gx * C + gy * S); break; } case 2: { outX = (int)((gx * C + gy * S) / (-C * C - S * S)); outY = (int)(gy * C - gx * S); break; } case 3: { outX = (int)(gx * S - gy * C); outY = (int)((gx * C + gy * S) / (-C * C - S * S)); break; } default: { outX = 0; outY = 0; break; } } }
/// <summary> /// Checks if a keep component is an enemy of the player /// </summary> /// <param name="checker">The component checker</param> /// <param name="target">The player target</param> /// <returns>true if the player is an enemy of the component</returns> public static bool IsEnemy(GameKeepComponent checker, GamePlayer target) { return IsEnemy(checker.Keep, target); }
public void OnCommand(GameClient client, string[] args) { if (args.Length == 1) { DisplaySyntax(client); return; } AbstractGameKeep myKeep = (AbstractGameKeep)client.Player.TempProperties.getProperty<object>(TEMP_KEEP_LAST, null); if (myKeep == null) myKeep = GameServer.KeepManager.GetKeepCloseToSpot(client.Player.CurrentRegionID, client.Player, 10000); switch (args[1]) { #region FastCreate case "fastcreate": { #region DisplayTemplates if (args.Length < 5) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.FastCreate.TypeOfKeep")); int i = 1; foreach (string str in Enum.GetNames(typeof(eKeepTypes))) { DisplayMessage(client, "#" + i + ": " + str); i++; } return; } #endregion DisplayTemplates int keepType = 0; int keepID = 0; string keepName = "New Keep"; try { keepType = Convert.ToInt32(args[2]); keepID = Convert.ToInt32(args[3]); keepName = String.Join(" ", args, 4, args.Length - 4); } catch { DisplayMessage(client, "Invalid parameter for Keep Type, Keep ID, or Keep Name"); return; } if ((keepID >> 8) != 0 || GameServer.KeepManager.Keeps[keepID] != null) { DisplayMessage(client, "KeepID must be unused and less than 256."); return; } string createInfo = client.Player.Name + ";" + string.Format("/keep fastcreate {0} {1} {2}", keepType, keepID, keepName); GameKeep keep = new GameKeep(); keep.DBKeep = new DBKeep(createInfo); keep.Name = keepName; keep.KeepID = keepID; keep.Level = (byte)ServerProperties.Properties.STARTING_KEEP_LEVEL; keep.BaseLevel = 50; keep.Realm = client.Player.Realm; keep.Region = client.Player.CurrentRegionID; keep.X = client.Player.X; keep.Y = client.Player.Y; keep.Z = client.Player.Z; keep.Heading = client.Player.Heading; if ((int)keepType < 8) { keep.KeepType = (AbstractGameKeep.eKeepType)keepType; } else { keep.KeepType = 0; } log.Debug("Keep creation: starting"); // TODO: Add keep component to list in keep class // SQL to grab current keep components from a DB that works. Replace keepID with the one you want to edit here. // Values below taken from Storm with working old style keeps // select concat(ID, ', ', skin, ', ', x, ', ', y, ', ', heading, ', ', height, ', ', health) as keepcomponent from keepcomponent where keepid = ### order by id; GameKeepComponent keepComp = null; switch ((eKeepTypes)keepType) { #region DunCrauchonBledmeerFasteCaerBenowyc case eKeepTypes.DunCrauchonBledmeerFasteCaerBenowyc: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 2, 251, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 1, 4, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 8, 250, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 8, 7, 251, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 2, 8, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 1, 249, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 8, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 249, 1, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 9, 2, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 13, 248, 4, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 2, 249, 7, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 1, 8, 5, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 8, 7, 8, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 8, 250, 8, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 2, 6, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 1, 253, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 9, 3, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 0, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 10, 4, 7, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 14, 2, 9, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DunCrauchonBledmeerFasteCaerBenowyc #region DunCrimthainnNottmoorFasteCaerBerkstead case eKeepTypes.DunCrimthainnNottmoorFasteCaerBerkstead: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 4, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 251, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 8, 7, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 8, 250, 250, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 7, 250, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 7, 7, 251, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 1, 7, 254, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 1, 6, 1, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 1, 5, 4, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 0, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 9, 249, 3, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 7, 7, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 0, 8, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 3, 8, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 10, 251, 6, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 253, 8, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 5, 250, 7, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 20, 250, 4, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 13, 249, 6, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DunCrimthainnNottmoorFasteCaerBerkstead #region DunBolgHlidskialfFasteCaerErasleigh case eKeepTypes.DunBolgHlidskialfFasteCaerErasleigh: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 253, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 4, 246, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 3, 3, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 248, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 9, 248, 3, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 7, 249, 0, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 248, 6, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 248, 9, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 1, 250, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 248, 250, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 255, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 13, 2, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 3, 6, 8, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 7, 6, 5, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 7, 3, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 2, 4, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 2, 5, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 2, 6, 2, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 10, 250, 8, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 4, 249, 13, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 2, 5, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 2, 252, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 20, 249, 6, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DunBolgHlidskialfFasteCaerErasleigh #region DunnGedGlenlockFasteCaerBoldiam case eKeepTypes.DunnGedGlenlockFasteCaerBoldiam: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 3, 250, 246, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 2, 5, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 9, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 6, 254, 247, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 251, 243, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 0, 255, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 4, 8, 246, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 248, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 248, 2, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 2, 249, 5, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 4, 250, 9, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 1, 253, 7, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 1, 0, 8, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 1, 3, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 4, 7, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 1, 8, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 1, 7, 0, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 1, 6, 3, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 1, 5, 6, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 10, 250, 4, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 1, 249, 249, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 13, 248, 252, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 20, 249, 2, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DunnGedGlenlockFasteCaerBoldiam #region DundaBehnnBlendrakeFasteCaerSursbrooke case eKeepTypes.DundaBehnnBlendrakeFasteCaerSursbrooke: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 4, 11, 247, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 5, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 0, 252, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 2, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 9, 249, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 4, 245, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 247, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 247, 0, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 12, 251, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 12, 254, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 4, 14, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 248, 7, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 9, 251, 5, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 7, 254, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 2, 10, 5, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 1, 1, 5, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 7, 4, 5, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 9, 8, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 12, 1, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 247, 3, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 13, 7, 6, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 10, 10, 252, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 17, 6, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DundaBehnnBlendrakeFasteCaerSursbrooke #region DunScathaigFensalirFasteCaerRenaris case eKeepTypes.DunScathaigFensalirFasteCaerRenaris: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 4, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 247, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 7, 246, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 252, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 249, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 8, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 8, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 7, 7, 0, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 7, 250, 2, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 13, 8, 3, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 9, 8, 6, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 249, 5, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 249, 8, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 4, 10, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 4, 250, 12, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 9, 6, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 253, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 0, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 9, 3, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 10, 3, 8, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 18, 252, 6, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DunScathaigFensalirFasteCaerRenaris #region DunAilinneArvakrFasteCaerHurbury case eKeepTypes.DunAilinneArvakrFasteCaerHurbury: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 6, 4, 247, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 6, 253, 247, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 8, 243, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 9, 248, 249, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 3, 250, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 3, 7, 246, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 4, 246, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 248, 252, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 7, 249, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 248, 2, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 7, 6, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 9, 9, 247, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 9, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 7, 8, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 9, 0, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 7, 8, 3, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 1, 8, 6, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 2, 249, 8, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 7, 253, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 13, 3, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 3, 7, 9, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 9, 248, 5, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(23, 3, 250, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(24, 9, 0, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(25, 10, 251, 6, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(26, 14, 249, 4, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion DunAilinneArvakrFasteCaerHurbury #region FortBrolorn case eKeepTypes.FortBrolorn: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 3, 5, 255, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 3, 251, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 3, 250, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 3, 6, 3, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 8, 2, 10, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 253, 9, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 252, 254, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 3, 7, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 255, 254, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 6, 251, 6, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 6, 5, 6, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 2, 6, 0, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 1, 250, 2, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 2, 254, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 8, 254, 10, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 19, 1, 11, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion FortBrolorn #region BG1_4 case eKeepTypes.BG1_4: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 4, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 7, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 8, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 7, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 8, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 1, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 10, 2, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 5, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 6, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 3, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 0, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG1_4 #region ClaimBG5_9 case eKeepTypes.ClaimBG5_9: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 5, 5, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 5, 251, 249, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 7, 251, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 250, 252, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 9, 6, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 7, 5, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 6, 0, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 5, 5, 3, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 4, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 1, 252, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 2, 2, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 9, 1, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 9, 254, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 5, 251, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 250, 2, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 19, 255, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion ClaimBG5_9 #region BG5_9 case eKeepTypes.BG5_9: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 4, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 7, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 8, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 7, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 8, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 1, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 10, 2, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 5, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 6, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 3, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 0, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG5_9 #region CaerClaret case eKeepTypes.CaerClaret: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 252, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 4, 4, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 4, 250, 252, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 252, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 9, 252, 2, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 5, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 5, 0, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 4, 253, 6, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 0, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 4, 7, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 3, 4, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CaerClaret #region BG10_14 case eKeepTypes.BG10_14: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 4, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 7, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 8, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 7, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 8, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 1, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 10, 2, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 5, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 6, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 3, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 0, 3, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG10_14 #region CKBG15_19 case eKeepTypes.CKBG15_19: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 4, 247, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 4, 007, 247, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 4, 250, 010, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 010, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 0, 254, 251, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 2, 004, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 1, 251, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 1, 253, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 2, 006, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 000, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 003, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 1, 007, 251, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 1, 250, 006, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 2, 250, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 2, 007, 004, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 0, 004, 006, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 007, 254, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 9, 007, 001, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 250, 003, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 250, 000, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CKBG15_19 #region BG15_19 case eKeepTypes.BG15_19: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG15_19 #region CKBG20_24 case eKeepTypes.CKBG20_24: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 253, 251, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 3, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 250, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 6, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 246, 251, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 4, 9, 248, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 248, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 10, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 10, 002, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 248, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 248, 004, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 9, 10, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 9, 10, 5, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 248, 7, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 4, 249, 11, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 4, 12, 8, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 255, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 9, 5, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 8, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 252, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 9, 2, 9, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 10, 253, 005, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CKBG20_24 #region BG20_24 case eKeepTypes.BG20_24: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG20_24 #region CKBG25_29 case eKeepTypes.CKBG25_29: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 003, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 9, 000, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 246, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 011, 003, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 4, 247, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 4, 007, 246, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 4, 247, 009, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 4, 013, 006, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 1, 249, 252, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 1, 248, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 1, 247, 002, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 2, 008, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 2, 009, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 2, 010, 000, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 2, 009, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 2, 253, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 1, 006, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 1, 250, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 10, 006, 253, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CKBG25_29 #region BG25_29 case eKeepTypes.BG25_29: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG25_29 #region CKBG30_34 case eKeepTypes.CKBG30_34: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 255, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 005, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 252, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 249, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 008, 247, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 4, 245, 250, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 247, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 247, 003, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 247, 000, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 009, 251, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 009, 254, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 1, 008, 001, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 1, 007, 004, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 2, 248, 006, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 3, 249, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 3, 006, 007, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 7, 252, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 7, 005, 007, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 255, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 002, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 10, 250, 004, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CKBG30_34 #region BG30_34 case eKeepTypes.BG30_34: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG30_34 #region CKBG35_39 case eKeepTypes.CKBG35_39: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 246, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 008, 250, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 249, 252, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 249, 255, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 008, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 003, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 7, 250, 002, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 7, 007, 000, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 9, 249, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 10, 253, 253, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 008, 006, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 249, 008, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 4, 010, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 4, 250, 012, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 9, 253, 010, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 006, 010, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 7, 003, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 7, 000, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CKBG35_39 #region BG35_39 case eKeepTypes.BG35_39: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG35_39 #region TBG35_39 case eKeepTypes.TBG35_39: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 11, 253, 004, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion TBG35_39 #region TestCKBG40_44 case eKeepTypes.TestCKBG40_44: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 004, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 001, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 251, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 248, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 7, 254, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 4, 244, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 5, 010, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 246, 250, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 246, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 011, 248, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 011, 254, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 9, 011, 001, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 7, 247, 000, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 7, 010, 251, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 4, 013, 004, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 6, 009, 007, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 6, 249, 007, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 3, 006, 008, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 3, 252, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 255, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 9, 005, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 7, 002, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 4, 248, 007, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(23, 2, 247, 003, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(24, 10, 254, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion TestCKBG40_44 #region TestBG40_44 case eKeepTypes.TestBG40_44: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion TestBG40_44 #region TestTBG40_44 case eKeepTypes.TestTBG40_44: { keep.KeepComponents.Add(keepComp); keepComp.LoadFromDatabase(new DBKeepComponent(0, 11, 253, 004, 0, 0, 3200, keep.KeepID, createInfo), keep); keepComp = new GameKeepComponent(); break; } #endregion TestTBG40_44 #region CKBG40_44 case eKeepTypes.CKBG40_44: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 004, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 9, 001, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 9, 251, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 9, 248, 246, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 7, 254, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 4, 244, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 5, 010, 247, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 9, 246, 250, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 9, 246, 253, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 011, 248, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 011, 254, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 9, 011, 001, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 7, 247, 000, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 7, 010, 251, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 4, 013, 004, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 6, 009, 007, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 6, 249, 007, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(17, 3, 006, 008, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(18, 3, 252, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(19, 9, 255, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(20, 9, 005, 009, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(21, 7, 002, 008, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(22, 4, 248, 007, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(23, 2, 247, 003, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(24, 10, 254, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion CKBG40_44 #region BG40_44 case eKeepTypes.BG40_44: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 0, 254, 249, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(1, 1, 251, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(2, 2, 004, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(3, 4, 007, 245, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(4, 4, 247, 248, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(5, 9, 249, 251, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(6, 9, 008, 249, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(7, 7, 007, 252, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(8, 7, 250, 254, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(9, 9, 008, 255, 3, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(10, 9, 249, 001, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(11, 4, 010, 002, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(12, 4, 250, 005, 1, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(13, 9, 006, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(14, 9, 253, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(15, 9, 003, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(16, 9, 000, 003, 2, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion BG40_44 #region TBG40_44 case eKeepTypes.TBG40_44: { keepComp = new GameKeepComponent(); keepComp.LoadFromDatabase(new DBKeepComponent(0, 11, 253, 004, 0, 0, 3200, keep.KeepID, createInfo), keep); keep.KeepComponents.Add(keepComp); break; } #endregion TBG40_44 #region Default default: DisplayMessage(client, "Wrong type of keep"); return; #endregion Default } log.Debug("Keep creation: used keep type " + ((eKeepTypes)keepType)); client.Player.TempProperties.setProperty(TEMP_KEEP_LAST, keep); foreach (GameKeepComponent comp in keep.KeepComponents) { if (comp.InternalID != null) DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.FastCreate.CompCreated", comp.InternalID, comp.Keep.KeepID)); comp.Health = comp.MaxHealth; } DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.FastCreate.KeepCreated")); log.Debug("Keep creation: check of components complete"); foreach (GameClient c in WorldMgr.GetClientsOfRegion(client.Player.CurrentRegionID)) { c.Out.SendKeepInfo(keep); foreach (GameKeepComponent keepComponent in keep.KeepComponents) { c.Out.SendKeepComponentInfo(keepComponent); } } log.Debug("Keep creation: complete, saving"); keep.SaveIntoDatabase(); break; } #endregion FastCreate #region TowerCreate case "towercreate": { if (args.Length < 5) { DisplaySyntax(client); return; } int keepid = -1; if (!int.TryParse(args[2], out keepid)) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.InvalidKeepID")); return; } if (GameServer.KeepManager.GetKeepByID(keepid) != null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.KeepIDExists", keepid)); return; } // Most // // Since the KeepManager consider a KeepID higher than 255 as a Tower KeepID // We must check that the client is not trying to create a tower with a lower KeepID if ((keepid >> 8) == 0) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.WrongKeepID", keepid)); return; } byte baseLevel = 50; if (!byte.TryParse(args[3], out baseLevel)) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.InvalidBaseLev")); return; } string keepName = String.Join(" ", args, 4, args.Length - 4); string createInfo = client.Player.Name + ";" + string.Format("/keep towercreate {0} {1} {2}", keepid, baseLevel, keepName); DBKeep keep = new DBKeep(createInfo); keep.Name = keepName; keep.KeepID = keepid; keep.Level = 0; keep.Region = client.Player.CurrentRegionID; keep.X = client.Player.X; keep.Y = client.Player.Y; keep.Z = client.Player.Z; keep.Heading = client.Player.Heading; keep.BaseLevel = baseLevel; GameServer.Database.AddObject(keep); DBKeepComponent towerComponent = new DBKeepComponent(0, (int)GameKeepComponent.eComponentSkin.Tower, 0, 0, 0, 0, 3200, keep.KeepID, client.Player.Name + ";/keep towercreate"); GameServer.Database.AddObject(towerComponent); GameKeepTower k = new GameKeepTower(); k.Load(keep); new GameKeepComponent().LoadFromDatabase(towerComponent); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.CreatedSaved")); //send the creation packets foreach (GameClient c in WorldMgr.GetClientsOfRegion(client.Player.CurrentRegionID)) { c.Out.SendKeepInfo(k); c.Out.SendKeepComponentUpdate(k, false); foreach (GameKeepComponent keepComponent in k.KeepComponents) { c.Out.SendKeepComponentInfo(keepComponent); c.Out.SendKeepComponentDetailUpdate(keepComponent); } } break; } #endregion TowerCreate #region Create case "create": { if (args.Length < 6) { DisplaySyntax(client); return; } int keepid = 0; try { keepid = Convert.ToInt32(args[2]); } catch { DisplaySyntax(client); return; } if (GameServer.KeepManager.GetKeepByID(keepid) != null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.KeepIDExists", keepid)); return; } // Most // // Since the KeepManager consider a KeepID lower than 256 as a keep KeepID // We must check that the client is not trying to create a keep with a higher KeepID if ((keepid >> 8) != 0) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.TowerCreate.WrongKeepID", keepid)); return; } byte baselevel = 0; try { baselevel = Convert.ToByte(args[3]); } catch { DisplaySyntax(client); return; } int radius = 0; try { radius = Convert.ToInt32(args[4]); } catch { DisplaySyntax(client); return; } string keepName = String.Join(" ", args, 5, args.Length - 5); string createInfo = client.Player.Name + ";" + string.Format("/keep create {0} {1} {2} {3}", keepid, baselevel, radius, keepName); DBKeep keep = new DBKeep(createInfo); keep.Name = keepName; keep.KeepID = keepid; keep.Level = 0; keep.Region = client.Player.CurrentRegionID; keep.X = client.Player.X; keep.Y = client.Player.Y; keep.Z = client.Player.Z; keep.Heading = client.Player.Heading; keep.BaseLevel = baselevel; GameServer.Database.AddObject(keep); GameKeep k = new GameKeep(); k.Load(keep); if (radius > 0) k.Area.ChangeRadius(radius); foreach (IDoor door in client.Player.GetDoorsInRadius(3000)) { (door as GameObject).RemoveFromWorld(); GameKeepDoor d = new GameKeepDoor(); d.CurrentRegionID = (ushort)keep.Region; d.Name = door.Name; d.Heading = (ushort)door.Heading; d.X = door.X; d.Y = door.Y; d.Z = door.Z; d.Level = 0; d.Model = 0xFFFF; d.DoorID = door.DoorID; d.State = eDoorState.Closed; DoorMgr.RegisterDoor(d); d.AddToWorld(); d.Component = new GameKeepComponent(); d.Component.Keep = k; d.Component.Keep.Doors[d.DoorID] = this; d.Health = d.MaxHealth; d.StartHealthRegeneration(); (door as GameObject).Delete(); } client.Player.TempProperties.setProperty(TEMP_KEEP_LAST, k); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.FastCreate.KeepCreated")); //send the creation packets foreach (GameClient c in WorldMgr.GetClientsOfRegion(client.Player.CurrentRegionID)) { c.Out.SendKeepInfo(k); foreach (GameKeepComponent keepComponent in k.KeepComponents) { c.Out.SendKeepComponentInfo(keepComponent); } } GameServer.KeepManager.RegisterKeep(k.KeepID, k); break; } #endregion Create #region Remove case "remove": { KeepArea karea = null; foreach (AbstractArea area in client.Player.CurrentAreas) { if (area is KeepArea) { karea = area as KeepArea; break; } } if (karea == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.YourNotInAKeepArea")); return; } karea.Keep.Remove(karea); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.KeepUnloaded")); break; } #endregion Remove #region Name case "name": { if (args.Length < 3) { DisplaySyntax(client); return; } if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } myKeep.Name = String.Join(" ", args, 2, args.Length - 2); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.YouChangeKeepName", myKeep.Name)); break; } #endregion Name #region KeepID case "keepid": { if (args.Length < 3) { DisplaySyntax(client); return; } if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } int keepid = 0; try { keepid = Convert.ToInt32(args[2]); } catch { DisplaySyntax(client); return; } myKeep.KeepID = keepid; DisplayMessage(client, "You change the id of the current keep to " + keepid); break; } #endregion KeepID #region Level case "level": { if (args.Length < 3) { DisplaySyntax(client); return; } if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } byte keepLevel = 0; try { keepLevel = Convert.ToByte(args[2]); } catch { DisplaySyntax(client); return; } myKeep.ChangeLevel(keepLevel); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Level.YouChangeKeepLevel", keepLevel)); break; } #endregion Level #region BaseLevel case "baselevel": { if (args.Length < 3) { DisplaySyntax(client); return; } if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } byte keepLevel = 0; try { keepLevel = Convert.ToByte(args[2]); } catch { DisplaySyntax(client); return; } myKeep.DBKeep.BaseLevel = keepLevel; myKeep.ChangeLevel(myKeep.Level); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.BaseLevel.YouChangeBaseLev", keepLevel)); break; } #endregion BaseLevel #region Realm case "realm": { if (args.Length < 3) { DisplaySyntax(client); return; } if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } eRealm realm = eRealm.None; try { realm = (eRealm)Convert.ToByte(args[2]); } catch { DisplaySyntax(client); return; } myKeep.Reset(realm); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Realm.YouChangeKeepRealm", GlobalConstants.RealmToName(realm))); break; } #endregion Realm #region Radius case "radius": { if (args.Length < 3) { DisplaySyntax(client); return; } if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } int radius = 0; try { radius = Convert.ToInt32(args[2]); } catch { DisplaySyntax(client); return; } myKeep.Area.ChangeRadius(radius); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Radius.YouChangeKeepRadius", radius)); break; } #endregion Radius #region Save case "save": { if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } myKeep.SaveIntoDatabase(); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Save.KeepSavedInDatabase")); break; } #endregion Save #region AddTeleport case "addteleporter": { GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; if (component != null) { DBKeepPosition pos = PositionMgr.CreatePosition(typeof(FrontiersPortalStone), 0, client.Player, Guid.NewGuid().ToString(), component); PositionMgr.AddPosition(pos); PositionMgr.FillPositions(); } else { FrontiersPortalStone stone = new FrontiersPortalStone(); stone.CurrentRegion = client.Player.CurrentRegion; stone.X = client.Player.X; stone.Y = client.Player.Y; stone.Z = client.Player.Z; stone.Heading = client.Player.Heading; stone.SaveIntoDatabase(); stone.AddToWorld(); } DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.AddTeleport.StoneAdded")); break; } #endregion AddTeleport #region AddBanner case "addbanner": { GameKeepBanner.eBannerType bannerType = GameKeepBanner.eBannerType.Realm; if (args.Length > 2) { switch (args[2].ToLower()) { case "realm": bannerType = GameKeepBanner.eBannerType.Realm; break; case "guild": bannerType = GameKeepBanner.eBannerType.Guild; break; default: return; } } GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; if (component != null) { DBKeepPosition pos = PositionMgr.CreatePosition(typeof(GameKeepBanner), 0, client.Player, Guid.NewGuid().ToString(), component); pos.TemplateType = (int)bannerType; GameServer.Database.SaveObject(pos); PositionMgr.AddPosition(pos); PositionMgr.FillPositions(); } else { GameKeepBanner banner = new GameKeepBanner(); banner.BannerType = bannerType; banner.CurrentRegion = client.Player.CurrentRegion; banner.X = client.Player.X; banner.Y = client.Player.Y; banner.Z = client.Player.Z; banner.Heading = client.Player.Heading; banner.SaveIntoDatabase(); foreach (AbstractArea area in banner.CurrentAreas) { if (area is KeepArea) { AbstractGameKeep keep = (area as KeepArea).Keep; banner.Component = new GameKeepComponent(); banner.Component.Keep = keep; banner.Component.Keep.Banners.Add(banner.InternalID, banner); break; } } if (banner.Component.Keep.Guild != null) banner.ChangeGuild(); else banner.ChangeRealm(); banner.AddToWorld(); } DisplayMessage(client, "Banner added!"); break; } #endregion Addbanner #region Move case "move": { if (client.Account.PrivLevel < 3) return; if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } if (args.Length < 3) { // simple move to player location myKeep.X = client.Player.X; myKeep.Y = client.Player.Y; myKeep.Z = client.Player.Z; myKeep.Heading = client.Player.Heading; } else if (args.Length < 4) { DisplayMessage(client, "/keep move [direction] [amount]"); return; } else { string direction = args[2]; int amount = Convert.ToInt32(args[3]); switch (direction.ToLower()) { case "x": myKeep.X += amount; break; case "y": myKeep.Y += amount; break; case "z": myKeep.Z += amount; break; case "h": if (amount < 0 && myKeep.Heading - Math.Abs(amount) < 0) { int diff = myKeep.Heading - Math.Abs(amount); myKeep.Heading = (ushort)(4095 + diff); } else { myKeep.Heading += (ushort)amount; } if (myKeep.Heading > 4095) { myKeep.Heading = (ushort)(myKeep.Heading - 4095); } break; default: break; } } foreach (GameClient c in WorldMgr.GetClientsOfRegion(client.Player.CurrentRegionID)) { c.Out.SendKeepRemove(myKeep); c.Out.SendKeepInfo(myKeep); foreach (GameKeepComponent keepComponent in myKeep.KeepComponents) { c.Out.SendKeepComponentInfo(keepComponent); c.Out.SendKeepComponentDetailUpdate(keepComponent); } } DisplayMessage(client, "Keep moved. Don't forget to '/keep save' your changes."); break; } #endregion Move #region SkinType case "skintype": { if (myKeep == null) { DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Keep.Remove.MustCreateKeepFirst")); return; } try { byte skinType = Convert.ToByte(args[2]); if (skinType < 3) { myKeep.DBKeep.KeepSkinType = (eKeepSkinType)skinType; DisplayMessage(client, "Keep skin type changed to " + myKeep.DBKeep.KeepSkinType + ". Don't forget to '/keep save' your changes."); } else { DisplayMessage(client, "/keep skintype [0 = any, 1 = old, 2 = new]"); } } catch { DisplayMessage(client, "/keep skintype [0 = any, 1 = old, 2 = new]"); } break; } #endregion Move #region Default default: { DisplaySyntax(client); break; } #endregion Default } }
public override void SendKeepComponentHookPoint(GameKeepComponent component, int selectedHookPointIndex) { GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.KeepComponentHookpointUpdate)); pak.WriteShort((ushort)component.Keep.KeepID); pak.WriteShort((ushort)component.ID); ArrayList freeHookpoints = new ArrayList(); foreach (GameKeepHookPoint hookPt in component.HookPoints.Values) { if (hookPt.IsFree) freeHookpoints.Add(hookPt); } pak.WriteByte((byte)freeHookpoints.Count); pak.WriteByte((byte)selectedHookPointIndex); foreach (GameKeepHookPoint hookPt in freeHookpoints)//have to sort by index? { pak.WriteByte((byte)hookPt.ID); } SendTCP(pak); }
public virtual void SendKeepComponentInfo(GameKeepComponent keepComponent) { }
public void OnCommand(GameClient client, string[] args) { if (args.Length == 1) { DisplaySyntax(client); return; } AbstractGameKeep myKeep = GameServer.KeepManager.GetKeepCloseToSpot(client.Player.CurrentRegionID, client.Player, WorldMgr.OBJ_UPDATE_DISTANCE); if (myKeep == null) { DisplayMessage(client, "You are not near a keep."); } switch (args[1]) { #region Create case "create": { if (args.Length < 3) { int i = 0; foreach (string str in Enum.GetNames(typeof(GameKeepComponent.eComponentSkin))) { client.Out.SendMessage("#" + i + ": " + str, eChatType.CT_System, eChatLoc.CL_SystemWindow); i++; } DisplaySyntax(client); return; } if (myKeep == null) { DisplaySyntax(client); return; } int skin = 0; try { skin = Convert.ToInt32(args[2]); } catch { int i = 0; foreach (string str in Enum.GetNames(typeof(GameKeepComponent.eComponentSkin))) { client.Out.SendMessage("#" + i + ": " + str, eChatType.CT_System, eChatLoc.CL_SystemWindow); i++; } DisplaySyntax(client); return; } if (args.Length >= 4) { int keepid = 0; try { keepid = Convert.ToInt32(args[3]); myKeep = GameServer.KeepManager.GetKeepByID(keepid); } catch { DisplaySyntax(client); return; } } GameKeepComponent component = new GameKeepComponent(); component.X = client.Player.X; component.Y = client.Player.Y; component.Z = client.Player.Z; component.ComponentHeading = (client.Player.Heading - myKeep.Heading) / 1024; component.Heading = (ushort)(component.ComponentHeading * 1024 + myKeep.Heading); component.Keep = myKeep; //todo good formula //component.ComponentX = (component.X - myKeep.X) / 148; //component.ComponentY = (component.Y - myKeep.Y) / 148; double angle = myKeep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; //component.ComponentX = (int)((148 * Math.Sin(angle) * myKeep.X - 148 * Math.Sin(angle) * client.Player.X + client.Player.Y - myKeep.Y) // / (148 * Math.Sin(angle) - 148 * 148 * 2 * Math.Sin(angle) * Math.Cos(angle))); //component.ComponentY = (int)((myKeep.Y - client.Player.Y + 148 * Math.Sin(angle) * component.ComponentX) / (148 * Math.Cos(angle))); component.ComponentX = CalcCX(client.Player, myKeep, angle); component.ComponentY = CalcCY(client.Player, myKeep, angle); /* x = (component.X-myKeep.X)/148 = a*cos(t) - b*sin(t) y = (component.Y-myKeep.Y)/148 = a*sin(t) + b*cos(t) a = sqrt((x+b*sin(t))^2 + (y-b*cos(t))^2) a = sqrt(x²+y²+b² +2*x*b*sin(t)-2*y*b*cos(t)) b = sqrt((x-a*cos(t))^2 + (y-a*sin(t))^2) b = sqrt(x²+y²+a²-2*x*a*cos(t)-2*y*a*sin(t)) 0 = 2x²+2y²-2*x*a*cos(t)-2*y*a*sin(t)+2*x*sqrt(x²+y²+a²-2*x*a*cos(t)-2*y*a*sin(t))*sin(t)-2*y*sqrt(x²+y²+a²-2*x*a*cos(t)-2*y*a*sin(t))*cos(t) pfff so must find an other way to find it.... */ component.Name = myKeep.Name; component.Model = INVISIBLE_MODEL; component.Skin = skin; component.Level = (byte)myKeep.Level; component.CurrentRegion = client.Player.CurrentRegion; component.Health = component.MaxHealth; component.ID = myKeep.KeepComponents.Count; component.AbstractKeep.KeepComponents.Add(component); component.SaveInDB = true; component.AddToWorld(); component.SaveIntoDatabase(); client.Out.SendKeepInfo(myKeep); client.Out.SendKeepComponentInfo(component); client.Out.SendMessage(LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.KeepComponents.Create.KCCreated"), eChatType.CT_System, eChatLoc.CL_SystemWindow); } break; #endregion Create #region Move case "move": { GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; component.X = client.Player.X; component.Y = client.Player.Y; component.Z = client.Player.Z; component.ComponentHeading = (client.Player.Heading - myKeep.Heading) / 1024; component.Heading = (ushort)(component.ComponentHeading * 1024 + myKeep.Heading); component.Keep = myKeep; //todo good formula //component.ComponentX = (component.X - myKeep.X) / 148; //component.ComponentY = (myKeep.Y - component.Y) / 148; double angle = myKeep.Heading * ((Math.PI * 2) / 360); // angle*2pi/360; //component.ComponentX = (int)((148 * Math.Sin(angle) * myKeep.X - 148 * Math.Sin(angle) * client.Player.X + client.Player.Y - myKeep.Y) // / (148 * Math.Sin(angle) - 148 * 148 * 2 * Math.Sin(angle) * Math.Cos(angle))); //component.ComponentY = (int)((myKeep.Y - client.Player.Y + 148 * Math.Sin(angle) * component.ComponentX) / (148 * Math.Cos(angle))); component.ComponentX = CalcCX(client.Player, myKeep, angle); component.ComponentY = CalcCY(client.Player, myKeep, angle); client.Out.SendKeepInfo(myKeep); client.Out.SendKeepComponentInfo(component); client.Out.SendKeepComponentDetailUpdate(component); client.Out.SendMessage("Component moved. Use /keepcomponent save to save, or reload to reload the original position.", eChatType.CT_System, eChatLoc.CL_SystemWindow); } break; #endregion #region Rotate case "rotate": { try { ushort amount = Convert.ToUInt16(args[2]); if (amount > 3) amount = 3; GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; component.ComponentHeading = amount; component.Heading = (ushort)(component.ComponentHeading * 1024 + myKeep.Heading); client.Out.SendKeepInfo(myKeep); client.Out.SendKeepComponentInfo(component); client.Out.SendKeepComponentDetailUpdate(component); client.Out.SendMessage("Component rotated. Use /keepcomponent save to save, or reload to reload the original position.", eChatType.CT_System, eChatLoc.CL_SystemWindow); } catch { DisplayMessage(client, "/keepcomponent rotate [0 - 3]"); } } break; #endregion #region Skin case "skin": { if (args.Length < 3) { int i = 0; foreach (string str in Enum.GetNames(typeof(GameKeepComponent.eComponentSkin))) { client.Out.SendMessage("#" + i + ": " + str, eChatType.CT_System, eChatLoc.CL_SystemWindow); i++; } DisplaySyntax(client); return; } int skin = 0; try { skin = Convert.ToInt32(args[2]); } catch { DisplaySyntax(client); return; } GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; if (component == null) { DisplaySyntax(client); return; } component.Skin = skin; foreach (GameClient cli in WorldMgr.GetClientsOfRegion(client.Player.CurrentRegionID)) { cli.Out.SendKeepComponentInfo(component); cli.Out.SendKeepComponentDetailUpdate(component); } //client.Out.SendMessage(LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.KeepComponents.Skin.YChangeSkin"), eChatType.CT_System, eChatLoc.CL_SystemWindow); client.Out.SendMessage("Component skin updated. Use /keepcomponent save to save, or reload to reload the original skin.", eChatType.CT_System, eChatLoc.CL_SystemWindow); } break; #endregion Skin #region Delete case "delete": { GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; if (component == null) { DisplaySyntax(client); return; } component.RemoveFromWorld(); component.Delete(); component.DeleteFromDatabase(); client.Out.SendMessage(LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.KeepComponents.Delete.YDeleteKC"), eChatType.CT_System, eChatLoc.CL_SystemWindow); } break; #endregion Delete #region Save case "save": { GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; if (component == null) { DisplaySyntax(client); return; } component.SaveIntoDatabase(); client.Out.SendMessage(string.Format("Saved ComponentID: {0}, KeepID: {1}, Skin: {2}, Health: {3}%", component.ID, (component.Keep == null ? "0" : component.Keep.KeepID.ToString()), component.Skin, component.HealthPercent), eChatType.CT_System, eChatLoc.CL_SystemWindow); } break; #endregion Save #region Reload case "reload": { GameKeepComponent component = client.Player.TargetObject as GameKeepComponent; if (component == null) { DisplaySyntax(client); return; } DBKeepComponent dbcomponent = GameServer.Database.SelectObject<DBKeepComponent>("`KeepID` = '" + component.Keep.KeepID + "' AND `ID` = '" + component.ID + "'"); component.ComponentX = dbcomponent.X; component.ComponentY = dbcomponent.Y; component.ComponentHeading = dbcomponent.Heading; component.Skin = dbcomponent.Skin; foreach (GameClient cli in WorldMgr.GetClientsOfRegion(client.Player.CurrentRegionID)) { cli.Out.SendKeepComponentInfo(component); cli.Out.SendKeepComponentDetailUpdate(component); } client.Out.SendMessage("Component Reloaded", eChatType.CT_System, eChatLoc.CL_SystemWindow); break; } #endregion Reload #region Default default: { DisplaySyntax(client); return; } #endregion Default } }
/// <summary> /// load the keep door object from DB object /// </summary> /// <param name="obj"></param> public override void LoadFromDatabase(DataObject obj) { DBDoor door = obj as DBDoor; if (door == null) return; base.LoadFromDatabase(obj); Zone curZone = WorldMgr.GetZone((ushort)(door.InternalID / 1000000)); if (curZone == null) return; this.CurrentRegion = curZone.ZoneRegion; m_name = door.Name; m_Heading = (ushort)door.Heading; m_x = door.X; m_y = door.Y; m_z = door.Z; m_level = 0; m_model = 0xFFFF; m_doorID = door.InternalID; m_state = eDoorState.Closed; this.AddToWorld(); foreach (AbstractArea area in this.CurrentAreas) { if (area is KeepArea) { AbstractGameKeep keep = (area as KeepArea).Keep; if (!keep.Doors.Contains(door.InternalID)) { Component = new GameKeepComponent(); Component.Keep = keep; keep.Doors.Add(door.InternalID, this); } break; } } m_health = MaxHealth; StartHealthRegeneration(); DoorMgr.RegisterDoor(this); }
public virtual void LoadFromPosition(DBKeepPosition pos, GameKeepComponent component) { m_templateID = pos.TemplateID; m_component = component; PositionMgr.LoadKeepItemPosition(pos, this); component.Keep.Doors[m_templateID] = this; m_oldMaxHealth = MaxHealth; m_health = MaxHealth; m_name = "Keep Door"; m_oldHealthPercent = HealthPercent; m_doorID = GenerateDoorID(); this.m_model = 0xFFFF; m_state = eDoorState.Closed; this.AddToWorld(); StartHealthRegeneration(); DoorMgr.RegisterDoor(this); }
public virtual void SendKeepComponentDetailUpdate(GameKeepComponent keepComponent) { }
/// <summary> /// Method to retrieve the Patrol Path from the Patrol ID and Component /// /// We need this because we store this all using our offset system /// </summary> /// <param name="pathID">The path ID, which is the Patrol ID</param> /// <param name="component">The Component object</param> /// <returns>The Patrol path</returns> public static PathPoint LoadPatrolPath(string pathID, GameKeepComponent component) { SortedList sorted = new SortedList(); pathID.Replace('\'', '/'); // we must replace the ', found no other way yet DBPath dbpath = GameServer.Database.SelectObject<DBPath>("PathID='" + GameServer.Database.Escape(pathID) + "'"); IList<DBPathPoint> pathpoints = null; ePathType pathType = ePathType.Once; if (dbpath != null) { pathType = (ePathType)dbpath.PathType; } if (pathpoints == null) { pathpoints = GameServer.Database.SelectObjects<DBPathPoint>("PathID='" + GameServer.Database.Escape(pathID) + "'"); } foreach (DBPathPoint point in pathpoints) { sorted.Add(point.Step, point); } PathPoint prev = null; PathPoint first = null; for (int i = 0; i < sorted.Count; i++) { DBPathPoint pp = (DBPathPoint)sorted.GetByIndex(i); PathPoint p = new PathPoint(pp.X, pp.Y, pp.Z, pp.MaxSpeed, pathType); int x, y; LoadXY(component, pp.X, pp.Y, out x, out y); p.X = x; p.Y = y; p.Z = component.AbstractKeep.Z + p.Z; p.WaitTime = pp.WaitTime; if (first == null) { first = p; } p.Prev = prev; if (prev != null) { prev.Next = p; } prev = p; } return first; }
public virtual void SendClearKeepComponentHookPoint(GameKeepComponent component, int selectedHookPointIndex) { }
/// <summary> /// Checks if a keep component is an enemy of the player /// </summary> /// <param name="checker">The component checker</param> /// <param name="target">The player target</param> /// <returns>true if the player is an enemy of the component</returns> public virtual bool IsEnemy(GameKeepComponent checker, GamePlayer target) { return(IsEnemy(checker.Keep, target)); }
/// <summary> /// Method to save the Patrol Path using the Patrol ID and the Component /// </summary> /// <param name="pathID"></param> /// <param name="path"></param> /// <param name="component"></param> public static void SavePatrolPath(string pathID, PathPoint path, GameKeepComponent component) { if (path == null) return; pathID.Replace('\'', '/'); // we must replace the ', found no other way yet foreach (DBPath pp in GameServer.Database.SelectObjects<DBPath>("PathID='" + GameServer.Database.Escape(pathID) + "'")) { GameServer.Database.DeleteObject(pp); } PathPoint root = MovementMgr.FindFirstPathPoint(path); //Set the current pathpoint to the rootpoint! path = root; DBPath dbp = new DBPath(pathID, ePathType.Loop); GameServer.Database.AddObject(dbp); int i = 1; do { DBPathPoint dbpp = new DBPathPoint(path.X, path.Y, path.Z, path.MaxSpeed); int x, y; SaveXY(component, dbpp.X, dbpp.Y, out x, out y); dbpp.X = x; dbpp.Y = y; dbpp.Z = dbpp.Z - component.Z; dbpp.Step = i++; dbpp.PathID = pathID; dbpp.WaitTime = path.WaitTime; GameServer.Database.AddObject(dbpp); path = path.Next; } while (path != null && path != root); }
/// <summary> /// This method is important, because players could fall through air /// if they are on the top of a keep when it is captured because /// the keep size will reset /// </summary> protected void ResetPlayersOfKeep() { ushort distance = 0; int id = 0; if (this is GameKeepTower) { distance = 750; id = 11; } else { distance = 1500; id = 10; } GameKeepComponent component = null; foreach (GameKeepComponent c in this.KeepComponents) { if (c.Skin == id) { component = c; break; } } if (component == null) { return; } GameKeepHookPoint hookpoint = component.KeepHookPoints[97] as GameKeepHookPoint; if (hookpoint == null) { return; } //calculate target height int height = GameServer.KeepManager.GetHeightFromLevel(this.Level); //predict Z DBKeepHookPoint hp = GameServer.Database.SelectObjects <DBKeepHookPoint>("`HookPointID` = @HookPointID AND `Height` = @Height", new[] { new QueryParameter("@HookPointID", 97), new QueryParameter("@Height", height) }).FirstOrDefault(); if (hp == null) { return; } int z = component.Z + hp.Z; foreach (GamePlayer player in component.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE)) { int d = hookpoint.GetDistance(player as IPoint2D); if (d > distance) { continue; } if (player.Z > z) { player.MoveTo(player.CurrentRegionID, player.X, player.Y, z, player.Heading); } } }
public override void SendKeepComponentInteract(GameKeepComponent component) { GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.KeepComponentInteractResponse)); pak.WriteShort((ushort)component.Keep.KeepID); pak.WriteByte((byte)component.Keep.Realm); pak.WriteByte(component.HealthPercent); pak.WriteByte(component.Keep.EffectiveLevel(component.Keep.Level)); pak.WriteByte(component.Keep.EffectiveLevel((byte)ServerProperties.Properties.MAX_KEEP_LEVEL)); //guild pak.WriteByte((byte)1); //Keep Type: always melee here, type is no longer used if (component.Keep.Guild != null) { pak.WriteString(component.Keep.Guild.Name); } pak.WriteByte(0); SendTCP(pak); }