mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-07-24 11:28:22 +02:00
Added the Waste Not Want Not quest.
This commit is contained in:
parent
c0f7f1b1ad
commit
9d63be52e3
4 changed files with 176 additions and 16 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue