mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Added the Waste Not Want Not quest.
This commit is contained in:
		| @@ -354,8 +354,77 @@ namespace FFXIVClassic_Map_Server | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public static void RemoveQuest(Player player, uint questId) | ||||
|         { | ||||
|             string query; | ||||
|             MySqlCommand cmd; | ||||
|  | ||||
|             using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) | ||||
|             { | ||||
|                 try | ||||
|                 { | ||||
|                     conn.Open(); | ||||
|  | ||||
|                     query = @" | ||||
|                     DELETE FROM characters_quest_scenario  | ||||
|                     WHERE characterId = @charaId and questId = @questId                  | ||||
|                     "; | ||||
|  | ||||
|                     cmd = new MySqlCommand(query, conn); | ||||
|                     cmd.Parameters.AddWithValue("@charaId", player.actorId); | ||||
|                     cmd.Parameters.AddWithValue("@questId", 0xFFFFF & questId); | ||||
|  | ||||
|                     cmd.ExecuteNonQuery(); | ||||
|                 } | ||||
|                 catch (MySqlException e) | ||||
|                 { | ||||
|                     Program.Log.Error(e.ToString()); | ||||
|                 } | ||||
|                 finally | ||||
|                 { | ||||
|                     conn.Dispose(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public static void CompleteQuest(Player player, uint questId) | ||||
|         { | ||||
|             string query; | ||||
|             MySqlCommand cmd; | ||||
|  | ||||
|             using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) | ||||
|             { | ||||
|                 try | ||||
|                 { | ||||
|                     conn.Open(); | ||||
|  | ||||
|                     query = @" | ||||
|                     INSERT INTO characters_quest_completed  | ||||
|                     (characterId, questId) | ||||
|                     VALUES | ||||
|                     (@charaId, @questId) | ||||
|                     ON DUPLICATE KEY UPDATE characterId=characterId | ||||
|                     "; | ||||
|  | ||||
|                     cmd = new MySqlCommand(query, conn); | ||||
|                     cmd.Parameters.AddWithValue("@charaId", player.actorId); | ||||
|                     cmd.Parameters.AddWithValue("@questId", 0xFFFFF & questId); | ||||
|  | ||||
|                     cmd.ExecuteNonQuery(); | ||||
|                 } | ||||
|                 catch (MySqlException e) | ||||
|                 { | ||||
|                     Program.Log.Error(e.ToString()); | ||||
|                 } | ||||
|                 finally | ||||
|                 { | ||||
|                     conn.Dispose(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         public static bool IsQuestCompleted(Player player, string questId) | ||||
|         public static bool IsQuestCompleted(Player player, uint questId) | ||||
|         { | ||||
|             bool isCompleted = false; | ||||
|             using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) | ||||
| @@ -366,7 +435,7 @@ namespace FFXIVClassic_Map_Server | ||||
|                     MySqlCommand cmd = new MySqlCommand("SELECT * FROM characters_quest_completed WHERE characterId = @charaId and questId = @questId", conn); | ||||
|                     cmd.Parameters.AddWithValue("@charaId", player.actorId); | ||||
|                     cmd.Parameters.AddWithValue("@questId", questId); | ||||
|                     isCompleted = (int)cmd.ExecuteScalar() > 0; | ||||
|                     isCompleted = cmd.ExecuteScalar() != null; | ||||
|                 } | ||||
|                 catch (MySqlException e) | ||||
|                 { | ||||
|   | ||||
| @@ -1107,11 +1107,17 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|             uint id = actor.actorId; | ||||
|             if (HasQuest(id)) | ||||
|             { | ||||
|                 Database.CompleteQuest(playerSession.GetActor(), id); | ||||
|                 SendGameMessage(Server.GetWorldManager().GetActor(), 25086, 0x20, (object)GetQuest(id).GetQuestId()); | ||||
|                 RemoveQuest(id); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public void RemoveQuestByQuestId(uint id) | ||||
|         { | ||||
|             RemoveQuest((0xA0F00000 | id)); | ||||
|         } | ||||
|  | ||||
|         public void RemoveQuest(uint id) | ||||
|         { | ||||
|             if (HasQuest(id)) | ||||
| @@ -1120,7 +1126,7 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|                 { | ||||
|                     if (questScenario[i] != null && questScenario[i].actorId == id) | ||||
|                     { | ||||
|                         Database.SaveQuest(this, questScenario[i]); | ||||
|                         Database.RemoveQuest(this, questScenario[i].actorId); | ||||
|                         questScenario[i] = null; | ||||
|                         playerWork.questScenario[i] = 0; | ||||
|                         SendQuestClientUpdate(i); | ||||
| @@ -1163,16 +1169,15 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|             return CanAcceptQuest(actor.actorName); | ||||
|         } | ||||
|  | ||||
|         public bool IsQuestCompleted(string id) | ||||
|         public bool IsQuestCompleted(string questName) | ||||
|         { | ||||
|             bool isCompleted = Database.IsQuestCompleted(this, id); | ||||
|             return isCompleted; | ||||
|             Actor actor = Server.GetStaticActors(questName); | ||||
|             return IsQuestCompleted(actor.actorId); | ||||
|         } | ||||
|  | ||||
|         public bool IsQuestCompleted(uint id) | ||||
|         public bool IsQuestCompleted(uint questId) | ||||
|         { | ||||
|             Actor actor = Server.GetStaticActors((0xA0F00000 | id)); | ||||
|             return IsQuestCompleted(actor.actorName); | ||||
|             return Database.IsQuestCompleted(this, 0xFFFFF & questId); | ||||
|         } | ||||
|  | ||||
|         public Quest GetQuest(uint id) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user