Started to implement private areas. Works mostly, but only one instance is created. All the push triggers work more or less except bounding box.

This commit is contained in:
Filip Maj
2016-03-20 19:29:38 -04:00
parent 67fed3dba5
commit 0876b293e8
13 changed files with 200 additions and 81 deletions

View File

@@ -22,11 +22,22 @@ namespace FFXIVClassic_Map_Server.actors.area
this.privateAreaName = privateAreaName;
}
public string getPrivateAreaName()
{
return privateAreaName;
}
public Zone getParentZone()
{
return parentZone;
}
public override SubPacket createScriptBindPacket(uint playerActorId)
{
List<LuaParam> lParams;
lParams = LuaUtils.createLuaParamList("/Area/PrivateArea/" + className, false, true, zoneName, privateAreaName, 0xE1, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, false, false, false);
lParams = LuaUtils.createLuaParamList("/Area/PrivateArea/" + className, false, true, zoneName, privateAreaName, 0x9E, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, false, false, false);
return ActorInstantiatePacket.buildPacket(actorId, playerActorId, actorName, className, lParams);
}
}
}

View File

@@ -20,6 +20,17 @@ namespace FFXIVClassic_Map_Server.actors.area
}
public void addPrivateArea(PrivateArea pa)
{
if (privateAreas.ContainsKey(pa.getPrivateAreaName()))
privateAreas[pa.getPrivateAreaName()][0] = pa;
else
{
privateAreas[pa.getPrivateAreaName()] = new Dictionary<uint, PrivateArea>();
privateAreas[pa.getPrivateAreaName()][0] = pa;
}
}
public PrivateArea getPrivateArea(string type, uint number)
{
if (privateAreas.ContainsKey(type))