Merge remote-tracking branch 'origin/ioncannon/quest_system' into Jorge/quest_system

This commit is contained in:
CuriousJorge 2022-02-08 21:41:22 -05:00
commit 4fe8f77887
19 changed files with 223 additions and 188 deletions

View file

@ -254,7 +254,7 @@ namespace Meteor.Map.Actors
return subpackets;
}
public List<SubPacket> GetSetEventStatusPackets(bool talkEnabled = true, bool emoteEnabled = true, bool pushEnabled = true, bool noticeEnabled = true)
public List<SubPacket> GetSetEventStatusPackets(bool talkEnabled = true, bool emoteEnabled = true, Boolean? pushEnabled = null, bool noticeEnabled = true)
{
List<SubPacket> subpackets = new List<SubPacket>();
@ -283,19 +283,19 @@ namespace Meteor.Map.Actors
if (eventConditions.pushWithCircleEventConditions != null)
{
foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions)
subpackets.Add(SetEventStatusPacket.BuildPacket(Id, pushEnabled, 2, condition.conditionName));
subpackets.Add(SetEventStatusPacket.BuildPacket(Id, pushEnabled ?? condition.isEnabled, 2, condition.conditionName));
}
if (eventConditions.pushWithFanEventConditions != null)
{
foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions)
subpackets.Add(SetEventStatusPacket.BuildPacket(Id, pushEnabled, 2, condition.conditionName));
subpackets.Add(SetEventStatusPacket.BuildPacket(Id, pushEnabled ?? condition.isEnabled, 2, condition.conditionName));
}
if (eventConditions.pushWithBoxEventConditions != null)
{
foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions)
subpackets.Add(SetEventStatusPacket.BuildPacket(Id, pushEnabled, 2, condition.conditionName));
subpackets.Add(SetEventStatusPacket.BuildPacket(Id, pushEnabled ?? condition.isEnabled, 2, condition.conditionName));
}
return subpackets;

View file

@ -109,6 +109,16 @@ namespace Meteor.Map.Actors
return 0;
}
public virtual bool IsPublic()
{
return true;
}
public virtual bool IsPrivate()
{
return !IsPublic();
}
public override SubPacket CreateScriptBindPacket()
{
List<LuaParam> lParams;

View file

@ -52,6 +52,11 @@ namespace Meteor.Map.actors.area
return PrivateAreaType;
}
public override bool IsPublic()
{
return false;
}
public Zone GetParentZone()
{
return ParentZone;

View file

@ -582,7 +582,7 @@ namespace Meteor.Map.Actors
QueuePacket(SetWeatherPacket.BuildPacket(Id, SetWeatherPacket.WEATHER_CLEAR, 1));
}
public void SendZoneInPackets(WorldManager world, ushort spawnType)
public void SendZoneInPackets(WorldManager world, ushort spawnType, bool changeMap)
{
QueuePacket(SetActorIsZoningPacket.BuildPacket(Id, false));
QueuePacket(SetDalamudPacket.BuildPacket(Id, 0));
@ -965,7 +965,7 @@ namespace Meteor.Map.Actors
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().Id, textIdOwner.Id, textId, log, LuaUtils.CreateLuaParamList(msgParams)));
}
public void SendGameMessageCustomSender(Actor textIdOwner, ushort textId, byte log, string customSender, params object[] msgParams)
public void SendGameMessageDisplayName(Actor textIdOwner, ushort textId, byte log, string customSender, params object[] msgParams)
{
if (msgParams == null || msgParams.Length == 0)
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().Id, textIdOwner.Id, textId, customSender, log));
@ -973,7 +973,7 @@ namespace Meteor.Map.Actors
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().Id, textIdOwner.Id, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams)));
}
public void SendGameMessageDisplayIDSender(Actor textIdOwner, ushort textId, byte log, uint displayId, params object[] msgParams)
public void SendGameMessageLocalizedDisplayName(Actor textIdOwner, ushort textId, byte log, uint displayId, params object[] msgParams)
{
if (msgParams == null || msgParams.Length == 0)
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().Id, textIdOwner.Id, textId, displayId, log));
@ -1699,11 +1699,15 @@ namespace Meteor.Map.Actors
if (defaultTalk != null && defaultTalk.IsQuestENPC(this, npc))
return defaultTalk;
return null;
}
public Quest GetTutorialQuest(Npc npc)
{
if (npc.CurrentArea.RegionId != 101 || npc.CurrentArea.RegionId != 103 || npc.CurrentArea.RegionId != 104)
return null;
switch (npc.GetActorClassId())
{
case 1000137:
@ -1735,6 +1739,11 @@ namespace Meteor.Map.Actors
bool isCalling, isExtra;
isCalling = isExtra = false;
if (npcLSId < 1 || npcLSId > 40)
return;
npcLSId--;
switch (state)
{
case NPCLS_INACTIVE:

View file

@ -63,6 +63,7 @@ namespace Meteor.Map.actors
public class PushCircleEventCondition
{
public bool isEnabled = true;
public string conditionName = "";
public float radius = 30.0f;
public bool outwards = false;
@ -71,6 +72,7 @@ namespace Meteor.Map.actors
public class PushFanEventCondition
{
public bool isEnabled = true;
public string conditionName;
public float radius = 30.0f;
public bool outwards = false;
@ -79,6 +81,7 @@ namespace Meteor.Map.actors
public class PushBoxEventCondition
{
public bool isEnabled = true;
public uint bgObj;
public uint layout;
public string conditionName = "";