mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
Fixed PrivateAreas not working due to a bad actor id colliding with players.
This commit is contained in:
parent
3ad30460d8
commit
56ba641e2a
@ -59,8 +59,8 @@ namespace Meteor.Map.Actors
|
|||||||
|
|
||||||
LuaScript areaScript;
|
LuaScript areaScript;
|
||||||
|
|
||||||
public Area(uint id, string zoneName, ushort regionId, string classPath, ushort bgmDay, ushort bgmNight, ushort bgmBattle, bool isIsolated, bool isInn, bool canRideChocobo, bool canStealth, bool isInstanceRaid)
|
public Area(uint zoneId, string zoneName, ushort regionId, string classPath, ushort bgmDay, ushort bgmNight, ushort bgmBattle, bool isIsolated, bool isInn, bool canRideChocobo, bool canStealth, bool isInstanceRaid)
|
||||||
: base(id)
|
: base((4 << 28 | zoneId << 19 | ((uint)1)))
|
||||||
{
|
{
|
||||||
|
|
||||||
this.zoneName = zoneName;
|
this.zoneName = zoneName;
|
||||||
@ -77,10 +77,11 @@ namespace Meteor.Map.Actors
|
|||||||
|
|
||||||
this.displayNameId = 0;
|
this.displayNameId = 0;
|
||||||
this.customDisplayName = "_areaMaster";
|
this.customDisplayName = "_areaMaster";
|
||||||
this.actorName = String.Format("_areaMaster@{0:X5}", id << 8);
|
this.actorName = String.Format("_areaMaster@{0:X5}", zoneId << 8);
|
||||||
|
|
||||||
this.classPath = classPath;
|
this.classPath = classPath;
|
||||||
this.className = classPath.Substring(classPath.LastIndexOf("/") + 1);
|
this.className = classPath.Substring(classPath.LastIndexOf("/") + 1);
|
||||||
|
this.zoneId = zoneId;
|
||||||
|
|
||||||
numXBlocks = (maxX - minX) / boundingGridSize;
|
numXBlocks = (maxX - minX) / boundingGridSize;
|
||||||
numYBlocks = (maxY - minY) / boundingGridSize;
|
numYBlocks = (maxY - minY) / boundingGridSize;
|
||||||
|
@ -32,10 +32,10 @@ namespace Meteor.Map.actors.area
|
|||||||
{
|
{
|
||||||
private Zone parentZone;
|
private Zone parentZone;
|
||||||
private string privateAreaName;
|
private string privateAreaName;
|
||||||
private uint privateAreaType;
|
private new uint privateAreaType;
|
||||||
|
|
||||||
public PrivateArea(Zone parent, uint id, string classPath, string privateAreaName, uint privateAreaType, ushort bgmDay, ushort bgmNight, ushort bgmBattle)
|
public PrivateArea(Zone parent, string classPath, string privateAreaName, uint privateAreaType, ushort bgmDay, ushort bgmNight, ushort bgmBattle)
|
||||||
: base(id, parent.zoneName, parent.regionId, classPath, bgmDay, bgmNight, bgmBattle, parent.isIsolated, parent.isInn, parent.canRideChocobo, parent.canStealth, true)
|
: base(parent.zoneId, parent.zoneName, parent.regionId, classPath, bgmDay, bgmNight, bgmBattle, parent.isIsolated, parent.isInn, parent.canRideChocobo, parent.canStealth, true)
|
||||||
{
|
{
|
||||||
this.parentZone = parent;
|
this.parentZone = parent;
|
||||||
this.zoneName = parent.zoneName;
|
this.zoneName = parent.zoneName;
|
||||||
|
@ -38,7 +38,7 @@ namespace Meteor.Map.actors.area
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PrivateAreaContent(Zone parent, string classPath, string privateAreaName, uint privateAreaType, Director director, Player contentStarter) //TODO: Make it a list
|
public PrivateAreaContent(Zone parent, string classPath, string privateAreaName, uint privateAreaType, Director director, Player contentStarter) //TODO: Make it a list
|
||||||
: base(parent, parent.actorId, classPath, privateAreaName, privateAreaType, 0, 0, 0)
|
: base(parent, classPath, privateAreaName, privateAreaType, 0, 0, 0)
|
||||||
{
|
{
|
||||||
currentDirector = director;
|
currentDirector = director;
|
||||||
LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentDirector);
|
LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentDirector);
|
||||||
|
@ -58,7 +58,7 @@ namespace Meteor.Map.Actors
|
|||||||
public NpcSpawnType npcSpawnType;
|
public NpcSpawnType npcSpawnType;
|
||||||
|
|
||||||
public Npc(int actorNumber, ActorClass actorClass, string uniqueId, Area spawnedArea, float posX, float posY, float posZ, float rot, ushort actorState, uint animationId, string customDisplayName)
|
public Npc(int actorNumber, ActorClass actorClass, string uniqueId, Area spawnedArea, float posX, float posY, float posZ, float rot, ushort actorState, uint animationId, string customDisplayName)
|
||||||
: base((4 << 28 | spawnedArea.actorId << 19 | (uint)actorNumber))
|
: base((4 << 28 | spawnedArea.actorId << 19 | ((uint)actorNumber + 5)))
|
||||||
{
|
{
|
||||||
this.positionX = posX;
|
this.positionX = posX;
|
||||||
this.positionY = posY;
|
this.positionY = posY;
|
||||||
|
@ -119,7 +119,7 @@ namespace Meteor.Map
|
|||||||
{
|
{
|
||||||
Zone zone = new Zone(reader.GetUInt32(0), reader.GetString(1), reader.GetUInt16(2), reader.GetString(3), reader.GetUInt16(4), reader.GetUInt16(5),
|
Zone zone = new Zone(reader.GetUInt32(0), reader.GetString(1), reader.GetUInt16(2), reader.GetString(3), reader.GetUInt16(4), reader.GetUInt16(5),
|
||||||
reader.GetUInt16(6), reader.GetBoolean(7), reader.GetBoolean(8), reader.GetBoolean(9), reader.GetBoolean(10), reader.GetBoolean(11), reader.GetBoolean(12));
|
reader.GetUInt16(6), reader.GetBoolean(7), reader.GetBoolean(8), reader.GetBoolean(9), reader.GetBoolean(10), reader.GetBoolean(11), reader.GetBoolean(12));
|
||||||
zoneList[zone.actorId] = zone;
|
zoneList[zone.zoneId] = zone;
|
||||||
count1++;
|
count1++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -140,7 +140,6 @@ namespace Meteor.Map
|
|||||||
|
|
||||||
string query = @"
|
string query = @"
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
|
||||||
parentZoneId,
|
parentZoneId,
|
||||||
privateAreaName,
|
privateAreaName,
|
||||||
privateAreaType,
|
privateAreaType,
|
||||||
@ -162,7 +161,7 @@ namespace Meteor.Map
|
|||||||
if (zoneList.ContainsKey(parentZoneId))
|
if (zoneList.ContainsKey(parentZoneId))
|
||||||
{
|
{
|
||||||
Zone parent = zoneList[parentZoneId];
|
Zone parent = zoneList[parentZoneId];
|
||||||
PrivateArea privArea = new PrivateArea(parent, reader.GetUInt32("id"), reader.GetString("className"), reader.GetString("privateAreaName"), reader.GetUInt32("privateAreaType"), reader.GetUInt16("dayMusic"), reader.GetUInt16("nightMusic"), reader.GetUInt16("battleMusic"));
|
PrivateArea privArea = new PrivateArea(parent, reader.GetString("className"), reader.GetString("privateAreaName"), reader.GetUInt32("privateAreaType"), reader.GetUInt16("dayMusic"), reader.GetUInt16("nightMusic"), reader.GetUInt16("battleMusic"));
|
||||||
parent.AddPrivateArea(privArea);
|
parent.AddPrivateArea(privArea);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user