mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-12 07:24:37 +02:00
Changed how Quest ENPCs work. They should now automatically update themselves whenever data is update for immediate effect changes. Fixed wrong map qflag value. Fixed quest gm command. Fixed Director actorId clobbering areaMasters.
This commit is contained in:
parent
b11007b263
commit
8b3431e557
8 changed files with 180 additions and 179 deletions
|
@ -1550,23 +1550,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)
|
||||
|
@ -1638,6 +1635,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++)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue