Merge branch 'ioncannon/quest_system' of https://bitbucket.org/Ioncannon/project-meteor-server into Jorge/quest_system

This commit is contained in:
CuriousJorge 2022-02-06 14:49:31 -05:00
commit fb9d4026a5
9 changed files with 209 additions and 195 deletions

View file

@ -1558,23 +1558,20 @@ namespace Meteor.Map.Actors
}
}
public void ReplaceQuest(uint oldId, uint newId)
public void ReplaceQuest(Quest oldQuest, string questCode)
{
if (HasQuest(oldId))
for (int i = 0; i < questScenario.Length; i++)
{
for (int i = 0; i < questScenario.Length; i++)
if (questScenario[i] != null && questScenario[i].Equals(oldQuest))
{
if (questScenario[i] != null && questScenario[i].GetQuestId() == oldId)
{
Quest baseQuest = (Quest) Server.GetStaticActors((0xA0F00000 | newId));
playerWork.questScenario[i] = (0xA0F00000 | newId);
questScenario[i] = new Quest(this, baseQuest);
Database.SaveQuest(this, questScenario[i]);
SendQuestClientUpdate(i);
break;
}
Quest baseQuest = (Quest) Server.GetStaticActors(questCode);
questScenario[i] = new Quest(this, baseQuest);
playerWork.questScenario[i] = questScenario[i].Id;
Database.SaveQuest(this, questScenario[i]);
SendQuestClientUpdate(i);
break;
}
}
}
}
public bool CanAcceptQuest(string name)
@ -1646,6 +1643,11 @@ namespace Meteor.Map.Actors
return false;
}
public bool HasQuest(Quest quest)
{
return HasQuest(quest.className);
}
public bool HasGuildleve(uint id)
{
for (int i = 0; i < work.guildleveId.Length; i++)