mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Child scripts now loaded by a uniqueId in the spawn table.
This commit is contained in:
		| @@ -243,7 +243,8 @@ namespace FFXIVClassic_Map_Server | ||||
|  | ||||
|                     string query = @" | ||||
|                                     SELECT  | ||||
|                                     actorClassId,                                     | ||||
|                                     actorClassId,   | ||||
|                                     uniqueId,                                   | ||||
|                                     zoneId,       | ||||
|                                     privateAreaName,                               | ||||
|                                     privateAreaLevel, | ||||
| @@ -264,10 +265,11 @@ namespace FFXIVClassic_Map_Server | ||||
|                         while (reader.Read()) | ||||
|                         { | ||||
|                             string customName = null; | ||||
|                             if (!reader.IsDBNull(10)) | ||||
|                             if (!reader.IsDBNull(11)) | ||||
|                                 customName = reader.GetString("customDisplayName"); | ||||
|  | ||||
|                             uint classId = reader.GetUInt32("actorClassId"); | ||||
|                             string uniqueId = reader.GetString("uniqueId"); | ||||
|                             uint zoneId = reader.GetUInt32("zoneId"); | ||||
|                             string privAreaName = reader.GetString("privateAreaName"); | ||||
|                             uint privAreaLevel = reader.GetUInt32("privateAreaLevel"); | ||||
| @@ -287,7 +289,7 @@ namespace FFXIVClassic_Map_Server | ||||
|                             if (zone == null) | ||||
|                                 continue; | ||||
|  | ||||
|                             SpawnLocation spawn = new SpawnLocation(classId, zoneId, privAreaName, privAreaLevel, x, y, z, rot, state, animId); | ||||
|                             SpawnLocation spawn = new SpawnLocation(classId, uniqueId, zoneId, privAreaName, privAreaLevel, x, y, z, rot, state, animId); | ||||
|  | ||||
|                             zone.addSpawnLocation(spawn); | ||||
|  | ||||
|   | ||||
| @@ -346,7 +346,7 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|             if (actorClass == null) | ||||
|                 return; | ||||
|  | ||||
|             Npc npc = new Npc(mActorList.Count + 1, actorClass.actorClassId, actorId, location.x, location.y, location.z, location.rot, location.state, location.animId, actorClass.displayNameId, null, actorClass.classPath); | ||||
|             Npc npc = new Npc(mActorList.Count + 1, actorClass.actorClassId, location.uniqueId, actorId, location.x, location.y, location.z, location.rot, location.state, location.animId, actorClass.displayNameId, null, actorClass.classPath); | ||||
|             npc.loadEventConditions(actorClass.eventConditions);             | ||||
|  | ||||
|             addActorToZone(npc);                           | ||||
|   | ||||
| @@ -9,6 +9,7 @@ namespace FFXIVClassic_Map_Server.actors.area | ||||
|     class SpawnLocation | ||||
|     { | ||||
|         public uint classId; | ||||
|         public string uniqueId; | ||||
|         public uint zoneId; | ||||
|         public string privAreaName; | ||||
|         public uint privAreaLevel; | ||||
| @@ -19,9 +20,10 @@ namespace FFXIVClassic_Map_Server.actors.area | ||||
|         public ushort state; | ||||
|         public uint animId; | ||||
|  | ||||
|         public SpawnLocation(uint classId, uint zoneId, string privAreaName, uint privAreaLevel, float x, float y, float z, float rot, ushort state, uint animId) | ||||
|         public SpawnLocation(uint classId, string uniqueId, uint zoneId, string privAreaName, uint privAreaLevel, float x, float y, float z, float rot, ushort state, uint animId) | ||||
|         { | ||||
|             this.classId = classId; | ||||
|             this.uniqueId = uniqueId; | ||||
|             this.zoneId = zoneId; | ||||
|             this.privAreaName = privAreaName; | ||||
|             this.privAreaLevel = privAreaLevel; | ||||
|   | ||||
| @@ -22,12 +22,12 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
| { | ||||
|     class Npc : Character | ||||
|     { | ||||
|         //private Script actorScript; | ||||
|         private uint actorClassId; | ||||
|         private string uniqueIdentifier; | ||||
|  | ||||
|         public NpcWork npcWork = new NpcWork(); | ||||
|  | ||||
|         public Npc(int actorNumber, uint classId, uint zoneId, float posX, float posY, float posZ, float rot, ushort actorState, uint animationId, uint displayNameId, string customDisplayName, string classPath) | ||||
|         public Npc(int actorNumber, uint classId, string uniqueId, uint zoneId, float posX, float posY, float posZ, float rot, ushort actorState, uint animationId, uint displayNameId, string customDisplayName, string classPath) | ||||
|             : base((4 << 28 | zoneId << 19 | (uint)actorNumber))   | ||||
|         { | ||||
|             this.positionX = posX; | ||||
| @@ -39,6 +39,8 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|             this.displayNameId = displayNameId; | ||||
|             this.customDisplayName = customDisplayName; | ||||
|  | ||||
|             this.uniqueIdentifier = uniqueId; | ||||
|  | ||||
|             this.zoneId = zoneId; | ||||
|             this.zone = Server.GetWorldManager().GetZone(zoneId); | ||||
|  | ||||
| @@ -86,13 +88,23 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|             List<LuaParam> lParams; | ||||
|  | ||||
|             Player player = Server.GetWorldManager().GetPCInWorld(playerActorId); | ||||
|             lParams = DoActorInit(player); | ||||
|             lParams = DoActorInit(player);             | ||||
|  | ||||
|             if (lParams == null) | ||||
|             { | ||||
|                 classPath = "/Chara/Npc/Populace/PopulaceStandard"; | ||||
|                 className = "PopulaceStandard"; | ||||
|                 lParams = LuaUtils.createLuaParamList(classPath, false, false, false, false, false, 0xF47F6, false, false, 0, 0); | ||||
|                 lParams = LuaUtils.createLuaParamList(classPath, false, false, false, false, false, 0xF47F6, false, false, 0, 1, "TEST"); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 lParams.Insert(0, new LuaParam(2, classPath)); | ||||
|                 lParams.Insert(1, new LuaParam(4, 4)); | ||||
|                 lParams.Insert(2, new LuaParam(4, 4)); | ||||
|                 lParams.Insert(3, new LuaParam(4, 4)); | ||||
|                 lParams.Insert(4, new LuaParam(4, 4)); | ||||
|                 lParams.Insert(5, new LuaParam(4, 4)); | ||||
|                 lParams.Insert(6, new LuaParam(0, (int)actorClassId)); | ||||
|             } | ||||
|  | ||||
|             ActorInstantiatePacket.buildPacket(actorId, playerActorId, actorName, className, lParams).debugPrintSubPacket(); | ||||
| @@ -188,7 +200,7 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|                                     hairStyle, | ||||
|                                     hairHighlightColor, | ||||
|                                     hairVariation, | ||||
|                                     faceType, | ||||
|                                     faceType,    | ||||
|                                     characteristics, | ||||
|                                     characteristicsColor, | ||||
|                                     faceEyebrows, | ||||
| @@ -287,8 +299,8 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|  | ||||
|             if (File.Exists("./scripts/base/" + classPath + ".lua")) | ||||
|                 parent = LuaEngine.loadScript("./scripts/base/" + classPath + ".lua"); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId)); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier)); | ||||
|  | ||||
|             if (parent == null) | ||||
|             { | ||||
| @@ -315,8 +327,8 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|  | ||||
|             if (File.Exists("./scripts/base/" + classPath + ".lua")) | ||||
|                 parent = LuaEngine.loadScript("./scripts/base/" + classPath + ".lua"); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId)); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier)); | ||||
|  | ||||
|             if (parent == null) | ||||
|             { | ||||
| @@ -351,8 +363,8 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|  | ||||
|             if (File.Exists("./scripts/base/" + classPath + ".lua")) | ||||
|                 parent = LuaEngine.loadScript("./scripts/base/" + classPath + ".lua"); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId)); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier)); | ||||
|  | ||||
|             if (parent == null) | ||||
|             { | ||||
| @@ -385,8 +397,8 @@ namespace FFXIVClassic_Map_Server.Actors | ||||
|  | ||||
|             if (File.Exists("./scripts/base/" + classPath + ".lua")) | ||||
|                 parent = LuaEngine.loadScript("./scripts/base/" + classPath + ".lua"); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}.{2}.lua", zone.zoneName, className, actorClassId)); | ||||
|             if (File.Exists(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier))) | ||||
|                 child = LuaEngine.loadScript(String.Format("./scripts/unique/{0}/{1}/{2}.lua", zone.zoneName, className, uniqueIdentifier)); | ||||
|  | ||||
|             if (parent == null) | ||||
|             { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user