1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-20 19:57:46 +00:00

Added break in the "setPushCircle" function. Fixed bug in the actor properties util. If a packet got full while inserting the property, it wouldn't get inserted in the next one.

This commit is contained in:
Filip Maj 2017-04-02 12:51:23 -04:00
parent 6c366110ef
commit e0c9ca2bc2
3 changed files with 43 additions and 20 deletions

View file

@ -68,7 +68,10 @@ namespace FFXIVClassic_Map_Server.Actors
foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions) foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions)
{ {
if (condition.conditionName.Equals(triggerName)) if (condition.conditionName.Equals(triggerName))
{
condition.radius = size; condition.radius = size;
break;
}
} }
} }

View file

@ -147,10 +147,15 @@ namespace FFXIVClassic_Map_Server.lua
private List<LuaParam> CallLuaFunctionNpcForReturn(Player player, Npc target, string funcName, params object[] args) private List<LuaParam> CallLuaFunctionNpcForReturn(Player player, Npc target, string funcName, params object[] args)
{ {
object[] args2 = new object[args.Length + 2]; object[] args2 = new object[args.Length + (player == null ? 1 : 2)];
Array.Copy(args, 0, args2, 2, args.Length); Array.Copy(args, 0, args2, (player == null ? 1 : 2), args.Length);
args2[0] = player; if (player != null)
args2[1] = target; {
args2[0] = player;
args2[1] = target;
}
else
args2[0] = target;
LuaScript parent = null, child = null; LuaScript parent = null, child = null;
@ -160,8 +165,8 @@ namespace FFXIVClassic_Map_Server.lua
Area area = target.zone; Area area = target.zone;
if (area is PrivateArea) if (area is PrivateArea)
{ {
if (File.Exists(String.Format("./scripts/unique/{0}/privatearea/{1}/{2}/{3}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), target.className, target.GetUniqueId()))) if (File.Exists(String.Format("./scripts/unique/{0}/privatearea/{1}_{2}/{3}/{4}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), ((PrivateArea)area).GetPrivateAreaType(), target.className, target.GetUniqueId())))
child = LuaEngine.LoadScript(String.Format("./scripts/unique/{0}/privatearea/{1}/{2}/{3}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), target.className, target.GetUniqueId())); child = LuaEngine.LoadScript(String.Format("./scripts/unique/{0}/privatearea/{1}_{2}/{3}/{4}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), ((PrivateArea)area).GetPrivateAreaType(), target.className, target.GetUniqueId()));
} }
else else
{ {
@ -190,10 +195,15 @@ namespace FFXIVClassic_Map_Server.lua
private void CallLuaFunctionNpc(Player player, Npc target, string funcName, params object[] args) private void CallLuaFunctionNpc(Player player, Npc target, string funcName, params object[] args)
{ {
object[] args2 = new object[args.Length + 2]; object[] args2 = new object[args.Length + (player == null ? 1:2)];
Array.Copy(args, 0, args2, 2, args.Length); Array.Copy(args, 0, args2, (player == null ? 1 : 2), args.Length);
args2[0] = player; if (player != null)
args2[1] = target; {
args2[0] = player;
args2[1] = target;
}
else
args2[0] = target;
LuaScript parent = null, child = null; LuaScript parent = null, child = null;
@ -203,8 +213,8 @@ namespace FFXIVClassic_Map_Server.lua
Area area = target.zone; Area area = target.zone;
if (area is PrivateArea) if (area is PrivateArea)
{ {
if (File.Exists(String.Format("./scripts/unique/{0}/privatearea/{1}/{2}/{3}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), target.className, target.GetUniqueId()))) if (File.Exists(String.Format("./scripts/unique/{0}/privatearea/{1}_{2}/{3}/{4}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), ((PrivateArea)area).GetPrivateAreaType(), target.className, target.GetUniqueId())))
child = LuaEngine.LoadScript(String.Format("./scripts/unique/{0}/privatearea/{1}/{2}/{3}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), target.className, target.GetUniqueId())); child = LuaEngine.LoadScript(String.Format("./scripts/unique/{0}/privatearea/{1}_{2}/{3}/{4}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), ((PrivateArea)area).GetPrivateAreaType(), target.className, target.GetUniqueId()));
} }
else else
{ {
@ -214,7 +224,7 @@ namespace FFXIVClassic_Map_Server.lua
if (parent == null && child == null) if (parent == null && child == null)
{ {
LuaEngine.SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); LuaEngine.SendError(player, String.Format("Could not find script for actor {0}.", target.GetName()));
return; return;
} }
@ -228,8 +238,15 @@ namespace FFXIVClassic_Map_Server.lua
if (coroutine != null) if (coroutine != null)
{ {
DynValue value = coroutine.Resume(args2); try
ResolveResume(player, coroutine, value); {
DynValue value = coroutine.Resume(args2);
ResolveResume(player, coroutine, value);
}
catch (ScriptRuntimeException e)
{
SendError(player, e.DecoratedMessage);
}
} }
} }
@ -252,12 +269,12 @@ namespace FFXIVClassic_Map_Server.lua
} }
else else
{ {
SendError(player, String.Format("ERROR: Could not find function '{0}' for actor {1}.", funcName, target.GetName())); SendError(player, String.Format("Could not find function '{0}' for actor {1}.", funcName, target.GetName()));
} }
} }
else else
{ {
SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); SendError(player, String.Format("Could not find script for actor {0}.", target.GetName()));
} }
return null; return null;
} }
@ -288,13 +305,13 @@ namespace FFXIVClassic_Map_Server.lua
} }
else else
{ {
SendError(player, String.Format("ERROR: Could not find function '{0}' for actor {1}.", funcName, target.GetName())); SendError(player, String.Format("Could not find function '{0}' for actor {1}.", funcName, target.GetName()));
} }
} }
else else
{ {
if (!(target is Area)) if (!(target is Area))
SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); SendError(player, String.Format("Could not find script for actor {0}.", target.GetName()));
} }
} }
@ -496,7 +513,7 @@ namespace FFXIVClassic_Map_Server.lua
} }
catch (SyntaxErrorException e) catch (SyntaxErrorException e)
{ {
Program.Log.Error("LUAERROR: {0}.", e.DecoratedMessage); Program.Log.Error("{0}.", e.DecoratedMessage);
return null; return null;
} }
return script; return script;
@ -521,6 +538,7 @@ namespace FFXIVClassic_Map_Server.lua
private static void SendError(Player player, string message) private static void SendError(Player player, string message)
{ {
message = "[LuaError] " + message;
if (player == null) if (player == null)
return; return;
List<SubPacket> SendError = new List<SubPacket>(); List<SubPacket> SendError = new List<SubPacket>();
@ -531,3 +549,4 @@ namespace FFXIVClassic_Map_Server.lua
} }
} }

View file

@ -30,6 +30,7 @@ namespace FFXIVClassic_Map_Server.utils
currentActorPropertyPacket.AddTarget(); currentActorPropertyPacket.AddTarget();
subPackets.Add(currentActorPropertyPacket.BuildPacket(playerActorId, forActor.actorId)); subPackets.Add(currentActorPropertyPacket.BuildPacket(playerActorId, forActor.actorId));
currentActorPropertyPacket = new SetActorPropetyPacket(currentTarget); currentActorPropertyPacket = new SetActorPropetyPacket(currentTarget);
currentActorPropertyPacket.AddProperty(forActor, property);
} }
} }