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, slot,
questId, questId,
questData, questData,
questFlags questFlags,
currentPhase
FROM characters_quest_scenario WHERE characterId = @charId"; FROM characters_quest_scenario WHERE characterId = @charId";
cmd = new MySqlCommand(query, conn); cmd = new MySqlCommand(query, conn);
@ -799,6 +800,7 @@ namespace FFXIVClassic_Map_Server
player.playerWork.questScenario[index] = 0xA0F00000 | reader.GetUInt32(1); player.playerWork.questScenario[index] = 0xA0F00000 | reader.GetUInt32(1);
string questData = null; string questData = null;
uint questFlags = 0; uint questFlags = 0;
uint currentPhase = 0;
if (!reader.IsDBNull(2)) if (!reader.IsDBNull(2))
questData = reader.GetString(2); questData = reader.GetString(2);
@ -810,8 +812,11 @@ namespace FFXIVClassic_Map_Server
else else
questFlags = 0; questFlags = 0;
if (!reader.IsDBNull(4))
currentPhase = reader.GetUInt32(4);
string questName = Server.GetStaticActors(player.playerWork.questScenario[index]).actorName; 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; return;
playerWork.questScenario[freeSlot] = id; 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]); Database.SaveQuest(this, questScenario[freeSlot]);
SendQuestClientUpdate(freeSlot); SendQuestClientUpdate(freeSlot);
@ -1165,7 +1165,7 @@ namespace FFXIVClassic_Map_Server.Actors
{ {
Actor actor = Server.GetStaticActors((0xA0F00000 | newId)); Actor actor = Server.GetStaticActors((0xA0F00000 | newId));
playerWork.questScenario[i] = (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]); Database.SaveQuest(this, questScenario[i]);
SendQuestClientUpdate(i); SendQuestClientUpdate(i);
break; break;

View File

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