Current phase wasn't being loaded in. Fixed.

This commit is contained in:
Filip Maj 2017-04-04 01:42:34 -04:00
parent 3269621dec
commit 4bb222a47a
3 changed files with 15 additions and 8 deletions

View File

@ -786,7 +786,8 @@ namespace FFXIVClassic_Map_Server
slot,
questId,
questData,
questFlags
questFlags,
currentPhase
FROM characters_quest_scenario WHERE characterId = @charId";
cmd = new MySqlCommand(query, conn);
@ -799,6 +800,7 @@ namespace FFXIVClassic_Map_Server
player.playerWork.questScenario[index] = 0xA0F00000 | reader.GetUInt32(1);
string questData = null;
uint questFlags = 0;
uint currentPhase = 0;
if (!reader.IsDBNull(2))
questData = reader.GetString(2);
@ -810,8 +812,11 @@ namespace FFXIVClassic_Map_Server
else
questFlags = 0;
if (!reader.IsDBNull(4))
currentPhase = reader.GetUInt32(4);
string questName = Server.GetStaticActors(player.playerWork.questScenario[index]).actorName;
player.questScenario[index] = new Quest(player, player.playerWork.questScenario[index], questName, questData, questFlags);
player.questScenario[index] = new Quest(player, player.playerWork.questScenario[index], questName, questData, questFlags, currentPhase);
}
}

View File

@ -1091,7 +1091,7 @@ namespace FFXIVClassic_Map_Server.Actors
return;
playerWork.questScenario[freeSlot] = id;
questScenario[freeSlot] = new Quest(this, playerWork.questScenario[freeSlot], name, null, 0);
questScenario[freeSlot] = new Quest(this, playerWork.questScenario[freeSlot], name, null, 0, 0);
Database.SaveQuest(this, questScenario[freeSlot]);
SendQuestClientUpdate(freeSlot);
@ -1165,7 +1165,7 @@ namespace FFXIVClassic_Map_Server.Actors
{
Actor actor = Server.GetStaticActors((0xA0F00000 | newId));
playerWork.questScenario[i] = (0xA0F00000 | newId);
questScenario[i] = new Quest(this, playerWork.questScenario[i], actor.actorName, null, 0);
questScenario[i] = new Quest(this, playerWork.questScenario[i], actor.actorName, null, 0, 0);
Database.SaveQuest(this, questScenario[i]);
SendQuestClientUpdate(i);
break;

View File

@ -9,7 +9,7 @@ namespace FFXIVClassic_Map_Server.Actors
class Quest : Actor
{
private Player owner;
private int currentPhase = 0;
private uint currentPhase = 0;
private uint questFlags = 0;
private Dictionary<string, Object> questData = new Dictionary<string, object>();
@ -19,7 +19,7 @@ namespace FFXIVClassic_Map_Server.Actors
actorName = name;
}
public Quest(Player owner, uint actorID, string name, string questDataJson, uint questFlags)
public Quest(Player owner, uint actorID, string name, string questDataJson, uint questFlags, uint currentPhase)
: base(actorID)
{
this.owner = owner;
@ -33,6 +33,8 @@ namespace FFXIVClassic_Map_Server.Actors
if (questData == null)
questData = new Dictionary<string, object>();
this.currentPhase = currentPhase;
}
public void SetQuestData(string dataName, object data)
@ -94,12 +96,12 @@ namespace FFXIVClassic_Map_Server.Actors
return (questFlags & (1 << bitIndex)) == (1 << bitIndex);
}
public int GetPhase()
public uint GetPhase()
{
return currentPhase;
}
public void NextPhase(int phaseNumber)
public void NextPhase(uint phaseNumber)
{
currentPhase = phaseNumber;
owner.SendGameMessage(Server.GetWorldManager().GetActor(), 25116, 0x20, (object)GetQuestId());