private void update(GameClient client, GameDoor targetDoor) { delete(client, targetDoor); if (targetDoor != null) { if (doorType != 7 && doorType != 9) { var door = new DBDoor(); door.ObjectId = null; door.InternalID = DoorID; door.Name = "door"; door.Type = DoorID / 100000000; door.Level = targetDoor.Level; door.Realm = (byte)targetDoor.Realm; door.Health = targetDoor.Health; door.Locked = targetDoor.Locked; door.X = client.Player.X; door.Y = client.Player.Y; door.Z = client.Player.Z; door.Heading = client.Player.Heading; GameServer.Database.AddObject(door); targetDoor.AddToWorld(); client.Player.Out.SendMessage("Added door " + DoorID + " to the database", eChatType.CT_Important, eChatLoc.CL_SystemWindow); return; } } }
/// <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(); m_health = MaxHealth; StartHealthRegeneration(); }
private void add(GameClient client, GameDoor targetDoor) { var DOOR = GameServer.Database.SelectObject <DBDoor>("InternalID = '" + DoorID + "'"); if (DOOR != null) { client.Out.SendMessage("The door is already in the database", eChatType.CT_System, eChatLoc.CL_SystemWindow); return; } if (DOOR == null) { if (doorType != 7 && doorType != 9) { var door = new DBDoor(); door.ObjectId = null; door.InternalID = DoorID; door.Name = "door"; door.Type = DoorID / 100000000; door.Level = 20; door.Realm = 6; door.X = targetDoor.X; door.Y = targetDoor.Y; door.Z = targetDoor.Z; door.Heading = targetDoor.Heading; door.Health = 2545; GameServer.Database.AddObject(door); (targetDoor).AddToWorld(); client.Player.Out.SendMessage("Added door ID:" + DoorID + "to the database", eChatType.CT_Important, eChatLoc.CL_SystemWindow); //DoorMgr.Init( ); return; } } }
/// <summary> /// save this door to a door table slot /// </summary> public override void SaveIntoDatabase() { DBDoor obj = null; if (InternalID != null) { obj = GameServer.Database.FindObjectByKey <DBDoor>(InternalID); } if (obj == null) { obj = new DBDoor(); } obj.Name = Name; obj.InternalID = DoorID; obj.Type = DoorID / 100000000; obj.Guild = GuildName; obj.Flags = Flag; obj.Realm = (byte)Realm; obj.Level = Level; obj.MaxHealth = MaxHealth; obj.Health = MaxHealth; obj.Locked = Locked; if (InternalID == null) { GameServer.Database.AddObject(obj); InternalID = obj.ObjectId; } else { GameServer.Database.SaveObject(obj); } }
/// <summary> /// Loads this door from a door table slot /// </summary> /// <param name="obj">DBDoor</param> public override void LoadFromDatabase(DataObject obj) { base.LoadFromDatabase(obj); DBDoor m_dbdoor = obj as DBDoor; if (m_dbdoor == null) { return; } Zone curZone = WorldMgr.GetZone((ushort)(m_dbdoor.InternalID / 1000000)); if (curZone == null) { return; } this.CurrentRegion = curZone.ZoneRegion; m_name = m_dbdoor.Name; m_Heading = (ushort)m_dbdoor.Heading; m_x = m_dbdoor.X; m_y = m_dbdoor.Y; m_z = m_dbdoor.Z; m_level = 0; m_model = 0xFFFF; m_doorID = m_dbdoor.InternalID; m_guildName = m_dbdoor.Guild; m_Realm = (eRealm)m_dbdoor.Realm; m_level = m_dbdoor.Level; m_health = m_dbdoor.MaxHealth; m_maxHealth = m_dbdoor.MaxHealth; m_locked = m_dbdoor.Locked; m_flags = m_dbdoor.Flags; this.AddToWorld(); }
/// <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 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); }
/// <summary> /// Loads this door from a door table slot /// </summary> /// <param name="obj">DBDoor</param> public override void LoadFromDatabase(DataObject obj) { base.LoadFromDatabase(obj); DBDoor m_dbdoor = obj as DBDoor; if (m_dbdoor == null) { return; } Zone curZone = WorldMgr.GetZone((ushort)(m_dbdoor.InternalID / 1000000)); if (curZone == null) { return; } this.CurrentRegion = curZone.ZoneRegion; m_name = m_dbdoor.Name; m_Heading = (ushort)m_dbdoor.Heading; m_x = m_dbdoor.X; m_y = m_dbdoor.Y; m_z = m_dbdoor.Z; m_level = 0; m_model = 0xFFFF; m_doorID = m_dbdoor.InternalID; m_guildName = m_dbdoor.Guild; m_Realm = (eRealm)m_dbdoor.Realm; m_level = m_dbdoor.Level; m_health = m_dbdoor.MaxHealth; m_maxHealth = m_dbdoor.MaxHealth; m_locked = m_dbdoor.Locked; m_flags = m_dbdoor.Flags; // Open mile gates on PVE and PVP server types if (CurrentRegion.IsFrontier && (GameServer.Instance.Configuration.ServerType == eGameServerType.GST_PvE || GameServer.Instance.Configuration.ServerType == eGameServerType.GST_PvP)) { State = eDoorState.Open; } this.AddToWorld(); }
public void AddingDoor(GamePlayer player, byte response) { if (response != 0x01) { return; } int doorType = HandlerDoorId / 100000000; if (doorType == 7) { PositionMgr.CreateDoor(HandlerDoorId, player); } else { var door = new DBDoor { ObjectId = null, InternalID = HandlerDoorId, Name = "door", Type = HandlerDoorId / 100000000, Level = 20, Realm = 6, MaxHealth = 2545, Health = 2545, Locked = 0, X = player.X, Y = player.Y, Z = player.Z, Heading = player.Heading }; GameServer.Database.AddObject(door); player.Out.SendMessage($"Added door {HandlerDoorId} to the database!", eChatType.CT_Important, eChatLoc.CL_SystemWindow); DoorMgr.Init(); } }
public static bool LoadDoor(DBDoor door) { IDoor mydoor = null; ushort zone = (ushort)(door.InternalID / 1000000); Zone currentZone = WorldMgr.GetZone(zone); if (currentZone == null) { return(false); } //check if the door is a keep door foreach (AbstractArea area in currentZone.GetAreasOfSpot(door.X, door.Y, door.Z)) { if (area is KeepArea) { mydoor = new GameKeepDoor(); mydoor.LoadFromDatabase(door); break; } } //if the door is not a keep door, create a standard door if (mydoor == null) { mydoor = new GameDoor(); mydoor.LoadFromDatabase(door); } //add to the list of doors if (mydoor != null) { RegisterDoor(mydoor); } return(true); }
public void AddingDoor(GamePlayer player, byte response) { if (response != 0x01) { return; } int doorType = m_handlerDoorID / 100000000; if (doorType == 7) { PositionMgr.CreateDoor(m_handlerDoorID, player); } else { var door = new DBDoor(); door.ObjectId = null; door.InternalID = m_handlerDoorID; door.Name = "door"; door.Type = m_handlerDoorID / 100000000; door.Level = 20; door.Realm = 6; door.MaxHealth = 2545; door.Health = 2545; door.Locked = 0; door.X = (int)player.Position.X; door.Y = (int)player.Position.Y; door.Z = (int)player.Position.Z; door.Heading = player.Heading; GameServer.Database.AddObject(door); player.Out.SendMessage("Added door " + m_handlerDoorID + " to the database!", eChatType.CT_Important, eChatLoc.CL_SystemWindow); DoorMgr.Init(); } }