public void SaveToDB() { // save instance data too string data = ""; uint completedEncounters = 0; Map map = Global.MapMgr.FindMap(GetMapId(), m_instanceid); if (map != null) { Cypher.Assert(map.IsDungeon()); InstanceScript instanceScript = ((InstanceMap)map).GetInstanceScript(); if (instanceScript != null) { data = instanceScript.GetSaveData(); completedEncounters = instanceScript.GetCompletedEncounterMask(); m_entranceId = instanceScript.GetEntranceLocation(); } InstanceScenario scenario = map.ToInstanceMap().GetInstanceScenario(); if (scenario != null) { scenario.SaveToDB(); } } PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_INSTANCE_SAVE); stmt.AddValue(0, m_instanceid); stmt.AddValue(1, GetMapId()); stmt.AddValue(2, GetResetTimeForDB()); stmt.AddValue(3, (uint)GetDifficultyID()); stmt.AddValue(4, completedEncounters); stmt.AddValue(5, data); stmt.AddValue(6, m_entranceId); DB.Characters.Execute(stmt); }