diff --git a/FFXIVClassic Common Class Lib/Utils.cs b/FFXIVClassic Common Class Lib/Utils.cs index a3b596ff..469213ca 100644 --- a/FFXIVClassic Common Class Lib/Utils.cs +++ b/FFXIVClassic Common Class Lib/Utils.cs @@ -358,6 +358,12 @@ namespace FFXIVClassic.Common return Math.Max(Math.Min(max, val), min); } + public static int Clamp(int val, int min, int max) + { + + return Math.Max(Math.Min(max, val), min); + } + public static float Distance(float x, float y, float z, float x2, float y2, float z2) { if (x == x2 && y == y2 && z == z2) diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 0cf2c66c..84dd2604 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -368,12 +368,33 @@ namespace FFXIVClassic_Map_Server.Actors if (diffTime.Milliseconds >= deltaTime) { bool foundActor = false; + bool skipFollow = false; + + // leash back to spawn + if (this.oldPositionX != 0.0f && this.oldPositionY != 0.0f && this.oldPositionZ != 0.0f) + { + var spawnDistance = Utils.Distance(positionX, positionY, positionZ, oldPositionX, oldPositionY, oldPositionZ); + + if (spawnDistance >= 45) + { + skipFollow = true; + } + } + foreach (var actor in ((Area)zone).GetActorsAroundActor(this, 50)) { if (actor is Player && actor != this) { var player = actor as Player; + if (skipFollow) + { + // todo: despawn self for player + + continue; + } + + var distance = Utils.Distance(positionX, positionY, positionZ, player.positionX, player.positionY, player.positionZ); int maxDistance = player == target ? 25 : 15; @@ -414,16 +435,28 @@ namespace FFXIVClassic_Map_Server.Actors break; } } + var diffMove = (DateTime.Now - lastMoveUpdate); + // 5 seconds before back to spawn - if ((DateTime.Now - lastMoveUpdate).Seconds >= 5 && !foundActor) + if (diffMove.Seconds >= 5 && !foundActor) { - // 10 yalms spawn radius just because - this.isAtSpawn = Utils.Distance(positionX, positionY, positionZ, oldPositionX, oldPositionY, oldPositionZ) <= 18.0f; + // leash to spawn + this.isAtSpawn = Utils.Distance(positionX, positionY, positionZ, oldPositionX, oldPositionY, oldPositionZ) <= 25.0f; - if (this.isAtSpawn != true && this.target == null && oldPositionX != 0.0f && oldPositionY != 0.0f && oldPositionZ != 0.0f) - PathTo(oldPositionX, oldPositionY, oldPositionZ, 3.0f); - - lastMoveUpdate = DateTime.Now; + if (this.target == null && skipFollow) + { + // not in spawn range + if (!this.isAtSpawn) + { + PathTo(oldPositionX, oldPositionY, oldPositionZ, 3.0f); + } + // within spawn range, find a random point + else if (diffMove.Seconds >= 15) + { + //Program.Log.Error("Picking random point to walk to! "); + PathTo(oldPositionX, oldPositionY, oldPositionZ, 2.5f, 25, 8.5f); + } + } this.target = null; } lastAiUpdate = DateTime.Now; @@ -641,7 +674,7 @@ namespace FFXIVClassic_Map_Server.Actors rotation = (float)dRot; } - public void PathTo(float x, float y, float z, float stepSize = 0.70f, int maxPath = 40) + public void PathTo(float x, float y, float z, float stepSize = 0.70f, int maxPath = 40, float polyRadius = 0.0f) { var pos = new utils.Vector3(positionX, positionY, positionZ); var dest = new utils.Vector3(x, y, z); @@ -649,7 +682,7 @@ namespace FFXIVClassic_Map_Server.Actors var sw = new System.Diagnostics.Stopwatch(); sw.Start(); - var path = utils.NavmeshUtils.GetPath(((Zone)GetZone()), pos, dest, stepSize, maxPath); + var path = utils.NavmeshUtils.GetPath(((Zone)GetZone()), pos, dest, stepSize, maxPath, polyRadius); if (path != null) { @@ -687,8 +720,30 @@ namespace FFXIVClassic_Map_Server.Actors var player = target as Player; if (this.target != target) - this.target = target; + { + #region super important performance critical code + var chatMode = Program.Random.Next(12); + var emphasis = Program.Random.Next(9); + var drag = Program.Random.Next(7); + string oni = "ONI"; + string chan = "CHA"; + + for(var i = 0; i < emphasis; ++i) + oni += "I"; + + for (var i = 0; i < drag; ++i) + chan += "A"; + + oni += "-"; + chan += "N"; + + + player.SendMessage((uint)chatMode, "Rowena", oni + chan); + #endregion + + this.target = target; + } this.moveState = player.moveState; this.moveSpeeds = player.moveSpeeds; diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index fd7f69d1..6b5814d4 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -120,6 +120,7 @@ namespace FFXIVClassic_Map_Server.dataobjects } + // todo: this is retarded (checking moved crap demo added) bool checkedThisTick = false; //Add new actors or move for (int i = 0; i < list.Count; i++) diff --git a/FFXIVClassic Map Server/utils/NavmeshUtils.cs b/FFXIVClassic Map Server/utils/NavmeshUtils.cs index a2a00145..2757db3c 100644 --- a/FFXIVClassic Map Server/utils/NavmeshUtils.cs +++ b/FFXIVClassic Map Server/utils/NavmeshUtils.cs @@ -122,7 +122,7 @@ namespace FFXIVClassic_Map_Server.utils // Copyright (c) 2013-2016 Robert Rouhani and other contributors (see CONTRIBUTORS file). // Licensed under the MIT License - https://raw.github.com/Robmaister/SharpNav/master/LICENSE - public static List GetPath(FFXIVClassic_Map_Server.actors.area.Zone zone, Vector3 startVec, Vector3 endVec, float stepSize = 0.70f, int pathSize = 2048) + public static List GetPath(FFXIVClassic_Map_Server.actors.area.Zone zone, Vector3 startVec, Vector3 endVec, float stepSize = 0.70f, int pathSize = 45, float polyRadius = 0.0f) { var navMesh = zone.tiledNavMesh; var navMeshQuery = zone.navMeshQuery; @@ -220,6 +220,11 @@ namespace FFXIVClassic_Map_Server.utils iterPos = targetPos; if (smoothPath.Count < smoothPath.Capacity) { + if (polyRadius != 0.0f) + { + var randPoly = navMeshQuery.FindRandomPointAroundCircle(endPt, polyRadius); + iterPos = randPoly.Position; + } smoothPath.Add(new Vector3(iterPos)); } break; diff --git a/sql/ROWENA_REPRESENT.sql b/sql/ROWENA_REPRESENT.sql new file mode 100644 index 00000000..8be55275 --- /dev/null +++ b/sql/ROWENA_REPRESENT.sql @@ -0,0 +1,256 @@ +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -51.815, 180.619, -219.092, 2.949); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -55.258, 180.632, -225.143, -0.339); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -50.962, 180.600, -219.705, -1.560); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -49.059, 182.598, -232.951, 1.725); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -46.647, 180.841, -206.811, -1.130); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -48.437, 182.657, -232.341, -1.872); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -35.259, 180.432, -202.416, 1.595); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -34.054, 181.220, -209.982, -2.964); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -34.181, 181.310, -210.453, -0.869); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -37.232, 180.981, -210.162, 1.123); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -45.052, 180.561, -208.960, 0.540); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -35.958, 187.043, -238.919, -1.739); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -45.027, 185.589, -233.032, -2.776); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -45.191, 180.545, -211.073, 1.047); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -41.839, 180.788, -203.745, 1.208); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -27.471, 189.425, -229.810, -1.493); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -30.015, 182.268, -215.627, -1.801); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -37.278, 180.328, -203.548, 0.891); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -25.359, 184.917, -238.162, 0.613); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -51.961, 182.669, -234.450, -0.998); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -128.105, 184.541, -533.988, 0.807); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -130.269, 184.040, -510.351, 0.061); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -144.985, 184.016, -521.671, -0.765); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -147.695, 184.070, -517.031, -0.543); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -144.281, 180.216, -533.635, 0.136); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -143.154, 184.139, -517.964, -2.344); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -142.716, 184.088, -520.741, 1.481); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -119.080, 184.631, -528.562, 1.423); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -148.644, 179.069, -533.730, 2.031); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -149.051, 183.824, -517.888, -2.356); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -130.194, 184.267, -537.727, -1.488); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -150.069, 183.334, -524.120, 2.324); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -123.840, 183.985, -514.057, 2.732); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -138.891, 184.280, -511.100, -2.066); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -132.335, 184.124, -505.627, -2.566); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -349.657, 180.094, -525.485, 0.053); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -351.220, 177.390, -532.227, 0.214); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -335.533, 171.846, -523.066, -0.438); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -340.280, 172.747, -505.801, -2.005); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -342.491, 173.192, -504.310, -1.133); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -333.951, 173.059, -533.402, -0.773); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -343.919, 175.908, -531.783, 2.299); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -331.746, 171.139, -524.924, 0.896); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -338.135, 173.048, -528.050, 2.701); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -343.874, 174.831, -518.442, -2.042); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -323.897, 169.116, -521.613, 0.981); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -334.262, 171.395, -523.972, -0.359); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -327.144, 168.373, -514.559, 0.860); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -336.846, 172.728, -529.265, 0.050); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -319.660, 173.481, -531.242, 2.455); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -442.804, 152.083, -429.737, -0.888); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -426.737, 151.588, -424.513, 3.086); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -432.421, 151.996, -430.175, -0.229); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -438.770, 151.212, -414.595, 1.846); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -419.900, 152.193, -429.819, -2.325); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -437.913, 151.055, -411.550, -1.189); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -438.235, 151.272, -408.654, -2.471); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -435.633, 151.556, -426.617, -2.437); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -430.027, 149.602, -407.874, 1.293); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -455.667, 151.731, -415.468, -2.646); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -431.413, 152.064, -433.174, 0.693); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -447.918, 152.546, -423.048, -1.329); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -440.547, 151.787, -436.825, -2.785); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -444.213, 151.538, -415.137, -1.609); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -424.736, 149.711, -415.613, 2.303); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -441.719, 151.749, -436.966, -1.026); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -441.150, 151.353, -414.789, 1.238); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -427.934, 152.150, -438.479, -1.692); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -429.796, 149.602, -406.646, 1.744); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -433.280, 151.686, -427.504, 0.154); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -425.145, 149.568, -414.679, 2.551); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -428.265, 150.276, -419.100, 1.039); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -446.926, 151.807, -436.332, -3.078); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -447.469, 152.254, -430.922, 1.155); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', -454.230, 152.107, -427.360, -2.917); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 58.424, 199.693, -517.062, 1.915); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 48.313, 200.178, -508.518, 0.036); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 50.545, 200.254, -529.017, 2.312); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 48.658, 200.189, -519.320, -1.314); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 64.324, 199.749, -517.833, 2.235); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 55.129, 199.780, -506.955, 1.257); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 76.185, 199.310, -520.894, -2.158); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 58.033, 200.338, -533.037, 1.152); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 65.360, 200.184, -527.590, 0.846); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 46.169, 200.823, -524.087, -0.804); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 76.160, 198.714, -512.279, -1.772); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 68.630, 199.678, -513.173, -0.473); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 57.265, 199.744, -519.230, 0.659); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 67.254, 199.631, -503.945, -0.397); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 66.052, 200.638, -535.457, -3.076); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 151.907, 184.368, -326.079, 1.237); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 181.594, 187.112, -325.688, 1.240); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 165.974, 202.732, -340.042, -3.063); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 151.753, 184.299, -327.450, -1.654); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 145.798, 184.322, -314.036, 0.750); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 148.005, 184.087, -329.938, 2.496); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 175.655, 199.528, -332.442, -2.414); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 154.197, 184.223, -324.292, -0.813); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 151.051, 184.241, -328.293, 0.189); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 147.998, 184.460, -311.680, -0.771); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 173.704, 201.774, -337.213, -0.660); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 164.086, 187.531, -305.860, 0.939); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 146.858, 184.296, -323.025, 1.370); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 164.722, 184.523, -327.337, -1.726); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 154.539, 184.072, -326.754, 0.811); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 551.123, 210.957, -36.728, -0.559); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 563.291, 215.093, -17.300, -0.715); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 564.056, 215.409, -13.195, 2.985); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 556.722, 215.387, -15.168, -1.469); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 547.881, 215.193, -14.040, 2.228); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 376.563, 152.256, 579.606, -2.950); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 365.111, 155.717, 565.898, -1.227); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 362.899, 155.296, 568.932, 2.954); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 360.542, 155.491, 591.302, 1.527); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 365.394, 156.706, 563.254, 1.529); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 164.705, 251.223, -732.774, -0.454); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 155.573, 216.474, -706.966, -2.826); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 155.336, 247.845, -736.530, 0.153); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 173.769, 251.517, -731.557, 0.953); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 177.668, 251.333, -731.369, 0.932); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 150.469, 217.063, -711.428, -1.784); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 162.739, 251.073, -732.499, 0.379); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 173.319, 217.838, -708.646, -2.103); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 144.026, 217.988, -716.312, -2.639); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 161.709, 249.166, -740.990, -2.235); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1453.985, 252.680, 166.699, -2.783); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1454.725, 250.005, 178.888, -2.412); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1459.453, 252.913, 164.088, 1.262); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1468.154, 248.525, 187.901, 1.857); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1478.252, 250.241, 171.380, -2.286); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1461.767, 252.866, 163.360, -1.307); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1445.722, 250.443, 178.308, -0.124); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1466.092, 252.506, 164.669, -0.526); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1460.682, 248.987, 197.160, 2.663); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1479.372, 248.319, 186.152, 0.754); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1452.300, 249.068, 262.464, -0.946); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1450.800, 281.838, 288.504, -1.294); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1464.961, 248.529, 259.990, -0.350); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1474.243, 284.198, 293.289, 2.637); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1461.642, 249.278, 264.569, 2.269); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1568.473, 258.522, -13.768, -0.997); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1581.627, 259.128, -17.487, 3.099); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1567.309, 262.827, -22.934, -1.505); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1575.104, 259.803, -16.234, 2.966); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1562.162, 258.125, -12.491, 0.485); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1772.433, 254.402, -104.536, -0.859); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1754.645, 255.331, -109.838, -0.934); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1768.744, 256.585, -132.678, -1.453); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1756.753, 256.684, -136.413, -0.111); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1771.116, 256.345, -116.352, -1.846); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1946.399, 254.702, -111.781, -0.055); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1977.239, 255.260, -117.397, -2.277); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1950.272, 256.429, -131.512, 0.679); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1964.179, 256.583, -130.491, -2.649); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1944.448, 255.101, -116.096, -0.189); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1964.483, 259.352, -311.448, 2.208); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1970.438, 257.365, -316.033, -2.570); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1958.459, 261.506, -308.444, 2.320); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1964.555, 259.564, -326.392, 0.996); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1966.644, 259.024, -306.065, -0.380); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1962.337, 260.680, -337.209, 0.910); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1962.389, 260.577, -329.641, -1.542); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1967.826, 259.229, -333.571, -2.522); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2070.376, 262.158, -304.994, 2.381); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2065.395, 261.901, -318.386, 3.027); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2080.905, 259.099, -330.156, -2.328); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2053.104, 263.688, -319.909, 0.376); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2063.338, 263.234, -335.737, 1.606); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2075.575, 258.388, -335.731, 0.721); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2057.123, 263.115, -327.222, -1.531); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2075.029, 261.064, -317.552, 2.863); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2059.156, 262.909, -324.858, 0.760); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2050.802, 263.747, -318.689, -2.668); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2075.920, 259.127, -332.534, 2.944); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2072.022, 261.406, -314.484, 1.337); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2067.684, 261.279, -329.047, -2.419); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2068.693, 261.745, -313.950, 2.360); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2055.184, 263.348, -324.904, 2.803); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2056.009, 262.037, -304.762, -1.895); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2074.526, 260.291, -326.663, 2.407); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2061.674, 262.399, -324.752, 2.636); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2078.649, 261.150, -316.012, -0.926); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 2057.222, 263.199, -313.516, 0.387); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1722.341, 267.503, -466.254, 0.697); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1720.876, 266.980, -454.151, -2.253); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1711.299, 258.700, -455.036, -1.089); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1724.539, 269.596, -460.793, -3.072); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1720.872, 271.335, -468.058, 2.763); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1718.351, 260.963, -488.817, 1.497); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1719.446, 267.220, -457.657, -2.427); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1718.388, 258.849, -462.079, -0.533); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1718.479, 258.623, -460.163, 1.366); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1721.433, 258.254, -458.634, -0.887); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1717.737, 267.228, -457.660, -0.279); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1713.242, 258.464, -455.313, -1.162); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1715.770, 258.610, -458.531, -1.721); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1722.592, 258.259, -459.282, 1.299); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1152.289, 280.519, -725.523, -2.597); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1153.358, 280.303, -730.961, 1.122); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1152.399, 280.171, -719.449, -2.628); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1158.675, 280.177, -719.468, 1.535); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1170.606, 281.299, -722.142, -1.494); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 913.805, 253.201, -236.688, 2.337); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 921.298, 254.859, -231.607, 2.281); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 930.007, 252.175, -232.243, -2.563); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 898.139, 255.765, -233.301, -2.099); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 931.988, 259.216, -216.015, -1.801); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 914.943, 259.993, -226.475, -0.413); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 901.102, 254.959, -235.151, -1.326); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 924.829, 253.048, -232.959, 2.431); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 925.738, 251.456, -235.936, -0.232); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 922.639, 252.464, -234.959, 1.249); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 926.735, 251.192, -236.177, -2.396); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 927.443, 252.007, -233.786, -0.041); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 915.696, 292.410, -209.551, 2.702); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 908.757, 310.556, -203.739, 0.509); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1159.328, 279.546, -411.322, -0.231); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1170.144, 277.214, -417.893, 2.330); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1157.426, 279.329, -436.867, 2.354); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1172.835, 277.852, -411.633, 2.789); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1160.717, 279.404, -429.706, 1.006); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1261.602, 290.060, -738.372, -0.231); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1257.488, 292.184, -725.553, 3.018); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1267.198, 293.989, -718.696, 2.228); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1275.534, 295.647, -729.613, -2.247); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1271.939, 296.228, -704.779, -1.246); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1346.271, 263.677, -711.127, -1.782); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1373.234, 266.510, -721.227, -0.973); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1360.456, 266.876, -732.650, 0.777); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1371.551, 271.464, -737.839, -0.278); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1366.940, 268.754, -728.317, 0.906); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1517.181, 280.373, -1023.900, 1.887); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1513.330, 290.518, -1038.305, -1.742); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1502.782, 279.908, -1023.595, 2.719); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1513.187, 280.785, -1022.210, -1.459); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1526.258, 279.811, -1023.736, -2.706); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1505.612, 280.402, -1035.262, -2.001); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1517.709, 280.421, -1023.043, 0.490); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1493.458, 280.621, -1018.430, -2.708); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1520.705, 281.513, -1012.023, -0.867); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1520.390, 290.539, -1038.958, -0.601); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1413.956, 347.399, -1106.772, -2.608); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1393.366, 337.977, -1122.789, -1.135); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1399.891, 340.628, -1112.050, 1.098); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1406.123, 286.455, -1132.182, -2.098); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1400.943, 343.202, -1107.763, -2.480); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1399.291, 340.103, -1114.453, 0.302); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1407.312, 348.000, -1106.923, 1.329); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1396.023, 339.746, -1112.727, 2.511); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1406.624, 283.855, -1137.155, 0.222); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1412.545, 347.590, -1105.036, -0.139); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1397.278, 339.656, -1114.849, 1.758); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1404.779, 347.533, -1104.230, 0.167); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1394.591, 338.759, -1118.041, -0.125); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1413.101, 347.504, -1105.536, 0.937); +INSERT INTO server_spawn_locations(actorClassId, zoneId, uniqueId, positionX, positionY, positionZ, rotation) VALUES(1500182, 170, 'rowena', 1399.662, 340.141, -1114.776, -0.259);