mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-12 15:34:32 +02:00
Quest data is now saved/loaded from the DB.
This commit is contained in:
parent
b8a3d4f1e0
commit
fe111ab6ca
3 changed files with 108 additions and 10 deletions
|
@ -993,6 +993,17 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
return false;
|
||||
}
|
||||
|
||||
public int getQuestSlot(uint id)
|
||||
{
|
||||
for (int i = 0; i < questScenario.Length; i++)
|
||||
{
|
||||
if (questScenario[i] != null && questScenario[i].actorId == (0xA0F00000 | id))
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public void setDirector(string directorType)
|
||||
{
|
||||
if (directorType.Equals("openingDirector"))
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
using FFXIVClassic_Lobby_Server.common;
|
||||
using FFXIVClassic_Lobby_Server;
|
||||
using FFXIVClassic_Lobby_Server.common;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
@ -6,6 +8,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
{
|
||||
class Quest : Actor
|
||||
{
|
||||
private Player owner;
|
||||
private int currentPhase = 0;
|
||||
private uint questFlags = 0;
|
||||
private Dictionary<string, Object> questData = new Dictionary<string, object>();
|
||||
|
@ -13,17 +16,22 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
public Quest(uint actorID, string name)
|
||||
: base(actorID)
|
||||
{
|
||||
actorName = name;
|
||||
actorName = name;
|
||||
}
|
||||
|
||||
public void InitQuestData(string dataName, object initialValue)
|
||||
public Quest(Player owner, uint actorID, string name, string questDataJson, uint questFlags)
|
||||
: base(actorID)
|
||||
{
|
||||
questData[dataName] = initialValue;
|
||||
this.owner = owner;
|
||||
actorName = name;
|
||||
this.questFlags = questFlags;
|
||||
this.questData = JsonConvert.DeserializeObject<Dictionary<string, Object>>(questDataJson);
|
||||
if (questData == null)
|
||||
questData = new Dictionary<string, object>();
|
||||
}
|
||||
|
||||
public void UpdateQuestData(string dataName, object data)
|
||||
{
|
||||
if (questData.ContainsKey(dataName))
|
||||
|
||||
public void SetQuestData(string dataName, object data)
|
||||
{
|
||||
questData[dataName] = data;
|
||||
|
||||
//Inform update
|
||||
|
@ -81,5 +89,20 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
currentPhase++;
|
||||
}
|
||||
|
||||
public uint GetQuestFlags()
|
||||
{
|
||||
return questFlags;
|
||||
}
|
||||
|
||||
public string GetSerializedQuestData()
|
||||
{
|
||||
return JsonConvert.SerializeObject(questData, Formatting.Indented);
|
||||
}
|
||||
|
||||
public void SaveData()
|
||||
{
|
||||
Database.saveQuest(owner, this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue