diff --git a/FFXIVClassic Map Server/packets/BasePacket.cs b/FFXIVClassic Common Class Lib/BasePacket.cs similarity index 85% rename from FFXIVClassic Map Server/packets/BasePacket.cs rename to FFXIVClassic Common Class Lib/BasePacket.cs index d44e35d3..9f9a4c4c 100644 --- a/FFXIVClassic Map Server/packets/BasePacket.cs +++ b/FFXIVClassic Common Class Lib/BasePacket.cs @@ -3,11 +3,11 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; -using FFXIVClassic.Common; using NLog; using NLog.Targets; +using Ionic.Zlib; -namespace FFXIVClassic_Map_Server.packets +namespace FFXIVClassic.Common { [StructLayout(LayoutKind.Sequential)] public struct BasePacketHeader @@ -295,6 +295,41 @@ namespace FFXIVClassic_Map_Server.packets return packet; } + /// + /// Builds a packet from the incoming buffer + offset. If a packet can be built, it is returned else null. + /// + /// Current offset in buffer. + /// Incoming buffer. + /// Returns either a BasePacket or null if not enough data. + public static BasePacket CreatePacket(ref int offset, byte[] buffer, int bytesRead) + { + BasePacket newPacket = null; + + //Too small to even get length + if (bytesRead <= offset) + return null; + + ushort packetSize = BitConverter.ToUInt16(buffer, offset); + + //Too small to whole packet + if (bytesRead < offset + packetSize) + return null; + + if (buffer.Length < offset + packetSize) + return null; + + try + { + newPacket = new BasePacket(buffer, ref offset); + } + catch (OverflowException) + { + return null; + } + + return newPacket; + } + public static unsafe void EncryptPacket(Blowfish blowfish, BasePacket packet) { var data = packet.data; @@ -347,6 +382,28 @@ namespace FFXIVClassic_Map_Server.packets } } + public static unsafe void DecompressPacket(ref BasePacket packet) + { + using (var compressedStream = new MemoryStream(packet.data)) + using (var zipStream = new ZlibStream(compressedStream, Ionic.Zlib.CompressionMode.Decompress)) + using (var resultStream = new MemoryStream()) + { + zipStream.CopyTo(resultStream); + packet.data = resultStream.ToArray(); + } + } + + public static unsafe void CompressPacket(ref BasePacket packet) + { + using (var compressedStream = new MemoryStream(packet.data)) + using (var zipStream = new ZlibStream(compressedStream, Ionic.Zlib.CompressionMode.Compress)) + using (var resultStream = new MemoryStream()) + { + zipStream.CopyTo(resultStream); + packet.data = resultStream.ToArray(); + } + } + #endregion } diff --git a/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj b/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj index 5bbaa613..5e54cb7e 100644 --- a/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj +++ b/FFXIVClassic Common Class Lib/FFXIVClassic Common Class Lib.csproj @@ -38,6 +38,9 @@ false + + ..\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll + ..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll True @@ -56,12 +59,14 @@ + + diff --git a/FFXIVClassic Lobby Server/packets/SubPacket.cs b/FFXIVClassic Common Class Lib/SubPacket.cs similarity index 67% rename from FFXIVClassic Lobby Server/packets/SubPacket.cs rename to FFXIVClassic Common Class Lib/SubPacket.cs index d684a087..585e5c6b 100644 --- a/FFXIVClassic Lobby Server/packets/SubPacket.cs +++ b/FFXIVClassic Common Class Lib/SubPacket.cs @@ -4,7 +4,7 @@ using FFXIVClassic.Common; using NLog; using NLog.Targets; -namespace FFXIVClassic_Lobby_Server.packets +namespace FFXIVClassic.Common { [StructLayout(LayoutKind.Sequential)] public struct SubPacketHeader @@ -72,26 +72,38 @@ namespace FFXIVClassic_Lobby_Server.packets offset += header.subpacketSize; } - public SubPacket(ushort opcode, uint sourceId, uint targetId, byte[] data) + public SubPacket(ushort opcode, uint sourceId, byte[] data) : this(true, opcode, sourceId, data) { } + + public SubPacket(bool isGameMessage, ushort opcode, uint sourceId, byte[] data) { header = new SubPacketHeader(); - gameMessage = new GameMessageHeader(); - gameMessage.opcode = opcode; + if (isGameMessage) + { + gameMessage = new GameMessageHeader(); + gameMessage.opcode = opcode; + gameMessage.timestamp = Utils.UnixTimeStampUTC(); + gameMessage.unknown4 = 0x14; + gameMessage.unknown5 = 0x00; + gameMessage.unknown6 = 0x00; + } + header.sourceId = sourceId; - header.targetId = targetId; + header.targetId = 0; - gameMessage.timestamp = Utils.UnixTimeStampUTC(); + if (isGameMessage) + header.type = 0x03; + else + header.type = opcode; - header.type = 0x03; header.unknown1 = 0x00; - gameMessage.unknown4 = 0x14; - gameMessage.unknown5 = 0x00; - gameMessage.unknown6 = 0x00; this.data = data; - header.subpacketSize = (ushort) (SUBPACKET_SIZE + GAMEMESSAGE_SIZE + data.Length); + header.subpacketSize = (ushort) (SUBPACKET_SIZE + data.Length); + + if (isGameMessage) + header.subpacketSize += GAMEMESSAGE_SIZE; } public SubPacket(SubPacket original, uint newTargetId) @@ -105,6 +117,11 @@ namespace FFXIVClassic_Lobby_Server.packets data = original.data; } + public void SetTargetId(uint target) + { + this.header.targetId = target; + } + public byte[] GetHeaderBytes() { var size = Marshal.SizeOf(header); @@ -141,6 +158,41 @@ namespace FFXIVClassic_Lobby_Server.packets return outBytes; } + /// + /// Builds a packet from the incoming buffer + offset. If a packet can be built, it is returned else null. + /// + /// Current offset in buffer. + /// Incoming buffer. + /// Returns either a BasePacket or null if not enough data. + public static SubPacket CreatePacket(ref int offset, byte[] buffer, int bytesRead) + { + SubPacket newPacket = null; + + //Too small to even get length + if (bytesRead <= offset) + return null; + + ushort packetSize = BitConverter.ToUInt16(buffer, offset); + + //Too small to whole packet + if (bytesRead < offset + packetSize) + return null; + + if (buffer.Length < offset + packetSize) + return null; + + try + { + newPacket = new SubPacket(buffer, ref offset); + } + catch (OverflowException) + { + return null; + } + + return newPacket; + } + public void DebugPrintSubPacket() { #if DEBUG @@ -157,7 +209,10 @@ namespace FFXIVClassic_Lobby_Server.packets logger.ColorDebug(Utils.ByteArrayToHex(data, SUBPACKET_SIZE + GAMEMESSAGE_SIZE), ConsoleOutputColor.DarkMagenta); } + else + logger.ColorDebug(Utils.ByteArrayToHex(data, SUBPACKET_SIZE), + ConsoleOutputColor.DarkMagenta); #endif - } + } } } \ No newline at end of file diff --git a/FFXIVClassic Common Class Lib/packages.config b/FFXIVClassic Common Class Lib/packages.config index 84d14a9e..5436126a 100644 --- a/FFXIVClassic Common Class Lib/packages.config +++ b/FFXIVClassic Common Class Lib/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/FFXIVClassic Lobby Server/ClientConnection.cs b/FFXIVClassic Lobby Server/ClientConnection.cs index 02747492..1bc1208b 100644 --- a/FFXIVClassic Lobby Server/ClientConnection.cs +++ b/FFXIVClassic Lobby Server/ClientConnection.cs @@ -1,6 +1,5 @@ using System; using System.Net.Sockets; -using FFXIVClassic_Lobby_Server.packets; using FFXIVClassic.Common; using System.Collections.Concurrent; using Cyotek.Collections.Generic; diff --git a/FFXIVClassic Lobby Server/ConfigConstants.cs b/FFXIVClassic Lobby Server/ConfigConstants.cs index 358ceb96..4f3b4d3d 100644 --- a/FFXIVClassic Lobby Server/ConfigConstants.cs +++ b/FFXIVClassic Lobby Server/ConfigConstants.cs @@ -1,6 +1,8 @@ using FFXIVClassic.Common; using System; using System.IO; +using System.Linq; +using System.Net; namespace FFXIVClassic_Lobby_Server { @@ -23,7 +25,7 @@ namespace FFXIVClassic_Lobby_Server if (!File.Exists("./lobby_config.ini")) { Program.Log.Error("FILE NOT FOUND!"); - return false; + Program.Log.Error("Loading defaults..."); } INIFile configIni = new INIFile("./lobby_config.ini"); @@ -40,5 +42,49 @@ namespace FFXIVClassic_Lobby_Server return true; } + public static void ApplyLaunchArgs(string[] launchArgs) + { + var args = (from arg in launchArgs select arg.ToLower().Trim().TrimStart('-')).ToList(); + + for (var i = 0; i + 1 < args.Count; i += 2) + { + var arg = args[i]; + var val = args[i + 1]; + var legit = false; + + if (arg == "ip") + { + IPAddress ip; + if (IPAddress.TryParse(val, out ip) && (legit = true)) + OPTIONS_BINDIP = val; + } + else if (arg == "port") + { + UInt16 port; + if (UInt16.TryParse(val, out port) && (legit = true)) + OPTIONS_PORT = val; + } + else if (arg == "user" && (legit = true)) + { + DATABASE_USERNAME = val; + } + else if (arg == "p" && (legit = true)) + { + DATABASE_PASSWORD = val; + } + else if (arg == "db" && (legit = true)) + { + DATABASE_NAME = val; + } + else if (arg == "host" && (legit = true)) + { + DATABASE_HOST = val; + } + if (!legit) + { + Program.Log.Error("Invalid parameter <{0}> for argument: <--{1}> or argument doesnt exist!", val, arg); + } + } + } } } diff --git a/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj b/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj index b1c342c9..962c3676 100644 --- a/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj +++ b/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj @@ -1,7 +1,7 @@  - - + + Debug AnyCPU @@ -91,7 +91,6 @@ - @@ -101,7 +100,6 @@ - @@ -135,7 +133,7 @@ - xcopy "$(SolutionDir)data\lobby_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d + xcopy "$(SolutionDir)data\lobby_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /y diff --git a/FFXIVClassic Lobby Server/NLog.config b/FFXIVClassic Lobby Server/NLog.config index 2384b15b..4463f999 100644 --- a/FFXIVClassic Lobby Server/NLog.config +++ b/FFXIVClassic Lobby Server/NLog.config @@ -38,13 +38,13 @@ diff --git a/FFXIVClassic Lobby Server/PacketProcessor.cs b/FFXIVClassic Lobby Server/PacketProcessor.cs index 8ccbbf08..c4f27e85 100644 --- a/FFXIVClassic Lobby Server/PacketProcessor.cs +++ b/FFXIVClassic Lobby Server/PacketProcessor.cs @@ -90,14 +90,15 @@ namespace FFXIVClassic_Lobby_Server if (userId == 0) { - ErrorPacket errorPacket = new ErrorPacket(sessionPacket.sequence, 0, 0, 13001, "Your session has expired, please login again."); - SubPacket subpacket = errorPacket.BuildPacket(); - BasePacket errorBasePacket = BasePacket.CreatePacket(subpacket, true, false); - BasePacket.EncryptPacket(client.blowfish, errorBasePacket); - client.QueuePacket(errorBasePacket); + ErrorPacket errorPacket = new ErrorPacket(sessionPacket.sequence, 0, 0, 13001, "Your session has expired, please login again."); + SubPacket subpacket = errorPacket.BuildPacket(); + subpacket.SetTargetId(0xe0006868); + BasePacket errorBasePacket = BasePacket.CreatePacket(subpacket, true, false); + BasePacket.EncryptPacket(client.blowfish, errorBasePacket); + client.QueuePacket(errorBasePacket); - Program.Log.Info("Invalid session, kicking..."); - return; + Program.Log.Info("Invalid session, kicking..."); + return; } Program.Log.Info("USER ID: {0}", userId); diff --git a/FFXIVClassic Lobby Server/Program.cs b/FFXIVClassic Lobby Server/Program.cs index 598397b5..2d14bb84 100644 --- a/FFXIVClassic Lobby Server/Program.cs +++ b/FFXIVClassic Lobby Server/Program.cs @@ -20,13 +20,16 @@ namespace FFXIVClassic_Lobby_Server TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(myWriter); #endif - Program.Log.Info("--------FFXIV 1.0 Lobby Server--------"); + Log.Info("=================================="); + Log.Info("FFXIV Classic Lobby Server"); + Log.Info("Version: 0.1"); + Log.Info("=================================="); bool startServer = true; //Load Config - if (!ConfigConstants.Load()) - startServer = false; + ConfigConstants.Load(); + ConfigConstants.ApplyLaunchArgs(args); //Test DB Connection Program.Log.Info("Testing DB connection to \"{0}\"... ", ConfigConstants.DATABASE_HOST); @@ -51,7 +54,7 @@ namespace FFXIVClassic_Lobby_Server { Server server = new Server(); server.StartServer(); - while (true) Thread.Sleep(10000); + while (true) Thread.Sleep(10000); } Program.Log.Info("Press any key to continue..."); diff --git a/FFXIVClassic Lobby Server/Server.cs b/FFXIVClassic Lobby Server/Server.cs index e596ec26..93cd8639 100644 --- a/FFXIVClassic Lobby Server/Server.cs +++ b/FFXIVClassic Lobby Server/Server.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Threading; -using FFXIVClassic_Lobby_Server.packets; + using FFXIVClassic.Common; using NLog; diff --git a/FFXIVClassic Lobby Server/packets/BasePacket.cs b/FFXIVClassic Lobby Server/packets/BasePacket.cs deleted file mode 100644 index 075ec2b6..00000000 --- a/FFXIVClassic Lobby Server/packets/BasePacket.cs +++ /dev/null @@ -1,361 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Runtime.InteropServices; -using FFXIVClassic.Common; -using NLog; -using NLog.Targets; - -namespace FFXIVClassic_Lobby_Server.packets -{ - [StructLayout(LayoutKind.Sequential)] - public struct BasePacketHeader - { - public byte isAuthenticated; - public byte isEncrypted; - public ushort connectionType; - public ushort packetSize; - public ushort numSubpackets; - public ulong timestamp; //Miliseconds - } - - public class BasePacket - { - public const int TYPE_ZONE = 1; - public const int TYPE_CHAT = 2; - public const int BASEPACKET_SIZE = 0x10; - private static readonly Logger logger = LogManager.GetCurrentClassLogger(); - public byte[] data; - - public BasePacketHeader header; - - //Loads a sniffed packet from a file - public unsafe BasePacket(string path) - { - var bytes = File.ReadAllBytes(path); - - if (bytes.Length < BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[0]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - if (bytes.Length < header.packetSize) - throw new OverflowException("Packet Error: Packet size didn't equal given size"); - - int packetSize = header.packetSize; - - if (packetSize - BASEPACKET_SIZE != 0) - { - data = new byte[packetSize - BASEPACKET_SIZE]; - Array.Copy(bytes, BASEPACKET_SIZE, data, 0, packetSize - BASEPACKET_SIZE); - } - else - data = new byte[0]; - } - - //Loads a sniffed packet from a byte array - public unsafe BasePacket(byte[] bytes) - { - if (bytes.Length < BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[0]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - if (bytes.Length < header.packetSize) - throw new OverflowException("Packet Error: Packet size didn't equal given size"); - - int packetSize = header.packetSize; - - data = new byte[packetSize - BASEPACKET_SIZE]; - Array.Copy(bytes, BASEPACKET_SIZE, data, 0, packetSize - BASEPACKET_SIZE); - } - - public unsafe BasePacket(byte[] bytes, ref int offset) - { - if (bytes.Length < offset + BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[offset]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - int packetSize = header.packetSize; - - if (bytes.Length < offset + header.packetSize) - throw new OverflowException("Packet Error: Packet size didn't equal given size"); - - data = new byte[packetSize - BASEPACKET_SIZE]; - Array.Copy(bytes, offset + BASEPACKET_SIZE, data, 0, packetSize - BASEPACKET_SIZE); - - offset += packetSize; - } - - public BasePacket(BasePacketHeader header, byte[] data) - { - this.header = header; - this.data = data; - } - - public List GetSubpackets() - { - var subpackets = new List(header.numSubpackets); - - var offset = 0; - - while (offset < data.Length) - subpackets.Add(new SubPacket(data, ref offset)); - - return subpackets; - } - - public static unsafe BasePacketHeader GetHeader(byte[] bytes) - { - BasePacketHeader header; - if (bytes.Length < BASEPACKET_SIZE) - throw new OverflowException("Packet Error: Packet was too small"); - - fixed (byte* pdata = &bytes[0]) - { - header = (BasePacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(BasePacketHeader)); - } - - return header; - } - - public byte[] GetHeaderBytes() - { - var size = Marshal.SizeOf(header); - var arr = new byte[size]; - - var ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(header, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - return arr; - } - - public byte[] GetPacketBytes() - { - var outBytes = new byte[header.packetSize]; - Array.Copy(GetHeaderBytes(), 0, outBytes, 0, BASEPACKET_SIZE); - Array.Copy(data, 0, outBytes, BASEPACKET_SIZE, data.Length); - return outBytes; - } - - //Replaces all instances of the sniffed actorID with the given one - public void ReplaceActorID(uint actorID) - { - using (var mem = new MemoryStream(data)) - { - using (var binWriter = new BinaryWriter(mem)) - { - using (var binreader = new BinaryReader(mem)) - { - while (binreader.BaseStream.Position + 4 < data.Length) - { - var read = binreader.ReadUInt32(); - if (read == 0x029B2941 || read == 0x02977DC7 || read == 0x0297D2C8 || read == 0x0230d573 || - read == 0x23317df || read == 0x23344a3 || read == 0x1730bdb) //Original ID - { - binWriter.BaseStream.Seek(binreader.BaseStream.Position - 0x4, SeekOrigin.Begin); - binWriter.Write(actorID); - } - } - } - } - } - } - - //Replaces all instances of the sniffed actorID with the given one - public void ReplaceActorID(uint fromActorID, uint actorID) - { - using (var mem = new MemoryStream(data)) - { - using (var binWriter = new BinaryWriter(mem)) - { - using (var binreader = new BinaryReader(mem)) - { - while (binreader.BaseStream.Position + 4 < data.Length) - { - var read = binreader.ReadUInt32(); - if (read == fromActorID) //Original ID - { - binWriter.BaseStream.Seek(binreader.BaseStream.Position - 0x4, SeekOrigin.Begin); - binWriter.Write(actorID); - } - } - } - } - } - } - - public void DebugPrintPacket() - { -#if DEBUG - logger.ColorDebug( - string.Format("IsAuth:{0} Size:0x{1:X}, NumSubpackets:{2}{3}{4}", - header.isAuthenticated, header.packetSize, header.numSubpackets, - Environment.NewLine, Utils.ByteArrayToHex(GetHeaderBytes())), ConsoleOutputColor.DarkYellow); - - foreach (var sub in GetSubpackets()) - { - sub.DebugPrintSubPacket(); - } -#endif - } - - #region Utility Functions - - public static BasePacket CreatePacket(List subpackets, bool isAuthed, bool isEncrypted) - { - //Create Header - var header = new BasePacketHeader(); - byte[] data = null; - - header.isAuthenticated = isAuthed ? (byte) 1 : (byte) 0; - header.isEncrypted = isEncrypted ? (byte) 1 : (byte) 0; - header.numSubpackets = (ushort) subpackets.Count; - header.packetSize = BASEPACKET_SIZE; - header.timestamp = Utils.MilisUnixTimeStampUTC(); - - //Get packet size - foreach (var subpacket in subpackets) - header.packetSize += subpacket.header.subpacketSize; - - data = new byte[header.packetSize - 0x10]; - - //Add Subpackets - var offset = 0; - foreach (var subpacket in subpackets) - { - var subpacketData = subpacket.GetBytes(); - Array.Copy(subpacketData, 0, data, offset, subpacketData.Length); - offset += (ushort) subpacketData.Length; - } - - Debug.Assert(data != null && offset == data.Length && header.packetSize == 0x10 + offset); - - var packet = new BasePacket(header, data); - return packet; - } - - public static BasePacket CreatePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted) - { - //Create Header - var header = new BasePacketHeader(); - byte[] data = null; - - header.isAuthenticated = isAuthed ? (byte) 1 : (byte) 0; - header.isEncrypted = isEncrypted ? (byte) 1 : (byte) 0; - header.numSubpackets = 1; - header.packetSize = BASEPACKET_SIZE; - header.timestamp = Utils.MilisUnixTimeStampUTC(); - - //Get packet size - header.packetSize += subpacket.header.subpacketSize; - - data = new byte[header.packetSize - 0x10]; - - //Add Subpackets - var subpacketData = subpacket.GetBytes(); - Array.Copy(subpacketData, 0, data, 0, subpacketData.Length); - - Debug.Assert(data != null); - - var packet = new BasePacket(header, data); - return packet; - } - - public static BasePacket CreatePacket(byte[] data, bool isAuthed, bool isEncrypted) - { - Debug.Assert(data != null); - - //Create Header - var header = new BasePacketHeader(); - - header.isAuthenticated = isAuthed ? (byte) 1 : (byte) 0; - header.isEncrypted = isEncrypted ? (byte) 1 : (byte) 0; - header.numSubpackets = 1; - header.packetSize = BASEPACKET_SIZE; - header.timestamp = Utils.MilisUnixTimeStampUTC(); - - //Get packet size - header.packetSize += (ushort) data.Length; - - var packet = new BasePacket(header, data); - return packet; - } - - public static unsafe void EncryptPacket(Blowfish blowfish, BasePacket packet) - { - var data = packet.data; - int size = packet.header.packetSize; - - var offset = 0; - while (offset < data.Length) - { - if (data.Length < offset + SubPacket.SUBPACKET_SIZE) - throw new OverflowException("Packet Error: Subpacket was too small"); - - SubPacketHeader header; - fixed (byte* pdata = &data[offset]) - { - header = (SubPacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(SubPacketHeader)); - } - - if (data.Length < offset + header.subpacketSize) - throw new OverflowException("Packet Error: Subpacket size didn't equal subpacket data"); - - blowfish.Encipher(data, offset + 0x10, header.subpacketSize - 0x10); - - offset += header.subpacketSize; - } - } - - public static unsafe void DecryptPacket(Blowfish blowfish, ref BasePacket packet) - { - var data = packet.data; - int size = packet.header.packetSize; - - var offset = 0; - while (offset < data.Length) - { - if (data.Length < offset + SubPacket.SUBPACKET_SIZE) - throw new OverflowException("Packet Error: Subpacket was too small"); - - SubPacketHeader header; - fixed (byte* pdata = &data[offset]) - { - header = (SubPacketHeader) Marshal.PtrToStructure(new IntPtr(pdata), typeof(SubPacketHeader)); - } - - if (data.Length < offset + header.subpacketSize) - throw new OverflowException("Packet Error: Subpacket size didn't equal subpacket data"); - - blowfish.Decipher(data, offset + 0x10, header.subpacketSize - 0x10); - - offset += header.subpacketSize; - } - } - - #endregion - } - - public static class LoggerExtensions - { - public static void ColorDebug(this Logger logger, string message, ConsoleOutputColor color) - { - var logEvent = new LogEventInfo(LogLevel.Debug, logger.Name, message); - logEvent.Properties["color"] = (int) color; - logger.Log(logEvent); - } - } -} \ No newline at end of file diff --git a/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs b/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs index 9bedc3d3..2ec17d81 100644 --- a/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic.Common; +using FFXIVClassic_Lobby_Server.dataobjects; using System; using System.Collections.Generic; using System.IO; @@ -60,7 +61,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); accountCount = 0; } @@ -87,7 +89,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs b/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs index d5b9289b..31c9a882 100644 --- a/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; using System.Text; @@ -58,7 +59,7 @@ namespace FFXIVClassic_Lobby_Server.packets binWriter.Dispose(); memStream.Dispose(); - return new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + return new SubPacket(OPCODE, 0xe0006868, data); } } } diff --git a/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs b/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs index 2ad1b0b9..bceeac8c 100644 --- a/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic.Common; +using FFXIVClassic_Lobby_Server.dataobjects; using System; using System.Collections.Generic; using System.IO; @@ -86,7 +87,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); characterCount = 0; } @@ -132,7 +134,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); characterCount = 0; } @@ -144,7 +147,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs b/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs index 0e707e62..621732d3 100644 --- a/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.IO; using System.Text; @@ -37,7 +38,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); return subpacket; } } diff --git a/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs b/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs index 80bce85c..ffb3a9cd 100644 --- a/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; using System.Text; @@ -63,7 +64,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); namesCount = 0; } @@ -90,7 +92,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs b/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs index c12c245b..fc7e6122 100644 --- a/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; using System.Text; @@ -64,7 +65,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); retainerCount = 0; } @@ -91,7 +93,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs b/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs index 352c11e3..35686caa 100644 --- a/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs @@ -1,4 +1,5 @@ -using System; +using FFXIVClassic.Common; +using System; using System.Collections.Generic; using System.IO; using System.Text; @@ -48,7 +49,8 @@ namespace FFXIVClassic_Lobby_Server.packets data = memStream.GetBuffer(); } - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); return subPackets; diff --git a/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs b/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs index 06866bfc..86e4712a 100644 --- a/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic.Common; +using FFXIVClassic_Lobby_Server.dataobjects; using System; using System.Collections.Generic; using System.IO; @@ -62,7 +63,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); serverCount = 0; } @@ -89,7 +91,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Map Server/CommandProcessor.cs b/FFXIVClassic Map Server/CommandProcessor.cs index 50985884..283c78c5 100644 --- a/FFXIVClassic Map Server/CommandProcessor.cs +++ b/FFXIVClassic Map Server/CommandProcessor.cs @@ -1,72 +1,36 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Net; -using System.Net.Sockets; -using System.Threading.Tasks; -using System.Threading; using FFXIVClassic.Common; using FFXIVClassic_Map_Server.dataobjects; -using FFXIVClassic_Map_Server.packets; + using System.IO; using FFXIVClassic_Map_Server.packets.send.actor; -using FFXIVClassic_Map_Server; using FFXIVClassic_Map_Server.packets.send; -using FFXIVClassic_Map_Server.dataobjects.chara; -using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; -using FFXIVClassic_Map_Server.actors.chara.player; -using FFXIVClassic_Map_Server.Properties; +using FFXIVClassic_Map_Server.Actors; namespace FFXIVClassic_Map_Server { class CommandProcessor { - private Dictionary mConnectedPlayerList; - private static Dictionary gamedataItems = Server.GetGamedataItems(); + private static Dictionary gamedataItems = Server.GetGamedataItems(); - // For the moment, this is the only predefined item - // TODO: make a list/enum in the future so that items can be given by name, instead of by id const UInt32 ITEM_GIL = 1000001; - - public CommandProcessor(Dictionary playerList) - { - mConnectedPlayerList = playerList; - } - - public void ChangeProperty(uint id, uint value, string target) - { - SetActorPropetyPacket ChangeProperty = new SetActorPropetyPacket(target); - - ChangeProperty.SetTarget(target); - ChangeProperty.AddInt(id, value); - ChangeProperty.AddTarget(); - - foreach (KeyValuePair entry in mConnectedPlayerList) - { - SubPacket ChangePropertyPacket = ChangeProperty.BuildPacket((entry.Value.actorID), (entry.Value.actorID)); - - BasePacket packet = BasePacket.CreatePacket(ChangePropertyPacket, true, false); - packet.DebugPrintPacket(); - - entry.Value.QueuePacket(packet); - } - } - + /// /// We only use the default options for SendMessagePacket. /// May as well make it less unwieldly to view /// /// /// - private void SendMessage(ConnectedPlayer client, String message) + private void SendMessage(Session session, String message) { - if (client != null) - client.GetActor().QueuePacket(SendMessagePacket.BuildPacket(client.actorID, client.actorID, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", message)); + if (session != null) + session.GetActor().QueuePacket(SendMessagePacket.BuildPacket(session.id, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", message)); } - internal bool DoCommand(string input, ConnectedPlayer client) + internal bool DoCommand(string input, Session session) { if (!input.Any() || input.Equals("")) return false; @@ -81,14 +45,16 @@ namespace FFXIVClassic_Map_Server ) .SelectMany(str => str).ToArray(); - split = split.Select(temp => temp.ToLower()).ToArray(); // Ignore case on commands + split = split.ToArray(); // Ignore case on commands var cmd = split[0]; if (cmd.Any()) { // if client isnt null, take player to be the player actor - var player = client?.GetActor(); + Player player = null; + if (session != null) + player = session.GetActor(); if (cmd.Equals("help")) { @@ -125,11 +91,11 @@ namespace FFXIVClassic_Map_Server if (split[0].Equals("reloaditems")) { Program.Log.Info(String.Format("Got request to reload item gamedata")); - SendMessage(client, "Reloading Item Gamedata..."); + SendMessage(session, "Reloading Item Gamedata..."); gamedataItems.Clear(); gamedataItems = Database.GetItemGamedata(); Program.Log.Info(String.Format("Loaded {0} items.", gamedataItems.Count)); - SendMessage(client, String.Format("Loaded {0} items.", gamedataItems.Count)); + SendMessage(session, String.Format("Loaded {0} items.", gamedataItems.Count)); return true; } #endregion @@ -139,7 +105,7 @@ namespace FFXIVClassic_Map_Server { if (split.Length == 4) { - ChangeProperty(Utils.MurmurHash2(split[1], 0), Convert.ToUInt32(split[2], 16), split[3]); + // ChangeProperty(Utils.MurmurHash2(split[1], 0), Convert.ToUInt32(split[2], 16), split[3]); } return true; } @@ -150,7 +116,7 @@ namespace FFXIVClassic_Map_Server { if (split.Length == 4) { - ChangeProperty(Convert.ToUInt32(split[1], 16), Convert.ToUInt32(split[2], 16), split[3]); + //ChangeProperty(Convert.ToUInt32(split[1], 16), Convert.ToUInt32(split[2], 16), split[3]); } return true; } diff --git a/FFXIVClassic Map Server/ConfigConstants.cs b/FFXIVClassic Map Server/ConfigConstants.cs index cf4006e6..908914cb 100644 --- a/FFXIVClassic Map Server/ConfigConstants.cs +++ b/FFXIVClassic Map Server/ConfigConstants.cs @@ -1,6 +1,11 @@ using FFXIVClassic.Common; using System; +using System.Collections.Generic; using System.IO; +using System.Net.Sockets; +using MoonSharp.Interpreter.Interop; +using System.Linq; +using System.Net; namespace FFXIVClassic_Map_Server { @@ -8,9 +13,9 @@ namespace FFXIVClassic_Map_Server { public static String OPTIONS_BINDIP; public static String OPTIONS_PORT; - public static bool OPTIONS_TIMESTAMP = false; + public static bool OPTIONS_TIMESTAMP = false; - public static uint DATABASE_WORLDID; + public static uint DATABASE_WORLDID; public static String DATABASE_HOST; public static String DATABASE_PORT; public static String DATABASE_NAME; @@ -24,13 +29,13 @@ namespace FFXIVClassic_Map_Server if (!File.Exists("./map_config.ini")) { Program.Log.Error("FILE NOT FOUND"); - return false; + Program.Log.Error("Loading defaults... "); } INIFile configIni = new INIFile("./map_config.ini"); ConfigConstants.OPTIONS_BINDIP = configIni.GetValue("General", "server_ip", "127.0.0.1"); - ConfigConstants.OPTIONS_PORT = configIni.GetValue("General", "server_port", "54992"); + ConfigConstants.OPTIONS_PORT = configIni.GetValue("General", "server_port", "1989"); ConfigConstants.OPTIONS_TIMESTAMP = configIni.GetValue("General", "showtimestamp", "true").ToLower().Equals("true"); ConfigConstants.DATABASE_WORLDID = UInt32.Parse(configIni.GetValue("Database", "worldid", "0")); @@ -39,8 +44,53 @@ namespace FFXIVClassic_Map_Server ConfigConstants.DATABASE_NAME = configIni.GetValue("Database", "database", ""); ConfigConstants.DATABASE_USERNAME = configIni.GetValue("Database", "username", ""); ConfigConstants.DATABASE_PASSWORD = configIni.GetValue("Database", "password", ""); - + return true; } + + public static void ApplyLaunchArgs(string[] launchArgs) + { + var args = (from arg in launchArgs select arg.ToLower().Trim().TrimStart('-')).ToList(); + + for (var i = 0; i + 1 < args.Count; i += 2) + { + var arg = args[i]; + var val = args[i + 1]; + var legit = false; + + if (arg == "ip") + { + IPAddress ip; + if (IPAddress.TryParse(val, out ip) && (legit = true)) + OPTIONS_BINDIP = val; + } + else if (arg == "port") + { + UInt16 port; + if (UInt16.TryParse(val, out port) && (legit = true)) + OPTIONS_PORT = val; + } + else if (arg == "user" && (legit = true)) + { + DATABASE_USERNAME = val; + } + else if (arg == "p" && (legit = true)) + { + DATABASE_PASSWORD = val; + } + else if (arg == "db" && (legit = true)) + { + DATABASE_NAME = val; + } + else if (arg == "host" && (legit = true)) + { + DATABASE_HOST = val; + } + if (!legit) + { + Program.Log.Error("Invalid parameter <{0}> for argument: <--{1}> or argument doesnt exist!", val, arg); + } + } + } } } diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index 569889dc..d94443f9 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using FFXIVClassic.Common; using FFXIVClassic_Map_Server.utils; -using FFXIVClassic_Map_Server.packets; + using FFXIVClassic_Map_Server.packets.send.player; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.Actors; @@ -48,29 +48,6 @@ namespace FFXIVClassic_Map_Server return id; } - public static DBWorld GetServer(uint serverId) - { - using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) - { - DBWorld world = null; - try - { - conn.Open(); - world = conn.Query("SELECT * FROM servers WHERE id=@ServerId", new { ServerId = serverId }).SingleOrDefault(); - } - catch (MySqlException e) - { - Program.Log.Error(e.ToString()); - } - finally - { - conn.Dispose(); - } - - return world; - } - } - public static List GetNpcList() { using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) @@ -94,12 +71,12 @@ namespace FFXIVClassic_Map_Server } } - public static Dictionary GetItemGamedata() + public static Dictionary GetItemGamedata() { using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) { - Dictionary gamedataItems = new Dictionary(); - + Dictionary gamedataItems = new Dictionary(); + try { conn.Open(); @@ -108,11 +85,12 @@ namespace FFXIVClassic_Map_Server SELECT * FROM gamedata_items - LEFT JOIN gamedata_items_equipment ON gamedata_items.catalogID = gamedata_items_equipment.catalogID - LEFT JOIN gamedata_items_accessory ON gamedata_items.catalogID = gamedata_items_accessory.catalogID - LEFT JOIN gamedata_items_armor ON gamedata_items.catalogID = gamedata_items_armor.catalogID - LEFT JOIN gamedata_items_weapon ON gamedata_items.catalogID = gamedata_items_weapon.catalogID - LEFT JOIN gamedata_items_graphics ON gamedata_items.catalogID = gamedata_items_graphics.catalogID + LEFT JOIN gamedata_items_equipment ON gamedata_items.catalogID = gamedata_items_equipment.catalogID + LEFT JOIN gamedata_items_accessory ON gamedata_items.catalogID = gamedata_items_accessory.catalogID + LEFT JOIN gamedata_items_armor ON gamedata_items.catalogID = gamedata_items_armor.catalogID + LEFT JOIN gamedata_items_weapon ON gamedata_items.catalogID = gamedata_items_weapon.catalogID + LEFT JOIN gamedata_items_graphics ON gamedata_items.catalogID = gamedata_items_graphics.catalogID + LEFT JOIN gamedata_items_graphics_extra ON gamedata_items.catalogID = gamedata_items_graphics_extra.catalogID "; MySqlCommand cmd = new MySqlCommand(query, conn); @@ -122,16 +100,16 @@ namespace FFXIVClassic_Map_Server while (reader.Read()) { uint id = reader.GetUInt32("catalogID"); - Item item = null; + ItemData item = null; - if (Item.IsWeapon(id)) + if (ItemData.IsWeapon(id)) item = new WeaponItem(reader); - else if (Item.IsArmor(id)) + else if (ItemData.IsArmor(id)) item = new ArmorItem(reader); - else if (Item.IsAccessory(id)) + else if (ItemData.IsAccessory(id)) item = new AccessoryItem(reader); else - item = new Item(reader); + item = new ItemData(reader); gamedataItems.Add(item.catalogID, item); } @@ -150,6 +128,47 @@ namespace FFXIVClassic_Map_Server } } + public static Dictionary GetGuildleveGamedata() + { + using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + Dictionary gamedataGuildleves = new Dictionary(); + + try + { + conn.Open(); + + string query = @" + SELECT + * + FROM gamedata_guildleves + "; + + MySqlCommand cmd = new MySqlCommand(query, conn); + + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + uint id = reader.GetUInt32("id"); + GuildleveData guildleve = new GuildleveData(reader); + gamedataGuildleves.Add(guildleve.id, guildleve); + } + } + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + + return gamedataGuildleves; + } + } + public static void SavePlayerAppearance(Player player) { string query; @@ -259,7 +278,11 @@ namespace FFXIVClassic_Map_Server positionY = @y, positionZ = @z, rotation = @rot, - currentZoneId = @zoneId + destinationZoneId = @destZone, + destinationSpawnType = @destSpawn, + currentZoneId = @zoneId, + currentPrivateArea = @privateArea, + currentPrivateAreaType = @privateAreaType WHERE id = @charaId "; @@ -270,6 +293,10 @@ namespace FFXIVClassic_Map_Server cmd.Parameters.AddWithValue("@z", player.positionZ); cmd.Parameters.AddWithValue("@rot", player.rotation); cmd.Parameters.AddWithValue("@zoneId", player.zoneId); + cmd.Parameters.AddWithValue("@privateArea", player.privateArea); + cmd.Parameters.AddWithValue("@privateAreaType", player.privateAreaType); + cmd.Parameters.AddWithValue("@destZone", player.destinationZone); + cmd.Parameters.AddWithValue("@destSpawn", player.destinationSpawnType); cmd.ExecuteNonQuery(); } @@ -318,6 +345,42 @@ namespace FFXIVClassic_Map_Server } } + public static void SavePlayerHomePoints(Player player) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + UPDATE characters SET + homepoint = @homepoint, + homepointInn = @homepointInn + WHERE id = @charaId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@homepoint", player.homepoint); + cmd.Parameters.AddWithValue("@homepointInn", player.homepointInn); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + public static void SaveQuest(Player player, Quest quest) { int slot = player.GetQuestSlot(quest.actorId); @@ -343,17 +406,18 @@ namespace FFXIVClassic_Map_Server query = @" INSERT INTO characters_quest_scenario - (characterId, slot, questId, questData, questFlags) + (characterId, slot, questId, currentPhase, questData, questFlags) VALUES - (@charaId, @slot, @questId, @questData, @questFlags) + (@charaId, @slot, @questId, @phase, @questData, @questFlags) ON DUPLICATE KEY UPDATE - questData = @questData, questFlags = @questFlags + questId = @questId, currentPhase = @phase, questData = @questData, questFlags = @questFlags "; cmd = new MySqlCommand(query, conn); cmd.Parameters.AddWithValue("@charaId", player.actorId); cmd.Parameters.AddWithValue("@slot", slot); cmd.Parameters.AddWithValue("@questId", 0xFFFFF & quest.actorId); + cmd.Parameters.AddWithValue("@phase", quest.GetPhase()); cmd.Parameters.AddWithValue("@questData", quest.GetSerializedQuestData()); cmd.Parameters.AddWithValue("@questFlags", quest.GetQuestFlags()); @@ -370,6 +434,209 @@ namespace FFXIVClassic_Map_Server } } + public static void MarkGuildleve(Player player, uint glId, bool isAbandoned, bool isCompleted) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + UPDATE characters_quest_guildleve_regional + SET abandoned = @abandoned, completed = @completed + WHERE characterId = @charaId and guildleveId = @guildleveId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@guildleveId", glId); + cmd.Parameters.AddWithValue("@abandoned", isAbandoned); + cmd.Parameters.AddWithValue("@completed", isCompleted); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + + public static void SaveGuildleve(Player player, uint glId, int slot) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + INSERT INTO characters_quest_guildleve_regional + (characterId, slot, guildleveId, abandoned, completed) + VALUES + (@charaId, @slot, @guildleveId, @abandoned, @completed) + ON DUPLICATE KEY UPDATE + guildleveId = @guildleveId, abandoned = @abandoned, completed = @completed + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@slot", slot); + cmd.Parameters.AddWithValue("@guildleveId", glId); + cmd.Parameters.AddWithValue("@abandoned", 0); + cmd.Parameters.AddWithValue("@completed", 0); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + + public static void RemoveGuildleve(Player player, uint glId) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + DELETE FROM characters_quest_guildleve_regional + WHERE characterId = @charaId and guildleveId = @guildleveId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@guildleveId", glId); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + + public static void RemoveQuest(Player player, uint questId) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + DELETE FROM characters_quest_scenario + WHERE characterId = @charaId and questId = @questId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@questId", 0xFFFFF & questId); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + + public static void CompleteQuest(Player player, uint questId) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + INSERT INTO characters_quest_completed + (characterId, questId) + VALUES + (@charaId, @questId) + ON DUPLICATE KEY UPDATE characterId=characterId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@questId", 0xFFFFF & questId); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + + public static bool IsQuestCompleted(Player player, uint questId) + { + bool isCompleted = false; + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + MySqlCommand cmd = new MySqlCommand("SELECT * FROM characters_quest_completed WHERE characterId = @charaId and questId = @questId", conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@questId", questId); + isCompleted = cmd.ExecuteScalar() != null; + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + return isCompleted; + } + public static void LoadPlayerCharacter(Player player) { string query; @@ -403,8 +670,14 @@ namespace FFXIVClassic_Map_Server tribe, restBonus, achievementPoints, - playTime - FROM characters WHERE id = @charId"; + playTime, + destinationZoneId, + destinationSpawnType, + currentPrivateArea, + currentPrivateAreaType, + homepoint, + homepointInn + FROM characters WHERE id = @charId"; cmd = new MySqlCommand(query, conn); cmd.Parameters.AddWithValue("@charId", player.actorId); @@ -420,8 +693,7 @@ namespace FFXIVClassic_Map_Server player.oldRotation = player.rotation = reader.GetFloat(4); player.currentMainState = reader.GetUInt16(5); player.zoneId = reader.GetUInt32(6); - player.isZoning = true; - player.zone = Server.GetWorldManager().GetZone(player.zoneId); + player.isZoning = true; player.gcCurrent = reader.GetByte(7); player.gcRankLimsa = reader.GetByte(8); player.gcRankGridania = reader.GetByte(9); @@ -435,6 +707,22 @@ namespace FFXIVClassic_Map_Server player.playerWork.restBonusExpRate = reader.GetInt32(17); player.achievementPoints = reader.GetUInt32(18); player.playTime = reader.GetUInt32(19); + player.homepoint = reader.GetUInt32("homepoint"); + player.homepointInn = reader.GetByte("homepointInn"); + player.destinationZone = reader.GetUInt32("destinationZoneId"); + player.destinationSpawnType = reader.GetByte("destinationSpawnType"); + + if (!reader.IsDBNull(reader.GetOrdinal("currentPrivateArea"))) + player.privateArea = reader.GetString("currentPrivateArea"); + player.privateAreaType = reader.GetUInt32("currentPrivateAreaType"); + + if (player.destinationZone != 0) + player.zoneId = player.destinationZone; + + if (player.privateArea != null && !player.privateArea.Equals("")) + player.zone = Server.GetWorldManager().GetPrivateArea(player.zoneId, player.privateArea, player.privateAreaType); + else + player.zone = Server.GetWorldManager().GetZone(player.zoneId); } } @@ -690,7 +978,8 @@ namespace FFXIVClassic_Map_Server slot, questId, questData, - questFlags + questFlags, + currentPhase FROM characters_quest_scenario WHERE characterId = @charId"; cmd = new MySqlCommand(query, conn); @@ -703,6 +992,7 @@ namespace FFXIVClassic_Map_Server player.playerWork.questScenario[index] = 0xA0F00000 | reader.GetUInt32(1); string questData = null; uint questFlags = 0; + uint currentPhase = 0; if (!reader.IsDBNull(2)) questData = reader.GetString(2); @@ -714,8 +1004,11 @@ namespace FFXIVClassic_Map_Server else questFlags = 0; + if (!reader.IsDBNull(4)) + currentPhase = reader.GetUInt32(4); + string questName = Server.GetStaticActors(player.playerWork.questScenario[index]).actorName; - player.questScenario[index] = new Quest(player, player.playerWork.questScenario[index], questName, questData, questFlags); + player.questScenario[index] = new Quest(player, player.playerWork.questScenario[index], questName, questData, questFlags, currentPhase); } } @@ -1246,6 +1539,82 @@ namespace FFXIVClassic_Map_Server return cheevosPacket.BuildPacket(player.actorId); } + public static bool CreateLinkshell(Player player, string lsName, ushort lsCrest) + { + bool success = false; + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + string query = @" + INSERT INTO server_linkshells + (name, master, crest) + VALUES + (@lsName, @master, @crest) + ; + "; + + MySqlCommand cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@lsName", lsName); + cmd.Parameters.AddWithValue("@master", player.actorId); + cmd.Parameters.AddWithValue("@crest", lsCrest); + + cmd.ExecuteNonQuery(); + success = true; + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + return success; + } + + + public static void SaveNpcLS(Player player, uint npcLSId, bool isCalling, bool isExtra) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + INSERT INTO characters_npclinkshell + (characterId, npcLinkshellId, isCalling, isExtra) + VALUES + (@charaId, @lsId, @calling, @extra) + ON DUPLICATE KEY UPDATE + characterId = @charaId, npcLinkshellId = @lsId, isCalling = @calling, isExtra = @extra + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@lsId", npcLSId); + cmd.Parameters.AddWithValue("@calling", isCalling ? 1 : 0); + cmd.Parameters.AddWithValue("@extra", isExtra ? 1 : 0); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } public static bool SaveSupportTicket(GMSupportTicketPacket gmTicket, string playerName) { @@ -1554,6 +1923,7 @@ namespace FFXIVClassic_Map_Server } } } - + } + } diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 30a1b428..757f98dc 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -35,6 +35,9 @@ 4 true + + Always + ..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll @@ -73,6 +76,7 @@ + @@ -83,17 +87,28 @@ - - - - - + + + + + + + + + + + + + + + - + + @@ -110,24 +125,21 @@ - - - + + - - - + - + @@ -143,63 +155,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + @@ -214,11 +237,10 @@ - - - - - + + + + @@ -228,9 +250,10 @@ + - + @@ -258,12 +281,28 @@ - + + + + + + + + + + + + + + + + + + - True True @@ -286,6 +325,7 @@ Designer + @@ -295,9 +335,12 @@ - xcopy "$(SolutionDir)data\map_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d -xcopy "$(SolutionDir)data\scripts" "$(SolutionDir)$(ProjectName)\$(OutDir)scripts\" /e /d /y /s -xcopy "$(SolutionDir)data\staticactors.bin" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d + + + + + + diff --git a/FFXIVClassic Map Server/NLog.config b/FFXIVClassic Map Server/NLog.config index a59613ac..ad616d50 100644 --- a/FFXIVClassic Map Server/NLog.config +++ b/FFXIVClassic Map Server/NLog.config @@ -38,13 +38,13 @@ @@ -55,6 +55,7 @@ + + \ No newline at end of file diff --git a/FFXIVClassic World Server/LinkshellManager.cs b/FFXIVClassic World Server/LinkshellManager.cs new file mode 100644 index 00000000..e6423c11 --- /dev/null +++ b/FFXIVClassic World Server/LinkshellManager.cs @@ -0,0 +1,226 @@ +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server +{ + class LinkshellManager + { + private WorldManager mWorldManager; + private Object mGroupLockReference; + private Dictionary mCurrentWorldGroupsReference; //GroupId, LS + private Dictionary mLinkshellList = new Dictionary(); //GroupId, LS + private Dictionary mLSIdToIdLookup = new Dictionary(); //Name, GroupId + private Dictionary mNameToIdLookup = new Dictionary(); //Name, GroupId + + public LinkshellManager(WorldManager worldManager, Object groupLock, Dictionary worldGroupList) + { + mWorldManager = worldManager; + mGroupLockReference = groupLock; + mCurrentWorldGroupsReference = worldGroupList; + } + + //Creates a new linkshell and adds it to the list + public ulong CreateLinkshell(string name, ushort crest, uint master) + { + lock (mGroupLockReference) + { + ulong resultId = Database.CreateLinkshell(name, crest, master); + if (resultId >= 0) + { + Linkshell newLs = new Linkshell(resultId, mWorldManager.GetGroupIndex(), name, crest, master, 0xa); + + //Add founder to the LS + if (AddMemberToLinkshell(master, newLs.name)) + { + mLinkshellList.Add(mWorldManager.GetGroupIndex(), newLs); + mNameToIdLookup.Add(newLs.name, newLs.groupIndex); + mLSIdToIdLookup.Add(newLs.dbId, newLs); + mCurrentWorldGroupsReference.Add(mWorldManager.GetGroupIndex(), newLs); + mWorldManager.IncrementGroupIndex(); + } + } + return resultId; + } + } + + //Modifies the LS master + public bool ChangeLinkshellMaster(string name, uint newMaster) + { + ulong groupInstanceId; + if (mNameToIdLookup.ContainsKey(name)) + groupInstanceId = mNameToIdLookup[name]; + else + return false; + + if (mCurrentWorldGroupsReference.ContainsKey(groupInstanceId)) + { + Linkshell ls = (Linkshell)mCurrentWorldGroupsReference[groupInstanceId]; + return false; + } + + return false; + } + + //Modifies the LS crest + public bool ChangeLinkshellCrest(string name, ushort newCrestId) + { + ulong groupInstanceId; + if (mNameToIdLookup.ContainsKey(name)) + groupInstanceId = mNameToIdLookup[name]; + else + return false; + + if (mCurrentWorldGroupsReference.ContainsKey(groupInstanceId)) + { + Linkshell ls = (Linkshell)mCurrentWorldGroupsReference[groupInstanceId]; + return Database.ChangeLinkshellCrest(ls.dbId, newCrestId); + } + + return false; + } + + //Deletes a LS + public bool DeleteLinkshell(string name) + { + lock (mGroupLockReference) + { + ulong groupInstanceId; + if (mNameToIdLookup.ContainsKey(name)) + groupInstanceId = mNameToIdLookup[name]; + else + return false; + + if (mCurrentWorldGroupsReference.ContainsKey(groupInstanceId)) + { + Linkshell ls = (Linkshell)mCurrentWorldGroupsReference[groupInstanceId]; + bool result = Database.DeleteLinkshell(ls.dbId); + + if (result) + { + mCurrentWorldGroupsReference.Remove(groupInstanceId); + mLinkshellList.Remove(groupInstanceId); + mNameToIdLookup.Remove(name); + return true; + } + } + } + + return false; + } + + //Adds a player to the linkshell + public bool AddMemberToLinkshell(uint charaId, string LSName) + { + //Get the LS + Linkshell ls = GetLinkshell(LSName); + if (ls == null) + return false; + + //Add player to ls in db + lock (mGroupLockReference) + { + bool result = Database.LinkshellAddPlayer(ls.dbId, charaId); + + if (result) + { + ls.AddMember(charaId); + return true; + } + else + return false; + } + } + + //Removes a player from the linkshell + public bool RemoveMemberFromLinkshell(uint charaId, string LSName) + { + //Get the LS + Linkshell ls = GetLinkshell(LSName); + if (ls == null) + return false; + + //Delete the player in the db + lock (mGroupLockReference) + { + bool result = Database.LinkshellRemovePlayer(ls.dbId, charaId); + + if (!result) + return false; + + //Remove from group instance + ls.RemoveMember(charaId); + + return true; + } + } + + //Get a single linkshell group either already instantiated or make one from the db by Name + public Linkshell GetLinkshell(string name) + { + if (mNameToIdLookup.ContainsKey(name)) + return (Linkshell)mCurrentWorldGroupsReference[mNameToIdLookup[name]]; + else + { + lock (mGroupLockReference) + { + Linkshell ls = Database.GetLinkshell(mWorldManager.GetGroupIndex(), name); + ls.LoadMembers(); + + if (ls != null) + { + mLinkshellList.Add(ls.groupIndex, ls); + mNameToIdLookup.Add(ls.name, ls.groupIndex); + mLSIdToIdLookup.Add(ls.dbId, ls); + mCurrentWorldGroupsReference.Add(ls.groupIndex, ls); + mWorldManager.IncrementGroupIndex(); + return ls; + } + else + return null; + } + } + } + + //Get a single linkshell group either already instantiated or make one from the db by ID + public Linkshell GetLinkshell(ulong lsId) + { + if (mLSIdToIdLookup.ContainsKey(lsId)) + return (Linkshell)mCurrentWorldGroupsReference[mLSIdToIdLookup[lsId].groupIndex]; + else + { + lock (mGroupLockReference) + { + Linkshell ls = Database.GetLinkshell(mWorldManager.GetGroupIndex(), lsId); + ls.LoadMembers(); + + if (ls != null) + { + mLinkshellList.Add(ls.groupIndex, ls); + mNameToIdLookup.Add(ls.name, ls.groupIndex); + mLSIdToIdLookup.Add(ls.dbId, ls); + mCurrentWorldGroupsReference.Add(ls.groupIndex, ls); + mWorldManager.IncrementGroupIndex(); + return ls; + } + else + return null; + } + } + } + + //Get the linkshells player is part of + public List GetPlayerLinkshellMembership(uint charaId) + { + List memberships = Database.GetPlayerLSMembership(charaId); + List linkshells = new List(); + foreach (LinkshellMember membership in memberships) + linkshells.Add(GetLinkshell(membership.lsId)); + return linkshells; + } + + } +} diff --git a/FFXIVClassic World Server/NLog.config b/FFXIVClassic World Server/NLog.config new file mode 100644 index 00000000..e3e21f9c --- /dev/null +++ b/FFXIVClassic World Server/NLog.config @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic World Server/NLog.xsd b/FFXIVClassic World Server/NLog.xsd new file mode 100644 index 00000000..31cd6c0a --- /dev/null +++ b/FFXIVClassic World Server/NLog.xsd @@ -0,0 +1,2601 @@ + + + + + + + + + + + + + + + Watch config file for changes and reload automatically. + + + + + Print internal NLog messages to the console. Default value is: false + + + + + Print internal NLog messages to the console error output. Default value is: false + + + + + Write internal NLog messages to the specified file. + + + + + Log level threshold for internal log messages. Default value is: Info. + + + + + Global log level threshold for application log messages. Messages below this level won't be logged.. + + + + + Pass NLog internal exceptions to the application. Default value is: false. + + + + + Write internal NLog messages to the the System.Diagnostics.Trace. Default value is: false + + + + + + + + + + + + + + Make all targets within this section asynchronous (Creates additional threads but the calling thread isn't blocked by any target writes). + + + + + + + + + + + + + + + + + Prefix for targets/layout renderers/filters/conditions loaded from this assembly. + + + + + Load NLog extensions from the specified file (*.dll) + + + + + Load NLog extensions from the specified assembly. Assembly name should be fully qualified. + + + + + + + + + + Name of the logger. May include '*' character which acts like a wildcard. Allowed forms are: *, Name, *Name, Name* and *Name* + + + + + Comma separated list of levels that this rule matches. + + + + + Minimum level that this rule matches. + + + + + Maximum level that this rule matches. + + + + + Level that this rule matches. + + + + + Comma separated list of target names. + + + + + Ignore further rules if this one matches. + + + + + Enable or disable logging rule. Disabled rules are ignored. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the file to be included. The name is relative to the name of the current config file. + + + + + Ignore any errors in the include file. + + + + + + + Variable name. + + + + + Variable value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Indicates whether to add <!-- --> comments around all written texts. + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events that should be processed in a batch by the lazy writer thread. + + + + + Action to be taken when the lazy writer thread request queue count exceeds the set limit. + + + + + Limit on the number of requests in the lazy writer thread request queue. + + + + + Time in milliseconds to sleep between batches. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events to be buffered. + + + + + Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + Indicates whether to use sliding timeout. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Maximum current connections. 0 = no maximum. + + + + + Network address. + + + + + Maximum queue size. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + NDC item separator. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include dictionary contents. + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Viewer parameter name. + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to use default row highlighting rules. + + + + + The encoding for writing messages to the . + + + + + Indicates whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Condition that must be met in order to set the specified foreground and background color. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + Indicates whether to ignore case when comparing texts. + + + + + Regular expression to be matched. You must specify either text or regex. + + + + + Text to be matched. You must specify either text or regex. + + + + + Indicates whether to match whole words only. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to send the log messages to the standard error instead of the standard output. + + + + + The encoding for writing messages to the . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + Name of the connection string (as specified in <connectionStrings> configuration section. + + + + + Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string. + + + + + Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string. + + + + + Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string. + + + + + Name of the database provider. + + + + + Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string. + + + + + Indicates whether to keep the database connection open between the log events. + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. + + + + + Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + Text of the SQL command to be run on each log level. + + + + + Type of the SQL command to be run on each log level. + + + + + + + + + + + + + + + + + + + + + + + Type of the command. + + + + + Connection string to run the command against. If not provided, connection string from the target is used. + + + + + Indicates whether to ignore failures. + + + + + Command text. + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Database parameter name. + + + + + Database parameter precision. + + + + + Database parameter scale. + + + + + Database parameter size. + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Layout that renders event Category. + + + + + Layout that renders event ID. + + + + + Name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + Name of the machine on which Event Log service is running. + + + + + Value to be used as the event Source. + + + + + Action to take if the message is larger than the option. + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + Message length limit to write to the Event Log. + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether to return to the first target after any successful write. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + File encoding. + + + + + Line ending mode. + + + + + Way file archives are numbered. + + + + + Name of the file to be used for an archive. + + + + + Indicates whether to automatically archive log files every time the specified time passes. + + + + + Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot Create multiple archive files, if they should have the same name. Choose: + + + + + Maximum number of archive files that should be kept. + + + + + Indicates whether to compress archive files into the zip archive format. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation. + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing Gets written when the filename is wrong. + + + + + Name of the file to write to. + + + + + Value specifying the date format to use when archiving files. + + + + + Indicates whether to archive old log file on startup. + + + + + Indicates whether to Create directories if they Do not exist. + + + + + Indicates whether to enable log file(s) to be deleted. + + + + + File attributes (Windows only). + + + + + Indicates whether to delete old log file on startup. + + + + + Indicates whether to replace file contents on each write instead of appending log message at the end. + + + + + Indicates whether concurrent writes to the log file by multiple processes on the same host. + + + + + Delay in milliseconds to wait before attempting to write to the file again. + + + + + Maximum number of log filenames that should be stored as existing. + + + + + Indicates whether concurrent writes to the log file by multiple processes on different network hosts. + + + + + Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). + + + + + Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. + + + + + Log file buffer size in bytes. + + + + + Indicates whether to automatically flush the file buffers after each log message. + + + + + Number of times the write is appended on the file before NLog discards the log message. + + + + + Indicates whether to keep log file open instead of opening and closing it on each logging event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Condition expression. Log events who meet this condition will be forwarded to the wrapped target. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Windows Domain name to change context to. + + + + + Required impersonation level. + + + + + Type of the logon provider. + + + + + Logon Type. + + + + + User account password. + + + + + Indicates whether to revert to the credentials of the process instead of impersonating another user. + + + + + Username to change context to. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Endpoint address. + + + + + Name of the endpoint configuration in WCF configuration file. + + + + + Indicates whether to use a WCF service contract that is one way (fire and forGet) or two way (request-reply) + + + + + Client ID. + + + + + Indicates whether to include per-event properties in the payload sent to the server. + + + + + Indicates whether to use binary message encoding. + + + + + + + + + + + + + + Layout that should be use to calculate the value for the parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to send message as HTML instead of plain text. + + + + + Encoding to be used for sending e-mail. + + + + + Indicates whether to add new lines between log entries. + + + + + CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Mail message body (repeated for each log message send in one mail). + + + + + Mail subject. + + + + + Sender's email address (e.g. joe@domain.com). + + + + + Indicates whether NewLine characters in the body should be replaced with tags. + + + + + Priority used for sending mails. + + + + + Indicates the SMTP client timeout. + + + + + SMTP Server to be used for sending. + + + + + SMTP Authentication mode. + + + + + Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + + + + Port number that SMTP Server is listening on. + + + + + Indicates whether the default Settings from System.Net.MailSettings should be used. + + + + + Folder where applications save mail messages to be processed by the local SMTP server. + + + + + Specifies how outgoing email messages will be handled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Encoding to be used when writing text to the queue. + + + + + Indicates whether to use the XML format when serializing message. This will also disable creating queues. + + + + + Indicates whether to check if a queue exists before writing to it. + + + + + Indicates whether to Create the queue if it Doesn't exists. + + + + + Label to associate with each message. + + + + + Name of the queue to write to. + + + + + Indicates whether to use recoverable messages (with guaranteed delivery). + + + + + + + + + + + + + + + + + Name of the target. + + + + + Class name. + + + + + Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Encoding to be used. + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Network address. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Indicates whether to keep connection open whenever possible. + + + + + Maximum current connections. 0 = no maximum. + + + + + Maximum queue size. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Maximum current connections. 0 = no maximum. + + + + + Network address. + + + + + Maximum queue size. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + NDC item separator. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include dictionary contents. + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Indicates whether to perform layout calculation. + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether performance counter should be automatically Created. + + + + + Name of the performance counter category. + + + + + Counter help text. + + + + + Name of the performance counter. + + + + + Performance counter type. + + + + + The value by which to increment the counter. + + + + + Performance counter instance name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Default filter to be applied when no specific rule matches. + + + + + + + + + + + + + Condition to be tested. + + + + + Resulting filter to be applied when the condition matches. + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + + Name of the target. + + + + + Number of times to repeat each log message. + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of retries that should be attempted on the wrapped target in case of a failure. + + + + + Time to wait between retries in milliseconds. + + + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + Name of the target. + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. This will only work for UTF-8. + + + + + Encoding. + + + + + Web service method name. Only used with Soap. + + + + + Web service namespace. Only used with Soap. + + + + + Protocol to be used when calling web service. + + + + + Web service URL. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + Custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + Column delimiter. + + + + + Quote Character. + + + + + Quoting mode. + + + + + Indicates whether CVS should include header. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout of the column. + + + + + Name of the column. + + + + + + + + + + + + + Option to suppress the extra spaces in the output json + + + + + + + + + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + Layout that will be rendered as the attribute's value. + + + + + Name of the attribute. + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + + + + + + + + + + + + + + + + + Layout text. + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Condition expression. + + + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic World Server/PacketProcessor.cs b/FFXIVClassic World Server/PacketProcessor.cs new file mode 100644 index 00000000..abf41fd6 --- /dev/null +++ b/FFXIVClassic World Server/PacketProcessor.cs @@ -0,0 +1,181 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using FFXIVClassic_World_Server.DataObjects.Group; +using FFXIVClassic_World_Server.Packets.Receive; +using FFXIVClassic_World_Server.Packets.Receive.Subpackets; +using FFXIVClassic_World_Server.Packets.Send; +using FFXIVClassic_World_Server.Packets.Send.Login; +using FFXIVClassic_World_Server.Packets.Send.Subpackets; +using FFXIVClassic_World_Server.Packets.WorldPackets.Receive; +using FFXIVClassic_World_Server.Packets.WorldPackets.Send; +using System; +using System.Collections.Generic; +using System.IO; + +namespace FFXIVClassic_World_Server +{ + class PacketProcessor + { + /* + Session Creation: + + Get 0x1 from server + Send 0x7 + Send 0x2 + + Zone Change: + + Send 0x7 + Get 0x8 - Wait?? + Send 0x2 + */ + + + Server mServer; + + public PacketProcessor(Server server) + { + mServer = server; + } + + public void ProcessPacket(ClientConnection client, BasePacket packet) + { + if (packet.header.isCompressed == 0x01) + BasePacket.DecompressPacket(ref packet); + + List subPackets = packet.GetSubpackets(); + foreach (SubPacket subpacket in subPackets) + { + //Initial Connect Packet, Create session + if (subpacket.header.type == 0x01) + { + HelloPacket hello = new HelloPacket(packet.data); + + if (packet.header.connectionType == BasePacket.TYPE_ZONE) + { + mServer.AddSession(client, Session.Channel.ZONE, hello.sessionId); + Session session = mServer.GetSession(hello.sessionId); + session.routing1 = mServer.GetWorldManager().GetZoneServer(session.currentZoneId); + session.routing1.SendSessionStart(session, true); + } + else if (packet.header.connectionType == BasePacket.TYPE_CHAT) + mServer.AddSession(client, Session.Channel.CHAT, hello.sessionId); + + client.QueuePacket(_0x7Packet.BuildPacket(0x0E016EE5)); + client.QueuePacket(_0x2Packet.BuildPacket(hello.sessionId)); + } + //Ping from World Server + else if (subpacket.header.type == 0x07) + { + SubPacket init = _0x8PingPacket.BuildPacket(client.owner.sessionId); + client.QueuePacket(BasePacket.CreatePacket(init, true, false)); + } + //Zoning Related + else if (subpacket.header.type == 0x08) + { + //Response, client's current [actorID][time] + //BasePacket init = Login0x7ResponsePacket.BuildPacket(BitConverter.ToUInt32(packet.data, 0x10), Utils.UnixTimeStampUTC(), 0x07); + //client.QueuePacket(init); + packet.DebugPrintPacket(); + } + //Game Message + else if (subpacket.header.type == 0x03) + { + //Send to the correct zone server + uint targetSession = subpacket.header.targetId; + + InterceptProcess(mServer.GetSession(targetSession), subpacket); + + if (mServer.GetSession(targetSession).routing1 != null) + mServer.GetSession(targetSession).routing1.SendPacket(subpacket); + + if (mServer.GetSession(targetSession).routing2 != null) + mServer.GetSession(targetSession).routing2.SendPacket(subpacket); + } + //World Server Type + else if (subpacket.header.type >= 0x1000) + { + uint targetSession = subpacket.header.targetId; + Session session = mServer.GetSession(targetSession); + + switch (subpacket.header.type) + { + //Session Begin Confirm + case 0x1000: + SessionBeginConfirmPacket beginConfirmPacket = new SessionBeginConfirmPacket(packet.data); + + if (beginConfirmPacket.invalidPacket || beginConfirmPacket.errorCode == 0) + Program.Log.Error("Session {0} had a error beginning session.", beginConfirmPacket.sessionId); + + break; + //Session End Confirm + case 0x1001: + SessionEndConfirmPacket endConfirmPacket = new SessionEndConfirmPacket(packet.data); + + if (!endConfirmPacket.invalidPacket && endConfirmPacket.errorCode != 0) + { + //Check destination, if != 0, update route and start new session + if (endConfirmPacket.destinationZone != 0) + { + session.currentZoneId = endConfirmPacket.destinationZone; + session.routing1 = Server.GetServer().GetWorldManager().GetZoneServer(endConfirmPacket.destinationZone); + session.routing1.SendSessionStart(session); + } + else + { + mServer.RemoveSession(Session.Channel.ZONE, endConfirmPacket.sessionId); + mServer.RemoveSession(Session.Channel.CHAT, endConfirmPacket.sessionId); + } + } + else + Program.Log.Error("Session {0} had an error ending session.", endConfirmPacket.sessionId); + + break; + //Zone Change Request + case 0x1002: + WorldRequestZoneChangePacket zoneChangePacket = new WorldRequestZoneChangePacket(packet.data); + + if (!zoneChangePacket.invalidPacket) + { + mServer.GetWorldManager().DoZoneServerChange(session, zoneChangePacket.destinationZoneId, "", zoneChangePacket.destinationSpawnType, zoneChangePacket.destinationX, zoneChangePacket.destinationY, zoneChangePacket.destinationZ, zoneChangePacket.destinationRot); + } + + break; + } + + } + else + packet.DebugPrintPacket(); + } + } + + public void InterceptProcess(Session session, SubPacket subpacket) + { + switch (subpacket.gameMessage.opcode) + { + case 0x00C9: + subpacket.DebugPrintSubPacket(); + PartyChatMessagePacket partyChatMessagePacket = new PartyChatMessagePacket(subpacket.data); + Party playerParty = mServer.GetWorldManager().GetPartyManager().GetParty(session.sessionId); + for (int i = 0; i < playerParty.members.Count; i++) + { + Session thatSession = mServer.GetSession(playerParty.members[i]); + if (thatSession != null && !session.Equals(thatSession)) + { + thatSession.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, thatSession.sessionId, SendMessagePacket.MESSAGE_TYPE_PARTY, mServer.GetNameForId(session.sessionId), partyChatMessagePacket.message)); + } + } + break; + case 0x6: + mServer.GetWorldManager().DoLogin(session); + break; + //Special case for groups. If it's a world group, send values, else send to zone server + case 0x133: + GroupCreatedPacket groupCreatedPacket = new GroupCreatedPacket(subpacket.data); + if (!mServer.GetWorldManager().SendGroupInit(session, groupCreatedPacket.groupId)) + session.clientConnection.QueuePacket(subpacket); + break; + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/Receive/HelloPacket.cs b/FFXIVClassic World Server/Packets/Receive/HelloPacket.cs new file mode 100644 index 00000000..6f2992e5 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Receive/HelloPacket.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Receive +{ + class HelloPacket + { + public bool invalidPacket = false; + public uint sessionId; + + public HelloPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + byte[] readIn = new byte[12]; + binReader.BaseStream.Seek(0x14, SeekOrigin.Begin); + binReader.Read(readIn, 0, 12); + sessionId = UInt32.Parse(Encoding.ASCII.GetString(readIn)); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/Receive/Subpackets/ChatMessagePacket.cs b/FFXIVClassic World Server/Packets/Receive/Subpackets/ChatMessagePacket.cs new file mode 100644 index 00000000..ad94cc71 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Receive/Subpackets/ChatMessagePacket.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.Receive.Subpackets +{ + class ChatMessagePacket + { + public float posX; + public float posY; + public float posZ; + public float posRot; + + public uint logType; + + public string message; + + public bool invalidPacket = false; + + public ChatMessagePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try{ + binReader.ReadUInt64(); + posX = binReader.ReadSingle(); + posY = binReader.ReadSingle(); + posZ = binReader.ReadSingle(); + posRot = binReader.ReadSingle(); + logType = binReader.ReadUInt32(); + message = Encoding.ASCII.GetString(binReader.ReadBytes(0x200)).Trim(new [] { '\0' }); + } + catch (Exception){ + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/Receive/Subpackets/GroupCreatedPacket.cs b/FFXIVClassic World Server/Packets/Receive/Subpackets/GroupCreatedPacket.cs new file mode 100644 index 00000000..f7135041 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Receive/Subpackets/GroupCreatedPacket.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Receive.Subpackets +{ + class GroupCreatedPacket + { + public ulong groupId; + public string workString; + + public bool invalidPacket = false; + + public GroupCreatedPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try{ + groupId = binReader.ReadUInt64(); + workString = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception){ + invalidPacket = true; + } + } + } + } + + } +} diff --git a/FFXIVClassic World Server/Packets/Receive/Subpackets/PartyChatMessagePacket.cs b/FFXIVClassic World Server/Packets/Receive/Subpackets/PartyChatMessagePacket.cs new file mode 100644 index 00000000..ef20b3fc --- /dev/null +++ b/FFXIVClassic World Server/Packets/Receive/Subpackets/PartyChatMessagePacket.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.Receive.Subpackets +{ + class PartyChatMessagePacket + { + public uint actorId; + public string message; + + public bool invalidPacket = false; + + public PartyChatMessagePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try{ + actorId = binReader.ReadUInt32(); + message = Encoding.ASCII.GetString(binReader.ReadBytes(0x200)).Trim(new [] { '\0' }); + } + catch (Exception){ + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs new file mode 100644 index 00000000..6a049e5a --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs @@ -0,0 +1,350 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets +{ + class GameMessagePacket + { + private const ushort OPCODE_GAMEMESSAGE_WITH_ACTOR1 = 0x157; + private const ushort OPCODE_GAMEMESSAGE_WITH_ACTOR2 = 0x158; + private const ushort OPCODE_GAMEMESSAGE_WITH_ACTOR3 = 0x159; + private const ushort OPCODE_GAMEMESSAGE_WITH_ACTOR4 = 0x15a; + private const ushort OPCODE_GAMEMESSAGE_WITH_ACTOR5 = 0x15b; + + private const ushort OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER1 = 0x15c; + private const ushort OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER2 = 0x15d; + private const ushort OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER3 = 0x15e; + private const ushort OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER4 = 0x15f; + private const ushort OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER5 = 0x160; + + private const ushort OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER1 = 0x161; + private const ushort OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER2 = 0x162; + private const ushort OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER3 = 0x163; + private const ushort OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER4 = 0x164; + private const ushort OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER5 = 0x165; + + private const ushort OPCODE_GAMEMESSAGE_WITHOUT_ACTOR1 = 0x166; + private const ushort OPCODE_GAMEMESSAGE_WITHOUT_ACTOR2 = 0x167; + private const ushort OPCODE_GAMEMESSAGE_WITHOUT_ACTOR3 = 0x168; + private const ushort OPCODE_GAMEMESSAGE_WITHOUT_ACTOR4 = 0x169; + private const ushort OPCODE_GAMEMESSAGE_WITHOUT_ACTOR5 = 0x16a; + + private const ushort SIZE_GAMEMESSAGE_WITH_ACTOR1 = 0x30; + private const ushort SIZE_GAMEMESSAGE_WITH_ACTOR2 = 0x38; + private const ushort SIZE_GAMEMESSAGE_WITH_ACTOR3 = 0x40; + private const ushort SIZE_GAMEMESSAGE_WITH_ACTOR4 = 0x50; + private const ushort SIZE_GAMEMESSAGE_WITH_ACTOR5 = 0x70; + + private const ushort SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER1 = 0x48; + private const ushort SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER2 = 0x58; + private const ushort SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER3 = 0x68; + private const ushort SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER4 = 0x78; + private const ushort SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER5 = 0x98; + + private const ushort SIZE_GAMEMESSAGE_WITH_DISPID_SENDER1 = 0x30; + private const ushort SIZE_GAMEMESSAGE_WITH_DISPID_SENDER2 = 0x38; + private const ushort SIZE_GAMEMESSAGE_WITH_DISPID_SENDER3 = 0x40; + private const ushort SIZE_GAMEMESSAGE_WITH_DISPID_SENDER4 = 0x50; + private const ushort SIZE_GAMEMESSAGE_WITH_DISPID_SENDER5 = 0x60; + + private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR1 = 0x28; + private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR2 = 0x38; + private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR3 = 0x38; + private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR4 = 0x48; + private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR5 = 0x68; + + public static SubPacket BuildPacket(uint sourceId, uint actorId, uint textOwnerActorId, ushort textId, byte log) + { + byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR1 - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)actorId); + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + } + } + + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_ACTOR1, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint actorId, uint textOwnerActorId, ushort textId, byte log, List lParams) + { + int lParamsSize = findSizeOfParams(lParams); + byte[] data; + ushort opcode; + + if (lParamsSize <= 0x8) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR2 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR2; + } + else if (lParamsSize <= 0x10) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR3 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR3; + } + else if (lParamsSize <= 0x20) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR4 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR4; + } + else + { + data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR5 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR5; + } + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)actorId); + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + LuaUtils.WriteLuaParams(binWriter, lParams); + + if (lParamsSize <= 0x14-12) + { + binWriter.Seek(0x14, SeekOrigin.Begin); + binWriter.Write((UInt32)8); + } + } + } + + return new SubPacket(opcode, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, string sender, byte log) + { + byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER1 - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + binWriter.Write(Encoding.ASCII.GetBytes(sender), 0, Encoding.ASCII.GetByteCount(sender) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(sender)); + } + } + + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER1, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, string sender, byte log, List lParams) + { + int lParamsSize = findSizeOfParams(lParams); + byte[] data; + ushort opcode; + + if (lParamsSize <= 0x8) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER2 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER2; + } + else if (lParamsSize <= 0x10) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER3 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER3; + } + else if (lParamsSize <= 0x20) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER4 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER4; + } + else + { + data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER5 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER5; + } + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + binWriter.Write(Encoding.ASCII.GetBytes(sender), 0, Encoding.ASCII.GetByteCount(sender) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(sender)); + LuaUtils.WriteLuaParams(binWriter, lParams); + + if (lParamsSize <= 0x14 - 12) + { + binWriter.Seek(0x30, SeekOrigin.Begin); + binWriter.Write((UInt32)8); + } + } + } + + return new SubPacket(opcode, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log) + { + byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER1 - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)senderDisplayNameId); + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + } + } + + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER1, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log, List lParams) + { + int lParamsSize = findSizeOfParams(lParams); + byte[] data; + ushort opcode; + + if (lParamsSize <= 0x8) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER2 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER2; + } + else if (lParamsSize <= 0x10) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER3 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER3; + } + else if (lParamsSize <= 0x20) + { + data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER4 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER4; + } + else + { + data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER5 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER5; + } + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)senderDisplayNameId); + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + LuaUtils.WriteLuaParams(binWriter, lParams); + + if (lParamsSize <= 0x14 - 12) + { + binWriter.Seek(0x14, SeekOrigin.Begin); + binWriter.Write((UInt32)8); + } + } + } + + return new SubPacket(opcode, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, byte log) + { + byte[] data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR1 - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + } + } + + return new SubPacket(OPCODE_GAMEMESSAGE_WITHOUT_ACTOR1, sourceId, data); + } + + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, byte log, List lParams) + { + int lParamsSize = findSizeOfParams(lParams); + byte[] data; + ushort opcode; + + if (lParamsSize <= 0x8) + { + data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR2 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITHOUT_ACTOR2; + } + else if (lParamsSize <= 0x10) + { + data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR3 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITHOUT_ACTOR3; + } + else if (lParamsSize <= 0x20) + { + data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR4 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITHOUT_ACTOR4; + } + else + { + data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR5 - 0x20]; + opcode = OPCODE_GAMEMESSAGE_WITHOUT_ACTOR5; + } + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt32)textOwnerActorId); + binWriter.Write((UInt16)textId); + binWriter.Write((UInt16)log); + LuaUtils.WriteLuaParams(binWriter, lParams); + + if (lParamsSize <= 0x8) + { + binWriter.Seek(0x10, SeekOrigin.Begin); + binWriter.Write((UInt32)8); + } + } + } + + return new SubPacket(opcode, sourceId, data); + } + + private static int findSizeOfParams(List lParams) + { + int total = 0; + foreach (LuaParam l in lParams) + { + switch (l.typeID) + { + case 0: + case 1: + total += 5; + break; + case 2: + total += 1 + 0x20; + break; + case 6: + total += 5; + break; + case 3: + case 4: + case 5: + total += 1; + break; + } + } + return total + 1; + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs new file mode 100644 index 00000000..9081283d --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs @@ -0,0 +1,41 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.Actor.Group; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class CreateNamedGroup + { + public const ushort OPCODE = 0x0188; + public const uint PACKET_SIZE = 0x60; + + public static SubPacket buildPacket(uint sessionId, Group group) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt64)group.groupIndex); + binWriter.Write((UInt32)group.GetTypeId()); + binWriter.Write((Int32)group.GetGroupLocalizedName()); + + binWriter.Write((UInt16)0x121C); + + binWriter.Seek(0x20, SeekOrigin.Begin); + + binWriter.Write(Encoding.ASCII.GetBytes(group.GetGroupName()), 0, Encoding.ASCII.GetByteCount(group.GetGroupName()) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(group.GetGroupName())); + } + } + + return new SubPacket(OPCODE, sessionId, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs new file mode 100644 index 00000000..98d9ad13 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs @@ -0,0 +1,55 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.Actor.Group; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class CreateNamedGroupMultiple + { + public const ushort OPCODE = 0x0189; + public const uint PACKET_SIZE = 0x228; + + public static SubPacket buildPacket(uint playerActorID, Group[] groups, ref int offset) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + int max = 8; + if (groups.Length - offset <= 8) + max = groups.Length - offset; + + for (int i = 0; i < max; i++) + { + binWriter.Seek(i * 0x40, SeekOrigin.Begin); + + Group group = groups[offset+i]; + + binWriter.Write((UInt64)group.groupIndex); + binWriter.Write((UInt32)group.GetTypeId()); + binWriter.Write((Int32)group.GetGroupLocalizedName()); + + binWriter.Write((UInt16)0x121C); + + binWriter.Seek(0x20, SeekOrigin.Begin); + + binWriter.Write(Encoding.ASCII.GetBytes(group.GetGroupName()), 0, Encoding.ASCII.GetByteCount(group.GetGroupName()) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(group.GetGroupName())); + } + + binWriter.Seek(0x200, SeekOrigin.Begin); + binWriter.Write((Byte)max); + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs new file mode 100644 index 00000000..d661ae52 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs @@ -0,0 +1,44 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.Actor.Group; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class DeleteGroupPacket + { + public const ushort OPCODE = 0x0143; + public const uint PACKET_SIZE = 0x40; + + public static SubPacket buildPacket(uint sessionId, Group group) + { + return buildPacket(sessionId, group.groupIndex); + } + + public static SubPacket buildPacket(uint sessionId, ulong groupId) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write control num ???? + binWriter.Write((UInt64)3); + + //Write Ids + binWriter.Write((UInt64)groupId); + binWriter.Write((UInt64)0); + binWriter.Write((UInt64)groupId); + } + } + + return new SubPacket(OPCODE, sessionId, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs new file mode 100644 index 00000000..c28fe084 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs @@ -0,0 +1,62 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupHeaderPacket + { + public const uint TYPEID_RETAINER = 0x13881; + public const uint TYPEID_PARTY = 0x2711; + public const uint TYPEID_LINKSHELL = 0x4E22; + + public const ushort OPCODE = 0x017C; + public const uint PACKET_SIZE = 0x98; + + public static SubPacket buildPacket(uint playerActorID, uint locationCode, ulong sequenceId, Group group) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write list header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + + //Write list id + binWriter.Write((UInt64)3); + binWriter.Write((UInt64)group.groupIndex); + binWriter.Write((UInt64)0); + binWriter.Write((UInt64)group.groupIndex); + + //This seems to change depending on what the list is for + binWriter.Write((UInt32)group.GetTypeId()); + binWriter.Seek(0x40, SeekOrigin.Begin); + + //This is for Linkshell + binWriter.Write((UInt32)group.GetGroupLocalizedName()); + binWriter.Write(Encoding.ASCII.GetBytes(group.GetGroupName()), 0, Encoding.ASCII.GetByteCount(group.GetGroupName()) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(group.GetGroupName())); + + binWriter.Seek(0x64, SeekOrigin.Begin); + + //Does this change chat???? + binWriter.Write((UInt32)0x6D); + binWriter.Write((UInt32)0x6D); + binWriter.Write((UInt32)0x6D); + binWriter.Write((UInt32)0x6D); + + binWriter.Write((UInt32)group.GetMemberCount()); + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic Map Server/packets/send/list/ListEntry.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMember.cs similarity index 52% rename from FFXIVClassic Map Server/packets/send/list/ListEntry.cs rename to FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMember.cs index 97859916..8c6b8944 100644 --- a/FFXIVClassic Map Server/packets/send/list/ListEntry.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMember.cs @@ -1,18 +1,20 @@ -namespace FFXIVClassic_Map_Server.packets.send.list +using FFXIVClassic.Common; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups { - class ListEntry + class GroupMember { public uint actorId; - public uint unknown1; + public int localizedName; public uint unknown2; public bool flag1; public bool isOnline; public string name; - public ListEntry(uint actorId, uint unknown1, uint unknown2, bool flag1, bool isOnline, string name) + public GroupMember(uint actorId, int localizedName, uint unknown2, bool flag1, bool isOnline, string name) { this.actorId = actorId; - this.unknown1 = unknown1; + this.localizedName = localizedName; this.unknown2 = unknown2; this.flag1 = flag1; this.isOnline = isOnline; diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs new file mode 100644 index 00000000..46f15905 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs @@ -0,0 +1,37 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupMembersBeginPacket + { + public const ushort OPCODE = 0x017D; + public const uint PACKET_SIZE = 0x40; + + public static SubPacket buildPacket(uint playerActorID, uint locationCode, ulong sequenceId, Group group) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write List Header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + //Write List Info + binWriter.Write((UInt64)group.groupIndex); + binWriter.Write((UInt32)group.GetMemberCount()); + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs new file mode 100644 index 00000000..3d095b8b --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs @@ -0,0 +1,38 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.Actor.Group; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupMembersEndPacket + { + public const ushort OPCODE = 0x017E; + public const uint PACKET_SIZE = 0x38; + + public static SubPacket buildPacket(uint sessionId, uint locationCode, ulong sequenceId, Group group) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write List Header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + //Write List Info + binWriter.Write((UInt64)group.groupIndex); + } + } + + return new SubPacket(OPCODE, sessionId, data); + } + + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs new file mode 100644 index 00000000..734e843c --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs @@ -0,0 +1,54 @@ +using FFXIVClassic.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupMembersX08Packet + { + public const ushort OPCODE = 0x017F; + public const uint PACKET_SIZE = 0x1B8; + + public static SubPacket buildPacket(uint playerActorID, uint locationCode, ulong sequenceId, List entries, ref int offset) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write List Header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + //Write Entries + int max = 8; + if (entries.Count-offset < 8) + max = entries.Count - offset; + for (int i = 0; i < max; i++) + { + binWriter.Seek(0x10 + (0x30 * i), SeekOrigin.Begin); + + GroupMember entry = entries[i]; + binWriter.Write((UInt32)entry.actorId); + binWriter.Write((Int32)entry.localizedName); + binWriter.Write((UInt32)entry.unknown2); + binWriter.Write((Byte)(entry.flag1? 1 : 0)); + binWriter.Write((Byte)(entry.isOnline? 1 : 0)); + binWriter.Write(Encoding.ASCII.GetBytes(entry.name), 0, Encoding.ASCII.GetByteCount(entry.name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(entry.name)); + + offset++; + } + //Write Count + binWriter.Seek(0x10 + (0x30 * 8), SeekOrigin.Begin); + binWriter.Write(max); + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs new file mode 100644 index 00000000..f3181570 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs @@ -0,0 +1,51 @@ +using FFXIVClassic.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupMembersX16Packet + { + public const ushort OPCODE = 0x0180; + public const uint PACKET_SIZE = 0x330; + + public static SubPacket buildPacket(uint playerActorID, uint locationCode, ulong sequenceId, List entries, ref int offset) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write List Header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + //Write Entries + int max = 16; + if (entries.Count-offset < 16) + max = entries.Count - offset; + for (int i = 0; i < max; i++) + { + binWriter.Seek(0x10 + (0x30 * i), SeekOrigin.Begin); + + GroupMember entry = entries[i]; + binWriter.Write((UInt32)entry.actorId); + binWriter.Write((Int32)entry.localizedName); + binWriter.Write((UInt32)entry.unknown2); + binWriter.Write((Byte)(entry.flag1? 1 : 0)); + binWriter.Write((Byte)(entry.isOnline? 1 : 0)); + binWriter.Write(Encoding.ASCII.GetBytes(entry.name), 0, Encoding.ASCII.GetByteCount(entry.name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(entry.name)); + + offset++; + } + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs new file mode 100644 index 00000000..f6669f08 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs @@ -0,0 +1,51 @@ +using FFXIVClassic.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupMembersX32Packet + { + public const ushort OPCODE = 0x0181; + public const uint PACKET_SIZE = 0x630; + + public static SubPacket buildPacket(uint playerActorID, uint locationCode, ulong sequenceId, List entries, ref int offset) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write List Header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + //Write Entries + int max = 32; + if (entries.Count-offset < 32) + max = entries.Count - offset; + for (int i = 0; i < max; i++) + { + binWriter.Seek(0x10 + (0x30 * i), SeekOrigin.Begin); + + GroupMember entry = entries[i]; + binWriter.Write((UInt32)entry.actorId); + binWriter.Write((Int32)entry.localizedName); + binWriter.Write((UInt32)entry.unknown2); + binWriter.Write((Byte)(entry.flag1? 1 : 0)); + binWriter.Write((Byte)(entry.isOnline? 1 : 0)); + binWriter.Write(Encoding.ASCII.GetBytes(entry.name), 0, Encoding.ASCII.GetByteCount(entry.name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(entry.name)); + + offset++; + } + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs new file mode 100644 index 00000000..5a18d0cd --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs @@ -0,0 +1,51 @@ +using FFXIVClassic.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class GroupMembersX64Packet + { + public const ushort OPCODE = 0x0182; + public const uint PACKET_SIZE = 0xC30; + + public static SubPacket buildPacket(uint playerActorID, uint locationCode, ulong sequenceId, List entries, ref int offset) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write List Header + binWriter.Write((UInt64)locationCode); + binWriter.Write((UInt64)sequenceId); + //Write Entries + int max = 64; + if (entries.Count - offset < 64) + max = entries.Count - offset; + for (int i = 0; i < max; i++) + { + binWriter.Seek(0x10 + (0x30 * i), SeekOrigin.Begin); + + GroupMember entry = entries[i]; + binWriter.Write((UInt32)entry.actorId); + binWriter.Write((Int32)entry.localizedName); + binWriter.Write((UInt32)entry.unknown2); + binWriter.Write((Byte)(entry.flag1? 1 : 0)); + binWriter.Write((Byte)(entry.isOnline? 1 : 0)); + binWriter.Write(Encoding.ASCII.GetBytes(entry.name), 0, Encoding.ASCII.GetByteCount(entry.name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(entry.name)); + + offset++; + } + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs new file mode 100644 index 00000000..d387a029 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs @@ -0,0 +1,42 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups +{ + class SetActiveLinkshellPacket + { + + public const ushort OPCODE = 0x018A; + public const uint PACKET_SIZE = 0x98; + + public static SubPacket BuildPacket(uint sessionId, ulong groupId) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + //Write the LS groupId + binWriter.Write((UInt64)groupId); + + //Write the LS group type + binWriter.Seek(0x40, SeekOrigin.Begin); + binWriter.Write((UInt32)Group.CompanyGroup); + + //Seems to be a index but can only set one active so /shrug + binWriter.Seek(0x60, SeekOrigin.Begin); + binWriter.Write((UInt32)(groupId == 0 ? 0 : 1)); + } + } + + return new SubPacket(OPCODE, sessionId, data); + } + } +} diff --git a/FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs similarity index 60% rename from FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs rename to FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs index 781e137f..57f100cf 100644 --- a/FFXIVClassic Map Server/packets/send/list/SetListPropertyPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs @@ -1,18 +1,22 @@ using FFXIVClassic.Common; +using FFXIVClassic_World_Server.Actor.Group; +using FFXIVClassic_World_Server.DataObjects.Group; using System; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; +using System.Threading.Tasks; -namespace FFXIVClassic_Map_Server.packets.send.actor +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups { - class SetListPropetyPacket + class SynchGroupWorkValuesPacket { public const ushort OPCODE = 0x017A; public const uint PACKET_SIZE = 0xB0; - private const ushort MAXBYTES = 0x98; + private const ushort MAXBYTES = 0x98; private ushort runningByteTotal = 0; private byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -21,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor private MemoryStream mem; private BinaryWriter binWriter; - public SetListPropetyPacket(ulong listId) + public SynchGroupWorkValuesPacket(ulong listId) { mem = new MemoryStream(data); binWriter = new BinaryWriter(mem); @@ -29,13 +33,13 @@ namespace FFXIVClassic_Map_Server.packets.send.actor binWriter.Seek(1, SeekOrigin.Current); } - public void CloseStreams() + public void closeStreams() { binWriter.Dispose(); mem.Dispose(); } - public bool AcceptCallback(uint id, byte value) + public bool addByte(uint id, byte value) { if (runningByteTotal + 6 > MAXBYTES) return false; @@ -43,12 +47,12 @@ namespace FFXIVClassic_Map_Server.packets.send.actor binWriter.Write((byte)1); binWriter.Write((UInt32)id); binWriter.Write((byte)value); - runningByteTotal+=6; + runningByteTotal += 6; return true; } - public bool AddShort(uint id, ushort value) + public bool addShort(uint id, ushort value) { if (runningByteTotal + 7 > MAXBYTES) return false; @@ -56,12 +60,12 @@ namespace FFXIVClassic_Map_Server.packets.send.actor binWriter.Write((byte)2); binWriter.Write((UInt32)id); binWriter.Write((UInt16)value); - runningByteTotal+=7; + runningByteTotal += 7; return true; } - public bool AddInt(uint id, uint value) + public bool addInt(uint id, uint value) { if (runningByteTotal + 9 > MAXBYTES) return false; @@ -69,14 +73,27 @@ namespace FFXIVClassic_Map_Server.packets.send.actor binWriter.Write((byte)4); binWriter.Write((UInt32)id); binWriter.Write((UInt32)value); - runningByteTotal+=9; + runningByteTotal += 9; return true; } - public bool AddBuffer(uint id, byte[] buffer) + public bool addLong(uint id, ulong value) { - if (runningByteTotal + 5 + buffer.Length > MAXBYTES) + if (runningByteTotal + 13 > MAXBYTES) + return false; + + binWriter.Write((byte)8); + binWriter.Write((UInt32)id); + binWriter.Write((UInt64)value); + runningByteTotal += 13; + + return true; + } + + public bool addBuffer(uint id, byte[] buffer) + { + if (runningByteTotal + 5 + buffer.Length > MAXBYTES) return false; binWriter.Write((byte)buffer.Length); @@ -87,15 +104,15 @@ namespace FFXIVClassic_Map_Server.packets.send.actor return true; } - public void AddProperty(FFXIVClassic_Map_Server.Actors.Actor actor, string name) + public void addProperty(Group group, string name) { string[] split = name.Split('.'); int arrayIndex = 0; - if (!(split[0].Equals("work") || split[0].Equals("charaWork") || split[0].Equals("playerWork") || split[0].Equals("npcWork"))) + if (!(split[0].Equals("work") || split[0].Equals("partyGroupWork"))) return; - Object curObj = actor; + Object curObj = group; for (int i = 0; i < split.Length; i++) { //For arrays @@ -105,7 +122,15 @@ namespace FFXIVClassic_Map_Server.packets.send.actor return; arrayIndex = Convert.ToInt32(split[i].Substring(split[i].IndexOf('[') + 1, split[i].Length - split[i].LastIndexOf(']'))); + split[i] = split[i].Substring(0, split[i].IndexOf('[')); + + if (i != split.Length - 1) + { + curObj = curObj.GetType().GetField(split[i]).GetValue(curObj); + curObj = ((Array)curObj).GetValue(arrayIndex); + i++; + } } FieldInfo field = curObj.GetType().GetField(split[i]); @@ -132,33 +157,37 @@ namespace FFXIVClassic_Map_Server.packets.send.actor if (curObj == null) return; - //Cast to the proper object and Add to packet + //Cast to the proper object and add to packet uint id = Utils.MurmurHash2(name, 0); - if (curObj is bool) - AcceptCallback(id, (byte)(((bool)curObj) ? 1 : 0)); + if (curObj is bool) + addByte(id, (byte)(((bool)curObj) ? 1 : 0)); else if (curObj is byte) - AcceptCallback(id, (byte)curObj); + addByte(id, (byte)curObj); else if (curObj is ushort) - AddShort(id, (ushort)curObj); - else if (curObj is short) - AddShort(id, (ushort)(short)curObj); + addShort(id, (ushort)curObj); + else if (curObj is short) + addShort(id, (ushort)(short)curObj); else if (curObj is uint) - AddInt(id, (uint)curObj); - else if (curObj is int) - AddInt(id, (uint)(int)curObj); + addInt(id, (uint)curObj); + else if (curObj is int) + addInt(id, (uint)(int)curObj); + else if (curObj is long) + addLong(id, (ulong)(long)curObj); + else if (curObj is ulong) + addLong(id, (ulong)curObj); else if (curObj is float) - AddBuffer(id, BitConverter.GetBytes((float)curObj)); + addBuffer(id, BitConverter.GetBytes((float)curObj)); else return; } } - public void SetIsMore(bool flag) + public void setIsMore(bool flag) { isMore = flag; } - public void SetTarget(string target) + public void setTarget(string target) { binWriter.Write((byte)(isMore ? 0x62 + target.Length : 0x82 + target.Length)); binWriter.Write(Encoding.ASCII.GetBytes(target)); @@ -166,16 +195,17 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } - public SubPacket BuildPacket(uint playerActorID, uint actorID) + public SubPacket buildPacket(uint playerActorID) { binWriter.Seek(0x8, SeekOrigin.Begin); binWriter.Write((byte)runningByteTotal); - - CloseStreams(); - SubPacket packet = new SubPacket(OPCODE, playerActorID, actorID, data); + closeStreams(); + + SubPacket packet = new SubPacket(OPCODE, playerActorID, data); return packet; - } - + } + } } + diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs new file mode 100644 index 00000000..55127d65 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs @@ -0,0 +1,58 @@ +using System; +using System.IO; +using System.Text; + +using FFXIVClassic.Common; + +namespace FFXIVClassic_World_Server.Packets.Send.Subpackets +{ + class SendMessagePacket + { + public const int MESSAGE_TYPE_NONE = 0; + public const int MESSAGE_TYPE_SAY = 1; + public const int MESSAGE_TYPE_SHOUT = 2; + public const int MESSAGE_TYPE_TELL = 3; + public const int MESSAGE_TYPE_PARTY = 4; + public const int MESSAGE_TYPE_LINKSHELL1 = 5; + public const int MESSAGE_TYPE_LINKSHELL2 = 6; + public const int MESSAGE_TYPE_LINKSHELL3 = 7; + public const int MESSAGE_TYPE_LINKSHELL4 = 8; + public const int MESSAGE_TYPE_LINKSHELL5 = 9; + public const int MESSAGE_TYPE_LINKSHELL6 = 10; + public const int MESSAGE_TYPE_LINKSHELL7 = 11; + public const int MESSAGE_TYPE_LINKSHELL8 = 12; + + public const int MESSAGE_TYPE_SAY_SPAM = 22; + public const int MESSAGE_TYPE_SHOUT_SPAM = 23; + public const int MESSAGE_TYPE_TELL_SPAM = 24; + public const int MESSAGE_TYPE_CUSTOM_EMOTE = 25; + public const int MESSAGE_TYPE_EMOTE_SPAM = 26; + public const int MESSAGE_TYPE_STANDARD_EMOTE = 27; + public const int MESSAGE_TYPE_URGENT_MESSAGE = 28; + public const int MESSAGE_TYPE_GENERAL_INFO = 29; + public const int MESSAGE_TYPE_SYSTEM = 32; + public const int MESSAGE_TYPE_SYSTEM_ERROR = 33; + + public const ushort OPCODE = 0x0003; + public const uint PACKET_SIZE = 0x248; + + public static SubPacket BuildPacket(uint playerActorID, uint targetID, uint messageType, string sender, string message) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write(Encoding.ASCII.GetBytes(sender), 0, Encoding.ASCII.GetByteCount(sender) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(sender)); + binWriter.BaseStream.Seek(0x20, SeekOrigin.Begin); + binWriter.Write((UInt32)messageType); + binWriter.Write(Encoding.ASCII.GetBytes(message), 0, Encoding.ASCII.GetByteCount(message) >= 0x200 ? 0x200 : Encoding.ASCII.GetByteCount(message)); + } + } + + return new SubPacket(OPCODE, playerActorID, data); + } + + } +} diff --git a/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs b/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs new file mode 100644 index 00000000..1fc6ef98 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs @@ -0,0 +1,47 @@ +using FFXIVClassic.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send +{ + class _0x2Packet + { + public const ushort OPCODE = 0x0002; + public const uint PACKET_SIZE = 0x38; + + public static SubPacket BuildPacket(uint actorID) + { + byte[] data = { + 0x6c, 0x00, 0x00, 0x00, 0xC8, 0xD6, 0xAF, 0x2B, 0x38, 0x2B, 0x5F, 0x26, 0xB8, 0x8D, 0xF0, 0x2B, + 0xC8, 0xFD, 0x85, 0xFE, 0xA8, 0x7C, 0x5B, 0x09, 0x38, 0x2B, 0x5F, 0x26, 0xC8, 0xD6, 0xAF, 0x2B, + 0xB8, 0x8D, 0xF0, 0x2B, 0x88, 0xAF, 0x5E, 0x26 + }; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + try + { + binWriter.Seek(0, SeekOrigin.Begin); + binWriter.Write((UInt32)actorID); + } + catch (Exception) + { } + } + } + + /* + 0x6c, 0x00, 0x00, 0x00, 0xC8, 0xD6, 0xAF, 0x2B, 0x38, 0x2B, 0x5F, 0x26, 0xB8, 0x8D, 0xF0, 0x2B, + 0xC8, 0xFD, 0x85, 0xFE, 0xA8, 0x7C, 0x5B, 0x09, 0x38, 0x2B, 0x5F, 0x26, 0xC8, 0xD6, 0xAF, 0x2B, + 0xB8, 0x8D, 0xF0, 0x2B, 0x88, 0xAF, 0x5E, 0x26 + */ + + return new SubPacket(false, OPCODE, 0, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs b/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs new file mode 100644 index 00000000..f7d6d452 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs @@ -0,0 +1,37 @@ +using FFXIVClassic.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.Send +{ + class _0x7Packet + { + public const ushort OPCODE = 0x0007; + public const uint PACKET_SIZE = 0x18; + + public static SubPacket BuildPacket(uint actorID) + { + byte[] data = new byte[PACKET_SIZE]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + try + { + binWriter.Write((UInt32)actorID); + binWriter.Write((UInt32)Utils.UnixTimeStampUTC()); + } + catch (Exception) + { } + } + } + + return new SubPacket(false, OPCODE, 0, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs b/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs new file mode 100644 index 00000000..3b18b3b7 --- /dev/null +++ b/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs @@ -0,0 +1,33 @@ +using FFXIVClassic.Common; +using System; +using System.IO; + +namespace FFXIVClassic_World_Server.Packets.Send.Login +{ + class _0x8PingPacket + { + public const ushort OPCODE = 0x0008; + public const uint PACKET_SIZE = 0x18; + + public static SubPacket BuildPacket(uint actorID) + { + byte[] data = new byte[PACKET_SIZE]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + try + { + binWriter.Write((UInt32)actorID); + binWriter.Write((UInt32)Utils.UnixTimeStampUTC()); + } + catch (Exception) + {} + } + } + + return new SubPacket(false, OPCODE, 0, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/CreateLinkshellPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/CreateLinkshellPacket.cs new file mode 100644 index 00000000..aa952d1a --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/CreateLinkshellPacket.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class CreateLinkshellPacket + { + public bool invalidPacket = false; + + public string name; + public ushort crestid; + public uint master; + + public CreateLinkshellPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + name = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + crestid = binReader.ReadUInt16(); + master = binReader.ReadUInt32(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/CreateRelationPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/CreateRelationPacket.cs new file mode 100644 index 00000000..eb573b5b --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/CreateRelationPacket.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class CreateRelationPacket + { + public bool invalidPacket = false; + + public uint host; + public uint guest; + public uint command; + + public CreateRelationPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + host = binReader.ReadUInt32(); + guest = binReader.ReadUInt32(); + command = binReader.ReadUInt32(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/DeleteLinkshellPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/DeleteLinkshellPacket.cs new file mode 100644 index 00000000..7c2a05c2 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/DeleteLinkshellPacket.cs @@ -0,0 +1,30 @@ +using System; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class DeleteLinkshellPacket + { + public bool invalidPacket = false; + public string name; + + public DeleteLinkshellPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + name = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/GetGroupPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/GetGroupPacket.cs new file mode 100644 index 00000000..5276bfac --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/GetGroupPacket.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class GetGroupPacket + { + public bool invalidPacket = false; + public ulong groupId; + + public GetGroupPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + groupId = binReader.ReadUInt64(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/GroupInviteResultPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/GroupInviteResultPacket.cs new file mode 100644 index 00000000..6197b16c --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/GroupInviteResultPacket.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class GroupInviteResultPacket + { + public bool invalidPacket = false; + + public uint groupType; + public uint result; + + public GroupInviteResultPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + groupType = binReader.ReadUInt32(); + result = binReader.ReadUInt32(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellChangePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellChangePacket.cs new file mode 100644 index 00000000..99b8bd7f --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellChangePacket.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class LinkshellChangePacket + { + public bool invalidPacket = false; + + public string lsName; + + public LinkshellChangePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + lsName = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellInviteCancelPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellInviteCancelPacket.cs new file mode 100644 index 00000000..0f2bf8f7 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellInviteCancelPacket.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class LinkshellInviteCancelPacket + { + public bool invalidPacket = false; + + public string lsName; + public uint actorId; + + public LinkshellInviteCancelPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellInvitePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellInvitePacket.cs new file mode 100644 index 00000000..5f1e86b4 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellInvitePacket.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class LinkshellInvitePacket + { + public bool invalidPacket = false; + + public string lsName; + public uint actorId; + + public LinkshellInvitePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + actorId = binReader.ReadUInt32(); + lsName = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellLeavePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellLeavePacket.cs new file mode 100644 index 00000000..ea8a5469 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellLeavePacket.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class LinkshellLeavePacket + { + public bool invalidPacket = false; + + public bool isKicked; + public string lsName; + public string kickedName; + + public LinkshellLeavePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + isKicked = binReader.ReadUInt16() == 1; + kickedName = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + lsName = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellRankChangePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellRankChangePacket.cs new file mode 100644 index 00000000..83615df7 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/LinkshellRankChangePacket.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class LinkshellRankChangePacket + { + public bool invalidPacket = false; + + public string name; + public string lsName; + public byte rank; + + public LinkshellRankChangePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + name = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + lsName = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + rank = binReader.ReadByte(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/ModifyLinkshellPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/ModifyLinkshellPacket.cs new file mode 100644 index 00000000..c6c94eb1 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/ModifyLinkshellPacket.cs @@ -0,0 +1,49 @@ +using System; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class ModifyLinkshellPacket + { + public bool invalidPacket = false; + + public string currentName; + public ushort argCode; + public string name; + public ushort crestid; + public uint master; + + public ModifyLinkshellPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + currentName = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + argCode = binReader.ReadUInt16(); + + switch (argCode) + { + case 0: + name = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + break; + case 1: + crestid = binReader.ReadUInt16(); + break; + case 2: + master = binReader.ReadUInt32(); + break; + } + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyInvitePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyInvitePacket.cs new file mode 100644 index 00000000..1a4d55e3 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyInvitePacket.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class PartyInvitePacket + { + public bool invalidPacket = false; + + public ushort command; + public string name; + public uint actorId; + + public PartyInvitePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + command = binReader.ReadUInt16(); + + if (command == 1) + actorId = binReader.ReadUInt32(); + else + name = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyLeavePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyLeavePacket.cs new file mode 100644 index 00000000..f29cb06e --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyLeavePacket.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class PartyLeavePacket + { + public bool invalidPacket = false; + + public bool isDisband; + + public PartyLeavePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + isDisband = binReader.ReadByte() == 1; + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyModifyPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyModifyPacket.cs new file mode 100644 index 00000000..58bffa54 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/Group/PartyModifyPacket.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group +{ + class PartyModifyPacket + { + public bool invalidPacket = false; + + public const ushort MODIFY_LEADER = 0; + public const ushort MODIFY_KICKPLAYER = 1; + + public ushort command; + public string name; + public uint actorId; + + public PartyModifyPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + command = binReader.ReadUInt16(); + + if (command >= 2) + actorId = binReader.ReadUInt32(); + else + name = Encoding.ASCII.GetString(binReader.ReadBytes(0x20)).Trim(new[] { '\0' }); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/SessionBeginConfirmPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/SessionBeginConfirmPacket.cs new file mode 100644 index 00000000..189865c6 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/SessionBeginConfirmPacket.cs @@ -0,0 +1,38 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive +{ + class SessionBeginConfirmPacket + { + public bool invalidPacket = false; + public uint sessionId; + public ushort errorCode; + + public SessionBeginConfirmPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + sessionId = binReader.ReadUInt32(); + errorCode = binReader.ReadUInt16(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/SessionEndConfirmPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/SessionEndConfirmPacket.cs new file mode 100644 index 00000000..b0e22aec --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/SessionEndConfirmPacket.cs @@ -0,0 +1,39 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive +{ + class SessionEndConfirmPacket + { + public bool invalidPacket = false; + public uint sessionId; + public ushort errorCode; + public uint destinationZone; + + public SessionEndConfirmPacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + sessionId = binReader.ReadUInt32(); + errorCode = binReader.ReadUInt16(); + destinationZone = binReader.ReadUInt32(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Receive/WorldRequestZoneChangePacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Receive/WorldRequestZoneChangePacket.cs new file mode 100644 index 00000000..faa2e4b4 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Receive/WorldRequestZoneChangePacket.cs @@ -0,0 +1,49 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Receive +{ + class WorldRequestZoneChangePacket + { + public uint sessionId; + public uint destinationZoneId; + public byte destinationSpawnType; + public float destinationX; + public float destinationY; + public float destinationZ; + public float destinationRot; + + public bool invalidPacket = false; + + public WorldRequestZoneChangePacket(byte[] data) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryReader binReader = new BinaryReader(mem)) + { + try + { + sessionId = binReader.ReadUInt32(); + destinationZoneId = binReader.ReadUInt32(); + destinationSpawnType = (byte)binReader.ReadUInt16(); + destinationX = binReader.ReadSingle(); + destinationY = binReader.ReadSingle(); + destinationZ = binReader.ReadSingle(); + destinationRot = binReader.ReadSingle(); + } + catch (Exception) + { + invalidPacket = true; + } + } + } + + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs new file mode 100644 index 00000000..c17ae48f --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs @@ -0,0 +1,37 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send +{ + class ErrorPacket + { + public const ushort OPCODE = 0x100A; + public const uint PACKET_SIZE = 0x24; + + public static SubPacket BuildPacket(Session session, uint errorCode) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + try + { + binWriter.Write((UInt32)errorCode); + } + catch (Exception) + { } + } + } + + return new SubPacket(true, OPCODE, session.sessionId, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs new file mode 100644 index 00000000..3ba86760 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs @@ -0,0 +1,33 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.IO; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send.Group +{ + class PartySyncPacket + { + public const ushort OPCODE = 0x1020; + public const uint PACKET_SIZE = 0x60; + + public static SubPacket BuildPacket(Session session, Party party) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt64)party.groupIndex); + binWriter.Write((UInt32)party.GetLeader()); + binWriter.Write((UInt32)party.members.Count); + for (int i = 0; i < party.members.Count; i++) + binWriter.Write((UInt32)party.members[i]); + } + } + + return new SubPacket(true, OPCODE, session.sessionId, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs new file mode 100644 index 00000000..6871c6eb --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs @@ -0,0 +1,35 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send +{ + class SessionBeginPacket + { + public const ushort OPCODE = 0x1000; + public const uint PACKET_SIZE = 0x24; + + public static SubPacket BuildPacket(Session session, bool isLogin) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + if (isLogin) + { + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((Byte)1); + } + } + } + + return new SubPacket(true, OPCODE, session.sessionId, data); + } + } +} diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs new file mode 100644 index 00000000..afe00492 --- /dev/null +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs @@ -0,0 +1,63 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send +{ + class SessionEndPacket + { + public const ushort OPCODE = 0x1001; + public const uint PACKET_SIZE = 0x38; + + public static SubPacket BuildPacket(Session session) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + try + { + binWriter.Write((UInt32)0); + } + catch (Exception) + { } + } + } + + return new SubPacket(true, OPCODE, session.sessionId, data); + } + + public static SubPacket BuildPacket(Session session, uint destinationZoneId, string destinationPrivateArea, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + try + { + binWriter.Write((UInt32)destinationZoneId); + binWriter.Write((UInt16)spawnType); + binWriter.Write((Single)spawnX); + binWriter.Write((Single)spawnY); + binWriter.Write((Single)spawnZ); + binWriter.Write((Single)spawnRotation); + + } + catch (Exception) + { } + } + } + + return new SubPacket(true, OPCODE, session.sessionId, data); + } + } +} diff --git a/FFXIVClassic World Server/PartyManager.cs b/FFXIVClassic World Server/PartyManager.cs new file mode 100644 index 00000000..a2e83145 --- /dev/null +++ b/FFXIVClassic World Server/PartyManager.cs @@ -0,0 +1,108 @@ +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; + +namespace FFXIVClassic_World_Server +{ + class PartyManager + { + private WorldManager mWorldManager; + private Object mGroupLockReference; + private Dictionary mCurrentWorldGroupsReference; + private Dictionary mPartyList = new Dictionary(); + private Dictionary mPlayerPartyLookup = new Dictionary(); + + public PartyManager(WorldManager worldManager, Object groupLock, Dictionary worldGroupList) + { + mWorldManager = worldManager; + mGroupLockReference = groupLock; + mCurrentWorldGroupsReference = worldGroupList; + } + + public Party CreateParty(uint leaderCharaId) + { + lock (mGroupLockReference) + { + ulong groupId = mWorldManager.GetGroupIndex(); + Party party = new Party(groupId, leaderCharaId); + mPartyList.Add(groupId, party); + mPlayerPartyLookup.Add(leaderCharaId, party); + mCurrentWorldGroupsReference.Add(groupId, party); + mWorldManager.IncrementGroupIndex(); + return party; + } + } + + public void DeleteParty(ulong groupId) + { + if (mCurrentWorldGroupsReference.ContainsKey(groupId)) + mCurrentWorldGroupsReference.Remove(groupId); + if (mPartyList.ContainsKey(groupId)) + { + foreach (uint id in mPartyList[groupId].members) + { + if (mPlayerPartyLookup.ContainsKey(id)) + mPlayerPartyLookup.Remove(id); + } + mPartyList.Remove(groupId); + } + } + + public bool AddToParty(ulong groupId, uint charaId) + { + if (mPartyList.ContainsKey(groupId)) + { + Party party = mPartyList[groupId]; + if (!party.members.Contains(charaId)) + { + party.members.Add(charaId); + mPlayerPartyLookup.Remove(charaId); + mPlayerPartyLookup.Add(charaId, party); + } + return true; + } + return false; + } + + public int RemoveFromParty(ulong groupId, uint charaId) + { + if (mPartyList.ContainsKey(groupId)) + { + Party party = mPartyList[groupId]; + if (party.members.Contains(charaId)) + { + party.members.Remove(charaId); + mPlayerPartyLookup.Remove(charaId); + + //If current ldr, make a new ldr if not empty pt + if (party.GetLeader() == charaId && party.members.Count != 0) + party.SetLeader(party.members[0]); + } + return party.members.Count; + } + return -1; + } + + public bool ChangeLeader(ulong groupId, uint charaId) + { + if (mPartyList.ContainsKey(groupId)) + { + Party party = mPartyList[groupId]; + if (party.members.Contains(charaId)) + { + party.SetLeader(charaId); + return true; + } + } + return false; + } + + public Party GetParty(uint charaId) + { + if (mPlayerPartyLookup.ContainsKey(charaId)) + return mPlayerPartyLookup[charaId]; + else + return CreateParty(charaId); + } + } +} diff --git a/FFXIVClassic World Server/Program.cs b/FFXIVClassic World Server/Program.cs new file mode 100644 index 00000000..8dc2aafe --- /dev/null +++ b/FFXIVClassic World Server/Program.cs @@ -0,0 +1,94 @@ +using FFXIVClassic_World_Server.DataObjects; +using MySql.Data.MySqlClient; +using NLog; +using NLog.Fluent; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server +{ + class Program + { + public static Logger Log; + + static void Main(string[] args) + { + // set up logging + Log = LogManager.GetCurrentClassLogger(); + + bool startServer = true; + + Log.Info("=================================="); + Log.Info("FFXIV Classic World Server"); + Log.Info("Version: 0.1"); + Log.Info("=================================="); + +#if DEBUG + TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); + Debug.Listeners.Add(myWriter); + + if (System.Diagnostics.Debugger.IsAttached) + { + System.Threading.Thread.Sleep(5000); + } + +#endif + + //Load Config + ConfigConstants.Load(); + ConfigConstants.ApplyLaunchArgs(args); + + //Test DB Connection + Log.Info("Testing DB connection... "); + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + conn.Close(); + + Log.Info("Connection ok."); + } + catch (MySqlException e) + { + Log.Error(e.ToString()); + startServer = false; + } + } + + //Check World ID + DBWorld thisWorld = Database.GetServer(ConfigConstants.DATABASE_WORLDID); + if (thisWorld != null) + { + Program.Log.Info("Successfully pulled world info from DB. Server name is {0}.", thisWorld.name); + ConfigConstants.PREF_SERVERNAME = thisWorld.name; + } + else + { + Program.Log.Info("World info could not be retrieved from the DB. Welcome and MOTD will not be displayed."); + ConfigConstants.PREF_SERVERNAME = "Unknown"; + } + + //Start server if A-OK + if (startServer) + { + Server server = new Server(); + server.StartServer(); + + while (startServer) + { + String input = Console.ReadLine(); + Log.Info("[Console Input] " + input); + //cp.DoCommand(input, null); + } + } + + Program.Log.Info("Press any key to continue..."); + Console.ReadKey(); + } + } +} diff --git a/FFXIVClassic World Server/Properties/AssemblyInfo.cs b/FFXIVClassic World Server/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..2bb7a8a3 --- /dev/null +++ b/FFXIVClassic World Server/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("FFXIVClassic Proxy Server")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("FFXIVClassic Proxy Server")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3067889d-8a50-40d6-9cd5-23aa8ea96f26")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/FFXIVClassic World Server/RelationGroupManager.cs b/FFXIVClassic World Server/RelationGroupManager.cs new file mode 100644 index 00000000..9d73b513 --- /dev/null +++ b/FFXIVClassic World Server/RelationGroupManager.cs @@ -0,0 +1,84 @@ +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; + +namespace FFXIVClassic_World_Server +{ + class RelationGroupManager + { + private WorldManager mWorldManager; + private Object mGroupLockReference; + private Dictionary mCurrentWorldGroupsReference; + private Dictionary mPartyRelationList = new Dictionary(); + private Dictionary mLinkshellRelationList = new Dictionary(); + + public RelationGroupManager(WorldManager worldManager, Object groupLock, Dictionary worldGroupList) + { + mWorldManager = worldManager; + mGroupLockReference = groupLock; + mCurrentWorldGroupsReference = worldGroupList; + } + + public Relation CreatePartyRelationGroup(ulong topicGroupId, uint hostCharaId, uint otherCharaId) + { + lock (mGroupLockReference) + { + ulong groupIndex = mWorldManager.GetGroupIndex(); + Relation relation = new Relation(groupIndex, hostCharaId, otherCharaId, 10001, topicGroupId); + mPartyRelationList.Add(groupIndex, relation); + mCurrentWorldGroupsReference.Add(groupIndex, relation); + mWorldManager.IncrementGroupIndex(); + return relation; + } + } + + public Relation CreateLinkshellRelationGroup(ulong topicGroupId, uint hostCharaId, uint otherCharaId) + { + lock (mGroupLockReference) + { + ulong groupIndex = mWorldManager.GetGroupIndex(); + Relation relation = new Relation(groupIndex, hostCharaId, otherCharaId, 10002, topicGroupId); + mLinkshellRelationList.Add(groupIndex, relation); + mCurrentWorldGroupsReference.Add(groupIndex, relation); + mWorldManager.IncrementGroupIndex(); + return relation; + } + } + + public Relation GetPartyRelationGroup(uint charaId) + { + lock (mGroupLockReference) + { + foreach (Relation relation in mPartyRelationList.Values) + { + if (relation.GetHost() == charaId || relation.GetOther() == charaId) + return relation; + } + return null; + } + } + + public Relation GetLinkshellRelationGroup(uint charaId) + { + lock (mGroupLockReference) + { + foreach (Relation relation in mLinkshellRelationList.Values) + { + if (relation.GetHost() == charaId || relation.GetOther() == charaId) + return relation; + } + return null; + } + } + + public void DeleteRelationGroup(ulong groupId) + { + if (mPartyRelationList.ContainsKey(groupId)) + mPartyRelationList.Remove(groupId); + if (mLinkshellRelationList.ContainsKey(groupId)) + mLinkshellRelationList.Remove(groupId); + if (mCurrentWorldGroupsReference.ContainsKey(groupId)) + mCurrentWorldGroupsReference.Remove(groupId); + } + } +} diff --git a/FFXIVClassic World Server/RetainerGroupManager.cs b/FFXIVClassic World Server/RetainerGroupManager.cs new file mode 100644 index 00000000..5fa14b34 --- /dev/null +++ b/FFXIVClassic World Server/RetainerGroupManager.cs @@ -0,0 +1,61 @@ +using FFXIVClassic_World_Server.DataObjects.Group; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server +{ + class RetainerGroupManager + { + private WorldManager mWorldManager; + private Object mGroupLockReference; + private Dictionary mCurrentWorldGroupsReference; + private Dictionary mRetainerGroupList = new Dictionary(); + + public RetainerGroupManager(WorldManager worldManager, Object groupLock, Dictionary worldGroupList) + { + mWorldManager = worldManager; + mGroupLockReference = groupLock; + mCurrentWorldGroupsReference = worldGroupList; + } + + public RetainerGroup GetRetainerGroup(uint charaId) + { + if (!mRetainerGroupList.ContainsKey(charaId)) + return LoadRetainerGroup(charaId); + else + return mRetainerGroupList[charaId]; + } + + private RetainerGroup LoadRetainerGroup(uint charaId) + { + lock(mGroupLockReference) + { + ulong groupId = mWorldManager.GetGroupIndex(); + RetainerGroup retainerGroup = new RetainerGroup(groupId, charaId); + + List members = Database.GetRetainers(charaId); + + retainerGroup.members = members; + mRetainerGroupList.Add(charaId, retainerGroup); + mCurrentWorldGroupsReference.Add(groupId, retainerGroup); + + mWorldManager.IncrementGroupIndex(); + + return retainerGroup; + } + } + + public void AddRetainerToGroup(ulong charaId, uint retainerId) + { + + } + + public void RemoveRetainerFromGroup(ulong charaId, uint retainerId) + { + + } + } +} diff --git a/FFXIVClassic World Server/Server.cs b/FFXIVClassic World Server/Server.cs new file mode 100644 index 00000000..964abb35 --- /dev/null +++ b/FFXIVClassic World Server/Server.cs @@ -0,0 +1,502 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using FFXIVClassic_World_Server.DataObjects.Group; +using FFXIVClassic_World_Server.Packets.Receive.Subpackets; +using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; +using FFXIVClassic_World_Server.Packets.WorldPackets.Receive; +using FFXIVClassic_World_Server.Packets.WorldPackets.Receive.Group; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; + +namespace FFXIVClassic_World_Server +{ + class Server + { + public const int FFXIV_MAP_PORT = 54992; + public const int BUFFER_SIZE = 0xFFFF; //Max basepacket size is 0xFFFF + public const int BACKLOG = 100; + private static Server mSelf; + + //Connections + private Socket mServerSocket; + WorldManager mWorldManager; + PacketProcessor mPacketProcessor; + + //Preloaded Maps + private Dictionary mIdToNameMap = new Dictionary(); + + //Session Management + private List mConnectionList = new List(); + private Dictionary mZoneSessionList = new Dictionary(); + private Dictionary mChatSessionList = new Dictionary(); + + public Server() + { + mSelf = this; + } + + public static Server GetServer() + { + return mSelf; + } + + public bool StartServer() + { + mPacketProcessor = new PacketProcessor(this); + + LoadCharaNames(); + + mWorldManager = new WorldManager(this); + mWorldManager.LoadZoneServerList(); + mWorldManager.LoadZoneEntranceList(); + mWorldManager.ConnectToZoneServers(); + + IPEndPoint serverEndPoint = new System.Net.IPEndPoint(IPAddress.Parse(ConfigConstants.OPTIONS_BINDIP), int.Parse(ConfigConstants.OPTIONS_PORT)); + + try + { + mServerSocket = new System.Net.Sockets.Socket(serverEndPoint.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); + } + catch (Exception e) + { + throw new ApplicationException("Could not Create socket, check to make sure not duplicating port", e); + } + try + { + mServerSocket.Bind(serverEndPoint); + mServerSocket.Listen(BACKLOG); + } + catch (Exception e) + { + throw new ApplicationException("Error occured while binding socket, check inner exception", e); + } + try + { + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + catch (Exception e) + { + throw new ApplicationException("Error occured starting listeners, check inner exception", e); + } + + Console.ForegroundColor = ConsoleColor.White; + Program.Log.Info("World Server accepting connections @ {0}:{1}", (mServerSocket.LocalEndPoint as IPEndPoint).Address, (mServerSocket.LocalEndPoint as IPEndPoint).Port); + Console.ForegroundColor = ConsoleColor.Gray; + + return true; + } + + public void AddSession(ClientConnection connection, Session.Channel type, uint id) + { + Session session = new Session(id, connection, type); + + switch (type) + { + case Session.Channel.ZONE: + //New character since world server loaded + if (!mIdToNameMap.ContainsKey(id)) + AddNameToMap(id, session.characterName); + //TODO: this is technically wrong!!! Should kick out player and wait till auto-removed. + if (mZoneSessionList.ContainsKey(id)) + mZoneSessionList.Remove(id); + + mZoneSessionList.Add(id, session); + break; + case Session.Channel.CHAT: + if (!mChatSessionList.ContainsKey(id)) + mChatSessionList.Add(id, session); + break; + } + } + + public void RemoveSession(Session.Channel type, uint id) + { + switch (type) + { + case Session.Channel.ZONE: + if (mZoneSessionList.ContainsKey(id)) + { + mZoneSessionList[id].clientConnection.Disconnect(); + mConnectionList.Remove(mZoneSessionList[id].clientConnection); + mZoneSessionList.Remove(id); + } + break; + case Session.Channel.CHAT: + if (mChatSessionList.ContainsKey(id)) + { + mChatSessionList[id].clientConnection.Disconnect(); + mConnectionList.Remove(mChatSessionList[id].clientConnection); + mChatSessionList.Remove(id); + } + break; + } + } + + public Session GetSession(uint targetSession, Session.Channel type = Session.Channel.ZONE) + { + switch (type) + { + case Session.Channel.ZONE: + if (mZoneSessionList.ContainsKey(targetSession)) + return mZoneSessionList[targetSession]; + break; + case Session.Channel.CHAT: + if (mChatSessionList.ContainsKey(targetSession)) + return mChatSessionList[targetSession]; + break; + } + + return null; + } + + public Session GetSession(string targetSessionName) + { + lock (mZoneSessionList) + { + foreach (Session s in mZoneSessionList.Values) + { + if (s.characterName != null && s.characterName.Equals(targetSessionName)) + return s; + } + } + + return null; + } + + public void OnReceiveSubPacketFromZone(ZoneServer zoneServer, SubPacket subpacket) + { + uint sessionId = subpacket.header.targetId; + Session session = GetSession(sessionId); + subpacket.DebugPrintSubPacket(); + if (subpacket.gameMessage.opcode >= 0x1000) + { + //subpacket.DebugPrintSubPacket(); + + switch (subpacket.gameMessage.opcode) + { + //Session Begin Confirm + case 0x1000: + SessionBeginConfirmPacket beginConfirmPacket = new SessionBeginConfirmPacket(subpacket.data); + + if (beginConfirmPacket.invalidPacket || beginConfirmPacket.errorCode == 0) + Program.Log.Error("Session {0} had a error beginning session.", beginConfirmPacket.sessionId); + + break; + //Session End Confirm + case 0x1001: + SessionEndConfirmPacket endConfirmPacket = new SessionEndConfirmPacket(subpacket.data); + + if (!endConfirmPacket.invalidPacket && endConfirmPacket.errorCode == 0) + { + //Check destination, if != 0, update route and start new session + if (endConfirmPacket.destinationZone != 0) + { + session.routing1 = Server.GetServer().GetWorldManager().GetZoneServer(endConfirmPacket.destinationZone); + session.routing1.SendSessionStart(session); + } + else + { + RemoveSession(Session.Channel.ZONE, endConfirmPacket.sessionId); + RemoveSession(Session.Channel.CHAT, endConfirmPacket.sessionId); + } + } + else + Program.Log.Error("Session {0} had an error ending session.", endConfirmPacket.sessionId); + + break; + //Zone Change Request + case 0x1002: + WorldRequestZoneChangePacket zoneChangePacket = new WorldRequestZoneChangePacket(subpacket.data); + + if (!zoneChangePacket.invalidPacket) + { + GetWorldManager().DoZoneServerChange(session, zoneChangePacket.destinationZoneId, "", zoneChangePacket.destinationSpawnType, zoneChangePacket.destinationX, zoneChangePacket.destinationY, zoneChangePacket.destinationZ, zoneChangePacket.destinationRot); + } + + break; + //Change leader or kick + case 0x1020: + PartyModifyPacket partyModifyPacket = new PartyModifyPacket(subpacket.data); + + Party pt = mWorldManager.GetPartyManager().GetParty(subpacket.header.targetId); + + if (pt.GetMemberCount() <= 1) + return; + + if (partyModifyPacket.command == PartyModifyPacket.MODIFY_LEADER) + pt.SetLeaderPlayerRequest(GetSession(subpacket.header.sourceId), partyModifyPacket.name); + else if (partyModifyPacket.command == PartyModifyPacket.MODIFY_KICKPLAYER) + pt.KickPlayerRequest(GetSession(subpacket.header.sourceId), partyModifyPacket.name); + else if (partyModifyPacket.command == PartyModifyPacket.MODIFY_LEADER + 2) + pt.SetLeaderPlayerRequest(GetSession(subpacket.header.sourceId), partyModifyPacket.actorId); + else if (partyModifyPacket.command == PartyModifyPacket.MODIFY_KICKPLAYER + 2) + pt.KickPlayerRequest(GetSession(subpacket.header.sourceId), partyModifyPacket.actorId); + + break; + //Party Resign or Disband + case 0x1021: + PartyLeavePacket partyLeavePacket = new PartyLeavePacket(subpacket.data); + Party leavePt = mWorldManager.GetPartyManager().GetParty(subpacket.header.sourceId); + + if (!partyLeavePacket.isDisband) + leavePt.LeavePlayerRequest(GetSession(subpacket.header.sourceId)); + else + leavePt.DisbandPlayerRequest(GetSession(subpacket.header.sourceId)); + + break; + //Party Invite Request + case 0x1022: + PartyInvitePacket partyInvitePacket = new PartyInvitePacket(subpacket.data); + if (partyInvitePacket.command == 1) + mWorldManager.ProcessPartyInvite(GetSession(subpacket.header.sourceId), partyInvitePacket.actorId); + else if (partyInvitePacket.command == 0) + { + Session inviteeByNamesSession = GetSession(partyInvitePacket.name); + if (inviteeByNamesSession != null) + mWorldManager.ProcessPartyInvite(GetSession(subpacket.header.sourceId), inviteeByNamesSession.sessionId); + else + { + //Show not found msg + } + } + break; + //Group Invite Result + case 0x1023: + GroupInviteResultPacket groupInviteResultPacket = new GroupInviteResultPacket(subpacket.data); + + switch (groupInviteResultPacket.groupType) + { + case 0x2711: + mWorldManager.ProcessPartyInviteResult(GetSession(subpacket.header.sourceId), groupInviteResultPacket.result); + break; + case 0x2712: + mWorldManager.ProcessLinkshellInviteResult(GetSession(subpacket.header.sourceId), groupInviteResultPacket.result); + break; + } + + break; + //Linkshell create request + case 0x1025: + CreateLinkshellPacket createLinkshellPacket = new CreateLinkshellPacket(subpacket.data); + mWorldManager.GetLinkshellManager().CreateLinkshell(createLinkshellPacket.name, createLinkshellPacket.crestid, createLinkshellPacket.master); + break; + //Linkshell modify request + case 0x1026: + ModifyLinkshellPacket modifyLinkshellPacket = new ModifyLinkshellPacket(subpacket.data); + switch (modifyLinkshellPacket.argCode) + { + case 0: + break; + case 1: + mWorldManager.GetLinkshellManager().ChangeLinkshellCrest(modifyLinkshellPacket.currentName, modifyLinkshellPacket.crestid); + break; + case 2: + mWorldManager.GetLinkshellManager().ChangeLinkshellMaster(modifyLinkshellPacket.currentName, modifyLinkshellPacket.master); + break; + } + break; + //Linkshell delete request + case 0x1027: + DeleteLinkshellPacket deleteLinkshellPacket = new DeleteLinkshellPacket(subpacket.data); + mWorldManager.GetLinkshellManager().DeleteLinkshell(deleteLinkshellPacket.name); + break; + //Linkshell set active + case 0x1028: + LinkshellChangePacket linkshellChangePacket = new LinkshellChangePacket(subpacket.data); + mWorldManager.ProcessLinkshellSetActive(GetSession(subpacket.header.sourceId), linkshellChangePacket.lsName); + break; + //Linkshell invite member + case 0x1029: + LinkshellInvitePacket linkshellInvitePacket = new LinkshellInvitePacket(subpacket.data); + mWorldManager.ProcessLinkshellInvite(GetSession(subpacket.header.sourceId), linkshellInvitePacket.lsName, linkshellInvitePacket.actorId); + break; + //Linkshell cancel invite + case 0x1030: + LinkshellInviteCancelPacket linkshellInviteCancelPacket = new LinkshellInviteCancelPacket(subpacket.data); + mWorldManager.ProcessLinkshellInviteCancel(GetSession(subpacket.header.sourceId)); + break; + //Linkshell resign/kicked + case 0x1031: + LinkshellLeavePacket linkshellLeavePacket = new LinkshellLeavePacket(subpacket.data); + Linkshell lsLeave = mWorldManager.GetLinkshellManager().GetLinkshell(linkshellLeavePacket.lsName); + if (linkshellLeavePacket.isKicked) + lsLeave.KickRequest(GetSession(subpacket.header.sourceId), linkshellLeavePacket.kickedName); + else + lsLeave.LeaveRequest(GetSession(subpacket.header.sourceId)); + break; + //Linkshell rank change + case 0x1032: + LinkshellRankChangePacket linkshellRankChangePacket = new LinkshellRankChangePacket(subpacket.data); + Linkshell lsRankChange = mWorldManager.GetLinkshellManager().GetLinkshell(linkshellRankChangePacket.lsName); + lsRankChange.RankChangeRequest(GetSession(subpacket.header.sourceId), linkshellRankChangePacket.name, linkshellRankChangePacket.rank); + break; + } + } + else if (mZoneSessionList.ContainsKey(sessionId)) + { + ClientConnection conn = mZoneSessionList[sessionId].clientConnection; + conn.QueuePacket(subpacket); + conn.FlushQueuedSendPackets(); + } + + } + + public WorldManager GetWorldManager() + { + return mWorldManager; + } + + #region Socket Handling + private void AcceptCallback(IAsyncResult result) + { + ClientConnection conn = null; + Socket socket = (System.Net.Sockets.Socket)result.AsyncState; + + try + { + conn = new ClientConnection(); + conn.socket = socket.EndAccept(result); + conn.buffer = new byte[BUFFER_SIZE]; + + lock (mConnectionList) + { + mConnectionList.Add(conn); + } + + Program.Log.Info("Connection {0}:{1} has connected.", (conn.socket.RemoteEndPoint as IPEndPoint).Address, (conn.socket.RemoteEndPoint as IPEndPoint).Port); + //Queue recieving of data from the connection + conn.socket.BeginReceive(conn.buffer, 0, conn.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), conn); + //Queue the accept of the next incomming connection + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + catch (SocketException) + { + if (conn != null) + { + + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + catch (Exception) + { + if (conn != null) + { + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + mServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mServerSocket); + } + } + + /// + /// Receive Callback. Reads in incoming data, converting them to base packets. Base packets are sent to be parsed. If not enough data at the end to build a basepacket, move to the beginning and prepend. + /// + /// + private void ReceiveCallback(IAsyncResult result) + { + ClientConnection conn = (ClientConnection)result.AsyncState; + + //Check if disconnected + if ((conn.socket.Poll(1, SelectMode.SelectRead) && conn.socket.Available == 0)) + { + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + + return; + } + + try + { + int bytesRead = conn.socket.EndReceive(result); + + bytesRead += conn.lastPartialSize; + + if (bytesRead >= 0) + { + int offset = 0; + + //Build packets until can no longer or out of data + while (true) + { + BasePacket basePacket = BasePacket.CreatePacket(ref offset, conn.buffer, bytesRead); + + //If can't build packet, break, else process another + if (basePacket == null) + break; + else + { + mPacketProcessor.ProcessPacket(conn, basePacket); + } + + } + + //Not all bytes consumed, transfer leftover to beginning + if (offset < bytesRead) + Array.Copy(conn.buffer, offset, conn.buffer, 0, bytesRead - offset); + + conn.lastPartialSize = bytesRead - offset; + + //Build any queued subpackets into basepackets and send + conn.FlushQueuedSendPackets(); + + if (offset < bytesRead) + //Need offset since not all bytes consumed + conn.socket.BeginReceive(conn.buffer, bytesRead - offset, conn.buffer.Length - (bytesRead - offset), SocketFlags.None, new AsyncCallback(ReceiveCallback), conn); + else + //All bytes consumed, full buffer available + conn.socket.BeginReceive(conn.buffer, 0, conn.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), conn); + } + else + { + + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + } + catch (SocketException) + { + if (conn.socket != null) + { + + lock (mConnectionList) + { + mConnectionList.Remove(conn); + } + } + } + } + + #endregion + + public void LoadCharaNames() + { + Database.GetAllCharaNames(mIdToNameMap); + } + + public void AddNameToMap(uint charaId, string name) + { + mIdToNameMap.Add(charaId, name); + } + + public string GetNameForId(uint charaId) + { + if (mIdToNameMap.ContainsKey(charaId)) + return mIdToNameMap[charaId]; + return null; + } + + + } +} diff --git a/FFXIVClassic World Server/WorldMaster.cs b/FFXIVClassic World Server/WorldMaster.cs new file mode 100644 index 00000000..58948af3 --- /dev/null +++ b/FFXIVClassic World Server/WorldMaster.cs @@ -0,0 +1,494 @@ +using FFXIVClassic.Common; +using FFXIVClassic_World_Server.DataObjects; +using FFXIVClassic_World_Server.DataObjects.Group; +using FFXIVClassic_World_Server.Packets.Send.Subpackets; +using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; +using FFXIVClassic_World_Server.Packets.WorldPackets.Send; +using FFXIVClassic_World_Server.Packets.WorldPackets.Send.Group; +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_World_Server +{ + class WorldManager + { + private Server mServer; + public Dictionary mZoneServerList; + private Dictionary zoneEntranceList; + + //World Scope Group Management + private Object mGroupLock = new object(); + private ulong mRunningGroupIndex = 1; + private Dictionary mCurrentWorldGroups = new Dictionary(); + + private PartyManager mPartyManager; + private RetainerGroupManager mRetainerGroupManager; + private LinkshellManager mLinkshellManager; + private RelationGroupManager mRelationGroupManager; + + public WorldManager(Server server) + { + mServer = server; + mPartyManager = new PartyManager(this, mGroupLock, mCurrentWorldGroups); + mLinkshellManager = new LinkshellManager(this, mGroupLock, mCurrentWorldGroups); + mRetainerGroupManager = new RetainerGroupManager(this, mGroupLock, mCurrentWorldGroups); + mRelationGroupManager = new RelationGroupManager(this, mGroupLock, mCurrentWorldGroups); + } + + public void LoadZoneServerList() + { + mZoneServerList = new Dictionary(); + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + string query = @" + SELECT + id, + serverIp, + serverPort + FROM server_zones + WHERE serverIp IS NOT NULL"; + + MySqlCommand cmd = new MySqlCommand(query, conn); + + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + uint id = reader.GetUInt32(0); + string ip = reader.GetString(1); + int port = reader.GetInt32(2); + string address = ip + ":" + port; + + if (!mZoneServerList.ContainsKey(address)) + { + ZoneServer zone = new ZoneServer(ip, port, id); + mZoneServerList.Add(address, zone); + } + else + mZoneServerList[address].AddLoadedZone(id); + } + } + } + catch (MySqlException e) + { Console.WriteLine(e); } + finally + { + conn.Dispose(); + } + } + + } + + public void LoadZoneEntranceList() + { + zoneEntranceList = new Dictionary(); + int count = 0; + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + string query = @" + SELECT + id, + zoneId, + spawnType, + spawnX, + spawnY, + spawnZ, + spawnRotation, + privateAreaName + FROM server_zones_spawnlocations"; + + MySqlCommand cmd = new MySqlCommand(query, conn); + + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + uint id = reader.GetUInt32(0); + string privArea = null; + + if (!reader.IsDBNull(7)) + privArea = reader.GetString(7); + + ZoneEntrance entance = new ZoneEntrance(reader.GetUInt32(1), privArea, reader.GetByte(2), reader.GetFloat(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetFloat(6)); + zoneEntranceList[id] = entance; + count++; + } + } + } + catch (MySqlException e) + { Console.WriteLine(e); } + finally + { + conn.Dispose(); + } + } + + Program.Log.Info(String.Format("Loaded {0} zone spawn locations.", count)); + } + + public void ConnectToZoneServers() + { + Program.Log.Info("--------------------------"); + Program.Log.Info("Connecting to zone servers"); + Program.Log.Info("--------------------------"); + + foreach (ZoneServer zs in mZoneServerList.Values) + { + zs.Connect(); + } + } + + public ZoneServer GetZoneServer(uint zoneId) + { + foreach (ZoneServer zs in mZoneServerList.Values) + { + if (zs.ownedZoneIds.Contains(zoneId)) + return zs; + } + + return null; + } + + //Moves the actor to the new zone if exists. No packets are sent nor position changed. + public void DoSeamlessZoneServerChange(Session session, uint destinationZoneId) + { + + } + + //Moves actor to new zone, and sends packets to spawn at the given zone entrance + public void DoZoneServerChange(Session session, uint zoneEntrance) + { + if (!zoneEntranceList.ContainsKey(zoneEntrance)) + { + Program.Log.Error("Given zone entrance was not found: " + zoneEntrance); + return; + } + + ZoneEntrance ze = zoneEntranceList[zoneEntrance]; + DoZoneServerChange(session, ze.zoneId, ze.privateAreaName, ze.spawnType, ze.spawnX, ze.spawnY, ze.spawnZ, ze.spawnRotation); + } + + //Moves actor to new zone, and sends packets to spawn at the given coords. + public void DoZoneServerChange(Session session, uint destinationZoneId, string destinationPrivateArea, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation) + { + ZoneServer zs = GetZoneServer(destinationZoneId); + + if (zs == null) + return; + + session.currentZoneId = destinationZoneId; + + //Intrazone change, just update the id + if (zs.Equals(session.routing1)) + return; + + if (zs.isConnected) + session.routing1.SendSessionEnd(session, destinationZoneId, destinationPrivateArea, spawnType, spawnX, spawnY, spawnZ, spawnRotation); + else if (zs.Connect()) + session.routing1.SendSessionEnd(session, destinationZoneId, destinationPrivateArea, spawnType, spawnX, spawnY, spawnZ, spawnRotation); + else + session.routing1.SendPacket(ErrorPacket.BuildPacket(session, 1)); + } + + //Login Zone In + public void DoLogin(Session session) + { + SendMotD(session); + + //Send party, retainer, ls groups + Party pt = mPartyManager.GetParty(session.sessionId); + + pt.SendGroupPackets(session); + SendPartySync(pt); + + mRetainerGroupManager.GetRetainerGroup(session.sessionId).SendGroupPackets(session); + List linkshells = mLinkshellManager.GetPlayerLinkshellMembership(session.sessionId); + foreach (Linkshell ls in linkshells) + ls.SendGroupPackets(session); + + //Reset to blank if in unknown state + ulong activeGroupIndex = 0; + if (!session.activeLinkshellName.Equals("")) + { + Linkshell activeLs = mLinkshellManager.GetLinkshell(session.activeLinkshellName); + if (activeLs != null && activeLs.HasMember(session.sessionId)) + { + activeGroupIndex = activeLs.groupIndex; + } + else + { + session.activeLinkshellName = ""; + Database.SetActiveLS(session, ""); + } + } + SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(session.sessionId, activeGroupIndex); + session.clientConnection.QueuePacket(activeLsPacket); + } + + private void SendMotD(Session session) + { + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "-------- Login Message --------")); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Welcome to {0}!", ConfigConstants.PREF_SERVERNAME))); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "Welcome to Eorzea!")); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "Here is a test Message of the Day from the World Server!")); + } + + public void SendPartySync(Party party) + { + List alreadySent = new List(); + foreach (uint member in party.members) + { + Session session = Server.GetServer().GetSession(member); + if (session == null) + continue; + + if (alreadySent.Contains(session.routing1)) + continue; + + alreadySent.Add(session.routing1); + SubPacket syncPacket = PartySyncPacket.BuildPacket(session, party); + session.routing1.SendPacket(syncPacket); + } + } + + public class ZoneEntrance + { + public uint zoneId; + public string privateAreaName; + public byte spawnType; + public float spawnX; + public float spawnY; + public float spawnZ; + public float spawnRotation; + + public ZoneEntrance(uint zoneId, string privateAreaName, byte spawnType, float x, float y, float z, float rot) + { + this.zoneId = zoneId; + this.privateAreaName = privateAreaName; + this.spawnType = spawnType; + this.spawnX = x; + this.spawnY = y; + this.spawnZ = z; + this.spawnRotation = rot; + } + } + + public void SendGroupData(Session session, ulong groupId) + { + if (mCurrentWorldGroups.ContainsKey(groupId)) + { + Group group = mCurrentWorldGroups[groupId]; + group.SendGroupPackets(session); + } + } + + public void SendGroupDataToAllMembers(ulong groupId) + { + if (mCurrentWorldGroups.ContainsKey(groupId)) + { + Group group = mCurrentWorldGroups[groupId]; + foreach (GroupMember member in group.BuildMemberList(0)) + group.SendGroupPackets(mServer.GetSession(member.actorId)); + } + } + + public void ProcessPartyInvite(Session requestSession, uint invitee) + { + if (mServer.GetSession(invitee) == null) + { + requestSession.SendGameMessage(30544, 0x20); + } + else + { + Session inviteeSession = mServer.GetSession(invitee); + Relation inviteRelation = mRelationGroupManager.CreatePartyRelationGroup(mPartyManager.GetParty(requestSession.sessionId).groupIndex, requestSession.sessionId, invitee); + inviteRelation.SendGroupPacketsAll(requestSession.sessionId, invitee); + inviteeSession.SendGameMessage(30430, 0x20, (object)mServer.GetNameForId(requestSession.sessionId)); //X Invited you + requestSession.SendGameMessage(30433, 0x20, (object)mServer.GetNameForId(inviteeSession.sessionId)); //You invite X + } + } + + public void ProcessPartyInviteResult(Session inviteeSession, uint resultCode) + { + Relation relation = mRelationGroupManager.GetPartyRelationGroup(inviteeSession.sessionId); + Session inviterSession = mServer.GetSession(relation.GetHost()); + + //Accept + if (resultCode == 1) + { + Party oldParty = mPartyManager.GetParty(inviteeSession.sessionId); + if (oldParty.members.Count == 1) + { + mPartyManager.DeleteParty(oldParty.groupIndex); + Party newParty = mPartyManager.GetParty(inviterSession.sessionId); + mPartyManager.AddToParty(newParty.groupIndex, inviteeSession.sessionId); + newParty.SendGroupPacketsAll(newParty.members); + SendPartySync(newParty); + newParty.OnPlayerJoin(inviteeSession); + } + } + else //Refuse + { + inviterSession.SendGameMessage(30573, 0x20, (object)mServer.GetNameForId(inviteeSession.sessionId)); //X rejects your invite + } + + //Delete the relation + mRelationGroupManager.DeleteRelationGroup(relation.groupIndex); + relation.SendDeletePackets(inviterSession.sessionId, inviteeSession.sessionId); + + } + + public void ProcessLinkshellInvite(Session inviterSession, string lsName, uint invitee) + { + + if (mServer.GetSession(invitee) == null) + { + inviterSession.SendGameMessage(30544, 0x20); + } + else if (mRelationGroupManager.GetLinkshellRelationGroup(inviterSession.sessionId) != null) + { + Session inviteeSession = mServer.GetSession(invitee); + inviterSession.SendGameMessage(25196, 0x20, (object)inviteeSession); //Unable to invite X another pending + } + else if (mLinkshellManager.GetLinkshell(lsName).HasMember(invitee)) + { + Session inviteeSession = mServer.GetSession(invitee); + inviterSession.SendGameMessage(25155, 0x20, (object)inviteeSession, 1); //X already belongs to + } + else + { + Session inviteeSession = mServer.GetSession(invitee); + Relation inviteRelation = mRelationGroupManager.CreateLinkshellRelationGroup(mLinkshellManager.GetLinkshell(lsName).groupIndex, inviterSession.sessionId, invitee); + inviteRelation.SendGroupPacketsAll(inviterSession.sessionId, invitee); + inviteeSession.SendGameMessage(25150, 0x20, (object)1, (object)lsName, (object)inviterSession); //X Offers you + inviterSession.SendGameMessage(25151, 0x20, (object)1, null, (object)inviteeSession); //You offer X + } + + } + + public void ProcessLinkshellInviteResult(Session inviteeSession, uint resultCode) + { + Relation relation = mRelationGroupManager.GetLinkshellRelationGroup(inviteeSession.sessionId); + Session inviterSession = mServer.GetSession(relation.GetHost()); + + //Accept + if (resultCode == 1) + { + Linkshell newLS; + if (mCurrentWorldGroups.ContainsKey(relation.groupIndex)) + newLS = (Linkshell) mCurrentWorldGroups[relation.GetTopicGroupIndex()]; + else + { + //Error??? + return; + } + + mLinkshellManager.AddMemberToLinkshell(inviteeSession.sessionId, newLS.name); + newLS.SendGroupPacketsAll(newLS.GetMemberIds()); + newLS.OnPlayerJoin(inviteeSession); + } + else //Refuse + { + inviteeSession.SendGameMessage(25189, 0x20); //You decline the linkpearl offer. + inviterSession.SendGameMessage(25190, 0x20); //Your linkpearl offer is declined. + } + + //Delete the relation + mRelationGroupManager.DeleteRelationGroup(relation.groupIndex); + relation.SendDeletePackets(inviterSession.sessionId, inviteeSession.sessionId); + } + + public void ProcessLinkshellInviteCancel(Session inviterSession) + { + Relation relation = mRelationGroupManager.GetLinkshellRelationGroup(inviterSession.sessionId); + Session inviteeSession = mServer.GetSession(relation.GetOther()); + + inviterSession.SendGameMessage(25191, 0x20); //You cancel the linkpearl offer. + inviteeSession.SendGameMessage(25192, 0x20); //The linkpearl offer has been canceled. + + //Delete the relation + mRelationGroupManager.DeleteRelationGroup(relation.groupIndex); + relation.SendDeletePackets(inviterSession.sessionId, inviteeSession.sessionId); + } + + public void ProcessLinkshellSetActive(Session requestSession, string lsName) + { + //Deactivate all + if (lsName.Equals("")) + { + requestSession.SetActiveLS(lsName); + SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(requestSession.sessionId, 0); + requestSession.clientConnection.QueuePacket(activeLsPacket); + requestSession.SendGameMessage(25132, 0x20, (object)1); + } + else + { + Linkshell ls = mLinkshellManager.GetLinkshell(lsName); + + if (ls == null || !ls.HasMember(requestSession.sessionId)) + { + requestSession.SendGameMessage(25167, 0x20, (object)1, (object)lsName); + } + else + { + requestSession.SetActiveLS(lsName); + SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(requestSession.sessionId, ls.groupIndex); + requestSession.clientConnection.QueuePacket(activeLsPacket); + requestSession.SendGameMessage(25131, 0x20, (object)1, (object)lsName); + } + } + } + + public void IncrementGroupIndex() + { + mRunningGroupIndex++; + } + + public ulong GetGroupIndex() + { + return mRunningGroupIndex | 0x8000000000000000; + } + + public bool SendGroupInit(Session session, ulong groupId) + { + if (mCurrentWorldGroups.ContainsKey(groupId)) + { + mCurrentWorldGroups[groupId].SendInitWorkValues(session); + return true; + } + return false; + } + + public PartyManager GetPartyManager() + { + return mPartyManager; + } + + public RetainerGroupManager GetRetainerManager() + { + return mRetainerGroupManager; + } + + public LinkshellManager GetLinkshellManager() + { + return mLinkshellManager; + } + + } + +} diff --git a/FFXIVClassic World Server/packages.config b/FFXIVClassic World Server/packages.config new file mode 100644 index 00000000..6de55267 --- /dev/null +++ b/FFXIVClassic World Server/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/FFXIVClassic.sln b/FFXIVClassic.sln index 5cb0528a..4a0fe45b 100644 --- a/FFXIVClassic.sln +++ b/FFXIVClassic.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 +VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic Map Server", "FFXIVClassic Map Server\FFXIVClassic Map Server.csproj", "{E8FA2784-D4B9-4711-8CC6-712A4B1CD54F}" ProjectSection(ProjectDependencies) = postProject @@ -15,6 +15,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic Lobby Server", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic Common Class Lib", "FFXIVClassic Common Class Lib\FFXIVClassic Common Class Lib.csproj", "{3A3D6626-C820-4C18-8C81-64811424F20E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFXIVClassic World Server", "FFXIVClassic World Server\FFXIVClassic World Server.csproj", "{3067889D-8A50-40D6-9CD5-23AA8EA96F26}" + ProjectSection(ProjectDependencies) = postProject + {3A3D6626-C820-4C18-8C81-64811424F20E} = {3A3D6626-C820-4C18-8C81-64811424F20E} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher Editor", "Launcher Editor\Launcher Editor.csproj", "{0FFA9D2F-41C6-443C-99B7-665702CF548F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +40,14 @@ Global {3A3D6626-C820-4C18-8C81-64811424F20E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3A3D6626-C820-4C18-8C81-64811424F20E}.Release|Any CPU.ActiveCfg = Release|Any CPU {3A3D6626-C820-4C18-8C81-64811424F20E}.Release|Any CPU.Build.0 = Release|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3067889D-8A50-40D6-9CD5-23AA8EA96F26}.Release|Any CPU.Build.0 = Release|Any CPU + {0FFA9D2F-41C6-443C-99B7-665702CF548F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0FFA9D2F-41C6-443C-99B7-665702CF548F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0FFA9D2F-41C6-443C-99B7-665702CF548F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0FFA9D2F-41C6-443C-99B7-665702CF548F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Launcher Editor/App.config b/Launcher Editor/App.config new file mode 100644 index 00000000..88fa4027 --- /dev/null +++ b/Launcher Editor/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Launcher Editor/Launcher Editor.csproj b/Launcher Editor/Launcher Editor.csproj new file mode 100644 index 00000000..c1a98e86 --- /dev/null +++ b/Launcher Editor/Launcher Editor.csproj @@ -0,0 +1,60 @@ + + + + + Debug + AnyCPU + {0FFA9D2F-41C6-443C-99B7-665702CF548F} + Exe + Properties + Launcher_Editor + Launcher Editor + v4.5.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Launcher Editor/Program.cs b/Launcher Editor/Program.cs new file mode 100644 index 00000000..53794df6 --- /dev/null +++ b/Launcher Editor/Program.cs @@ -0,0 +1,508 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Launcher_Editor +{ + //ffxivboot.exe: + //Offset + //0x9663FC: Patch Server Port + //0x966404: Patch Server URL + + //0x9663FC + 0x400000: Port Offset to search + //0x966404 + 0x400000: URL Offset to search + + class Program + { + const string ORIGINAL_PATCH_PORT_STRING = "54996"; + const string ORIGINAL_PATCH_URL_STRING = "ver01.ffxiv.com"; + const string ORIGINAL_PATCH_LOGIN_STRING = "http://account.square-enix.com/account/content/ffxivlogin"; + + static void Main(string[] args) + { + byte[] exeDataBoot; + byte[] exeDataLogin; + + string patchPortString; + string patchUrlString; + string loginUrlString; + + string lobbyUrlString = "lobby01.ffxiv.com"; + + Console.WriteLine("---------------------"); + Console.WriteLine("FFXIV 1.0 EXE Patcher"); + Console.WriteLine("By Ioncannon"); + Console.WriteLine("Version 1.0"); + Console.WriteLine("---------------------"); + + Console.WriteLine("Please enter the full path to your FINAL FANTASY XIV folder. It should have ffxivgame.exe inside it."); + string path = Console.ReadLine(); + + if (!File.Exists(path + "\\ffxivboot.exe")) + { + Console.WriteLine("Missing ffxivboot.exe, aborting"); + Console.ReadKey(); + return; + } + if (!File.Exists(path + "\\ffxivgame.exe")) + { + Console.WriteLine("Missing ffxivgame.exe, aborting"); + Console.ReadKey(); + return; + } + if (!File.Exists(path + "\\ffxivlogin.exe")) + { + Console.WriteLine("Missing ffxivlogin.exe, aborting"); + Console.ReadKey(); + return; + } + + Console.WriteLine("EXEs found!"); + + Console.WriteLine("Please enter the url to the patch webpage (do not include \"http://\", max 32 characters)."); + patchUrlString = Console.ReadLine(); + Console.WriteLine("Please enter the port to the patch webpage (usually 80)."); + patchPortString = Console.ReadLine(); + + try + { + int.Parse(patchPortString); + } + catch (FormatException e) + { + Console.WriteLine("Not a number, aborting"); + Console.ReadKey(); + return; + } + catch (OverflowException e) + { + Console.WriteLine("Not a number, aborting"); + Console.ReadKey(); + return; + } + + Console.WriteLine("Please enter the url to the login webpage (max 56 characters, please include \"http://\")."); + loginUrlString = Console.ReadLine(); + + if (loginUrlString.Length > 0x56) + { + Console.WriteLine("URL too long, aborting"); + Console.ReadKey(); + return; + } + + long patchPortStringOffset = 0; + long patchUrlStringOffset = 0; + long lobbyUrlStringOffset = 0; + long freeSpaceOffset = 0; + + long loginUrlOffset = 0; + long freeSpaceInLoginOffset = 0; + + Console.WriteLine("Patching started!"); + exeDataBoot = File.ReadAllBytes(path + "\\ffxivboot.exe"); + exeDataLogin = File.ReadAllBytes(path + "\\ffxivlogin.exe"); + + Console.WriteLine("---Editing FFXIVBOOT.EXE---"); + + patchPortStringOffset = PrintSearch(exeDataBoot, ORIGINAL_PATCH_PORT_STRING); + patchUrlStringOffset = PrintSearch(exeDataBoot, ORIGINAL_PATCH_URL_STRING); + freeSpaceOffset = PrintFreeSpaceSearch(exeDataBoot); + + if (patchPortStringOffset == -1 || patchUrlStringOffset == -1 || freeSpaceOffset == -1) + { + Console.WriteLine("There was an error finding the address locations..."); + Console.ReadKey(); + return; + } + + Console.WriteLine("Writing \"{0}\" and updating offset to 0x{1:X}.", patchPortString, freeSpaceOffset); + WriteNewString(exeDataBoot, patchPortStringOffset, patchPortString, freeSpaceOffset); + Console.WriteLine("Writing \"{0}\" and updating offset to 0x{1:X}.", patchUrlString, freeSpaceOffset + 0x20); + WriteNewString(exeDataBoot, patchUrlStringOffset, patchUrlString, freeSpaceOffset + 0x20); + + Console.WriteLine("---Editing FFXIVLOGIN.EXE---"); + loginUrlOffset = PrintEncodedSearch(exeDataLogin, 0x739, ORIGINAL_PATCH_LOGIN_STRING); + freeSpaceInLoginOffset = PrintFreeSpaceSearch(exeDataLogin); + + if (loginUrlOffset == -1 || freeSpaceInLoginOffset == -1) + { + Console.WriteLine("There was an error finding the address locations..."); + Console.ReadKey(); + return; + } + + Console.WriteLine("Writing encoded \"{0}\" and updating offset to 0x{1:X}.", loginUrlString, freeSpaceInLoginOffset); + WriteNewStringEncoded(exeDataLogin, loginUrlOffset, 0x739, loginUrlString, freeSpaceInLoginOffset); + + File.WriteAllBytes("C:\\Users\\Filip\\Desktop\\ffxivboot.exe", exeDataBoot); + File.WriteAllBytes("C:\\Users\\Filip\\Desktop\\ffxivlogin.exe", exeDataLogin); + + Console.WriteLine("Done! New .EXEs created in the same folder as this application. Make sure to backup your originals!"); + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + + } + + public static void WriteNewString(byte[] exeData, long offsetLocation, string newString, long freeSpaceLocation) + { + using (MemoryStream memStream = new MemoryStream(exeData)) + { + using (BinaryWriter binaryWriter = new BinaryWriter(memStream)) + { + binaryWriter.BaseStream.Seek(offsetLocation, SeekOrigin.Begin); + binaryWriter.Write((uint)freeSpaceLocation + 0x400000); + binaryWriter.BaseStream.Seek(freeSpaceLocation, SeekOrigin.Begin); + binaryWriter.Write(Encoding.ASCII.GetBytes(newString), 0, Encoding.ASCII.GetByteCount(newString) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(newString)); + } + } + } + + public static void WriteNewStringEncoded(byte[] exeData, long offsetLocation, uint key, string newString, long freeSpaceLocation) + { + byte[] encodedString = FFXIVLoginStringEncode(key, newString); + using (MemoryStream memStream = new MemoryStream(exeData)) + { + using (BinaryWriter binaryWriter = new BinaryWriter(memStream)) + { + //binaryWriter.BaseStream.Seek(offsetLocation, SeekOrigin.Begin); + //binaryWriter.Write((uint)freeSpaceLocation + 0x400000); + binaryWriter.BaseStream.Seek(offsetLocation, SeekOrigin.Begin); + binaryWriter.Write(encodedString); + } + } + } + + public static long PrintSearch(byte[] exeData, string searchString) + { + Console.Write("Searching for string \"{0}\"...", searchString); + long offset = SearchForStringOffset(exeData, searchString); + + if (offset != -1) + Console.WriteLine(" FOUND @ 0x{0:X}!", offset); + else + { + Console.WriteLine(" ERROR, could not find string."); + } + + return offset; + } + + public static long PrintEncodedSearch(byte[] exeData, uint key, string searchString) + { + Console.Write("Searching for encoded string \"{0}\"...", searchString); + long offset = SearchForEncodedStringOffset(exeData, key, searchString); + + if (offset != -1) + Console.WriteLine(" FOUND @ 0x{0:X}!", offset); + else + { + Console.WriteLine(" ERROR, could not find string."); + } + + return offset; + } + + public static long PrintFreeSpaceSearch(byte[] exeData) + { + Console.Write("Searching for free space..."); + long freeSpaceOffset = SearchForFreeSpace(exeData); + if (freeSpaceOffset != -1) + Console.WriteLine(" FOUND @ 0x{0:X}!", freeSpaceOffset); + else + { + Console.WriteLine(" ERROR, could not find free space."); + } + + return freeSpaceOffset; + } + + public static bool EditOffset(long offset, uint value) + { + return true; + } + + public static long SearchForFreeSpace(byte[] exeData) + { + using (MemoryStream memStream = new MemoryStream(exeData)) + { + using (BinaryReader binReader = new BinaryReader(memStream)) + { + //Find the .data section header + long textSectionOffset = -1; + int strCheckoffset = 0; + while (binReader.BaseStream.Position + 4 < binReader.BaseStream.Length) + { + if (binReader.ReadByte() == ".text"[strCheckoffset]) + { + if (strCheckoffset == 0) + textSectionOffset = binReader.BaseStream.Position - 1; + + strCheckoffset++; + if (strCheckoffset == Encoding.ASCII.GetByteCount(".data")) + break; + } + else + { + strCheckoffset = 0; + textSectionOffset = -1; + } + } + + //Read in the position and size + binReader.BaseStream.Seek(textSectionOffset, SeekOrigin.Begin); + binReader.ReadUInt64(); + uint virtualSize = binReader.ReadUInt32(); + uint address = binReader.ReadUInt32(); + uint sizeOfRawData = binReader.ReadUInt32(); + + if (sizeOfRawData - virtualSize < 0x50) + return -1; + + //Find a spot + binReader.BaseStream.Seek(address + sizeOfRawData, SeekOrigin.Begin); + while (binReader.BaseStream.Position >= address + virtualSize) + { + binReader.BaseStream.Seek(-0x50, SeekOrigin.Current); + long newPosition = binReader.BaseStream.Position; + + bool foundNotZero = false; + for (int i = 0; i < 0x50; i++) + { + if (binReader.ReadByte() != 0) + { + foundNotZero = true; + break; + } + } + + if (!foundNotZero) + return newPosition; + else + binReader.BaseStream.Seek(newPosition, SeekOrigin.Begin); + } + } + } + + return -1; + } + + public static long SearchForStringOffset(byte[] exeData, string testString) + { + testString += "\0"; + + using (MemoryStream memStream = new MemoryStream(exeData)) + { + using (BinaryReader binReader = new BinaryReader(memStream)) + { + long strOffset = -1; + int strCheckoffset = 0; + while (binReader.BaseStream.Position + 4 < binReader.BaseStream.Length) + { + if (binReader.ReadByte() == testString[strCheckoffset]) + { + if (strCheckoffset == 0) + strOffset = binReader.BaseStream.Position-1; + + strCheckoffset++; + if (strCheckoffset == Encoding.ASCII.GetByteCount(testString)) + break; + } + else + { + strCheckoffset = 0; + strOffset = -1; + } + } + + if (strOffset != -1) + { + strOffset += 0x400000; + + binReader.BaseStream.Seek(0, SeekOrigin.Begin); + + while (binReader.BaseStream.Position + 4 < binReader.BaseStream.Length) + { + if (binReader.ReadUInt32() == strOffset) + return binReader.BaseStream.Position - 0x4; + } + + return -1; + } + else + return -1; + } + } + } + + public static long SearchForEncodedStringOffset(byte[] exeData, uint testKey, string testString) + { + byte[] encoded = FFXIVLoginStringEncode(testKey, testString); + + using (MemoryStream memStream = new MemoryStream(exeData)) + { + using (BinaryReader binReader = new BinaryReader(memStream)) + { + long strOffset = -1; + int strCheckoffset = 0; + while (binReader.BaseStream.Position + 4 < binReader.BaseStream.Length) + { + if (binReader.ReadByte() == encoded[strCheckoffset]) + { + if (strCheckoffset == 0) + strOffset = binReader.BaseStream.Position - 1; + + strCheckoffset++; + if (strCheckoffset == encoded.Length) + break; + } + else + { + strCheckoffset = 0; + strOffset = -1; + } + } + + return strOffset; + } + } + } + + public static string FFXIVLoginStringDecodeBinary(string path) + { + Console.OutputEncoding = System.Text.Encoding.UTF8; + byte[] data = File.ReadAllBytes(path); + //int offset = 0x5405a; + //int offset = 0x5425d; + int offset = 0x53ea0; + while (true) + { + string result = ""; + uint key = (uint)data[offset + 0] << 8 | data[offset + 1]; + uint key2 = data[offset + 2]; + key = RotateRight(key, 1) & 0xFFFF; + key -= 0x22AF; + key &= 0xFFFF; + key2 = key2 ^ key; + key = RotateRight(key, 1) & 0xFFFF; + key -= 0x22AF; + key &= 0xFFFF; + uint finalKey = key; + key = data[offset + 3]; + uint count = (key2 & 0xFF) << 8; + key = key ^ finalKey; + key &= 0xFF; + count |= key; + + int count2 = 0; + while (count != 0) + { + uint encrypted = data[offset + 4 + count2]; + finalKey = RotateRight(finalKey, 1) & 0xFFFF; + finalKey -= 0x22AF; + finalKey &= 0xFFFF; + encrypted = encrypted ^ (finalKey & 0xFF); + + result += (char)encrypted; + count--; + count2++; + } + + return result; + //offset += 4 + count2; + } + } + + public static string FFXIVLoginStringDecode(byte[] data) + { + Console.OutputEncoding = System.Text.Encoding.UTF8; + while (true) + { + string result = ""; + uint key = (uint)data[0] << 8 | data[1]; + uint key2 = data[2]; + key = RotateRight(key, 1) & 0xFFFF; + key -= 0x22AF; + key &= 0xFFFF; + key2 = key2 ^ key; + key = RotateRight(key, 1) & 0xFFFF; + key -= 0x22AF; + key &= 0xFFFF; + uint finalKey = key; + key = data[3]; + uint count = (key2 & 0xFF) << 8; + key = key ^ finalKey; + key &= 0xFF; + count |= key; + + int count2 = 0; + while (count != 0) + { + uint encrypted = data[4 + count2]; + finalKey = RotateRight(finalKey, 1) & 0xFFFF; + finalKey -= 0x22AF; + finalKey &= 0xFFFF; + encrypted = encrypted ^ (finalKey & 0xFF); + + result += (char)encrypted; + count--; + count2++; + } + + return result; + //offset += 4 + count2; + } + } + + public static byte[] FFXIVLoginStringEncode(uint key, string text) + { + key = key & 0xFFFF; + + uint count = 0; + byte[] asciiBytes = Encoding.ASCII.GetBytes(text); + byte[] result = new byte[4 + text.Length]; + for (count = 0; count < text.Length; count++) + { + result[result.Length - count - 1] = (byte)(asciiBytes[asciiBytes.Length - count - 1] ^ (key & 0xFF)); + key += 0x22AF; + key &= 0xFFFF; + key = RotateLeft(key, 1); + key &= 0xFFFF; + } + + count = count ^ key; + result[3] = (byte)(count & 0xFF); + + key += 0x22AF; + key &= 0xFFFF; + key = RotateLeft(key, 1); + key &= 0xFFFF; + + result[2] = (byte)(key & 0xFF); + + key += 0x22AF; + key &= 0xFFFF; + key = RotateLeft(key, 1); + key &= 0xFFFF; + + result[1] = (byte)(key & 0xFF); + result[0] = (byte)((key >> 8) & 0xFF); + + return result; + } + + public static uint RotateLeft(uint value, int bits) + { + return (value << bits) | (value >> (16 - bits)); + } + + public static uint RotateRight(uint value, int bits) + { + return (value >> bits) | (value << (16 - bits)); + } + + } +} diff --git a/Launcher Editor/Properties/AssemblyInfo.cs b/Launcher Editor/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bed36e48 --- /dev/null +++ b/Launcher Editor/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Launcher Editor")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Launcher Editor")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0ffa9d2f-41c6-443c-99b7-665702cf548f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/data/lobby_config.ini b/data/lobby_config.ini index 2251736f..2a7166de 100644 --- a/data/lobby_config.ini +++ b/data/lobby_config.ini @@ -1,5 +1,5 @@ [General] -server_ip=127.0.0.1 +server_ip=0.0.0.0 showtimestamp = true [Database] diff --git a/data/scripts/aetheryte.lua b/data/scripts/aetheryte.lua new file mode 100644 index 00000000..ea61626a --- /dev/null +++ b/data/scripts/aetheryte.lua @@ -0,0 +1,205 @@ +--[[ + +Aetheryte related info + +--]] + +aetheryteParentLinks = { + --La Noscea + [1280001] = nil, + [1280002] = {1280007, 1280008, 1280009, 0, 0}, + [1280003] = {1280010, 0, 0, 0, 0}, + [1280004] = {1280011, 1280018, 0, 0, 0}, + [1280005] = {1280020, 1280012, 1280013, 1280014, 0}, + [1280006] = {1280015, 1280016, 1280017, 0, 0}, + --Thanalan + [1280031] = nil, + [1280032] = {1280037, 1280038, 1280052, 0, 0}, + [1280033] = {1280039, 1280040, 1280041, 0, 0}, + [1280034] = {1280042, 1280043, 1280044, 1280054, 0}, + [1280035] = {1280045, 1280046, 1280047, 0, 0}, + [1280036] = {1280048, 1280049, 1280050, 0, 0}, + --Black Shroud + [1280061] = nil, + [1280062] = {1280067, 1280068, 1280069, 1280083, 0}, + [1280063] = {1280070, 1280071, 1280072, 0, 0}, + [1280064] = {1280073, 1280074, 1280075, 1280082, 0}, + [1280065] = {1280076, 1280077, 1280078, 0, 0}, + [1280066] = {1280079, 1280080, 1280081, 0, 0}, + --Coerthas + [1280092] = {1280097, 1280098, 1280099, 0, 0}, + [1280093] = {1280100, 1280101, 1280102, 0, 0}, + [1280094] = {1280103, 1280104, 0, 0, 0}, + [1280095] = {1280105, 1280106, 1280107, 0, 0}, + [1280096] = {1280108, 1280109, 1280110, 0, 0}, + --Mor Dhona + [1280121] = {1280124, 1280125, 0, 0, 0}, + [1280122] = {1280123, 0, 0, 0, 0} +} + +aetheryteChildLinks = { + --La Noscea + [1280007] = 1280002, + [1280008] = 1280002, + [1280009] = 1280002, + [1280010] = 1280003, + [1280011] = 1280004, + [1280012] = 1280005, + [1280013] = 1280005, + [1280014] = 1280005, + [1280015] = 1280006, + [1280016] = 1280006, + [1280017] = 1280006, + [1280018] = 1280004, + [1280020] = 1280005, + --Thanalan + [1280037] = 1280032, + [1280038] = 1280032, + [1280039] = 1280033, + [1280040] = 1280033, + [1280041] = 1280033, + [1280042] = 1280034, + [1280043] = 1280034, + [1280044] = 1280034, + [1280045] = 1280035, + [1280046] = 1280035, + [1280047] = 1280035, + [1280048] = 1280036, + [1280049] = 1280036, + [1280050] = 1280036, + [1280052] = 1280032, + [1280054] = 1280034, + --Black Shroud + [1280067] = 1280062, + [1280068] = 1280062, + [1280069] = 1280062, + [1280070] = 1280063, + [1280071] = 1280063, + [1280072] = 1280063, + [1280073] = 1280064, + [1280074] = 1280064, + [1280075] = 1280064, + [1280076] = 1280065, + [1280077] = 1280065, + [1280078] = 1280065, + [1280079] = 1280066, + [1280080] = 1280066, + [1280081] = 1280066, + [1280082] = 1280064, + [1280083] = 1280062, + --Coerthas + [1280097] = 1280092, + [1280098] = 1280092, + [1280099] = 1280092, + [1280100] = 1280093, + [1280101] = 1280093, + [1280102] = 1280093, + [1280103] = 1280094, + [1280104] = 1280094, + [1280105] = 1280095, + [1280106] = 1280095, + [1280107] = 1280095, + [1280108] = 1280096, + [1280109] = 1280096, + [1280110] = 1280096, + --Mor Dhona + [1280123] = 1280122, + [1280124] = 1280121, + [1280125] = 1280121 +} + +aetheryteTeleportPositions = { + --La Noscea + [1280001] = {230, -407, 42.5, 337}, -- CAP + [1280002] = {128, 29.97, 45.83, -35.47}, -- CAP + [1280003] = {129, -991.88, 61.71, -1120.79}, -- CAP + [1280004] = {129, -1883.47, 53.77, -1372.68}, -- CAP + [1280005] = {130, 1123.29, 45.7, -928.69}, -- CAP + [1280006] = {135, -278.181, 77.63, -2260.79}, -- CAP + [1280007] = {128, 582.47, 54.52, -1.2}, + [1280008] = {128, 962.836, 46.507, 832.206}, -- Widow Cliffs http://ic.pics.livejournal.com/eijih/14054410/1355/1355_original.jpg + [1280009] = {128, 318, 24.5, 581}, -- Moraby Bay http://ic.pics.livejournal.com/eijih/14054410/1092/1092_original.jpg + [1280010] = {129, -636, 48.8, -1287}, -- Woad Whisper Canyon + [1280011] = {129, -2016.72, 60.055, -766.962}, -- Isles of Umbra http://ic.pics.livejournal.com/eijih/14054410/2243/2243_original.jpg + [1280012] = {130, 1628, 60.3, -449}, -- Tiger Helm Island http://ic.pics.livejournal.com/eijih/14054410/2032/2032_original.jpg + [1280013] = {130, 1522, 1.7, -669},-- Bloodshore http://ic.pics.livejournal.com/eijih/14054410/1607/1607_original.jpg + [1280014] = {130, 1410, 53.3, -1650}, -- Agelyss Wise + [1280015] = {135, -123.315, 60.061, -1438.8}, -- Zelma's Run https://youtu.be/97Ju0Xv-aaQ?t=102 + [1280016] = {135, -320.322, 52.835, -1823.68}, -- Bronze Lake http://ic.pics.livejournal.com/eijih/14054410/2503/2503_original.jpg + [1280017] = {135, -894, 41.2, -2188}, -- Oakwood + [1280018] = {131, -1694.5, -19.9, -1534.}, -- Mistbeard Cove + [1280020] = {132, 1343.5, -54.38, -870.84}, -- CAP + --Thanalan + [1280031] = {175, -235, 185, -3.9}, -- CAP + [1280032] = {170, 33, 200.1, -482}, -- Camp Black Brush + [1280033] = {171, 1250.9, 264, -544.2}, -- CAP + [1280034] = {172, -1313.91, 56.023, -145.597}, -- Camp Horizon https://www.youtube.com/watch?v=mQAK4QVnx3c + [1280035] = {173, -165.816, 280.002, -1698.45}, -- Camp Bluefog + [1280036] = {174, 1687.64, 296.002, 992.283}, -- Camp Brokenwater https://www.youtube.com/watch?v=YyBYHg9h2AM + [1280037] = {170, 639, 183.9, 122}, -- Cactus Basin + [1280038] = {170, 539, 215.8, -14}, -- Four Sisters + [1280039] = {171, 1599, 256.7, -233}, -- Halatali + [1280040] = {171, 2010, 280.3, -768}, -- Burning Wall + [1280041] = {171, 2015, 247.8, 64}, -- Sandgate + [1280042] = {172, -864.991, 88.84, 375.18}, -- Nophica's Wells https://www.youtube.com/watch?v=pk4POCDQ9QE + [1280043] = {172, -1653, 24.5, -469}, -- Footfalls + [1280044] = {172, -1220.38, 69.854, 194.365}, -- Scorpion Keep + [1280045] = {173, -635, 280, -1797}, -- Hidden Gorge + [1280046] = {173, 447, 259.1, -2158}, -- Sea of Spires + [1280047] = {173, -710, 280.4, -2212}, -- Cutters Pass + [1280048] = {174, 1797, 248, 1856}, -- Red Labyrinth + [1280049] = {174, 1185, 279.8, 1407}, -- Burnt Lizard Creek + [1280050] = {174, 2416, 248.3, 1535}, -- Zanr'ak + [1280052] = {176, 80.056, 167.929, -1267.94}, -- Nanawa Mines https://www.youtube.com/watch?v=9H-NveJx9EI + [1280054] = {178, -620.374, 110.429, -113.903}, -- Copperbell Mines + -- Black Shroud + [1280061] = {206, -120, 16, -1332}, -- CAP + [1280062] = {150, 288, 4, -543.928}, -- CAP + [1280063] = {151, 1702, 20, -862}, -- CAP + [1280064] = {152, -1052, 20, -1760}, -- CAP + [1280065] = {153, -1566.035, -11.89, -550.51}, -- CAP + [1280066] = {154, 734, -12, 1126}, -- CAP + [1280067] = {150, -94.07, 4, -543.16}, -- Humblehearth + [1280068] = {150, -285, -21.8, -46}, -- Sorrel Haven + [1280069] = {150, 636, 16.2, -324}, -- Five Hangs + [1280070] = {151, 1529.83, 26.991, -1140.15}, -- Verdant Drop + [1280071] = {151, 1296, 47.2, -1534}, -- Lynxpelt Patch + [1280072] = {151, 2297.02, 31.546, -697.828}, -- Larkscall http://www.gwcdn.com/albums/images/4f7ce3a389118b43470005b1.jpg + [1280073] = {152, -883.769, 34.688, -2187.45}, -- Treespeak + [1280074] = {152, -1567, 16.1, -2593}, -- Aldersprings + [1280075] = {152, -800.277, 32, -2785.4}, -- Lasthold + [1280076] = {153, -1908, 0.3, -1042}, -- Lichenweed + [1280077] = {153, -2158, -46.1, -166}, -- Murmur Rills + [1280078] = {153, -1333, -14.2, 324}, -- Turning Leaf + [1280079] = {154, 991, -11.8, 600}, -- Silent Arbor + [1280080] = {154, 1126, -0.1, 1440}, -- Longroot + [1280081] = {154, 189, 0.1, 1337}, -- Snakemolt + [1280082] = {157, -687.916, -15.308, -2063.94}, -- Mun-Tuy Cellars https://www.youtube.com/watch?v=ty6f9Gy0uws + [1280083] = {158, 314.801, -36.2, -167.843}, -- Tam-Tara Deepcroft https://www.youtube.com/watch?v=eLJPTUG-dE0 + -- Coerthas + [1280092] = {143, 216, 302.1, -258}, -- Camp Dragonhead + [1280093] = {144, 1122.21, 270.004, -1149.29}, -- Camp Crooked Fork https://www.youtube.com/watch?v=Q7-0r6ELCAU + [1280094] = {145, 1500.78, 206.036, 767.546}, -- Camp Glory + [1280095] = {147, -159.828, 222.037, 1154.81}, -- Camp Ever Lakes https://youtu.be/3wKNidix0Ls?t=274 + [1280096] = {148, -1760.36, 270.059, -194.713}, -- Camp Riversmeet https://www.youtube.com/watch?v=gt7Tc9gbTpk + [1280097] = {143, -517, 207.9, 543}, -- Boulder Downs + [1280098] = {143, 190, 367.4, -662}, -- Prominence Point + [1280099] = {143, 960, 287.4, -22}, -- Feathergorge + [1280100] = {144, 1737, 176.5, -1250}, -- Maiden Glen + [1280101] = {144, 1390, 222.6, -736}, -- Hushed Boughs + [1280102] = {144, 1788, 164.8, -829}, -- Scarwing Fall + [1280103] = {145, 1383, 231.8, 422}, -- Weeping Vale + [1280104] = {145, 2160, 142.7, 622}, -- Clearwater + [1280105] = {147, -1, 144.1, 1373}, -- Teriggans Stand + [1280106] = {147, -64, 185.1, 1924}, -- Shepherd Peak + [1280107] = {147, -908, 191.7, 2162}, -- Fellwood + [1280108] = {148, -1734.82, 285.069, -839.63}, -- Wyrmkings Perch + [1280109] = {148, -2366.07, 336.041, -1054.75}, -- The Lance + [1280110] = {148, -2821, 256.1, -290}, -- Twinpools + -- Mor Dhona + [1280121] = {190, 487.445, 18.531, 672.244}, -- Camp Brittlebark https://youtu.be/mkbYeaUqcr4 - I can barely make the ground out + [1280122] = {190, -215.76, 18.54, -668.703}, -- Camp Revenant's Toll + [1280123] = {190, -458, -40.9, -318}, -- Fogfens + [1280124] = {190, 580, 58.2, 206}, -- Singing Shards + [1280125] = {190, -365.724, -18.591, -25.448} -- Jagged Crest Cave +} diff --git a/data/scripts/base/chara/npc/mapobj/MapObjStandard.lua b/data/scripts/base/chara/npc/mapobj/MapObjStandard.lua new file mode 100644 index 00000000..2c23fdd3 --- /dev/null +++ b/data/scripts/base/chara/npc/mapobj/MapObjStandard.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 303, 10405; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Fighter/FighterAllyOpeningAttacker.lua b/data/scripts/base/chara/npc/monster/Fighter/FighterAllyOpeningAttacker.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Fighter/FighterAllyOpeningAttacker.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Fighter/FighterAllyOpeningHealer.lua b/data/scripts/base/chara/npc/monster/Fighter/FighterAllyOpeningHealer.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Fighter/FighterAllyOpeningHealer.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Goobbue/GoobbueLesserStandard.lua b/data/scripts/base/chara/npc/monster/Goobbue/GoobbueLesserStandard.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Goobbue/GoobbueLesserStandard.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Ifrit/IfritDummy.lua b/data/scripts/base/chara/npc/monster/Ifrit/IfritDummy.lua new file mode 100644 index 00000000..842399fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Ifrit/IfritDummy.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, true, true, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Ifrit/IfritHotAir.lua b/data/scripts/base/chara/npc/monster/Ifrit/IfritHotAir.lua new file mode 100644 index 00000000..3dd2b2e3 --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Ifrit/IfritHotAir.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 3, 1, true, false, false, false, false, true, true, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Ifrit/IfritNormal.lua b/data/scripts/base/chara/npc/monster/Ifrit/IfritNormal.lua new file mode 100644 index 00000000..e47f021a --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Ifrit/IfritNormal.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 3, 1, false, false, false, false, false, true, true, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Jellyfish/JellyfishScenarioLimsaLv00.lua b/data/scripts/base/chara/npc/monster/Jellyfish/JellyfishScenarioLimsaLv00.lua index 525bb8fc..337dc187 100644 --- a/data/scripts/base/chara/npc/monster/Jellyfish/JellyfishScenarioLimsaLv00.lua +++ b/data/scripts/base/chara/npc/monster/Jellyfish/JellyfishScenarioLimsaLv00.lua @@ -1,5 +1,5 @@ require ("global") function init(npc) - return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; + return true, true, 10, 0, 1, false, false, false, false, false, false, false, false, 0; end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Lemming/LemmingStandard.lua b/data/scripts/base/chara/npc/monster/Lemming/LemmingStandard.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Lemming/LemmingStandard.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Mole/MoleMoleStandard.lua b/data/scripts/base/chara/npc/monster/Mole/MoleMoleStandard.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Mole/MoleMoleStandard.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua b/data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua b/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua new file mode 100644 index 00000000..5c0ef971 --- /dev/null +++ b/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua @@ -0,0 +1,43 @@ +--[[ + +GuildleveWarpPoint Script + +Functions: + +eventGuildleveReward(glId, completionTimeSec, completeReward, difficultyBonus, faction, gil???, factionBonus, RewardId1, RewardAmount1, RewardId2, RewardAmount2, difficulty) - Open Reward Dialog +eventTalkGuildleveWarp(returnAetheryteID1, returnAetheryte2) - Opens choice menu +--]] + +require ("global") +require ("aetheryte") +require ("utils") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + local currentGLDirector = player:GetGuildleveDirector(); + local glData = currentGLDirector.guildleveData; + + callClientFunction(player, "eventGuildleveReward", currentGLDirector.guildleveId, currentGLDirector.completionTime, 24, 24, 0, 0, 0, 0, 0, 0, 0, currentGLDirector.selectedDifficulty); + + local choice = callClientFunction(player, "eventTalkGuildleveWarp", glData.aetheryte, 0); + + if (choice == 3) then + local destination = aetheryteTeleportPositions[glData.aetheryte]; + if (destination ~= nil) then + randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); + rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); + GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); + currentGLDirector:EndDirector(); + end + elseif (choice == 4) then + currentGLDirector:EndDirector(); + end + + player:EndEvent(); +end + +--50023: GL COMPLETE! +--50132: You earn faction credits from X \ No newline at end of file diff --git a/data/scripts/base/chara/npc/object/MarketEntrance.lua b/data/scripts/base/chara/npc/object/MarketEntrance.lua index aa697270..fb4deadc 100644 --- a/data/scripts/base/chara/npc/object/MarketEntrance.lua +++ b/data/scripts/base/chara/npc/object/MarketEntrance.lua @@ -12,7 +12,7 @@ eventPushStepPrvMarket(?, ?, ?) - require ("global") function init(npc) - return false, false, 0, 0; + return false, false, 0, 0; end function onEventStarted(player, npc, triggerName) diff --git a/data/scripts/base/chara/npc/object/ObjectItemStorage.lua b/data/scripts/base/chara/npc/object/ObjectItemStorage.lua index f84d0399..a511db6c 100644 --- a/data/scripts/base/chara/npc/object/ObjectItemStorage.lua +++ b/data/scripts/base/chara/npc/object/ObjectItemStorage.lua @@ -28,7 +28,11 @@ function onEventStarted(player, npc, triggerName) goto TOP_MENU; end - callClientFunction(player, "selectStoreItem", nil, categoryChoice); + itemId = callClientFunction(player, "selectStoreItem", nil, categoryChoice); + + if (itemId ~= nil) then + player:GetInventory(INVENTORY_NORMAL):RemoveItem(itemId, 1); + end elseif (storageChoice == 2) then categoryChoice = callClientFunction(player, "selectCategory"); @@ -37,7 +41,11 @@ function onEventStarted(player, npc, triggerName) goto TOP_MENU; end - callClientFunction(player, "selectReceiveItem", nil, categoryChoice); + itemId = callClientFunction(player, "selectReceiveItem", nil, categoryChoice); + + if (itemId ~= nil) then + player:GetInventory(INVENTORY_NORMAL):AddItem(itemId, 1); + end end diff --git a/data/scripts/base/chara/npc/object/PrivateAreaPastExit.lua b/data/scripts/base/chara/npc/object/PrivateAreaPastExit.lua new file mode 100644 index 00000000..d7140e37 --- /dev/null +++ b/data/scripts/base/chara/npc/object/PrivateAreaPastExit.lua @@ -0,0 +1,12 @@ +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + if (triggerName == "caution") then + worldMaster = GetWorldMaster(); + player:SendGameMessage(player, worldMaster, 34109, 0x20); + elseif (triggerName == "exit") then + end + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/object/RaidDungeonBarrier.lua b/data/scripts/base/chara/npc/object/RaidDungeonBarrier.lua new file mode 100644 index 00000000..2f884d15 --- /dev/null +++ b/data/scripts/base/chara/npc/object/RaidDungeonBarrier.lua @@ -0,0 +1,19 @@ +require ("global") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + + isActive = true; + + if (isActive) then + choice = callClientFunction(player, "askYesNo"); + else + callClientFunction(player, "eventTalkRead"); + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua new file mode 100644 index 00000000..ff1548ec --- /dev/null +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua @@ -0,0 +1,119 @@ +--[[ + +AetheryteChild Script + +Functions: + +eventAetheryteChildSelect(showTeleport, parentAetheryteID, animaAmount, animaCost(always 1)): Opens menu +eventAetheryteChildDesion(aetheryteId): "Your homepoint is now X" + +eventGLSelect(?) - Open GL selector +eventGLSelectDetail(glid, ?, reward, rewardQuantity, subreward, subrewardQuantity, faction, ?, completed) - Show GL details +eventGLDifficulty() - Open difficulty selector +eventGLStart(glId, difficulty, evaluatingFaction, areaFactionStanding, factionReward, warningBoundByDuty, warningTooFar, warningYouCannotRecieve, warningChangingClass) - Confirmation dialog + +eventGLBoost(currentFavor, minNeeded) - Ask player for Guardian Aspect +eventGLPlay(??) - Open Menu (GL active version) +eventGLReward (glId, clearTime, missionBonus, difficultyBonus, factionNumber, factionBonus, factionCredit, reward, rewardQuantity, subreward, subrewardQuantity, difficulty) - Open reward window +eventGLJoin () - Ask to join party leader's leve + +--]] + +require ("global") +require ("aetheryte") +require ("utils") +require ("guildleve") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, aetheryte, triggerName) + + if (player:GetGuildleveDirector() ~= nil) then + doGuildleveMenu(player, aetheryte); + else + doNormalMenu(player, aetheryte); + end + + player:EndEvent(); +end + +function doGuildleveMenu(player, aetheryte) + + local currentGLDirector = player:GetGuildleveDirector(); + local choice = callClientFunction(player, "eventGLPlay", currentGLDirector.guildleveId, true, 1, 500, 400, guardian, 8, currentGLDirector.selectedDifficulty, 2); + + --Abandon + if (choice == 6) then + currentGLDirector:AbandonGuildleve(); + end + +end + +function doNormalMenu(player, aetheryte) + + local aetheryteId = aetheryte:GetActorClassId(); + local parentNode = aetheryteChildLinks[aetheryteId]; + local menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, parentNode, 100, 1); + + --Teleport + if (menuChoice == 2) then + printf("%ud", parentNode); + destination = aetheryteTeleportPositions[parentNode]; + + if (destination ~= nil) then + randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); + rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); + GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); + end + --Init Levequest + elseif (menuChoice == -1) then + doLevequestInit(player, aetheryte); + --Set Homepoint + elseif (menuChoice == -2) then + player:SetHomePoint(aetheryteId); + callClientFunction(player, "eventAetheryteChildDesion", aetheryteId); + --View Faction Standing + elseif (menuChoice == -3) then + player:SendGameMessage(player, aetheryte, 27, 0x20); + player:SendGameMessage(player, aetheryte, 28, 0x20, 1, 15); + player:SendGameMessage(player, aetheryte, 29, 0x20, 2, 10); + player:SendGameMessage(player, aetheryte, 30, 0x20, 3, 5); + end +end + +function doLevequestInit(player, aetheryte) + local worldMaster = GetWorldMaster(); + ::SELECT_LOOP:: + unknown, glId = callClientFunction(player, "eventGLSelect", 0x0); + if (glId ~= 0) then + ::SELECT_DETAIL:: + guildleveData = GetGuildleveGamedata(glId); + + if (guildleveData == nil) then + player:SendMessage(0x20, "", "An error has occured... aborting."); + return; + end + + unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); + if (begin) then + ::SELECT_DIFFICULTY:: + player:SendGameMessage(worldMaster, 50014, 0x20); --"Please select a difficulty level. This may be lowered later." + difficulty = callClientFunction(player, "eventGLDifficulty", glId); + if (difficulty == nil) then goto SELECT_DETAIL; end + confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0); + if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + + player:SendGameMessage(worldMaster, 50036, 0x20, glId, player); + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true)); + director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player); + player:AddDirector(director); + director:StartDirector(true, glId) + + end + else + goto SELECT_LOOP; + end + end +end diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index 8d9b4c07..63fee49d 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -4,21 +4,151 @@ AetheryteParent Script Functions: -eventAetheryteParentSelect(0x0, false, 0x60, 0x138807,0,0,0,0) -eventAetheryteParentDesion(sheetId) -processGuildleveBoost(?, ?) -processGuildlevePlaying(??) -processGuildleveJoin() - Join party leader's levequest? +eventAetheryteParentSelect(showTeleportMenu, animaAmount, gate1, gate2, gate3, gate4, gate5) - Open Menu +eventAetheryteParentDesion(sheetId) - Show Homepoint Set Message + +eventGLSelect(?) - Open GL selector +eventGLSelectDetail(glid, ?, reward, rewardQuantity, subreward, subrewardQuantity, faction, ?, completed) - Show GL details +eventGLDifficulty() - Open difficulty selector +eventGLStart(glId, difficulty, evaluatingFaction, areaFactionStanding, factionReward, warningBoundByDuty, warningTooFar, warningYouCannotRecieve, warningChangingClass) - Confirmation dialog +eventGLBoost(currentFavor, minNeeded) - Ask player for Guardian Aspect +eventGLPlay(glId, showLeveLink, leveLinkFaction, leveLinkFactionStanding, leveLinkReward, guardianFavorAmount, guardianFavorNeeded, currentDifficulty, jobNameForChange) - Open Menu (GL active version) +eventGLReward (glId, clearTime, missionBonus, difficultyBonus, factionNumber, factionBonus, factionCredit, reward, rewardQuantity, subreward, subrewardQuantity, difficulty) - Open reward window +eventGLJoin () - Ask to join party leader's leve + + + --callClientFunction(player, "eventGLBoost", 0xc8, 0xb); + --callClientFunction(player, "eventGLReward", 0x2a48, 120, 123, 125, 1, 111, 0, 0xf4241, 5, 0, 0, 3); --]] require ("global") +require ("aetheryte") +require ("utils") +require ("guildleve") function init(npc) return false, false, 0, 0; end -function onEventStarted(player, npc, triggerName) - callClientFunction(player, "eventAetheryteParentSelect", 0x0, false, 0x61, 0x0,0,0,0,0); +function onEventStarted(player, aetheryte, triggerName) + + if (player:GetGuildleveDirector() ~= nil) then + doGuildleveMenu(player, aetheryte); + else + doNormalMenu(player, aetheryte); + end + player:EndEvent(); -end \ No newline at end of file + +end + +function doGuildleveMenu(player, aetheryte) + + local currentGLDirector = player:GetGuildleveDirector(); + local choice = callClientFunction(player, "eventGLPlay", currentGLDirector.guildleveId, true, 1, 500, 400, guardian, 8, currentGLDirector.selectedDifficulty, 2); + + --Abandon + if (choice == 6) then + currentGLDirector:AbandonGuildleve(); + end + +end + +function doNormalMenu(player, aetheryte) + local aetheryteId = aetheryte:GetActorClassId(); + local childNodes = aetheryteParentLinks[aetheryteId]; + + local listPosition = 1; + local activeChildNodes = {0, 0, 0, 0, 0}; + + if (childNodes ~= nil) then + if (player:HasAetheryteNodeUnlocked(childNodes[1])) then + activeChildNodes[listPosition] = childNodes[1]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[2])) then + activeChildNodes[listPosition] = childNodes[2]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[3])) then + activeChildNodes[listPosition] = childNodes[3]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[4])) then + activeChildNodes[listPosition] = childNodes[4]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[5])) then + activeChildNodes[listPosition] = childNodes[5]; + listPosition = listPosition+1; + end + end + + local showTeleportOptions = true; + if (listPosition == 1) then + showTeleportOptions = false; + end + + local choice = callClientFunction(player, "eventAetheryteParentSelect", showTeleportOptions, 100, activeChildNodes[1], activeChildNodes[2], activeChildNodes[3], activeChildNodes[4], activeChildNodes[5]); + + if (choice ~= nil) then + --Init Leavequest + if (choice == -1) then + doLevequestInit(player, aetheryte); + --Set Homepoint + elseif (choice == -2) then + player:SetHomePoint(aetheryteId); + callClientFunction(player, "eventAetheryteParentDesion", aetheryteId); + --View Faction Standings + elseif (choice == -3) then + player:SendGameMessage(player, aetheryte, 124, 0x20); + player:SendGameMessage(player, aetheryte, 125, 0x20, 1, 15); + player:SendGameMessage(player, aetheryte, 126, 0x20, 2, 10); + player:SendGameMessage(player, aetheryte, 127, 0x20, 3, 5); + --Teleport to Gate + elseif (choice > 0) then + destination = aetheryteTeleportPositions[activeChildNodes[choice]]; + if (destination ~= nil) then + randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); + rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); + GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); + end + end + end +end + +function doLevequestInit(player, aetheryte) + local worldMaster = GetWorldMaster(); + ::SELECT_LOOP:: + unknown, glId = callClientFunction(player, "eventGLSelect", 0x0); + if (glId ~= 0) then + ::SELECT_DETAIL:: + guildleveData = GetGuildleveGamedata(glId); + + if (guildleveData == nil) then + player:SendMessage(0x20, "", "An error has occured... aborting."); + return; + end + + unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); + if (begin) then + ::SELECT_DIFFICULTY:: + player:SendGameMessage(worldMaster, 50014, 0x20); --"Please select a difficulty level. This may be lowered later." + difficulty = callClientFunction(player, "eventGLDifficulty", glId); + if (difficulty == nil) then goto SELECT_DETAIL; end + confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, guildleveData.favorCount, 20, 0, 0, 0, 0); + if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + + player:SendGameMessage(worldMaster, 50036, 0x20, glId, player); + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true)); + director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player); + player:AddDirector(director); + director:StartDirector(true, glId); + + end + else + goto SELECT_LOOP; + end + end +end diff --git a/data/scripts/base/chara/npc/populace/PopulaceBountyPresenter.lua b/data/scripts/base/chara/npc/populace/PopulaceBountyPresenter.lua new file mode 100644 index 00000000..73db897b --- /dev/null +++ b/data/scripts/base/chara/npc/populace/PopulaceBountyPresenter.lua @@ -0,0 +1,26 @@ +--[[ + +PopulaceBountyPresenter Script + +Functions: + +eventLowerLevel(player) - +eventAlreadyPresent(player) - +eventBeforePresent(player) - +eventAfterPresent(player) - +eventJail(player, bool) - + +--]] + +require ("global") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + + callClientFunction(player, "eventLowerLevel", player); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/populace/PopulaceCampMaster.lua b/data/scripts/base/chara/npc/populace/PopulaceCampMaster.lua new file mode 100644 index 00000000..b07f6721 --- /dev/null +++ b/data/scripts/base/chara/npc/populace/PopulaceCampMaster.lua @@ -0,0 +1,26 @@ +--[[ + +PopulaceCampMaster Script + +Functions: + +defTalk(player, favAetheryte1, favAetheryte2, favAetheryte3, playerLevel, ?) - The main and only function for this npc. If favAetheryte1 == 0, will not ask to remove others. + +--]] + +require ("global") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + + favLocation = callClientFunction(player, "defTalk", player, 0, 1280004, 1280005); + + --if (hasThree) then + --Remove chosen + --end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/populace/PopulaceCampSubMaster.lua b/data/scripts/base/chara/npc/populace/PopulaceCampSubMaster.lua new file mode 100644 index 00000000..c14dad27 --- /dev/null +++ b/data/scripts/base/chara/npc/populace/PopulaceCampSubMaster.lua @@ -0,0 +1,31 @@ +--[[ + +PopulaceCampSubMaster Script + +Functions: + +talkWelcome(player, level, ?) - Main npc function. +confirmUseFacility(player, gilAmount) - Confirm dialog if player uses facility. +finishTalkTurn() - Call to stop the npc staring at player. + +--]] + +require ("global") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + + choice = callClientFunction(player, "talkWelcome", player, 1, false); + + if (choice == 1) then + confirmed = callClientFunction(player, "confirmUseFacility", player, 1); + end + + callClientFunction(player, "finishTalkTurn"); + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/populace/PopulaceChocoboLender.lua b/data/scripts/base/chara/npc/populace/PopulaceChocoboLender.lua index dbb2078e..18163c85 100644 --- a/data/scripts/base/chara/npc/populace/PopulaceChocoboLender.lua +++ b/data/scripts/base/chara/npc/populace/PopulaceChocoboLender.lua @@ -39,6 +39,12 @@ end function onEventStarted(player, npc, triggerName) + --callClientFunction(player, "eventTalkWelcome", player); + --callClientFunction(player, "eventAskMainMenu", player, 20, true, true, true, true, 4); + --callClientFunction(player, "eventTalkMyChocobo", player); + --callClientFunction(player, "eventSetChocoboName", false); + --callClientFunction(player, "eventAfterChocoboName", player); + local curLevel = 20; -- TODO: pull from character local hasIssuance = player:GetInventory(INVENTORY_KEYITEMS):HasItem(gcIssuances[npc:GetActorClassId()]); local hasChocobo = player.hasChocobo; diff --git a/data/scripts/base/chara/npc/populace/PopulaceLinkshellManager.lua b/data/scripts/base/chara/npc/populace/PopulaceLinkshellManager.lua index 53157eb2..f0702f9c 100644 --- a/data/scripts/base/chara/npc/populace/PopulaceLinkshellManager.lua +++ b/data/scripts/base/chara/npc/populace/PopulaceLinkshellManager.lua @@ -42,7 +42,7 @@ function onEventStarted(player, npc, triggerName) createLinkshell(lsName, crestId); callClientFunction(player, "eventTalkStepMakeupDone"); --Modify - elseif (result == 1) then + elseif (result == 4) then modifyLinkshell(lsName, crestId); callClientFunction(player, "eventTalkStepModifyDone"); --Disband diff --git a/data/scripts/base/chara/npc/populace/PopulaceRequestWarden.lua b/data/scripts/base/chara/npc/populace/PopulaceRequestWarden.lua new file mode 100644 index 00000000..4f9ff2e0 --- /dev/null +++ b/data/scripts/base/chara/npc/populace/PopulaceRequestWarden.lua @@ -0,0 +1,28 @@ +--[[ + +PopulaceItemRepairer Script + +Functions: + +INIT: speechType, townType + +talkWelcome(player, bool, number, bool) - Opens the main menu +selectItem(nil, pageNumber, ?, condition1, condition2, condition3, condition4, condition5) - "Ain't running a charity here", message said when you have insufficent funds +confirmRepairItem(player, price, itemId, hq grade) - Shows the confirm box for item repair. +confirmUseFacility(player, price) - Shows confirm box for using facility. Default price is 11k? +finishTalkTurn() - Call at end to stop npc from staring at the player (eeeek) + +--]] + +require ("global") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + + result = callClientFunction(player, "eventTalkStep14"); + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/ActivateCommand.lua b/data/scripts/commands/ActivateCommand.lua index c15247e5..71c84183 100644 --- a/data/scripts/commands/ActivateCommand.lua +++ b/data/scripts/commands/ActivateCommand.lua @@ -1,3 +1,5 @@ +require ("global") + --[[ ActivateCommand Script @@ -6,20 +8,15 @@ Switches between active and passive mode states --]] -function onEventStarted(player, command, triggerName) +function onEventStarted(player, command, triggerName) if (player:GetState() == 0) then player:ChangeState(2); elseif (player:GetState() == 2) then player:ChangeState(0); - end - + end player:endEvent(); - --For Opening Tutorial - if (player:HasQuest("Man0l0") or player:HasQuest("Man0g0") or player:HasQuest("Man0u0")) then - player:GetDirector():OnCommand(command); - - end + sendSignal("playerActive"); end \ No newline at end of file diff --git a/data/scripts/commands/AttackWeaponSkill.lua b/data/scripts/commands/AttackWeaponSkill.lua index e3f3a3a4..61fe969f 100644 --- a/data/scripts/commands/AttackWeaponSkill.lua +++ b/data/scripts/commands/AttackWeaponSkill.lua @@ -1,3 +1,6 @@ +require ("global") +require ("utils") + --[[ AttackWeaponSkill Script @@ -6,19 +9,110 @@ Finds the correct weaponskill subscript to fire when a weaponskill actor is acti --]] - - -function onEventStarted(player, actor, triggerName) - - worldMaster = GetWorldMaster(); - - if (player:GetState() != 2) then - player:SendGameMessage(worldMaster, 32503, 0x20); - end - - player:EndEvent(); +local function handlePummel(player, target) + player:SendMessage(0x20, "", "DOING PUMMEL!!!!"); + + params = {}; + params.range = 10.0; + params.recast = 10; + + params.hpCost = 0; + params.mpCost = 0; + params.tpCost = 1000; + + params.targetType = 2; + params.canCrit = true; + params.animationId = 0x12312312; + end -function onEventUpdate(player, npc) +local function handleSkullSunder(player) + player:SendMessage(0x20, "", "DOING SKULL SUNDER!!!!"); +end + +local weaponskillHandlers = { + [0xA0F069E6] = handlePummel, + [0xA0F069E7] = nil, + [0xA0F069E8] = nil, + [0xA0F069E9] = nil, + [0xA0F069EA] = nil, + [0xA0F069EB] = nil, + [0xA0F069EC] = nil, + [0xA0F069ED] = nil, + [0xA0F069EE] = nil, + [0xA0F069EF] = nil, + [0xA0F06A0E] = nil, + [0xA0F06A0F] = nil, + [0xA0F06A10] = nil, + [0xA0F06A11] = nil, + [0xA0F06A12] = nil, + [0xA0F06A13] = nil, + [0xA0F06A14] = nil, + [0xA0F06A15] = nil, + [0xA0F06A16] = nil, + [0xA0F06A17] = nil, + [0xA0F06A36] = nil, + [0xA0F06A37] = handleSkullSunder, + [0xA0F06A38] = nil, + [0xA0F06A39] = nil, + [0xA0F06A3A] = nil, + [0xA0F06A3B] = nil, + [0xA0F06A3C] = nil, + [0xA0F06A3D] = nil, + [0xA0F06A3E] = nil, + [0xA0F06A3F] = nil, + [0xA0F06A5C] = nil, + [0xA0F06A5D] = nil, + [0xA0F06A5E] = nil, + [0xA0F06A60] = nil, + [0xA0F06A61] = nil, + [0xA0F06A62] = nil, + [0xA0F06A63] = nil, + [0xA0F06A64] = nil, + [0xA0F06A85] = nil, + [0xA0F06A86] = nil, + [0xA0F06A87] = nil, + [0xA0F06A88] = nil, + [0xA0F06A89] = nil, + [0xA0F06A8A] = nil, + [0xA0F06A8B] = nil, + [0xA0F06A8C] = nil, + [0xA0F06A8D] = nil, + [0xA0F06A8E] = nil, + [0xA0F06A8F] = nil +} + +function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8) + + --Are they in active mode? + if (player:GetState() != 2) then + player:SendGameMessage(GetWorldMaster(), 32503, 0x20); + player:endEvent(); + return; + end + + --Does the target exist + target = player:getZone():FindActorInArea(targetActor); + if (target == nil) then + player:SendGameMessage(GetWorldMaster(), 30203, 0x20); + player:endEvent(); + return; + end + + --Are you too far away? + if (getDistanceBetweenActors(player, target) > 7) then + player:SendGameMessage(GetWorldMaster(), 32539, 0x20); + player:endEvent(); + return; + end + + if (weaponskillHandlers[command.actorId] ~= nil) then + weaponskillHandlers[command.actorId](player); + else + player:SendMessage(0x20, "", "That weaponskill is not implemented yet."); + end + + player:endEvent(); + end \ No newline at end of file diff --git a/data/scripts/commands/ChocoboRideCommand.lua b/data/scripts/commands/ChocoboRideCommand.lua index 9952417f..8163f408 100644 --- a/data/scripts/commands/ChocoboRideCommand.lua +++ b/data/scripts/commands/ChocoboRideCommand.lua @@ -14,17 +14,15 @@ function onEventStarted(player, actor, triggerName, isGoobbue) if (isGoobbue ~= true) then player:ChangeMusic(83); - player:SendChocoboAppearance(); player:SendGameMessage(player, worldMaster, 26001, 0x20); player:SetMountState(1); else player:ChangeMusic(98); - player:SendGoobbueAppearance(); player:SendGameMessage(player, worldMaster, 26019, 0x20); player:SetMountState(2); end - player:ChangeSpeed(0.0, 5.0, 10.0); + player:ChangeSpeed(0.0, 5.0, 10.0, 10.0); player:ChangeState(15); else player:ChangeMusic(player:GetZone().bgmDay); @@ -38,7 +36,7 @@ function onEventStarted(player, actor, triggerName, isGoobbue) end player:SetMountState(0); - player:ChangeSpeed(0.0, 2.0, 5.0) + player:ChangeSpeed(0.0, 2.0, 5.0, 5.0) player:ChangeState(0); end diff --git a/data/scripts/commands/CmnAttackWeaponSkill.lua b/data/scripts/commands/CmnAttackWeaponSkill.lua new file mode 100644 index 00000000..dc86ebc4 --- /dev/null +++ b/data/scripts/commands/CmnAttackWeaponSkill.lua @@ -0,0 +1,144 @@ +require ("global") + +--[[ + +CmnAttackWeaponSkill Script + +Finds the correct weaponskill subscript to fire when a weaponskill actor is activated. + +--]] + +local function handleTEST(player) +end + +local weaponskillHandlers = { + [0xA0F067F4] = nil, + [0xA0F067F5] = nil, + [0xA0F067F7] = nil, + [0xA0F067F8] = nil, + [0xA0F067FA] = nil, + [0xA0F067FB] = nil, + [0xA0F067FD] = nil, + [0xA0F067FE] = nil, + [0xA0F06800] = nil, + [0xA0F06801] = nil, + [0xA0F06802] = nil, + [0xA0F06804] = nil, + [0xA0F06805] = nil, + [0xA0F06806] = nil, + [0xA0F06808] = nil, + [0xA0F0680A] = nil, + [0xA0F0680B] = nil, + [0xA0F0680D] = nil, + [0xA0F0680E] = nil, + [0xA0F06810] = nil, + [0xA0F06812] = nil, + [0xA0F06814] = nil, + [0xA0F068A8] = nil, + [0xA0F068A9] = nil, + [0xA0F068AB] = nil, + [0xA0F068AC] = nil, + [0xA0F068AE] = nil, + [0xA0F068AF] = nil, + [0xA0F068B2] = nil, + [0xA0F068B3] = nil, + [0xA0F068B5] = nil, + [0xA0F068B7] = nil, + [0xA0F068B8] = nil, + [0xA0F068B9] = nil, + [0xA0F068BB] = nil, + [0xA0F068BC] = nil, + [0xA0F068BE] = nil, + [0xA0F068BF] = nil, + [0xA0F068C1] = nil, + [0xA0F068C3] = nil, + [0xA0F068C5] = nil, + [0xA0F0695C] = nil, + [0xA0F0695D] = nil, + [0xA0F0695E] = nil, + [0xA0F06960] = nil, + [0xA0F06961] = nil, + [0xA0F06963] = nil, + [0xA0F06964] = nil, + [0xA0F06966] = nil, + [0xA0F06967] = nil, + [0xA0F06968] = nil, + [0xA0F0696A] = nil, + [0xA0F0696B] = nil, + [0xA0F0696D] = nil, + [0xA0F0696E] = nil, + [0xA0F06970] = nil, + [0xA0F06971] = nil, + [0xA0F06973] = nil, + [0xA0F06974] = nil, + [0xA0F06976] = nil, + [0xA0F06978] = nil, + [0xA0F06B78] = nil, + [0xA0F06B79] = nil, + [0xA0F06B7B] = nil, + [0xA0F06B7C] = nil, + [0xA0F06B7E] = nil, + [0xA0F06B7F] = nil, + [0xA0F06B81] = nil, + [0xA0F06B82] = nil, + [0xA0F06B84] = nil, + [0xA0F06B85] = nil, + [0xA0F06B8A] = nil, + [0xA0F06B8C] = nil, + [0xA0F06B8E] = nil, + [0xA0F06B90] = nil, + [0xA0F06B91] = nil, + [0xA0F06B93] = nil, + [0xA0F06B95] = nil, + [0xA0F06B97] = nil, + [0xA0F06C2C] = nil, + [0xA0F06C2D] = nil, + [0xA0F06C2F] = nil, + [0xA0F06C31] = nil, + [0xA0F06C32] = nil, + [0xA0F06C34] = nil, + [0xA0F06C35] = nil, + [0xA0F06C36] = nil, + [0xA0F06C38] = nil, + [0xA0F06C39] = nil, + [0xA0F06C3B] = nil, + [0xA0F06C3C] = nil, + [0xA0F06C3E] = nil, + [0xA0F06C3F] = nil, + [0xA0F06C41] = nil, + [0xA0F06C43] = nil, + [0xA0F06C45] = nil, + [0xA0F06C47] = nil, + [0xA0F06C49] = nil, + [0xA0F06C4B] = nil, + [0xA0F06D94] = nil, + [0xA0F06D95] = nil, + [0xA0F06D96] = nil, + [0xA0F06F92] = nil, + [0xA0F06F93] = nil, + [0xA0F06F95] = nil, + [0xA0F06F96] = nil, + [0xA0F070E6] = nil, + [0xA0F070E7] = nil, + [0xA0F070E9] = nil, + [0xA0F070EA] = nil +} + +function onEventStarted(player, command, triggerName) + + --Are they in active mode? + if (player:GetState() != 2) then + player:SendGameMessage(GetWorldMaster(), 32503, 0x20); + player:endEvent(); + return; + end + + if (weaponskillHandlers[command.actorId] ~= nil) then + weaponskillHandlers[command.actorId](player); + else + player:SendMessage(0x20, "", "That weaponskill is not implemented yet."); + end + + player:endEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/ConfirmGroupCommand.lua b/data/scripts/commands/ConfirmGroupCommand.lua new file mode 100644 index 00000000..f231ebfb --- /dev/null +++ b/data/scripts/commands/ConfirmGroupCommand.lua @@ -0,0 +1,18 @@ +--[[ + +ConfirmGroupCommand Script + +Handles what happens when you resolve an invite to a group + +--]] + +function onEventStarted(player, actor, triggerName, groupType, result) + + --Accept/Refuse happened, else just close the window + if (result == 1 or result == 2) then + GetWorldManager():GroupInviteResult(player, groupType, result); + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/DummyCommand.lua b/data/scripts/commands/DummyCommand.lua new file mode 100644 index 00000000..ca26f9ce --- /dev/null +++ b/data/scripts/commands/DummyCommand.lua @@ -0,0 +1,56 @@ +--[[ + +HarvestJudge + +Operates the harvesting system for mining, logging, and fishing. + +Functions: + +loadTextData(commandActor): Loads all gamesheets needed and instantiates a HarvestJudge. +targetCancel(commandActor): Cancels the player's target. +turnToTarget(commandActor, harvestType, direction): Turns to a direction (name's a lie, angle must be computed lol) +openInputWidget(commandActor, harvestType, nodeGrade): Inits the widget system (call first). +orderInputWidget(commandActor, nodeHP [max 100], ?, harvestType): Updates the node HP. +textInputWidget(commandActor, harvestType, ?, textId, ?, ?, ?): Sets the result text after a minigame is performed. +askInputWidget(commandActor, harvestType, inputPageNumber, showTutorial, showFishWait, showFishWaitAndJig, updateFishHP, showRareCatalystEffect): Gets user input after opening a ask widget. +closeInputWidget(commandActor, harvestType): Closes the widget system (call last). +rangeInputWidget(harvestType, inputPageNumber, goodMin, goodMax, bool): Unknown, currently crashing... + +Notes: + +HarvestType Ids: + +20002: Mine +20003: Log +20004: Fish + +--]] + +require ("global") + +function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg4, checkedActorId) + + harvestJudge = GetStaticActor("HarvestJudge"); + callClientFunction(player, "delegateCommand", harvestJudge, "loadTextData", commandactor); + callClientFunction(player, "delegateCommand", harvestJudge, "targetCancel", commandactor); + callClientFunction(player, "delegateCommand", harvestJudge, "turnToTarget", commandactor, 0x55F2, 2); + + player:ChangeState(50); + + callClientFunction(player, "delegateCommand", harvestJudge, "openInputWidget", commandactor, 0x55F2, 2); + callClientFunction(player, "delegateCommand", harvestJudge, "orderInputWidget", commandactor, 3, false, 0x55f2); + callClientFunction(player, "delegateCommand", harvestJudge, "textInputWidget", commandactor, 0x55f2, harvestJudge, nil, nil, nil, nil, 0); + callClientFunction(player, "delegateCommand", harvestJudge, "askInputWidget", commandactor, 0x55f2, 1, 0, false, false, nil, false); + + callClientFunction(player, "delegateCommand", harvestJudge, "textInputWidget", commandactor, 0x55f2, harvestJudge, 60, nil, nil, nil, 0); + callClientFunction(player, "delegateCommand", harvestJudge, "askInputWidget", commandactor, 0x55f2, 2, 0, false, false, nil, false); + + callClientFunction(player, "delegateCommand", harvestJudge, "textInputWidget", commandactor, 0x55f2, harvestJudge, 46,0, 0, 0, 0); + callClientFunction(player, "delegateCommand", harvestJudge, "askInputWidget", commandactor, 0x55f2, 2, 0, false, false, nil, false); + + + player:ChangeState(0); + + player:EndEvent(); + +end diff --git a/data/scripts/commands/EmoteStandardCommand.lua b/data/scripts/commands/EmoteStandardCommand.lua index 505102f9..5b5f762b 100644 --- a/data/scripts/commands/EmoteStandardCommand.lua +++ b/data/scripts/commands/EmoteStandardCommand.lua @@ -5,19 +5,79 @@ EmoteStandardCommand Script --]] emoteTable = { -{}, + [101] = {animId = 1, descId = 21001}, --Surprised + [102] = {animId = 2, descId = 21011}, --Angry + [103] = {animId = 3, descId = 21021}, --Furious + [104] = {animId = 4, descId = 21031}, --Blush + [105] = {animId = 5, descId = 21041}, --Bow + [106] = {animId = 6, descId = 21051}, --Cheer + [107] = {animId = 7, descId = 21061}, --Clap + [108] = {animId = 8, descId = 21071}, --Beckon + [109] = {animId = 9, descId = 21081}, --Comfort + [110] = {animId = 10, descId = 21091}, --Cry + [111] = {animId = 11, descId = 21101}, --Dance + [112] = {animId = 12, descId = 21111}, --Doubt + [113] = {animId = 13, descId = 21121}, --Doze + [114] = {animId = 14, descId = 21131}, --Fume + [115] = {animId = 15, descId = 21141}, --Goodbye + [116] = {animId = 16, descId = 21151}, --Wave + [117] = {animId = 17, descId = 21161}, --Huh + [118] = {animId = 18, descId = 21171}, --Joy + [119] = {animId = 19, descId = 21181}, --Kneel + [120] = {animId = 20, descId = 21191}, --Chuckle + [121] = {animId = 21, descId = 21201}, --Laugh + [122] = {animId = 22, descId = 21211}, --Lookout + [123] = {animId = 23, descId = 21221}, --Me + [124] = {animId = 24, descId = 21231}, --No + [125] = {animId = 25, descId = 21241}, --Deny + [126] = {animId = 26, descId = 21251}, --Panic + [127] = {animId = 27, descId = 21261}, --Point + [128] = {animId = 28, descId = 21271}, --Poke + [129] = {animId = 29, descId = 21281}, --Congratulate + [130] = {animId = 30, descId = 21291}, --Psych + [131] = {animId = 31, descId = 21301}, --Salute + [132] = {animId = 32, descId = 21311}, --Shocked + [133] = {animId = 33, descId = 21321}, --Shrug + [134] = {animId = 34, descId = 21331}, --Rally + [135] = {animId = 35, descId = 21341}, --Soothe + [136] = {animId = 36, descId = 21351}, --Stagger + [137] = {animId = 37, descId = 21361}, --Stretch + [138] = {animId = 38, descId = 21371}, --Sulk + [139] = {animId = 39, descId = 21381}, --Think + [140] = {animId = 40, descId = 21391}, --Upset + [141] = {animId = 41, descId = 21401}, --Welcome + [142] = {animId = 42, descId = 21411}, --Yes + [143] = {animId = 43, descId = 21421}, --Thumbs Up + [144] = {animId = 44, descId = 21423}, --Examine Self + [145] = {animId = 53, descId = 21425}, --Pose + [146] = {animId = 50, descId = 21427}, --Storm Salute + [147] = {animId = 51, descId = 21429}, --Serpent Salute + [148] = {animId = 52, descId = 21431}, --Flame Salute + [149] = {animId = 45, descId = 21433}, --Blow Kiss + [151] = {animId = 47, descId = 21435}, --Grovel + [152] = {animId = 48, descId = 21437}, --Happy + [153] = {animId = 49, descId = 21439}, --Disappointed + [154] = {animId = 46, descId = 10105}, --Air Quotes + [155] = {animId = 54, descId = 21442}, --Pray + [156] = {animId = 55, descId = 21445}, --Fire Dance }; -function onEventStarted(player, actor, triggerName, emoteId) +function onEventStarted(player, actor, triggerName, emoteId, unknownArg1, arg2, arg3, targetId) - if (player:GetState() == 0) then - player:DoEmote(emoteId); + if (targetId == nil) then + targetId = 0; + end + + if (player:GetState() == 0) then + emote = emoteTable[emoteId]; + if (emote ~= nil) then + player:doEmote(targetId, emote.animId, emote.descId); + else + player:SendMessage(0x20, "", string.format("Not implemented; EmoteId: %d", emoteId)); + end end player:EndEvent(); end - -function onEventUpdate(player, npc) -end \ No newline at end of file diff --git a/data/scripts/commands/EquipCommand.lua b/data/scripts/commands/EquipCommand.lua index 8d741d32..966939ac 100644 --- a/data/scripts/commands/EquipCommand.lua +++ b/data/scripts/commands/EquipCommand.lua @@ -147,8 +147,10 @@ function equipItem(player, equipSlot, item) player:GetEquipment():Equip(equipSlot, item); - if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false and gItem:IsBowWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND; + if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND; elseif (equipSlot == EQUIPSLOT_OFFHAND) then graphicSlot = GRAPHICSLOT_OFFHAND; + elseif (equipSlot == EQUIPSLOT_THROWINGWEAPON) then graphicSlot = GRAPHICSLOT_THROWING; + elseif (equipSlot == EQUIPSLOT_PACK) then graphicSlot = GRAPHICSLOT_PACK; elseif (equipSlot == EQUIPSLOT_HEAD) then graphicSlot = GRAPHICSLOT_HEAD; elseif (equipSlot == EQUIPSLOT_BODY) then graphicSlot = GRAPHICSLOT_BODY; elseif (equipSlot == EQUIPSLOT_LEGS) then graphicSlot = GRAPHICSLOT_LEGS; @@ -162,13 +164,9 @@ function equipItem(player, equipSlot, item) --Graphic Slot was set, otherwise it's a special case if (graphicSlot ~= nil) then player:GraphicChange(graphicSlot, item); - if (graphicSlot == GRAPHICSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil); end elseif (gItem:IsNailWeapon()) then player:GraphicChange(GRAPHICSLOT_MAINHAND, item); player:GraphicChange(GRAPHICSLOT_OFFHAND, item); - elseif (gItem:IsBowWeapon()) then - player:GraphicChange(GRAPHICSLOT_MAINHAND, item); - --player:GraphicChange(GRAPHICSLOT_OFFHAND, item); elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_R_EAR, item); player:GraphicChange(GRAPHICSLOT_L_EAR, item); @@ -203,6 +201,8 @@ function unequipItem(player, equipSlot, item) else if (equipSlot == EQUIPSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_MAINHAND, nil); elseif (equipSlot == EQUIPSLOT_OFFHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil); + elseif (equipSlot == EQUIPSLOT_THROWINGWEAPON) then player:GraphicChange(GRAPHICSLOT_THROWING, nil); + elseif (equipSlot == EQUIPSLOT_PACK) then player:GraphicChange(GRAPHICSLOT_PACK, nil); elseif (equipSlot == EQUIPSLOT_HEAD) then player:GraphicChange(GRAPHICSLOT_HEAD, nil); elseif (equipSlot == EQUIPSLOT_WAIST) then player:GraphicChange(GRAPHICSLOT_WAIST, nil); elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_L_EAR, nil); player:GraphicChange(GRAPHICSLOT_R_EAR, nil); diff --git a/data/scripts/commands/ItemWasteCommand.lua b/data/scripts/commands/ItemWasteCommand.lua index ceb6f493..c906675b 100644 --- a/data/scripts/commands/ItemWasteCommand.lua +++ b/data/scripts/commands/ItemWasteCommand.lua @@ -10,6 +10,6 @@ The param "itemDBIds" has the vars: item1 and item2. --]] function onEventStarted(player, actor, triggerName, invActionInfo, param1, param2, param3, param4, param5, param6, param7, param8, itemDBIds) - player:GetInventory(0x00):RemoveItem(invActionInfo.slot); + player:GetInventory(0x00):RemoveItemAtSlot(invActionInfo.slot); player:EndEvent(); end diff --git a/data/scripts/commands/JournalCommand.lua b/data/scripts/commands/JournalCommand.lua new file mode 100644 index 00000000..8f5c3c8a --- /dev/null +++ b/data/scripts/commands/JournalCommand.lua @@ -0,0 +1,16 @@ +require ("global") + +--[[ + +JournalCommand Script + +Fired when you try to abandon a quest + +--]] + +function onEventStarted(player, command, triggerName, questId) + + player:AbandonQuest(questId); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/LinkshellAppointCommand.lua b/data/scripts/commands/LinkshellAppointCommand.lua new file mode 100644 index 00000000..5d497c30 --- /dev/null +++ b/data/scripts/commands/LinkshellAppointCommand.lua @@ -0,0 +1,12 @@ +--[[ + +LinkshellAppointCommand Script + +--]] + +function onEventStarted(player, actor, triggerName, linkshellName, memberName, rank) + + GetWorldManager():RequestWorldLinkshellRankChange(player, linkshellName, memberName, rank); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/LinkshellChangeCommand.lua b/data/scripts/commands/LinkshellChangeCommand.lua new file mode 100644 index 00000000..25022775 --- /dev/null +++ b/data/scripts/commands/LinkshellChangeCommand.lua @@ -0,0 +1,15 @@ +--[[ + +LinkshellChangeCommand Script + +--]] + +function onEventStarted(player, actor, triggerName, linkshellName, arg1, arg2) + + if (linkshellName == nil) then + linkshellName = ""; + end + GetWorldManager():RequestWorldLinkshellChangeActive(player, linkshellName); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/LinkshellInviteCancelCommand.lua b/data/scripts/commands/LinkshellInviteCancelCommand.lua new file mode 100644 index 00000000..8888224b --- /dev/null +++ b/data/scripts/commands/LinkshellInviteCancelCommand.lua @@ -0,0 +1,14 @@ +--[[ + +LinkshellInviteCancelCommand Script + +Handles what happens when you cancel an invite to a linkshell + +--]] + +function onEventStarted(player, actor, triggerName, arg1, arg2, arg3, arg4, actorId) + + GetWorldManager():RequestWorldLinkshellCancelInvite(player); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/LinkshellInviteCommand.lua b/data/scripts/commands/LinkshellInviteCommand.lua new file mode 100644 index 00000000..de8853bd --- /dev/null +++ b/data/scripts/commands/LinkshellInviteCommand.lua @@ -0,0 +1,14 @@ +--[[ + +LinkshellInviteCommand Script + +Handles what happens when you invite a player to a linkshell + +--]] + +function onEventStarted(player, actor, triggerName, linkshellName, arg1, arg2, arg3, actorId) + + GetWorldManager():RequestWorldLinkshellInviteMember(player, linkshellName, actorId); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/LinkshellKickCommand.lua b/data/scripts/commands/LinkshellKickCommand.lua new file mode 100644 index 00000000..55c7da7e --- /dev/null +++ b/data/scripts/commands/LinkshellKickCommand.lua @@ -0,0 +1,12 @@ +--[[ + +LinkshellKickCommand Script + +--]] + +function onEventStarted(player, actor, triggerName, linkshellName, kickedName) + + GetWorldManager():RequestWorldLinkshellKick(player, linkshellName, kickedName); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/LinkshellResignCommand.lua b/data/scripts/commands/LinkshellResignCommand.lua new file mode 100644 index 00000000..68da82b7 --- /dev/null +++ b/data/scripts/commands/LinkshellResignCommand.lua @@ -0,0 +1,12 @@ +--[[ + +LinkshellLeaveCommand Script + +--]] + +function onEventStarted(player, actor, triggerName, linkshellName) + + GetWorldManager():RequestWorldLinkshellLeave(player, linkshellName); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/commands/NegotiationCommand.lua b/data/scripts/commands/NegotiationCommand.lua new file mode 100644 index 00000000..d3d581af --- /dev/null +++ b/data/scripts/commands/NegotiationCommand.lua @@ -0,0 +1,56 @@ +--[[ + +NegotiationCommand Script + +Functions: + +openListWidget(player, originId, 10 bools to show/hide) - Shows a list of things to Parley for based on a sequential list from xtx_negotiationTable. +openAskWidget(player, title, difficulty, desiredItemId, requiredItemId) - Opens the widget asking if the player will Parley. +openNegotiationWidget(player, title, itemId, maxTurns, time, ability1, ability2, ability3, ability4, ability5) - Inits the widget system (call first). +inputNegotiationWidget(player, ?, abort, resumeTimer) - Begins player input. +closeNegotiationWidget(player) - Closes the Parley widget. +negotiationEmote(player, animId) - Plays an animation + +updateNegotiationWidget(player, gridIndex, key, itemIconId, pointValue, ?, ?) - Updates the Parley UI depending on the first argument: + +< 12: Places Item +13: Plays SFX + ??? +14: Sets the Negotiation Gauge (max, value) +15: Sets the Achievement Gauge (max, value) + +16: Additional Item 1 (bool) +17: Additional Item 2(bool) +18: Additional Item 3(bool) + +19: Set the last chosen items (index[1-6], iconId) + +20: +21: + +22: Clear Timer +23: Play player move SFX +24: Play opponent move SFX +25: Play times up SFX and close ability widget +26: +27: +28: Pauses the Timer +29: Resumes the Timer + +--]] + +require ("global") + +function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg4, arg5) + + negotiationJudge = GetStaticActor("NegotiationJudge"); + + callClientFunction(player, "delegateCommand", negotiationJudge, "negotiationEmote", player, 403087360); + --callClientFunction(player, "delegateCommand", negotiationJudge, "openAskWidget", player, 1302, 5, 1000019, 1000019); + --callClientFunction(player, "delegateCommand", negotiationJudge, "openListWidget", player, 3711, true, true, true, true, false, false, false, false, false, false); + callClientFunction(player, "delegateCommand", negotiationJudge, "openNegotiationWidget", player, 1302, 1000019, 15, 20, 0, 0, 0, 0, 0); + callClientFunction(player, "delegateCommand", negotiationJudge, "updateNegotiationWidget", player, 2, 2007, 60662, 5, false, false); + callClientFunction(player, "delegateCommand", negotiationJudge, "inputNegotiationWidget", player, 1, false, true); + callClientFunction(player, "delegateCommand", negotiationJudge, "closeNegotiationWidget", player); + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/NpcLinkshellChatCommand.lua b/data/scripts/commands/NpcLinkshellChatCommand.lua new file mode 100644 index 00000000..5c015e6c --- /dev/null +++ b/data/scripts/commands/NpcLinkshellChatCommand.lua @@ -0,0 +1,45 @@ +require ("global") + +--[[ + +NpcLinkshellChatCommand Script + +Handler for when a player clicks a npc ls to talk to. If adding new linkshells to the handle, make sure to add +it to the handler table (with correct offset), and that your function is above the handler. If padding is needed +to hit some ID, add "nils". + +--]] + + +local function handleAdventurersGuild(player) + if (player:HasQuest(110006) == true) then + local man0g1Quest = player:GetQuest("Man0g1"); + player:SendGameMessage(man0g1Quest, 330, 39, 1300018, nil); + end +end + +local function handlePathOfTheTwelve(player) + player:SendMessage(0x20, "", "Test"); +end + +local npcLsHandlers = { + handleAdventurersGuild, + nil, + nil, + nil, + nil, + handlePathOfTheTwelve +} + +function onEventStarted(player, command, triggerName, npcLsId) + + if (npcLsHandlers[npcLsId] ~= nil) then + npcLsHandlers[npcLsId](player); + player:SetNpcLS(npcLsId-1, NPCLS_ACTIVE); + else + player:SendMessage(0x20, "", "That Npc Linkshell is not implemented yet."); + end + + player:endEvent(); + +end diff --git a/data/scripts/commands/PartyBreakupCommand.lua b/data/scripts/commands/PartyBreakupCommand.lua new file mode 100644 index 00000000..ab69a388 --- /dev/null +++ b/data/scripts/commands/PartyBreakupCommand.lua @@ -0,0 +1,19 @@ +--[[ + +PartyBreakupCommand Script + +Handles disbanding the party. + +--]] + +function onEventStarted(player, actor, triggerName) + worldMaster = GetWorldMaster(); + + if (player:IsPartyLeader()) then + player:PartyDisband(name) + else + player:SendGameMessage(player, worldMaster, 30540, 0x20); + end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/PartyDisbandCommand.lua b/data/scripts/commands/PartyDisbandCommand.lua new file mode 100644 index 00000000..15fc2ec0 --- /dev/null +++ b/data/scripts/commands/PartyDisbandCommand.lua @@ -0,0 +1,28 @@ +--[[ + +PartyKickCommand Script + +Handles requesting to kick (oust) and various errors. + +TextIds: + +30404 - Ousted Sheet/ActorId Version +30410 - You are Ousted +30428 - Ousted String Version +30540 - You are not party leader +30555 - Unable to oust +30575 - Cannot oust due to not pt member + +--]] + +function onEventStarted(player, actor, name) + worldMaster = GetWorldMaster(); + + if (player:IsPartyLeader()) then + player:PartyKickPlayer(name); + else + player:SendGameMessage(player, worldMaster, 30540, 0x20); + end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/PartyKickCommand.lua b/data/scripts/commands/PartyKickCommand.lua new file mode 100644 index 00000000..b2b80987 --- /dev/null +++ b/data/scripts/commands/PartyKickCommand.lua @@ -0,0 +1,32 @@ +--[[ + +PartyKickCommand Script + +Handles requesting to kick (oust) and various errors. + +TextIds: + +30404 - Ousted Sheet/ActorId Version +30410 - You are Ousted +30428 - Ousted String Version +30540 - You are not party leader +30555 - Unable to oust +30575 - Cannot oust due to not pt member + +--]] + +function onEventStarted(player, actor, triggerName, name, arg2, arg3, arg4, actorId) + worldMaster = GetWorldMaster(); + + if (player:IsPartyLeader()) then + if (name == nil) then + player:PartyOustPlayer(actorId); + else + player:PartyOustPlayer(name); + end + else + player:SendGameMessage(player, worldMaster, 30540, 0x20); + end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/PartyLeaderCommand.lua b/data/scripts/commands/PartyLeaderCommand.lua new file mode 100644 index 00000000..cf965b46 --- /dev/null +++ b/data/scripts/commands/PartyLeaderCommand.lua @@ -0,0 +1,23 @@ +--[[ + +PartyLeaderCommand Script + +Handles requesting to change party leader and various errors. + +--]] + +function onEventStarted(player, actor, triggerName, name, arg2, arg3, arg4, actorId) + worldMaster = GetWorldMaster(); + + if (player:IsPartyLeader()) then + if (name == nil) then + player:PartyPromote(actorId); + else + player:PartyPromote(name); + end + else + player:SendGameMessage(player, worldMaster, 30540, 0x20); + end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/PartyResignCommand.lua b/data/scripts/commands/PartyResignCommand.lua new file mode 100644 index 00000000..e35a093c --- /dev/null +++ b/data/scripts/commands/PartyResignCommand.lua @@ -0,0 +1,12 @@ +--[[ + +PartyResignCommand Script + +Handles leaving a party + +--]] + +function onEventStarted(player, actor, triggerName) + player:PartyLeave(name); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/commands/PlaceDrivenCommand.lua b/data/scripts/commands/PlaceDrivenCommand.lua index 291ccec8..1e66d2bc 100644 --- a/data/scripts/commands/PlaceDrivenCommand.lua +++ b/data/scripts/commands/PlaceDrivenCommand.lua @@ -6,6 +6,7 @@ Notes: --]] +require("global") function onEventStarted(player, actor, triggerName, pushCommand, unk1, unk2, unk3, ownerActorId, unk4, unk5, unk6, unk7) @@ -15,6 +16,7 @@ function onEventStarted(player, actor, triggerName, pushCommand, unk1, unk2, unk if (actor:GetActorClassId() == 1200052) then player:kickEvent(actor, "commandJudgeMode", "commandJudgeMode"); else + printf("TEST"); player:kickEvent(actor, "pushCommand", "pushCommand"); end else diff --git a/data/scripts/commands/RequestInformationCommand.lua b/data/scripts/commands/RequestInformationCommand.lua index d46527c6..0681da49 100644 --- a/data/scripts/commands/RequestInformationCommand.lua +++ b/data/scripts/commands/RequestInformationCommand.lua @@ -4,6 +4,6 @@ --]] function onEventStarted(player, actor, questId) - player:SendRequestedInfo("requestedData", "activegl", 7, nil, nil, nil, nil, nil, nil, nil); + player:SendDataPacket("requestedData", "activegl", 7, nil, nil, nil, nil, nil, nil, nil); -- player:SendRequestedInfo("requestedData", "glHist", 10, 0x1D4F2, 1009, 12464, 11727, 12485, 12526); end diff --git a/data/scripts/commands/RequestQuestJournalCommand.lua b/data/scripts/commands/RequestQuestJournalCommand.lua index 7e95025b..8f519eed 100644 --- a/data/scripts/commands/RequestQuestJournalCommand.lua +++ b/data/scripts/commands/RequestQuestJournalCommand.lua @@ -3,6 +3,21 @@ --]] -function onEventStarted(player, actor, questId) - player:SendRequestedInfo("requestedData", "qtdata", 0x1D4F2); +function onEventStarted(player, actor, trigger, questId, mapCode) + + quest = player:GetQuest(questId); + + if (quest == nil) then + player:EndEvent(); + return; + end + + if (mapCode == nil) then + player:SendDataPacket("requestedData", "qtdata", quest:GetQuestId(), quest:GetPhase()); + player:EndEvent(); + else + player:SendDataPacket("requestedData", "qtmap", quest:GetQuestId()); + player:EndEvent(); + end + end diff --git a/data/scripts/commands/TeleportCommand.lua b/data/scripts/commands/TeleportCommand.lua index eb08a965..8c4bcd55 100644 --- a/data/scripts/commands/TeleportCommand.lua +++ b/data/scripts/commands/TeleportCommand.lua @@ -11,11 +11,51 @@ eventConfirm(isReturn, isInBattle, cityReturnNum, 138821, forceAskReturnOnly) --]] require ("global") +require ("aetheryte") +require ("utils") -function doTeleport(region, aetheryte) -end +teleportMenuToAetheryte = { + [1] = { + [1] = 1280001, + [2] = 1280002, + [3] = 1280003, + [4] = 1280004, + [5] = 1280005, + [6] = 1280006 + }, + [2] = { + [1] = 1280092, + [2] = 1280093, + [3] = 1280094, + [4] = 1280095, + [5] = 1280096 + }, + [3] = { + [1] = 1280061, + [2] = 1280062, + [3] = 1280063, + [4] = 1280064, + [5] = 1280065, + [6] = 1280066 + }, + [4] = { + [1] = 1280031, + [2] = 1280032, + [3] = 1280033, + [4] = 1280034, + [5] = 1280035, + [6] = 1280036 + }, + [5] = { + [1] = 1280121, + [2] = 1280122 + } +} function onEventStarted(player, actor, triggerName, isTeleport) + + local worldMaster = GetWorldMaster(); + if (isTeleport == 0) then while (true) do regionChoice = callClientFunction(player, "delegateCommand", actor, "eventRegion", 100); @@ -27,45 +67,51 @@ function onEventStarted(player, actor, triggerName, isTeleport) if (aetheryteChoice == nil) then break end - confirmChoice = callClientFunction(player, "delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false); - + player:PlayAnimation(0x4000FFA); + player:SendGameMessage(worldMaster, 34101, 0x20, 2, teleportMenuToAetheryte[regionChoice][aetheryteChoice], 100, 100); + confirmChoice = callClientFunction(player, "delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false); if (confirmChoice == 1) then - doTeleport(regionChoice, aetheryteChoice); + player:PlayAnimation(0x4000FFB); + player:SendGameMessage(worldMaster, 34105, 0x20); + --Do teleport + destination = aetheryteTeleportPositions[teleportMenuToAetheryte[regionChoice][aetheryteChoice]]; + if (destination ~= nil) then + randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); + rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); + GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); + end end - player:endEvent(); return; - end end else - callClientFunction(player, "delegateCommand", actor, "eventConfirm", true, false, 1, 0x138824, false); + player:PlayAnimation(0x4000FFA); + local choice, isInn = callClientFunction(player, "delegateCommand", actor, "eventConfirm", true, false, player:GetHomePointInn(), player:GetHomePoint(), false); + if (choice == 1) then + player:PlayAnimation(0x4000FFB); + player:SendGameMessage(worldMaster, 34104, 0x20); + if (isInn) then + --Return to Inn + if (player:GetHomePointInn() == 1) then + GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, -160.048, 0, -165.737, 0); + elseif (player:GetHomePointInn() == 2) then + GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 160.048, 0, 154.263, 0); + elseif (player:GetHomePointInn() == 3) then + GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 0.048, 0, -5.737, 0); + end + elseif (choice == 1 and isInn == nil) then + --Return to Homepoint + destination = aetheryteTeleportPositions[player:GetHomePoint()]; + if (destination ~= nil) then + randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); + rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); + GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); + end + end + end end player:endEvent(); -end - -function onEventUpdate(player, actor, step, arg1) - - menuId = player:GetCurrentMenuId(); - - if (menuId == 0) then --Region - if (arg1 ~= nil and arg1 >= 1) then - player:SetCurrentMenuId(1); - player:RunEventFunction("delegateCommand", actor, "eventAetheryte", arg1, 2, 2, 2, 4, 4, 4); - else - player:EndCommand(); - end - elseif (menuId == 1) then --Aetheryte - if (arg1 == nil) then - player:EndCommand(); - return; - end - player:SetCurrentMenuId(2); - player:RunEventFunction("delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false); - elseif (menuId == 2) then --Confirm - player:EndCommand(); - end - -end +end \ No newline at end of file diff --git a/data/scripts/commands/gm/addguildleve.lua b/data/scripts/commands/gm/addguildleve.lua new file mode 100644 index 00000000..6a9f13ef --- /dev/null +++ b/data/scripts/commands/gm/addguildleve.lua @@ -0,0 +1,15 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "s", + description = "Adds a guildleve by .", +} + +function onTrigger(player, argc, glId) + if player then + player:AddGuildleve(tonumber(glId)); + else + print(sender.."unable to add guildleve, ensure player name is valid."); + end; +end; \ No newline at end of file diff --git a/data/scripts/commands/gm/despawn.lua b/data/scripts/commands/gm/despawn.lua new file mode 100644 index 00000000..0d502ffd --- /dev/null +++ b/data/scripts/commands/gm/despawn.lua @@ -0,0 +1,16 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "d", + description = "Spawns a actor", +} + +function onTrigger(player, argc, actorName) + + if (actorName ~= nil) then + zone = player:GetZone(); + actor = zone:DespawnActor(actorName); + end + +end; \ No newline at end of file diff --git a/data/scripts/commands/gm/mypos.lua b/data/scripts/commands/gm/mypos.lua index 74f70cb7..18555542 100644 --- a/data/scripts/commands/gm/mypos.lua +++ b/data/scripts/commands/gm/mypos.lua @@ -16,7 +16,7 @@ function onTrigger(player) local messageID = MESSAGE_TYPE_SYSTEM_ERROR; local sender = "[mypos] "; - local message = string.format("current position X:%d Y:%d Z:%d (Rotation: %d) Zone:%d", x, y, z, rot, zone); + local message = string.format("X:%.3f Y:%.3f Z:%.3f (Rotation: %.3f) Zone:%d", x, y, z, rot, zone); player:SendMessage(messageID, sender, message); end; \ No newline at end of file diff --git a/data/scripts/commands/gm/removeguildleve.lua b/data/scripts/commands/gm/removeguildleve.lua new file mode 100644 index 00000000..0c24ee1f --- /dev/null +++ b/data/scripts/commands/gm/removeguildleve.lua @@ -0,0 +1,15 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "s", + description = "Adds a guildleve by .", +} + +function onTrigger(player, argc, glId) + if player then + player:RemoveGuildleve(tonumber(glId)); + else + print(sender.."unable to add guildleve, ensure player name is valid."); + end; +end; \ No newline at end of file diff --git a/data/scripts/commands/gm/setnpcls.lua b/data/scripts/commands/gm/setnpcls.lua new file mode 100644 index 00000000..6943e235 --- /dev/null +++ b/data/scripts/commands/gm/setnpcls.lua @@ -0,0 +1,27 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "is", + description = "Sets a NPC LS' state. Args: npcLSId, ", +} + +function onTrigger(player, argc, lsId, state) + local id = tonumber(lsId) or 0; + + if (state == "alert") then + player:SetNpcLS(id, NPCLS_ALERT); + elseif (state == "active") then + player:SetNpcLS(id, NPCLS_ACTIVE); + elseif (state == "inactive") then + player:SetNpcLS(id, NPCLS_INACTIVE); + elseif (state == "gone") then + player:SetNpcLS(id, NPCLS_GONE); + else + player:SendMessage(0x20, "", "Invalid state argument"); + return; + end + + player:SendMessage(0x20, "", string.format("NPC LS %d set to %s", id, state)); + +end \ No newline at end of file diff --git a/data/scripts/commands/gm/spawn.lua b/data/scripts/commands/gm/spawn.lua new file mode 100644 index 00000000..1ff4d900 --- /dev/null +++ b/data/scripts/commands/gm/spawn.lua @@ -0,0 +1,34 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "d", + description = "Spawns a actor", +} + +function onTrigger(player, argc, actorClassId) + + if (actorClassId == nil) then + player:SendMessage(0x20, "", "No actor class id provided."); + return; + end + + local pos = player:GetPos(); + local x = pos[0]; + local y = pos[1]; + local z = pos[2]; + local rot = pos[3]; + local zone = pos[4]; + + actorClassId = tonumber(actorClassId); + + if (actorClassId ~= nil) then + zone = player:GetZone(); + actor = zone:SpawnActor(actorClassId, "test", pos[0], pos[1], pos[2], pos[3]); + end + + if (actor == nil) then + player:SendMessage(0x20, "", "This actor class id cannot be spawned."); + end + +end; \ No newline at end of file diff --git a/data/scripts/commands/gm/speed.lua b/data/scripts/commands/gm/speed.lua index 6033729d..1008eb2b 100644 --- a/data/scripts/commands/gm/speed.lua +++ b/data/scripts/commands/gm/speed.lua @@ -13,23 +13,24 @@ Set movement speed for player. Enter no value to reset to default. } function onTrigger(player, argc, stop, walk, run) - - if argc == 1 then - s = 0; - w = (tonumber(stop) / 2); - r = tonumber(stop); - player:ChangeSpeed(s, w, r); - player:SendMessage(MESSAGE_TYPE_SYSTEM_ERROR, "[speed]", string.format("Speed set to 0/%u/%u", w,r)); - - elseif argc == 3 then - stop = tonumber(stop) or 0; - walk = tonumber(walk) or 2; - run = tonumber(run) or 5; - player:ChangeSpeed(stop, walk, run); - player:SendMessage(MESSAGE_TYPE_SYSTEM_ERROR, "[speed]", string.format("Speed set to %u/%u/%u", stop, walk, run)); - else - player:ChangeSpeed(0.0, 2.0, 5.0); - end - -end; \ No newline at end of file + if argc == 1 then + s = 0; + w = (tonumber(stop) / 2); + r = tonumber(stop); + player:ChangeSpeed(s, w, r); + player:SendMessage(MESSAGE_TYPE_SYSTEM_ERROR, "[speed]", string.format("Speed set to 0/%u/%u", w,r)); + elseif argc == 3 then + stop = tonumber(stop) or 0; + walk = tonumber(walk) or 2; + run = tonumber(run) or 5; + if argc == 3 then + player:ChangeSpeed(stop, walk, run, run); + elseif argc == 1 then + player:ChangeSpeed(0, stop/2, stop, stop); + else + player:ChangeSpeed(0,2,5,5); + end + end + +end \ No newline at end of file diff --git a/data/scripts/commands/gm/test.lua b/data/scripts/commands/gm/test.lua new file mode 100644 index 00000000..8416f432 --- /dev/null +++ b/data/scripts/commands/gm/test.lua @@ -0,0 +1,28 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "ss", + description = +[[ +Positions your character forward a set , defaults to 5 yalms. +!nudge | +!nudge | +!nudge | +]], + +} + +function onTrigger(player, argc) + worldMaster = GetWorldMaster(); + player:SendGameMessage(player, worldMaster, 34108, 0x20); + player:SendGameMessage(player, worldMaster, 50011, 0x20); + + director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0l001"); + player:AddDirector(director); + player:SetLoginDirector(director); + + player:KickEvent(director, "noticeEvent", true); + + GetWorldManager():DoZoneChange(player, 9); +end; diff --git a/data/scripts/commands/gm/testmapobj.lua b/data/scripts/commands/gm/testmapobj.lua new file mode 100644 index 00000000..6682b589 --- /dev/null +++ b/data/scripts/commands/gm/testmapobj.lua @@ -0,0 +1,54 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "sssss", + description = "" +} + +function onTrigger(player, argc, animation, regionId, layoutId, maxLayoutId) + layoutId = tonumber(layoutId); + + if (maxLayoutId ~= nil) then + maxLayoutId = tonumber(maxLayoutId); + else + maxLayoutId = layoutId; + end + + actorClassId = 5900001; + while (layoutId <= maxLayoutId) do + if (actorClassId == nil) then + player:SendMessage(0x20, "", "No actor class id provided."); + return; + end + + local pos = player:GetPos(); + local x = pos[0]; + local y = pos[1]; + local z = pos[2]; + local zone = pos[4]; + + actorClassId = tonumber(actorClassId); + + if (actorClassId ~= nil) then + zone = player:GetZone(); + actor = zone:SpawnActor(actorClassId, "mapobj", pos[0], pos[1], pos[2], tonumber(regionId), tonumber(layoutId)); + wait(0.8); + actor:PlayMapObjAnimation(player, animation); + zone:DespawnActor("mapobj"); + wait(0.5); + player:SendMessage(0x20, "", "Layout ID: "..layoutId); + end + layoutId=layoutId+1; + end +end; +--!testmapobj 5900001 421 2810 2820 + +--dun4 (0x19e) - Copperbell Mines +--dun1 - Mun Tuy +--dun2 - Tam Tara +--debug:_getAllCharacter("MapObjStandard")[1] + + +--Ferry (Thanalan, Z=-130): 5145, 252 +--Ferry (La Noscea, Z=+130): 5144, 201 \ No newline at end of file diff --git a/data/scripts/commands/gm/warp.lua b/data/scripts/commands/gm/warp.lua index 60d81f40..381cb0ab 100644 --- a/data/scripts/commands/gm/warp.lua +++ b/data/scripts/commands/gm/warp.lua @@ -40,13 +40,7 @@ function onTrigger(player, argc, p1, p2, p3, p4, privateArea, name, lastName) local worldManager = GetWorldManager(); - -- treat this as a predefined warp list - if argc == 1 then - zone = tonumber(p1) or player_zone; - player:SendMessage(messageID, sender, string.format("warping to zone:%u", zone)); - worldManager:DoZoneChange(player, zone); - - elseif argc >= 3 then + if argc >= 3 then if argc == 3 then local x = tonumber(applyPositionOffset(p1, player_x)) or player_x; @@ -54,7 +48,8 @@ function onTrigger(player, argc, p1, p2, p3, p4, privateArea, name, lastName) local z = tonumber(applyPositionOffset(p3, player_z)) or player_z; player:SendMessage(messageID, sender, string.format("setting coordinates X:%d Y:%d Z:%d within current zone (%d)", x, y, z, player_zone)); - worldManager:DoPlayerMoveInZone(player, x, y, z, 0, 0x00); + + worldManager:DoPlayerMoveInZone(player, x, y, z, player_rot, 0x00); else local zone = tonumber(applyPositionOffset(p1, player_zone)) or player_zone; local x = tonumber(applyPositionOffset(p2, player_x)) or player_x; @@ -62,7 +57,7 @@ function onTrigger(player, argc, p1, p2, p3, p4, privateArea, name, lastName) local z = tonumber(applyPositionOffset(p4, player_z)) or player_z; if privateArea == "" then privateArea = nil end; player:SendMessage(messageID, sender, string.format("setting coordinates X:%d Y:%d Z:%d to new zone (%d) private area:%s", x, y, z, zone, privateArea or "unspecified")); - worldManager:DoZoneChange(player, zone, privateArea, 0x02, x, y, z, 0.00); + worldManager:DoZoneChange(player, zone, privateArea, 0, 0x02, x, y, z, 0.00); end else diff --git a/data/scripts/commands/gm/weather.lua b/data/scripts/commands/gm/weather.lua index 4bec6d7a..c8e21d9c 100644 --- a/data/scripts/commands/gm/weather.lua +++ b/data/scripts/commands/gm/weather.lua @@ -26,7 +26,7 @@ function onTrigger(player, argc, weather, updateTime, zonewide) if zonewide ~= 0 then message = string.format(message.."for zone %u", player:GetZoneID()); else - message = string.format(message.."%s", player:GetName()); + message = message..player:GetName(); end; -- weatherid, updateTime diff --git a/data/scripts/commands/gm/workvalue.lua b/data/scripts/commands/gm/workvalue.lua new file mode 100644 index 00000000..17b46fa6 --- /dev/null +++ b/data/scripts/commands/gm/workvalue.lua @@ -0,0 +1,49 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "ssss", + description = +[[ + +]], +} + +function onTrigger(player, argc, target, workName, uiFunc, value) + + local messageID = MESSAGE_TYPE_SYSTEM_ERROR; + local sender = "[workvalue] "; + + if (argc != 4) then + player:SendMessage(messageID, sender, "Invalid args"); + return; + end + + if (target == "@t") then + targetActor = GetWorldManager():GetActorInWorld(player.currentTarget) or nil; + else + targetActor = GetWorldManager():GetActorInWorld(target) or nil; + end + + if not targetActor then + player:SendMessage(messageID, sender, "Error finding target..."); + return + end + + if (tonumber(value) ~= nil) then + result = targetActor:SetWorkValue(player, workName, uiFunc, tonumber(value)); + elseif (value == "true") then + result = targetActor:SetWorkValue(player, workName, uiFunc, true); + elseif (value == "false") then + result = targetActor:SetWorkValue(player, workName, uiFunc, false); + else + result = targetActor:SetWorkValue(player, workName, uiFunc, value); + end + + if (result) then + player:SendMessage(messageID, sender, workName .. " changed to " .. value); + else + player:SendMessage(messageID, sender, "Could not changed workvalue. Is the name and datatype correct?"); + end + +end \ No newline at end of file diff --git a/data/scripts/content/SimpleContent30002.lua b/data/scripts/content/SimpleContent30002.lua new file mode 100644 index 00000000..f0154a81 --- /dev/null +++ b/data/scripts/content/SimpleContent30002.lua @@ -0,0 +1,27 @@ + +function onCreate(starterPlayer, contentArea, director) + + yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5); + stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3); + + mob1 = contentArea:SpawnActor(2205403, "mob1", -3.02+3, 17.35, 14.24, -2.81); + mob2 = contentArea:SpawnActor(2205403, "mob2", -3.02, 17.35, 14.24, -2.81); + mob3 = contentArea:SpawnActor(2205403, "mob3", -3.02-3, 17.35, 14.24, -2.81); + + director:AddMember(starterPlayer); + director:AddMember(director); + director:AddMember(yshtola); + director:AddMember(stahlmann); + director:AddMember(mob1); + director:AddMember(mob2); + director:AddMember(mob3); + + director:StartContentGroup(); + +end + +function onDestroy() + + + +end \ No newline at end of file diff --git a/data/scripts/content/SimpleContent30010.lua b/data/scripts/content/SimpleContent30010.lua new file mode 100644 index 00000000..d78c2935 --- /dev/null +++ b/data/scripts/content/SimpleContent30010.lua @@ -0,0 +1,30 @@ + +function onCreate(starterPlayer, contentArea, director) + + papalymo = contentArea:SpawnActor(2290005, "papalymo", 365.89, 4.0943, -706.72, -0.718); + yda = contentArea:SpawnActor(2290006, "yda", 365.266, 4.122, -700.73, 1.5659); + yda:ChangeState(2); + + mob1 = contentArea:SpawnActor(2201407, "mob1", 374.427, 4.4, -698.711, -1.942); + mob2 = contentArea:SpawnActor(2201407, "mob2", 375.377, 4.4, -700.247, -1.992); + mob3 = contentArea:SpawnActor(2201407, "mob3", 375.125, 4.4, -703.591, -1.54); + + openingStoper = contentArea:SpawnActor(1090384, "openingstoper", 356.09, 3.74, -701.62, -1.41); + + director:AddMember(starterPlayer); + director:AddMember(director); + director:AddMember(papalymo); + director:AddMember(yda); + director:AddMember(mob1); + director:AddMember(mob2); + director:AddMember(mob3); + + director:StartContentGroup(); + +end + +function onDestroy() + + + +end \ No newline at end of file diff --git a/data/scripts/content/SimpleContent30079.lua b/data/scripts/content/SimpleContent30079.lua new file mode 100644 index 00000000..1e40131c --- /dev/null +++ b/data/scripts/content/SimpleContent30079.lua @@ -0,0 +1,26 @@ + +function onCreate(starterPlayer, contentArea, director) + + niellefresne = contentArea:SpawnActor(2290003, "niellefresne", -11.86, 192, 35.06, -0.8); + thancred = contentArea:SpawnActor(2290004, "thancred", -26.41, 192, 39.52, 1.2); + thancred:ChangeState(2); + + mob1 = contentArea:SpawnActor(2203301, "mob1", -6.193, 192, 47.658, -2.224); + + openingStoper = contentArea:SpawnActor(1090385, "openingstoper", -24.34, 192, 34.22, 0); + + director:AddMember(starterPlayer); + director:AddMember(director); + director:AddMember(niellefresne); + director:AddMember(thancred); + director:AddMember(mob1); + + director:StartContentGroup(); + +end + +function onDestroy() + + + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/GuildleveCommon.lua b/data/scripts/directors/Guildleve/GuildleveCommon.lua new file mode 100644 index 00000000..489cbe9b --- /dev/null +++ b/data/scripts/directors/Guildleve/GuildleveCommon.lua @@ -0,0 +1,54 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleSweepNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + guildleveData = GetGuildleveGamedata(thisDirector.guildleveId); + members = thisDirector:GetPlayerMembers(); + + if (members ~= nil and #members ~= 0) then + player = members[0]; + player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..." + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); + end + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + if (members ~= nil and #members ~= 0) then + player = members[0]; + + player:ChangeMusic(22); + attentionMessage(player, 50022, thisDirector.guildleveId, thisDirector.selectedDifficulty, 0); + player:SendGameMessage(GetWorldMaster(), 50026, 0x20, guildleveData.timeLimit); + end + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end + +function attentionMessage(player, textId, ...) + player:SendGameMessage(GetWorldMaster(), textId, 0x20, ...); + player:SendDataPacket("attention", GetWorldMaster(), "", textId, ...); +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua new file mode 100644 index 00000000..35a5a693 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleChaseNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua new file mode 100644 index 00000000..4e138ef0 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleDetectNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua new file mode 100644 index 00000000..683a0d34 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua @@ -0,0 +1,26 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId + +function init() + return "/Director/Guildleve/PrivateGLBattleGatherNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua new file mode 100644 index 00000000..f165cea4 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleHuntNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua new file mode 100644 index 00000000..2d5a6348 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua @@ -0,0 +1,42 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleOrbNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + wait(3); + thisDirector:UpdateAimNumNow(0, 4); + + wait(2); + + thisDirector:EndGuildleve(true); + + wait(30); + player:SendGameMessage(GetWorldMaster(), 50033, 0x20); + thisDirector:EndDirector(); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua new file mode 100644 index 00000000..77bc5046 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleRoundNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua new file mode 100644 index 00000000..f8eaa791 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleSurviveNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua new file mode 100644 index 00000000..c5c07150 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua @@ -0,0 +1,35 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleSweepNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + + wait(3); + thisDirector:EndGuildleve(true); + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua new file mode 100644 index 00000000..e3de1b2a --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua @@ -0,0 +1,48 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--50101: This is a tutorial covering regional levequests for Disciples of War and Disciples of Magic. +--50102: The general location of your target can be determined by using the minimap. +--50105: Your target is nearby. Proceed with the levequest objectives. +--50107: This levequest asks that you exterminate a total of [@VALUE($E8(1))] targets. Try finding the next one. +--50110: Defeating targets will sometimes earn you experience points. +--50112: An aetherial node will appear when levequest objectives have been met. Try approaching it. +--50114: Use the node to collect your reward and teleport back to the starting location of the levequest. + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleTutorial", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + + wait(3); + thisDirector:EndGuildleve(true); + +end + +function attentionMessage(player, textId, ...) + player:SendGameMessage(GetWorldMaster(), textId, 0x20, args); + player:SendDataPacket("attention", GetWorldMaster(), "", textId, args); +end diff --git a/data/scripts/directors/OpeningDirector.lua b/data/scripts/directors/OpeningDirector.lua new file mode 100644 index 00000000..b9952fad --- /dev/null +++ b/data/scripts/directors/OpeningDirector.lua @@ -0,0 +1,70 @@ +require ("global") +require ("quests/man/man0l0") +require ("quests/man/man0g0") +require ("quests/man/man0u0") + +function init() + return "/Director/OpeningDirector"; +end + +function onEventStarted(player, actor, triggerName) + + if (player:HasQuest(110001) == true) then + quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, quest, "processTtrNomal001withHQ", nil, nil, nil); + elseif (player:HasQuest(110005) == true) then + quest = player:GetQuest("Man0g0"); + callClientFunction(player, "delegateEvent", player, quest, "processTtrNomal001withHQ", nil, nil, nil); + elseif (player:HasQuest(110009) == true) then + quest = player:GetQuest("Man0u0"); + callClientFunction(player, "delegateEvent", player, quest, "processTtrNomal001withHQ", nil, nil, nil); + end + + player:EndEvent(); + +end + +function onUpdate() +end + +function onTalkEvent(player, npc) +; + if (player:HasQuest(110001) == true) then + man0l0Quest = player:GetQuest("man0l0"); + + if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE1) == true and man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE2) == true and man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE3) == true) then + doorNpc = GetWorldManager():GetActorInWorldByUniqueId("exit_door"); + player:SetEventStatus(doorNpc, "pushDefault", true, 0x2); + doorNpc:SetQuestGraphic(player, 0x3); + end + elseif (player:HasQuest(110005) == true) then + man0g0Quest = player:GetQuest("man0g0"); + if (man0g0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == true and man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == false) then + papalymo = GetWorldManager():GetActorInWorldByUniqueId("papalymo"); + papalymo:SetQuestGraphic(player, 0x2); + elseif (man0g0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == true and man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then + yda = GetWorldManager():GetActorInWorldByUniqueId("yda"); + yda:SetQuestGraphic(player, 0x2); + end + elseif (player:HasQuest(110009) == true) then + man0u0Quest = player:GetQuest("man0u0"); + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then + exitTriggerNpc = GetWorldManager():GetActorInWorldByUniqueId("exit_trigger"); + player:SetEventStatus(exitTriggerNpc, "pushDefault", true, 0x2); + exitTriggerNpc:SetQuestGraphic(player, 0x2); + end + end + +end + +function onPushEvent(player, npc) +end + +function onCommandEvent(player, command) +end + +function onEventUpdate(player, npc) +end + +function onCommand(player, command) +end \ No newline at end of file diff --git a/data/scripts/directors/Quest/QuestDirectorMan0g001.lua b/data/scripts/directors/Quest/QuestDirectorMan0g001.lua new file mode 100644 index 00000000..ebb44989 --- /dev/null +++ b/data/scripts/directors/Quest/QuestDirectorMan0g001.lua @@ -0,0 +1,82 @@ +require ("global") +require ("tutorial") +require ("quests/man/man0g0") + +--processTtrBtl001: Active Mode Tutorial +--processTtrBtl002: Targetting Tutorial (After active mode done) + +function init() + return "/Director/Quest/QuestDirectorMan0g001"; +end + +function onEventStarted(player, actor, triggerName) + + man0g0Quest = player:GetQuest("Man0g0"); + startTutorialMode(player); + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrBtl001", nil, nil, nil); + player:EndEvent(); + waitForSignal("playerActive"); + wait(1); --If this isn't here, the scripts bugs out. TODO: Find a better alternative. + kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrBtl002", nil, nil, nil); + player:EndEvent(); + wait(4); + closeTutorialWidget(player); + showTutorialSuccessWidget(player, 9055); --Open TutorialSuccessWidget for attacking enemy + wait(3); + openTutorialWidget(player, CONTROLLER_KEYBOARD, TUTORIAL_TP); + wait(5); + closeTutorialWidget(player); + openTutorialWidget(player, CONTROLLER_KEYBOARD, TUTORIAL_WEAPONSKILLS); + wait(4); --Should be wait for weaponskillUsed signal + closeTutorialWidget(player); + showTutorialSuccessWidget(player, 9065); --Open TutorialSuccessWidget for weapon skill + + wait(6); --Should be wait for mobkill + worldMaster = GetWorldMaster(); + player:SendDataPacket("attention", worldMaster, "", 51073, 2); + wait(7); + player:ChangeMusic(7); + player:ChangeState(0); + kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent020_1", nil, nil, nil); + + --[[ + IF DoW: + OpenWidget (TP) + IF TP REACHED: + CloseWidget + OpenWidget (WS) + IF WS USED: + Success + CloseWidget + ELSE MAGIC: + OpenWidget (DEFEAT ENEMY) + ]] + + man0g0Quest:NextPhase(10); + player:EndEvent(); + + GetWorldManager():DoZoneChange(player, 155, "PrivateAreaMasterPast", 1, 15, 175.38, -1.21, -1156.51, -2.1); + +end + +function onUpdate() +end + +function onTalkEvent(player, npc) + +end + +function onPushEvent(player, npc) +end + +function onCommandEvent(player, command) + +end + +function onEventUpdate(player, npc) +end + +function onCommand(player, command) +end \ No newline at end of file diff --git a/data/scripts/directors/Quest/QuestDirectorMan0l001.lua b/data/scripts/directors/Quest/QuestDirectorMan0l001.lua new file mode 100644 index 00000000..f26b1094 --- /dev/null +++ b/data/scripts/directors/Quest/QuestDirectorMan0l001.lua @@ -0,0 +1,79 @@ +require ("global") +require ("tutorial") +require ("quests/man/man0l0") + +function init() + return "/Director/Quest/QuestDirectorMan0l001"; +end + +function onCreateContentArea(players, director, contentArea, contentGroup) + + yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5); + stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3); + + mob1 = contentArea:SpawnActor(2205403, "mob1", -3.02+3, 17.35, 14.24, -2.81); + mob2 = contentArea:SpawnActor(2205403, "mob2", -3.02, 17.35, 14.24, -2.81); + mob3 = contentArea:SpawnActor(2205403, "mob3", -3.02-3, 17.35, 14.24, -2.81); + + contentGroup:AddMember(player); + contentGroup:AddMember(director); + contentGroup:AddMember(yshtola); + contentGroup:AddMember(stahlmann); + contentGroup:AddMember(mob1); + contentGroup:AddMember(mob2); + contentGroup:AddMember(mob3); + +end + +function onEventStarted(player, director, triggerName) + + man0l0Quest = player:GetQuest("Man0l0"); + startTutorialMode(player); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrBtl001", nil, nil, nil); + player:EndEvent(); + waitForSignal("playerActive"); + wait(1); --If this isn't here, the scripts bugs out. TODO: Find a better alternative. + kickEventContinue(player, director, "noticeEvent", "noticeEvent"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrBtl002", nil, nil, nil); + player:EndEvent(); + wait(4); + closeTutorialWidget(player); + showTutorialSuccessWidget(player, 9055); --Open TutorialSuccessWidget for attacking enemy + wait(3); + openTutorialWidget(player, CONTROLLER_KEYBOARD, TUTORIAL_TP); + wait(5); + closeTutorialWidget(player); + openTutorialWidget(player, CONTROLLER_KEYBOARD, TUTORIAL_WEAPONSKILLS); + wait(4); --Should be wait for weaponskillUsed signal + closeTutorialWidget(player); + showTutorialSuccessWidget(player, 9065); --Open TutorialSuccessWidget for weapon skill + + wait(6); --Should be wait for mobkill + worldMaster = GetWorldMaster(); + player:SendDataPacket("attention", worldMaster, "", 51073, 1); + wait(7); + player:ChangeMusic(7); + player:ChangeState(0); + kickEventContinue(player, director, "noticeEvent", "noticeEvent"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent000_3", nil, nil, nil); + + --[[ + IF DoW: + OpenWidget (TP) + IF TP REACHED: + CloseWidget + OpenWidget (WS) + IF WS USED: + Success + CloseWidget + ELSE MAGIC: + OpenWidget (DEFEAT ENEMY) + ]] + + man0l0Quest:NextPhase(10); + player:EndEvent(); + + player:GetZone():ContentFinished(); + GetWorldManager():DoZoneChange(player, 230, "PrivateAreaMasterPast", 1, 15, -826.868469, 6, 193.745865, -0.008368492); + +end diff --git a/data/scripts/directors/Quest/QuestDirectorMan0u001.lua b/data/scripts/directors/Quest/QuestDirectorMan0u001.lua new file mode 100644 index 00000000..04b4c864 --- /dev/null +++ b/data/scripts/directors/Quest/QuestDirectorMan0u001.lua @@ -0,0 +1,64 @@ +require ("global") +require ("tutorial") +require ("quests/man/man0u0") + +--processTtrBtl001: Active Mode Tutorial +--processTtrBtl002: Targetting Tutorial (After active mode done) +--processTtrBtl003: Auto Attack Done +--processTtrBtl004: Tutorial Complete + +function init() + return "/Director/Quest/QuestDirectorMan0u001"; +end + +function onEventStarted(player, actor, triggerName) + + man0u0Quest = player:GetQuest("Man0u0"); + startTutorialMode(player); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBtl001", nil, nil, nil); + player:EndEvent(); + waitForSignal("playerActive"); + wait(1); --If this isn't here, the scripts bugs out. TODO: Find a better alternative. + kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBtl002", nil, nil, nil); + player:EndEvent(); + wait(4); + closeTutorialWidget(player); + showTutorialSuccessWidget(player, 9055); --Open TutorialSuccessWidget for attacking enemy + wait(3); + openTutorialWidget(player, CONTROLLER_KEYBOARD, TUTORIAL_TP); + wait(5); + closeTutorialWidget(player); + openTutorialWidget(player, CONTROLLER_KEYBOARD, TUTORIAL_WEAPONSKILLS); + wait(4); --Should be wait for weaponskillUsed signal + closeTutorialWidget(player); + showTutorialSuccessWidget(player, 9065); --Open TutorialSuccessWidget for weapon skill + + wait(6); --Should be wait for mobkill + worldMaster = GetWorldMaster(); + player:SendDataPacket("attention", worldMaster, "", 51073, 3); + wait(7); + player:ChangeMusic(7); + player:ChangeState(0); + kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020", nil, nil, nil); + + --[[ + IF DoW: + OpenWidget (TP) + IF TP REACHED: + CloseWidget + OpenWidget (WS) + IF WS USED: + Success + CloseWidget + ELSE MAGIC: + OpenWidget (DEFEAT ENEMY) + ]] + + man0u0Quest:NextPhase(10); + player:EndEvent(); + + player:GetZone():ContentFinished(); + GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); +end diff --git a/data/scripts/directors/questDirect_fst0Btl03_01@0A615.lua b/data/scripts/directors/questDirect_fst0Btl03_01@0A615.lua deleted file mode 100644 index d0e05e82..00000000 --- a/data/scripts/directors/questDirect_fst0Btl03_01@0A615.lua +++ /dev/null @@ -1,21 +0,0 @@ - -function onEventStarted(player, actor, triggerName) - - man0g0Quest = GetStaticActor("Man0g0"); - --player:RunEventFunction("delegateEvent", player, man0g0Quest, "processTtrBtl001"); - player:RunEventFunction("delegateEvent", player, man0g0Quest, "processTtrBtl002"); - -end - -function onEventUpdate(player, npc, resultId) - --man0g0Quest = GetStaticActor("Man0g0"); - --player:RunEventFunction("delegateEvent", player, man0g0Quest, "processTtrBtl002"); - player:EndEvent(); -end - -function onCommand(player, command) - --Check command if ActivateCommand - player:EndCommand(); - player:EndEvent(); - player:KickEvent(player:GetDirector(), "noticeEvent", true); -end \ No newline at end of file diff --git a/data/scripts/directors/questDirect_ocn0Btl02_01@0C196.lua b/data/scripts/directors/questDirect_ocn0Btl02_01@0C196.lua deleted file mode 100644 index 16c94682..00000000 --- a/data/scripts/directors/questDirect_ocn0Btl02_01@0C196.lua +++ /dev/null @@ -1,25 +0,0 @@ - -function onEventStarted(player, actor, triggerName) - - man0u0Quest = GetStaticActor("Man0u0"); - man0l0Quest = GetStaticActor("Man0l0"); - player:RunEventFunction("delegateEvent", player, man0l0Quest, "processTtrBtl001"); - --player:RunEventFunction("delegateEvent", player, man0l0Quest, "processTtrBtlMagic001"); - --player:RunEventFunction("delegateEvent", player, man0l0Quest, "processTtrBtl002"); - --player:RunEventFunction("delegateEvent", player, man0l0Quest, "processTtrBtl003"); - - --player:RunEventFunction("delegateEvent", player, man0u0Quest, "processTtrBtl004"); - -end - -function onEventUpdate(player, npc, resultId) - --man0l0Quest = GetStaticActor("Man0l0"); - --player:RunEventFunction("delegateEvent", player, man0l0Quest, "processTtrBtl002"); - player:EndEvent(); -end - -function onCommand(player, command) - --Check command if ActivateCommand - --player:KickEvent(player:GetDirector(), "noticeEvent"); - --player:EndCommand(); -end \ No newline at end of file diff --git a/data/scripts/global.lua b/data/scripts/global.lua index 48f2cfe6..1d2e68da 100644 --- a/data/scripts/global.lua +++ b/data/scripts/global.lua @@ -71,12 +71,29 @@ CHOCOBO_ULDAH4 = 0x40; --UTILS +function kickEventContinue(player, actor, trigger, ...) + player:kickEvent(actor, trigger, ...); + return coroutine.yield("_WAIT_EVENT", player); +end + function callClientFunction(player, functionName, ...) - player:RunEventFunction(functionName, ...); - result = coroutine.yield(); + player:RunEventFunction(functionName, ...); + result = coroutine.yield("_WAIT_EVENT", player); return result; end +function wait(seconds) + return coroutine.yield("_WAIT_TIME", seconds); +end + +function waitForSignal(signal) + return coroutine.yield("_WAIT_SIGNAL", signal); +end + +function sendSignal(signal) + GetLuaInstance():OnSignal(signal); +end + function printf(s, ...) if ... then print(s:format(...)); diff --git a/data/scripts/guildleve.lua b/data/scripts/guildleve.lua new file mode 100644 index 00000000..df4ecbc5 --- /dev/null +++ b/data/scripts/guildleve.lua @@ -0,0 +1,32 @@ +--[[ + +Guildleve constants and functions + +--]] + +--Helper functions + +function glBorderIconIDToAnimID(iconId) + return iconId - 20000; +end + +function glPlateIconIDToAnimID(iconId) + return iconId - 20020; +end + +function getGLStartAnimationFromSheet(border, plate, isBoost) + return getGLStartAnimation(glBorderIconIDToAnimID(border), glPlateIconIDToAnimID(plate), isBoost); +end + +function getGLStartAnimation(border, plate, isBoost) + borderBits = border; + plateBits = bit32.lshift(plate, 7); + + if (isBoost) then + boostBits = 0x8000; --1 shifted 15 left + else + boostBits = 0x0; + end + + return bit32.bor(0x0B000000, boostBits, plateBits, borderBits); +end \ No newline at end of file diff --git a/data/scripts/player.lua b/data/scripts/player.lua index c07da19a..d7939b20 100644 --- a/data/scripts/player.lua +++ b/data/scripts/player.lua @@ -1,60 +1,77 @@ local initClassItems, initRaceItems; function onBeginLogin(player) - --[[ + --New character, set the initial quest if (player:GetPlayTime(false) == 0) then initialTown = player:GetInitialTown(); if (initialTown == 1 and player:HasQuest(110001) == false) then - player:AddQuest(110001); + player:AddQuest(110001); + player:SetHomePoint(1280001); elseif (initialTown == 2 and player:HasQuest(110005) == false) then player:AddQuest(110005); + player:SetHomePoint(1280061); elseif (initialTown == 3 and player:HasQuest(110009) == false) then player:AddQuest(110009); - end + player:SetHomePoint(1280031); + end end --For Opening. Set Director and reset position incase d/c - if (player:HasQuest(110001) == true) then - --player:SetDirector("openingDirector", false); + if (player:HasQuest(110001) == true and player:GetZoneID() == 193) then + director = player:GetZone():CreateDirector("OpeningDirector", false); + player:AddDirector(director); + director:StartDirector(true); + player:SetLoginDirector(director); + player:KickEvent(director, "noticeEvent", true); + player.positionX = 0.016; player.positionY = 10.35; - --player.positionZ = -36.91; - player.positionZ = -20.91; + player.positionZ = -36.91; player.rotation = 0.025; player:GetQuest(110001):ClearQuestData(); player:GetQuest(110001):ClearQuestFlags(); - elseif (player:HasQuest(110005) == true) then - player:SetDirector("openingDirector", false); + elseif (player:HasQuest(110005) == true and player:GetZoneID() == 166) then + director = player:GetZone():CreateDirector("OpeningDirector", false); + player:AddDirector(director); + director:StartDirector(false); + player:SetLoginDirector(director); + player:KickEvent(director, "noticeEvent", true); + player.positionX = 369.5434; player.positionY = 4.21; player.positionZ = -706.1074; player.rotation = -1.26721; player:GetQuest(110005):ClearQuestData(); player:GetQuest(110005):ClearQuestFlags(); - elseif (player:HasQuest(110009) == true) then - player:SetDirector("openingDirector", false); + elseif (player:HasQuest(110009) == true and player:GetZoneID() == 184) then + --director = player:GetZone():CreateDirector("OpeningDirector", false); + --player:AddDirector(director); + --director:StartDirector(false); + --player:SetLoginDirector(director); + --player:KickEvent(director, "noticeEvent", true); + -- player.positionX = 5.364327; player.positionY = 196.0; player.positionZ = 133.6561; player.rotation = -2.849384; player:GetQuest(110009):ClearQuestData(); player:GetQuest(110009):ClearQuestFlags(); - end - --]] + end end function onLogin(player) - player:SendMessage(0x1D,"",">Callback \"onLogin\" for player script:Running."); - + if (player:GetPlayTime(false) == 0) then player:SendMessage(0x1D,"",">PlayTime == 0, new player!"); initClassItems(player); - initRaceItems(player); + initRaceItems(player); + + player:SavePlayTime(); end end diff --git a/data/scripts/quests/etc/etc3g0.lua b/data/scripts/quests/etc/etc3g0.lua new file mode 100644 index 00000000..4e83d1b7 --- /dev/null +++ b/data/scripts/quests/etc/etc3g0.lua @@ -0,0 +1,61 @@ +-- Level requirement is 5 on any class. Set to 1 for testing +-- TODO: Reward handling + +--Actor Scripts +--unique/fst0Town01a/PopulaceStandard/kinnison +--unique/fst0Town01a/PopulaceStandard/mestonnaux +--unique/fst0Town01a/PopulaceStandard/sybell +--unique/fst0Town01a/PopulaceStandard/khuma_moshroca +--unique/fst0Town01a/PopulaceStandard/lefwyne +--unique/fst0Town01a/PopulaceStandard/nellaure + + +--Quest Flags +FLAG_TALKED_MESTONNAUX = 0; +FLAG_TALKED_SYBELL = 1; +FLAG_TALKED_NELLAURE = 2; +FLAG_TALKED_KHUMA_MOSHROCA = 4; +FLAG_TALKED_LEFWYNE = 8; + +function checkNextPhase(player) + ownedQuest = player:GetQuest("Etc3g0"); + if ( + ownedQuest:GetQuestFlag(FLAG_TALKED_MESTONNAUX) == true and + ownedQuest:GetQuestFlag(FLAG_TALKED_SYBELL) == true and + ownedQuest:GetQuestFlag(FLAG_TALKED_NELLAURE) == true and + ownedQuest:GetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA) == true and + ownedQuest:GetQuestFlag(FLAG_TALKED_LEFWYNE) == true + ) then + ownedQuest:NextPhase(243); + end +end + + +function canAcceptQuest(player) + return (player:HasQuest("Etc3g0") == false and player:IsQuestCompleted("Etc3g0") == false and player:GetHighestLevel() >= 1); +end + +function isObjectivesComplete(player, quest) + return (quest:GetPhase() == 243); +end + + +function onAbandonQuest(player, quest) + kinnison = GetWorldManager():GetActorInWorldByUniqueId("kinnison"); + mestonnaux = GetWorldManager():GetActorInWorldByUniqueId("mestonnaux"); + sybell = GetWorldManager():GetActorInWorldByUniqueId("sybell"); + khuma_moshroca = GetWorldManager():GetActorInWorldByUniqueId("khuma_moshroca"); + lefwyne = GetWorldManager():GetActorInWorldByUniqueId("lefwyne"); + nellaure = GetWorldManager():GetActorInWorldByUniqueId("nellaure"); + + if (kinnison ~= nil and canAcceptQuest(player)) then + kinnison:SetQuestGraphic(player, 0x2); + end + + if (mestonnaux ~= nil) then mestonnaux:SetQuestGraphic(player, 0x0); end + if (sybell ~= nil) then sybell:SetQuestGraphic(player, 0x0); end + if (khuma_moshroca ~= nil) then khuma_moshroca:SetQuestGraphic(player, 0x0); end + if (lefwyne ~= nil) then lefwyne:SetQuestGraphic(player, 0x0); end + if (nellaure ~= nil) then nellaure:SetQuestGraphic(player, 0x0); end + +end diff --git a/data/scripts/quests/etc/etc5g0.lua b/data/scripts/quests/etc/etc5g0.lua new file mode 100644 index 00000000..4e948be7 --- /dev/null +++ b/data/scripts/quests/etc/etc5g0.lua @@ -0,0 +1,21 @@ +--Quest Flags +TALKED_PFARAHR = 0; + +function canAcceptQuest(player) + return (player:HasQuest("etc5g0") == false and player:IsQuestCompleted("Etc5g0") == false and player:GetHighestLevel() >= 1); +end + +function isObjectivesComplete(player, quest) + return (quest:GetPhase() == 2); +end + +function onAbandonQuest(player, quest) + vkorolon = GetWorldManager():GetActorInWorldByUniqueId("vkorolon"); + pfarahr = GetWorldManager():GetActorInWorldByUniqueId("pfarahr"); + if (vkorolon ~= nil and canAcceptQuest(player)) then + vkorolon:SetQuestGraphic(player, 0x2); + end + if (pfarahr ~= nil) then + pfarahr:SetQuestGraphic(player, 0x0); + end +end \ No newline at end of file diff --git a/data/scripts/quests/man/man0g0.lua b/data/scripts/quests/man/man0g0.lua index e237eb10..833c8ec4 100644 --- a/data/scripts/quests/man/man0g0.lua +++ b/data/scripts/quests/man/man0g0.lua @@ -1,7 +1,3 @@ --Quest Flags -MAN0G0_FLAG_TUTORIAL1_DONE = 0; -MAN0G0_FLAG_TUTORIAL2_DONE = 1; - -MAN0G0_FLAG_MINITUT_DONE1 = 4; -MAN0G0_FLAG_MINITUT_DONE2 = 8; -MAN0G0_FLAG_MINITUT_DONE3 = 16; +MAN0L0_FLAG_STARTED_TALK_TUT = 0; +MAN0G0_FLAG_MINITUT_DONE1 = 1; diff --git a/data/scripts/quests/man/man0l0.lua b/data/scripts/quests/man/man0l0.lua index e99d8b48..23bb4dbd 100644 --- a/data/scripts/quests/man/man0l0.lua +++ b/data/scripts/quests/man/man0l0.lua @@ -1,13 +1,7 @@ --Quest Flags -MAN0L0_FLAG_TUTORIAL1_DONE = 0; -MAN0L0_FLAG_TUTORIAL2_DONE = 1; -MAN0L0_FLAG_TUTORIAL3_DONE = 2; +MAN0L0_FLAG_STARTED_TALK_TUT = 0; MAN0L0_FLAG_MINITUT_DONE1 = 4; MAN0L0_FLAG_MINITUT_DONE2 = 8; -MAN0L0_FLAG_MINITUT_DONE3 = 16; - ---Result Unique Ids -RESULT_Event000_1 = 0x2B9EBC42; -RESULT_TtrNomal001 = 0x8649D125; \ No newline at end of file +MAN0L0_FLAG_MINITUT_DONE3 = 16; \ No newline at end of file diff --git a/data/scripts/quests/man/man0u0.lua b/data/scripts/quests/man/man0u0.lua index 98d01bdd..db6829d3 100644 --- a/data/scripts/quests/man/man0u0.lua +++ b/data/scripts/quests/man/man0u0.lua @@ -1,6 +1,7 @@ --Quest Flags MAN0U0_FLAG_TUTORIAL1_DONE = 0; MAN0U0_FLAG_TUTORIAL2_DONE = 1; +MAN0U0_FLAG_TUTORIAL3_DONE = 2; MAN0U0_FLAG_MINITUT_DONE1 = 4; MAN0U0_FLAG_MINITUT_DONE2 = 8; diff --git a/data/scripts/tutorial.lua b/data/scripts/tutorial.lua new file mode 100644 index 00000000..8eb5170f --- /dev/null +++ b/data/scripts/tutorial.lua @@ -0,0 +1,55 @@ +--[[ + +Tutorial constants and functions + +--]] + +--Controller Types +CONTROLLER_KEYBOARD = 1; +CONTROLLER_GAMEPAD = 2; + +--Tutorial Widget Ids + +TUTORIAL_CAMERA = 1; +TUTORIAL_MOVING = 2; +TUTORIAL_TARGETING_FRIENDLY = 3; +TUTORIAL_TALKING = 4; +TUTORIAL_MAINMENU = 5; +TUTORIAL_ACTIVEMODE = 6; +TUTORIAL_TARGETING_ENEMY = 7; +TUTORIAL_ENGAGECOMBAT = 8; +TUTORIAL_BATTLEACTIONS = 9; +TUTORIAL_CASTING = 10; +TUTORIAL_ACTIONS = 11; +TUTORIAL_TP = 12; +TUTORIAL_WEAPONSKILLS = 13; +TUTORIAL_NPCS = 14; +TUTORIAL_NPCLS = 15; +TUTORIAL_JOURNAL = 16; +TUTORIAL_DEFEATENEMY = 18; + +--Helper functions + +function showTutorialSuccessWidget(player, textId) + player:SendDataPacket(2, nil, nil, textId); +end + +function openTutorialWidget(player, controllerType, widgetId) + --Default to keyboard if somethings fucky + if (controllerType ~= CONTROLLER_GAMEPAD) then + controllerType = CONTROLLER_KEYBOARD; + end + player:SendDataPacket(4, nil, nil, controllerType, widgetId); +end + +function closeTutorialWidget(player) + player:SendDataPacket(5); +end + +function startTutorialMode(player) + player:SendDataPacket(9); +end + +function endTutorialMode(player) + player:SendDataPacket(7); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Battle03/Director/opening_director.lua b/data/scripts/unique/fst0Battle03/Director/opening_director.lua deleted file mode 100644 index cc50d59a..00000000 --- a/data/scripts/unique/fst0Battle03/Director/opening_director.lua +++ /dev/null @@ -1,33 +0,0 @@ -require ("global") -require("/quests/man/man0g0") - -function onEventStarted(player, actor, triggerName) - - man0g0Quest = GetStaticActor("Man0g0"); - callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal001withHQ", nil, nil, nil, nil); - player:EndEvent(); - -end - -function onTalked(player, npc) - - man0g0Quest = player:GetQuest("Man0g0"); - - if (man0g0Quest ~= nil) then - - yda = GetWorldManager():GetActorInWorld(1000009); - papalymo = GetWorldManager():GetActorInWorld(1000010); - - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_TUTORIAL1_DONE) == false) then - yda:SetQuestGraphic(player, 0x0); - papalymo:SetQuestGraphic(player, 0x2); - else - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then - yda:SetQuestGraphic(player, 0x2); - papalymo:SetQuestGraphic(player, 0x0); - end - end - - end - -end \ No newline at end of file diff --git a/data/scripts/unique/fst0Battle03/openingStop_fstBtl03_03@0A600.lua b/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua similarity index 79% rename from data/scripts/unique/fst0Battle03/openingStop_fstBtl03_03@0A600.lua rename to data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua index 28521fac..2d63e9f0 100644 --- a/data/scripts/unique/fst0Battle03/openingStop_fstBtl03_03@0A600.lua +++ b/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua @@ -6,7 +6,7 @@ function onEventStarted(player, npc, triggerName) worldMaster = GetWorldMaster(); player:SendGameMessage(player, worldMaster, 34109, 0x20); elseif (triggerName == "exit") then - GetWorldManager():DoPlayerMoveInZone(player, 5); + GetWorldManager():DoPlayerMoveInZone(player, 356.09, 3.74, -701.62, -1.4); end player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/pplStd_fst0Btl03_01@0A600.lua b/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/pplStd_fst0Btl03_01@0A600.lua deleted file mode 100644 index b40d4247..00000000 --- a/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/pplStd_fst0Btl03_01@0A600.lua +++ /dev/null @@ -1,54 +0,0 @@ -require ("global") -require ("quests/man/man0g0") - -function onSpawn(player, npc) - npc:SetQuestGraphic(player, 0x2); -end - -function onEventStarted(player, npc, triggerName) - man0g0Quest = player:GetQuest("Man0g0"); - - if (man0g0Quest ~= nil) then - - if (triggerName == "pushDefault") then - callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal002", nil, nil, nil); - elseif (triggerName == "talkDefault") then - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_TUTORIAL1_DONE) == false) then - callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal003", nil, nil, nil); - player:SetEventStatus(npc, "pushDefault", false, 0x2); - player:GetDirector():OnTalked(npc); - man0g0Quest:SetQuestFlag(MAN0G0_FLAG_TUTORIAL1_DONE, true); - man0g0Quest:SaveData(); - else - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then - man0g0Quest:SetQuestFlag(MAN0G0_FLAG_TUTORIAL2_DONE, true); - callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent010_1", nil, nil, nil); - else - callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_1", nil, nil, nil); - end - end - end - end - - player:EndEvent(); -end - -function onEventUpdate(player, npc) - - man0g0Quest = player:GetQuest("Man0g0"); - - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_TUTORIAL2_DONE) == true) then - player:EndEvent(); - player:SetDirector("QuestDirectorMan0g001", true); - - worldMaster = GetWorldMaster(); - player:SendGameMessage(player, worldMaster, 34108, 0x20); - player:SendGameMessage(player, worldMaster, 50011, 0x20); - - GetWorldManager():DoPlayerMoveInZone(player, 10); - player:KickEvent(player:GetDirector(), "noticeEvent", true); - else - player:EndEvent(); - end - -end \ No newline at end of file diff --git a/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/pplStd_fst0Btl03_02@0A600.lua b/data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua similarity index 79% rename from data/scripts/unique/fst0Battle03/OpeningStoperF0B1/pplStd_fst0Btl03_02@0A600.lua rename to data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua index 3a6f62f0..eed6a648 100644 --- a/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/pplStd_fst0Btl03_02@0A600.lua +++ b/data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua @@ -6,10 +6,11 @@ function onEventStarted(player, npc, triggerName) if (triggerName == "talkDefault") then if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == false) then - callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_2", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_3", nil, nil, nil); man0g0Quest:SetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1, true); man0g0Quest:SaveData(); - player:GetDirector():OnTalked(npc); + npc:SetQuestGraphic(player, 0x0); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); else callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_2", nil, nil, nil); end diff --git a/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua b/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua new file mode 100644 index 00000000..a82963ad --- /dev/null +++ b/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua @@ -0,0 +1,54 @@ +require ("global") +require ("quests/man/man0g0") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x2); +end + +function onEventStarted(player, npc, triggerName) + man0g0Quest = player:GetQuest("Man0g0"); + + if (man0g0Quest ~= nil) then + + if (triggerName == "pushDefault") then + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal002", nil, nil, nil); + elseif (triggerName == "talkDefault") then + --Is doing talk tutorial? + if (man0g0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == false) then + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal003", nil, nil, nil); + player:SetEventStatus(npc, "pushDefault", false, 0x2); + npc:SetQuestGraphic(player, 0x0); + man0g0Quest:SetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT, true); + man0g0Quest:SaveData(); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); + --Was she talked to after papalymo? + else + if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then + + player:EndEvent(); + + contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0g01", "SimpleContent30010", "Quest/QuestDirectorMan0g001"); + + if (contentArea == nil) then + player:EndEvent(); + return; + end + + director = contentArea:GetContentDirector(); + player:AddDirector(director); + director:StartDirector(false); + + player:KickEvent(director, "noticeEvent", true); + player:SetLoginDirector(director); + + GetWorldManager():DoZoneChangeContent(player, contentArea, 362.4087, 4, -703.8168, 1.5419, 16); + return; + else + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_1", nil, nil, nil); + end + end + end + end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Battle03/zone.lua b/data/scripts/unique/fst0Battle03/zone.lua deleted file mode 100644 index 11ed913d..00000000 --- a/data/scripts/unique/fst0Battle03/zone.lua +++ /dev/null @@ -1,20 +0,0 @@ -require ("global") - -function onZoneInit(zone) -end - -function onZoneIn(player) - - openingQuest = player:getQuest(110005); - - --Opening Quest - if (openingQuest ~= nil) then - if (openingQuest:GetQuestFlag(0) == false) then - player:kickEvent(player:getDirector(), "noticeEvent"); - end - end - -end - -function onZoneOut(zone, player) -end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_bergand_east.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_bergand_east.lua new file mode 100644 index 00000000..b1acc587 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_bergand_east.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3591, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_bergand_north.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_bergand_north.lua new file mode 100644 index 00000000..bcf2a596 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_bergand_north.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3589, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_foolsrest_east.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_foolsrest_east.lua new file mode 100644 index 00000000..970bc859 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_foolsrest_east.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3583, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_foolsrest_west.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_foolsrest_west.lua new file mode 100644 index 00000000..a5f963f0 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_foolsrest_west.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3585, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_joukil.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_joukil.lua new file mode 100644 index 00000000..fcf26478 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_joukil.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3593, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_seraucheforne.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_seraucheforne.lua new file mode 100644 index 00000000..af7464f3 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_seraucheforne.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3587, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_tornsrest.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_tornsrest.lua new file mode 100644 index 00000000..8e8870e9 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_barrier_tornsrest.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3580, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_confessionchamber.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_confessionchamber.lua new file mode 100644 index 00000000..860b05a2 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_confessionchamber.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3444, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_entrance.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_entrance.lua new file mode 100644 index 00000000..a09072a6 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_entrance.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3579, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_executionchamber.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_executionchamber.lua new file mode 100644 index 00000000..bd6e2307 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_executionchamber.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3487, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_interrogatiochamber.lua b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_interrogatiochamber.lua new file mode 100644 index 00000000..37f5ef08 --- /dev/null +++ b/data/scripts/unique/fst0Dungeon03/DoorServer/fstdun3_door_interrogatiochamber.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 313, 3466, true; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PopulaceStandard/pfarahr.lua b/data/scripts/unique/fst0Town01/PopulaceStandard/pfarahr.lua index 44ad9927..5a5d3db2 100644 --- a/data/scripts/unique/fst0Town01/PopulaceStandard/pfarahr.lua +++ b/data/scripts/unique/fst0Town01/PopulaceStandard/pfarahr.lua @@ -1,7 +1,46 @@ require ("global") +require ("quests/etc/etc5g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc5g0") == true and player:GetQuest("Etc5g0"):GetPhase() == 0) then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + +end function onEventStarted(player, npc) defaultFst = GetStaticActor("DftFst"); - callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithPfarahr_001", nil, nil, nil); + quest = player:GetQuest("Etc5g0"); + + result = 1; + if (player:HasQuest("Etc5g0")) then + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + end + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithPfarahr_001", -1, -1); + elseif (result == 2) then + + ownedQuest = player:GetQuest("Etc5g0"); + if (ownedQuest:GetPhase() == 0) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010"); + worldMaster = GetWorldMaster(); + player:SendGameMessage(player, worldMaster, 25225, ownedQuest:GetQuestId()); + player:SendDataPacket("attention", worldMaster, "", 25225, ownedQuest:GetQuestId()); + ownedQuest:NextPhase(1); + npc:SetQuestGraphic(player, 0x0); + vkorolon = GetWorldManager():GetActorInWorldByUniqueId("vkorolon"); + if (vkorolon ~= nil) then + vkorolon:SetQuestGraphic(player, 0x4); + end + else + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_1"); + end + + end + player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua b/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua index e71825bd..a27d1622 100644 --- a/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua +++ b/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua @@ -1,14 +1,66 @@ require ("global") +require ("quests/etc/etc5g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc5g0") == true and player:GetQuest("Etc5g0"):GetPhase() == 1) then + npc:SetQuestGraphic(player, 0x4); + elseif (canAcceptQuest(player)) then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + +end function onEventStarted(player, npc) defaultFst = GetStaticActor("DftFst"); - choice = callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithInn_Desk", nil, nil, nil); + quest = GetStaticActor("Etc5g0"); - if (choice == 1) then - GetWorldManager():DoZoneChange(player, 13); - elseif (choice == 2) then - --Do Set Homepoint - end + result = 1; + + if (player:IsQuestCompleted("Etc5g0") == true) then + result = 0; + else + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + end + + if (result == 0) then + choice = callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithInn_Desk", nil, nil, nil); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 160.048, 0, 154.263, 0); + elseif (choice == 2) then + if (player:GetHomePointInn() ~= 2) then + player:SetHomePointInn(2); + player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 2075); --Secondary homepoint set to the Roost + else + player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint + end + end + elseif (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithVkorolon_001", -1, -1); + elseif (result == 2) then + if (player:HasQuest("Etc5g0") == false) then + offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventVKOROLONStart"); + if (offerQuestResult == 1) then + player:AddQuest("Etc5g0"); + npc:SetQuestGraphic(player, 0x0); + pfarahr = GetWorldManager():GetActorInWorldByUniqueId("pfarahr"); + if (pfarahr ~= nil) then + pfarahr:SetQuestGraphic(player, 0x2); + end + end + elseif (player:GetQuest("Etc5g0"):GetPhase() == 0) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_000_1"); + elseif (player:GetQuest("Etc5g0"):GetPhase() == 1) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_020"); + callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1); + player:CompleteQuest("Etc5g0"); + npc:SetQuestGraphic(player, 0x0); + end + + end player:EndEvent(); diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/DoorStandard/closed_gridania_gate.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/DoorStandard/closed_gridania_gate.lua new file mode 100644 index 00000000..2d1aa509 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/DoorStandard/closed_gridania_gate.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 0x141, 0xb79; +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/cecilia.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/cecilia.lua new file mode 100644 index 00000000..2020bef7 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/cecilia.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g0"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent020_3"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/farrimond.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/farrimond.lua new file mode 100644 index 00000000..774bafb6 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/farrimond.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g0"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent020_4"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gridania_blocker1.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gridania_blocker1.lua new file mode 100644 index 00000000..bd09cea8 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gridania_blocker1.lua @@ -0,0 +1,14 @@ +require ("global") + +function init(player, npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + man0g0Quest = player:GetQuest("Man0g0"); + if (man0g0Quest ~= nil) then + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrBlkNml001", nil, nil, nil); + GetWorldManager():DoZoneChange(player, 155, "PrivateAreaMasterPast", 1, 15, 109.966, 7.559, -1206.117, -2.7916); + end + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gridania_opening_exit.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gridania_opening_exit.lua new file mode 100644 index 00000000..5274c759 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gridania_opening_exit.lua @@ -0,0 +1,16 @@ +require ("global") +require ("quests/man/man0g0") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x3); +end + +function onEventStarted(player, npc) + man0g1Quest = GetStaticActor("Man0g1"); + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100"); + player:ReplaceQuest(110005, 110006); + player:SendGameMessage(GetStaticActor("Man0g1"), 353, 0x20); + player:SendGameMessage(GetStaticActor("Man0g1"), 354, 0x20); + GetWorldManager():DoZoneChange(player, 155, "PrivateAreaMasterPast", 2, 15, 67.034, 4, -1205.6497, -1.074); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lonsygg.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lonsygg.lua new file mode 100644 index 00000000..2d9f2391 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lonsygg.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g0Quest = player:GetQuest("Man0g0"); + + if (man0g0Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent020_6"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/swethyna.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/swethyna.lua new file mode 100644 index 00000000..079aae45 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/swethyna.lua @@ -0,0 +1,15 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g0"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent020_2"); + + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/tkebbe.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/tkebbe.lua new file mode 100644 index 00000000..a5212001 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/tkebbe.lua @@ -0,0 +1,19 @@ +require ("global") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x2); +end + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g0"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent020_5"); + npc:SetQuestGraphic(player, 0x0); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/amiable_adventurer.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/amiable_adventurer.lua new file mode 100644 index 00000000..41ab9100 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/amiable_adventurer.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_3"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/beaming_adventurer.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/beaming_adventurer.lua new file mode 100644 index 00000000..12bf087b --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/beaming_adventurer.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_6"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/miounne.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/miounne.lua new file mode 100644 index 00000000..4d5e8d23 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/miounne.lua @@ -0,0 +1,26 @@ +require ("global") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x2); +end + +function onEventStarted(player, npc, triggerName) + local man0g1Quest = player:GetQuest("Man0g1"); + local pos = player:GetPos(); + + if (man0g1Quest ~= nil) then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent110"); + player:EndEvent(); + + --[[director = player:GetZone():CreateDirector("AfterQuestWarpDirector"); + player:KickEvent(director, "noticeEvent", true); + player:AddDirector(director); + player:SetLoginDirector(director); + --]] + GetWorldManager():DoZoneChange(player, 155, nil, 0, 15, pos[0], pos[1], pos[2], pos[3]); + return; + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/morose_merchant.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/morose_merchant.lua new file mode 100644 index 00000000..b5a2a206 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/morose_merchant.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_2"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/narrow-eyed_adventurer.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/narrow-eyed_adventurer.lua new file mode 100644 index 00000000..bd46a003 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/narrow-eyed_adventurer.lua @@ -0,0 +1,15 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_7"); + + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/unconcerned_passerby.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/unconcerned_passerby.lua new file mode 100644 index 00000000..2e0184aa --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/unconcerned_passerby.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_9"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/vkorolon.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/vkorolon.lua new file mode 100644 index 00000000..7d4b1bf9 --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/vkorolon.lua @@ -0,0 +1,8 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + defaultFst = GetStaticActor("DftFst"); + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithVkorolon_001"); + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/well-bundled_adventurer.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/well-bundled_adventurer.lua new file mode 100644 index 00000000..02da345a --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/well-bundled_adventurer.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_4"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/wispily_whiskered_woodworker.lua b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/wispily_whiskered_woodworker.lua new file mode 100644 index 00000000..aaab2b9c --- /dev/null +++ b/data/scripts/unique/fst0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/wispily_whiskered_woodworker.lua @@ -0,0 +1,14 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0g1Quest = player:GetQuest("Man0g1"); + + if (man0g1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0g1Quest, "processEvent100_8"); + end + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01a/DoorStandard/guild_cnj.lua b/data/scripts/unique/fst0Town01a/DoorStandard/guild_cnj.lua index e957714e..5a29b9d2 100644 --- a/data/scripts/unique/fst0Town01a/DoorStandard/guild_cnj.lua +++ b/data/scripts/unique/fst0Town01a/DoorStandard/guild_cnj.lua @@ -1,3 +1,3 @@ function init(npc) - return false, false, 0, 0, 0x141, 0xB85; + return false, false, 0, 0, 0x14b, 0x14aa; end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/dyrstbrod.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/dyrstbrod.lua new file mode 100644 index 00000000..1ea2fcd3 --- /dev/null +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/dyrstbrod.lua @@ -0,0 +1,7 @@ +require ("global") + +function onEventStarted(player, npc) + defaultFst = GetStaticActor("DftFst"); + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithDyrstbrod_001", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/khuma_moshroca.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/khuma_moshroca.lua index ee4e5bfe..06ffc4b7 100644 --- a/data/scripts/unique/fst0Town01a/PopulaceStandard/khuma_moshroca.lua +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/khuma_moshroca.lua @@ -1,7 +1,54 @@ require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then + if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA) == false then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + else + npc:SetQuestGraphic(player, 0x0); + end + +end + + function onEventStarted(player, npc) - defaultFst = GetStaticActor("DftFst"); - callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKhumamoshroca_001", nil, nil, nil); + + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + if (player:HasQuest("Etc3g0") == true) then + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKhumamoshroca_001", nil, nil, nil); + elseif (result == 2) then + ownedQuest = player:GetQuest("Etc3g0"); + + if (ownedQuest:GetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA)) == false then + callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeak", nil, nil, nil); + ownedQuest:SetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA, true); + ownedQuest:SaveData(); + npc:SetQuestGraphic(player, 0x0); + checkNextPhase(player); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeakAfter", nil, nil, nil); + end + end + + else + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKhumamoshroca_001", nil, nil, nil); + end + player:endEvent(); -end \ No newline at end of file + +end + + + diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua new file mode 100644 index 00000000..ce82ccd3 --- /dev/null +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua @@ -0,0 +1,66 @@ +require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 243) then + npc:SetQuestGraphic(player, 0x4); + elseif (canAcceptQuest(player)) then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + +end + +function onEventStarted(player, npc) + + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + if ((canAcceptQuest(player) == true) or (player:HasQuest("Etc3g0") == true)) then + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKinnison_001", -1, -1); + elseif (result == 2) then + if (player:HasQuest("Etc3g0") == false) then + offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventOffersStart"); + if (offerQuestResult == 1) then + player:AddQuest("Etc3g0"); + npc:SetQuestGraphic(player, 0x0); + + -- This is to overcome some weirdness where some NPCs are not updating their quest marker upon quest accepted + -- So we're just going to force the change to be sure + mestonnaux = GetWorldManager():GetActorInWorldByUniqueId("mestonnaux"); + sybell = GetWorldManager():GetActorInWorldByUniqueId("sybell"); + khuma_moshroca = GetWorldManager():GetActorInWorldByUniqueId("khuma_moshroca"); + lefwyne = GetWorldManager():GetActorInWorldByUniqueId("lefwyne"); + nellaure = GetWorldManager():GetActorInWorldByUniqueId("nellaure"); + + if (mestonnaux ~= nil) then mestonnaux:SetQuestGraphic(player, 0x2); end + if (sybell ~= nil) then sybell:SetQuestGraphic(player, 0x2); end + if (khuma_moshroca ~= nil) then khuma_moshroca:SetQuestGraphic(player, 0x2); end + if (lefwyne ~= nil) then lefwyne:SetQuestGraphic(player, 0x2); end + if (nellaure ~= nil) then nellaure:SetQuestGraphic(player, 0x2); end + + end + else + ownedQuest = player:GetQuest("Etc3g0"); + if (ownedQuest:GetPhase() == 243) then + callClientFunction(player, "delegateEvent", player, quest, "processEventClear"); + callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9); + player:CompleteQuest("Etc3g0"); + npc:SetQuestGraphic(player, 0x0); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventOffersAfter"); + end + end + end + else + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKinnison_001", -1, -1); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/lefwyne.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/lefwyne.lua index b8077201..d59e65b0 100644 --- a/data/scripts/unique/fst0Town01a/PopulaceStandard/lefwyne.lua +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/lefwyne.lua @@ -1,7 +1,53 @@ require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then + if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_LEFWYNE) == false then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + else + npc:SetQuestGraphic(player, 0x0); + end + +end + + function onEventStarted(player, npc) - defaultFst = GetStaticActor("DftFst"); - callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLefwyne_001", nil, nil, nil); + + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + if (player:HasQuest("Etc3g0") == true) then + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLefwyne_001", nil, nil, nil); + elseif (result == 2) then + ownedQuest = player:GetQuest("Etc3g0"); + + if (ownedQuest:GetQuestFlag(FLAG_TALKED_LEFWYNE)) == false then + callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeak", nil, nil, nil); + ownedQuest:SetQuestFlag(FLAG_TALKED_LEFWYNE, true); + ownedQuest:SaveData(); + npc:SetQuestGraphic(player, 0x0); + checkNextPhase(player); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeakAfter", nil, nil, nil); + end + end + + else + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLefwyne_001", nil, nil, nil); + end + player:endEvent(); -end \ No newline at end of file +end + + + diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/mestonnaux.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/mestonnaux.lua index 72ca2120..52604eac 100644 --- a/data/scripts/unique/fst0Town01a/PopulaceStandard/mestonnaux.lua +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/mestonnaux.lua @@ -1,7 +1,54 @@ require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then + if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_MESTONNAUX) == false then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + else + npc:SetQuestGraphic(player, 0x0); + end + +end + + function onEventStarted(player, npc) - defaultFst = GetStaticActor("DftFst"); - callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMestonnaux_001", nil, nil, nil); + + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + if (player:HasQuest("Etc3g0") == true) then + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMestonnaux_001", nil, nil, nil); + elseif (result == 2) then + ownedQuest = player:GetQuest("Etc3g0"); + + if (ownedQuest:GetQuestFlag(FLAG_TALKED_MESTONNAUX)) == false then + callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeak", nil, nil, nil); + ownedQuest:SetQuestFlag(FLAG_TALKED_MESTONNAUX, true); + ownedQuest:SaveData(); + npc:SetQuestGraphic(player, 0x0); + checkNextPhase(player); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeakAfter", nil, nil, nil); + end + end + + else + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMestonnaux_001", nil, nil, nil); + end + + player:endEvent(); -end \ No newline at end of file +end + + + diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/nellaure.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/nellaure.lua new file mode 100644 index 00000000..211b7ea7 --- /dev/null +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/nellaure.lua @@ -0,0 +1,51 @@ +require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then + if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_NELLAURE) == false then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + else + npc:SetQuestGraphic(player, 0x0); + end + +end + + + +function onEventStarted(player, npc) + + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + if (player:HasQuest("Etc3g0") == true) then + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithNellaure_001", nil, nil, nil); + elseif (result == 2) then + ownedQuest = player:GetQuest("Etc3g0"); + + if (ownedQuest:GetQuestFlag(FLAG_TALKED_NELLAURE)) == false then + callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeak", nil, nil, nil); + ownedQuest:SetQuestFlag(FLAG_TALKED_NELLAURE, true); + ownedQuest:SaveData(); + npc:SetQuestGraphic(player, 0x0); + checkNextPhase(player); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeakAfter", nil, nil, nil); + end + end + + else + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithNellaure_001", nil, nil, nil); + end + + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/sybell.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/sybell.lua index 17de877e..4236e455 100644 --- a/data/scripts/unique/fst0Town01a/PopulaceStandard/sybell.lua +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/sybell.lua @@ -1,7 +1,54 @@ require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then + if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_SYBELL) == false then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + else + npc:SetQuestGraphic(player, 0x0); + end + +end + + function onEventStarted(player, npc) - defaultFst = GetStaticActor("DftFst"); - callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSybell_001", nil, nil, nil); + + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + if (player:HasQuest("Etc3g0") == true) then + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSybell_001", nil, nil, nil); + elseif (result == 2) then + ownedQuest = player:GetQuest("Etc3g0"); + + if (ownedQuest:GetQuestFlag(FLAG_TALKED_SYBELL)) == false then + callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeak", nil, nil, nil); + ownedQuest:SetQuestFlag(FLAG_TALKED_SYBELL, true); + ownedQuest:SaveData(); + npc:SetQuestGraphic(player, 0x0); + checkNextPhase(player); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeakAfter", nil, nil, nil); + end + end + + else + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSybell_001", nil, nil, nil); + end + + player:endEvent(); -end \ No newline at end of file +end + + + diff --git a/data/scripts/unique/ocn0Battle02/Director/openingdirector.lua b/data/scripts/unique/ocn0Battle02/Director/openingdirector.lua deleted file mode 100644 index 9b11c28a..00000000 --- a/data/scripts/unique/ocn0Battle02/Director/openingdirector.lua +++ /dev/null @@ -1,26 +0,0 @@ -require ("global") -require("/quests/man/man0l0") - -function onEventStarted(player, actor, triggerName) - - man0l0Quest = GetStaticActor("Man0l0"); - callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrNomal001withHQ", nil, nil, nil, nil); - player:EndEvent(); - -end - -function onTalked(player, npc) - - man0l0Quest = player:GetQuest("Man0l0"); - - if (man0l0Quest ~= nil) then - if (man0l0Quest ~= nil and man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE1) == true and man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE2) == true and man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE3) == true) then - - doorNpc = GetWorldManager():GetActorInWorld(1090025); - player:SetEventStatus(doorNpc, "pushDefault", true, 0x2); - doorNpc:SetQuestGraphic(player, 0x3); - - end - end - -end \ No newline at end of file diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/baby-faced_adventurer.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/baby-faced_adventurer.lua index 108e6e95..c137799a 100644 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/baby-faced_adventurer.lua +++ b/data/scripts/unique/ocn0Battle02/PopulaceStandard/baby-faced_adventurer.lua @@ -5,10 +5,10 @@ function onSpawn(player, npc) man0l0Quest = player:GetQuest("man0l0"); if (man0l0Quest ~= nil) then - if (man0l0Quest ~= nil) then - if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE3) == false) then - npc:SetQuestGraphic(player, 0x2); - end + if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE3) == false) then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); end end end @@ -22,7 +22,7 @@ function onEventStarted(player, npc, triggerName) npc:SetQuestGraphic(player, 0x0); man0l0Quest:SetQuestFlag(MAN0L0_FLAG_MINITUT_DONE3, true); man0l0Quest:SaveData(); - player:GetDirector():OnTalked(npc); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); else callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent000_8", nil, nil, nil); end diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua index 54f0513a..0cdbe1b2 100644 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua +++ b/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua @@ -10,28 +10,39 @@ function onSpawn(player, npc) player:SetEventStatus(npc, "pushDefault", true, 0x2); npc:SetQuestGraphic(player, 0x3); else - player:SetEventStatus(npc, "pushDefault", true, 0x2); - npc:SetQuestGraphic(player, 0x3); + player:SetEventStatus(npc, "pushDefault", true, 0x0); + npc:SetQuestGraphic(player, 0x0); end end end function onEventStarted(player, npc, triggerName) - man0l0Quest = GetStaticActor("Man0l0"); + man0l0Quest = player:GetQuest("Man0l0"); choice = callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEventNewRectAsk", nil); if (choice == 1) then callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent000_2", nil, nil, nil, nil); player:EndEvent(); - player:SetDirector("QuestDirectorMan0l001", true); - worldMaster = GetWorldMaster(); - player:SendGameMessage(player, worldMaster, 34108, 0x20); - player:SendGameMessage(player, worldMaster, 50011, 0x20); - - GetWorldManager():DoPlayerMoveInZone(player, 9); - player:KickEvent(player:GetDirector(), "noticeEvent", true); + man0l0Quest:NextPhase(5); + + contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0l01", "SimpleContent30002", "Quest/QuestDirectorMan0l001"); + + if (contentArea == nil) then + player:EndEvent(); + return; + end + + director = contentArea:GetContentDirector(); + player:AddDirector(director); + director:StartDirector(false); + + player:KickEvent(director, "noticeEvent", true); + player:SetLoginDirector(director); + + GetWorldManager():DoZoneChangeContent(player, contentArea, -5, 16.35, 6, 0.5, 16); + else player:EndEvent(); end diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/fighterAlly_ocn0Btl02_02@0C196.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/fighterAlly_ocn0Btl02_02@0C196.lua deleted file mode 100644 index c1e8d1d6..00000000 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/fighterAlly_ocn0Btl02_02@0C196.lua +++ /dev/null @@ -1,3 +0,0 @@ -function init(npc) - return "/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer", false, false, false, false, false, npc:GetActorClassId(), false, false, 10, 1, 4, false, false, false, false, false, false, false, false, 2; -end \ No newline at end of file diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/fighterAlly_ocn0Btl02_03@0C196.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/fighterAlly_ocn0Btl02_03@0C196.lua deleted file mode 100644 index 886bdaca..00000000 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/fighterAlly_ocn0Btl02_03@0C196.lua +++ /dev/null @@ -1,3 +0,0 @@ -function init(npc) - return "/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker", false, false, false, false, false, npc:GetActorClassId(), false, false, 10, 1, 4, false, false, false, false, false, false, false, false, 2; -end \ No newline at end of file diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/rostnsthal.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/rostnsthal.lua index dca14849..3535ea8c 100644 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/rostnsthal.lua +++ b/data/scripts/unique/ocn0Battle02/PopulaceStandard/rostnsthal.lua @@ -9,7 +9,7 @@ function onSpawn(player, npc) npc:SetQuestGraphic(player, 0x2); end - if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_TUTORIAL3_DONE) == true) then + if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == true) then player:SetEventStatus(npc, "pushDefault", false, 0x2); end end @@ -24,14 +24,14 @@ function onEventStarted(player, npc, triggerName) callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrNomal002", nil, nil, nil); elseif (triggerName == "talkDefault") then --Is doing talk tutorial? - if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_TUTORIAL3_DONE) == false) then + if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == false) then player:SetEventStatus(npc, "pushDefault", false, 0x2); callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrNomal003", nil, nil, nil); - man0l0Quest:SetQuestFlag(MAN0L0_FLAG_TUTORIAL3_DONE, true); + man0l0Quest:SetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT, true); npc:SetQuestGraphic(player, 0x2); man0l0Quest:SaveData(); - player:GetDirector():OnTalked(npc); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); --Was he talked to for the mini tutorial? else callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrMini001", nil, nil, nil); @@ -41,7 +41,7 @@ function onEventStarted(player, npc, triggerName) man0l0Quest:SetQuestFlag(MAN0L0_FLAG_MINITUT_DONE1, true); man0l0Quest:SaveData(); - player:GetDirector():OnTalked(npc); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); end end end diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/voluptuous_vixen.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/voluptuous_vixen.lua index ef145806..84d3b76a 100644 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/voluptuous_vixen.lua +++ b/data/scripts/unique/ocn0Battle02/PopulaceStandard/voluptuous_vixen.lua @@ -7,6 +7,8 @@ function onSpawn(player, npc) if (man0l0Quest ~= nil) then if (man0l0Quest:GetQuestFlag(MAN0L0_FLAG_MINITUT_DONE2) == false) then npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); end end end @@ -20,9 +22,8 @@ function onEventStarted(player, npc, triggerName) callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrMini002", nil, nil, nil); npc:SetQuestGraphic(player, 0x0); man0l0Quest:SetQuestFlag(MAN0L0_FLAG_MINITUT_DONE2, true); - man0l0Quest:SaveData(); - - player:GetDirector():OnTalked(npc); + man0l0Quest:SaveData(); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); else callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent000_13", nil, nil, nil); end diff --git a/data/scripts/unique/ocn0Cruise01/ship_route_1.lua b/data/scripts/unique/ocn0Cruise01/ship_route_1.lua new file mode 100644 index 00000000..7feb8f7c --- /dev/null +++ b/data/scripts/unique/ocn0Cruise01/ship_route_1.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 0x1415, 201; +end \ No newline at end of file diff --git a/data/scripts/unique/ocn0Cruise01/ship_route_2.lua b/data/scripts/unique/ocn0Cruise01/ship_route_2.lua new file mode 100644 index 00000000..7feb8f7c --- /dev/null +++ b/data/scripts/unique/ocn0Cruise01/ship_route_2.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 0x1415, 201; +end \ No newline at end of file diff --git a/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_grid_exitdoor_push.lua b/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_grid_exitdoor_push.lua new file mode 100644 index 00000000..dd09c9bb --- /dev/null +++ b/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_grid_exitdoor_push.lua @@ -0,0 +1,12 @@ +require ("global") + +function onEventStarted(player, npc) + defaultFst = GetStaticActor("DftFst"); + choice = callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithInn_ExitDoor"); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 155, nil, 0, 15, 59.252, 4, -1219.342, 0.852); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_limsa_exitdoor_push.lua b/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_limsa_exitdoor_push.lua new file mode 100644 index 00000000..a5323871 --- /dev/null +++ b/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_limsa_exitdoor_push.lua @@ -0,0 +1,12 @@ +require ("global") + +function onEventStarted(player, npc) + defaultSea = GetStaticActor("DftSea"); + choice = callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithInn_ExitDoor"); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -444.266, 39.518, 191, 1.9); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_uld_exitdoor_push.lua b/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_uld_exitdoor_push.lua new file mode 100644 index 00000000..04059c42 --- /dev/null +++ b/data/scripts/unique/prv0Inn01/ObjectInnDoor/inn_uld_exitdoor_push.lua @@ -0,0 +1,12 @@ +require ("global") + +function onEventStarted(player, npc) + defaultWil = GetStaticActor("DftWil"); + choice = callClientFunction(player, "delegateEvent", player, defaultWil, "defaultTalkWithInn_ExitDoor"); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 209, nil, 0, 15, -110.157, 202, 171.345, 0); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_grid_exitdoor_target.lua b/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_grid_exitdoor_target.lua new file mode 100644 index 00000000..dd09c9bb --- /dev/null +++ b/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_grid_exitdoor_target.lua @@ -0,0 +1,12 @@ +require ("global") + +function onEventStarted(player, npc) + defaultFst = GetStaticActor("DftFst"); + choice = callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithInn_ExitDoor"); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 155, nil, 0, 15, 59.252, 4, -1219.342, 0.852); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_limsa_exitdoor_target.lua b/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_limsa_exitdoor_target.lua new file mode 100644 index 00000000..a5323871 --- /dev/null +++ b/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_limsa_exitdoor_target.lua @@ -0,0 +1,12 @@ +require ("global") + +function onEventStarted(player, npc) + defaultSea = GetStaticActor("DftSea"); + choice = callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithInn_ExitDoor"); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -444.266, 39.518, 191, 1.9); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_uld_exitdoor_target.lua b/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_uld_exitdoor_target.lua new file mode 100644 index 00000000..04059c42 --- /dev/null +++ b/data/scripts/unique/prv0Inn01/PopulaceStandard/inn_uld_exitdoor_target.lua @@ -0,0 +1,12 @@ +require ("global") + +function onEventStarted(player, npc) + defaultWil = GetStaticActor("DftWil"); + choice = callClientFunction(player, "delegateEvent", player, defaultWil, "defaultTalkWithInn_ExitDoor"); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 209, nil, 0, 15, -110.157, 202, 171.345, 0); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_captainsquarters.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_captainsquarters.lua new file mode 100644 index 00000000..0e9d1a64 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_captainsquarters.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1495, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_feastinghall.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_feastinghall.lua new file mode 100644 index 00000000..e7e1ef1a --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_feastinghall.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1493, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_granary.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_granary.lua new file mode 100644 index 00000000..27c58729 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_granary.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1496, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_grandhall.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_grandhall.lua new file mode 100644 index 00000000..c63f8682 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_grandhall.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1486, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_knightsquarters.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_knightsquarters.lua new file mode 100644 index 00000000..d87d6d30 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_barrier_knightsquarters.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1494, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_chocobostables.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_chocobostables.lua new file mode 100644 index 00000000..710943bf --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_chocobostables.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1406, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_grandhall.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_grandhall.lua new file mode 100644 index 00000000..f5ed44e7 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_grandhall.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1409, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_thegullet.lua b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_thegullet.lua new file mode 100644 index 00000000..f71aa476 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon01/DoorServer/rocdun1_door_thegullet.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 211, 1408, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_coincnterschest.lua b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_coincnterschest.lua new file mode 100644 index 00000000..8efde764 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_coincnterschest.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 214, 1482, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_goldenpools_nort.lua b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_goldenpools_nort.lua new file mode 100644 index 00000000..047c8bc2 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_goldenpools_nort.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 214, 1480, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_goldenpools_sout.lua b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_goldenpools_sout.lua new file mode 100644 index 00000000..f2b1f43a --- /dev/null +++ b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_goldenpools_sout.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 214, 1479, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_map3enter.lua b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_map3enter.lua new file mode 100644 index 00000000..ba679081 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_map3enter.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 214, 1483, true; +end \ No newline at end of file diff --git a/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_minerstare.lua b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_minerstare.lua new file mode 100644 index 00000000..6b68ae65 --- /dev/null +++ b/data/scripts/unique/roc0Dungeon04/DoorServer/rocdun4_barrier_minerstare.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 214, 1481, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_aurumloft.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_aurumloft.lua new file mode 100644 index 00000000..317486fe --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_aurumloft.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 488, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_centralfurnaces.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_centralfurnaces.lua new file mode 100644 index 00000000..6936aac0 --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_centralfurnaces.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 1333, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2605.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2605.lua new file mode 100644 index 00000000..4d406b55 --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2605.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 1095, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2610_bottom.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2610_bottom.lua new file mode 100644 index 00000000..17c9da98 --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2610_bottom.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 1585, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2610_topleft.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2610_topleft.lua new file mode 100644 index 00000000..2e6c1e4d --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_dome2610_topleft.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 1315, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor1.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor1.lua new file mode 100644 index 00000000..de479ce6 --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor1.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 494, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor2.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor2.lua new file mode 100644 index 00000000..9a0c0a78 --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor2.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 487, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor3.lua b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor3.lua new file mode 100644 index 00000000..ba826f61 --- /dev/null +++ b/data/scripts/unique/sea0Dungeon06/DoorServer/seadun6_door_titandoor3.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 116, 501, true; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Field01/PopulaceShopSalesman/sungyve.lua b/data/scripts/unique/sea0Field01/PopulaceShopSalesman/sungyve.lua new file mode 100644 index 00000000..00d3b912 --- /dev/null +++ b/data/scripts/unique/sea0Field01/PopulaceShopSalesman/sungyve.lua @@ -0,0 +1,6 @@ + +shopInfo = { +welcomeText = 5, +shopPack = 3008, +tutorialId = 35 +} \ No newline at end of file diff --git a/data/scripts/unique/sea0Field01/PopulaceStandard/kiht_gamduhla.lua b/data/scripts/unique/sea0Field01/PopulaceStandard/kiht_gamduhla.lua new file mode 100644 index 00000000..49c7fe84 --- /dev/null +++ b/data/scripts/unique/sea0Field01/PopulaceStandard/kiht_gamduhla.lua @@ -0,0 +1,9 @@ +require ("global") + +--Argument is 20 or ~20. + +function onEventStarted(player, npc) + defaultSea = GetStaticActor("DftSea"); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithKihtgamduhla_001", 0); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Field01/PopulaceStandard/ryssfloh.lua b/data/scripts/unique/sea0Field01/PopulaceStandard/ryssfloh.lua new file mode 100644 index 00000000..f142270a --- /dev/null +++ b/data/scripts/unique/sea0Field01/PopulaceStandard/ryssfloh.lua @@ -0,0 +1,7 @@ +require ("global") + +function onEventStarted(player, npc) + defaultSea = GetStaticActor("DftSea"); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithRyssfloh_001", 0); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl1.lua b/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl1.lua index 8ba2b12a..4c95e783 100644 --- a/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl1.lua +++ b/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl1.lua @@ -4,9 +4,11 @@ function onEventStarted(player, npc) floorChoice = callClientFunction(player, "elevatorAskLimsa001", 0); if (floorChoice == 1) then - callClientFunction(player, "elevatorAskLimsa001", 1); + callClientFunction(player, "elevatorAskLimsa001", 1); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -447, 40, 220, -1.574); elseif (floorChoice == 2) then - callClientFunction(player, "elevatorAskLimsa001", 2); + callClientFunction(player, "elevatorAskLimsa001", 2); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -458, 92, 175, -0.383); end player:EndEvent(); diff --git a/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl2.lua b/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl2.lua index aaaf17c8..c30e0f2e 100644 --- a/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl2.lua +++ b/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl2.lua @@ -5,8 +5,10 @@ function onEventStarted(player, npc) if (floorChoice == 1) then callClientFunction(player, "elevatorAskLimsa002", 1); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -447, 19, 220, -1.574); elseif (floorChoice == 2) then callClientFunction(player, "elevatorAskLimsa002", 2); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -458, 92, 175, -0.383); end player:EndEvent(); diff --git a/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl3.lua b/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl3.lua index c64b1f96..c88b0d56 100644 --- a/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl3.lua +++ b/data/scripts/unique/sea0Town01/ElevatorStandard/crows_lift_lvl3.lua @@ -4,9 +4,11 @@ function onEventStarted(player, npc) floorChoice = callClientFunction(player, "elevatorAskLimsa003", 0); if (floorChoice == 1) then - callClientFunction(player, "elevatorAskLimsa003", 1); + callClientFunction(player, "elevatorAskLimsa003", 1); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -447, 19, 220, -1.574); elseif (floorChoice == 2) then callClientFunction(player, "elevatorAskLimsa003", 2); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, -447, 40, 220, -1.574); end player:EndEvent(); diff --git a/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua b/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua index 5c468992..7c2f594c 100644 --- a/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua +++ b/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua @@ -5,9 +5,14 @@ function onEventStarted(player, npc) choice = callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithInn_Desk", nil, nil, nil); if (choice == 1) then - GetWorldManager():DoZoneChange(player, 13); + GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, -160.048, 0, -165.737, 0); elseif (choice == 2) then - --Do Set Homepoint + if (player:GetHomePointInn() ~= 1) then + player:SetHomePointInn(1); + player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 1070); --Secondary homepoint set to the Mizzenmast + else + player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint + end end player:EndEvent(); diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/cocksure-cockswain.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/cocksure-cockswain.lua new file mode 100644 index 00000000..f2dc0640 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/cocksure-cockswain.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEtc001"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/crapulous_adventurer.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/crapulous_adventurer.lua new file mode 100644 index 00000000..7e8c1825 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/crapulous_adventurer.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_2"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/debonair_pirate.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/debonair_pirate.lua new file mode 100644 index 00000000..0f7185cd --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/debonair_pirate.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_5"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/duplicitous_trader.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/duplicitous_trader.lua new file mode 100644 index 00000000..c34a6455 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/duplicitous_trader.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_4"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/man0l1_baderon.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/man0l1_baderon.lua new file mode 100644 index 00000000..7eda6e3f --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/man0l1_baderon.lua @@ -0,0 +1,23 @@ +require ("global") + +function onSpawn(player, npc) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + npc:SetQuestGraphic(player, 0x2); + end +end + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent020"); + man0l1Quest:NextPhase(3); + player:EndEvent(); + GetWorldManager():DoZoneChange(player, 133, nil, 0, 15, player.positionX, player.positionY, player.positionZ, player.rotation); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/mytesyn.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/mytesyn.lua new file mode 100644 index 00000000..a468f1ae --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/mytesyn.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_7"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/onyx-haired_adventurer.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/onyx-haired_adventurer.lua new file mode 100644 index 00000000..f52e3b49 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/onyx-haired_adventurer.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_6"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/relaxing_adventurer.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/relaxing_adventurer.lua new file mode 100644 index 00000000..a468f1ae --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/relaxing_adventurer.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_7"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/sententious_sellsword.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/sententious_sellsword.lua new file mode 100644 index 00000000..9113a578 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/sententious_sellsword.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEtc003"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/skittish_adventurer.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/skittish_adventurer.lua new file mode 100644 index 00000000..6158edf7 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/skittish_adventurer.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_3"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/solicitous_sellsword.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/solicitous_sellsword.lua new file mode 100644 index 00000000..fad948d7 --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/solicitous_sellsword.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEtc002"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/yshtola.lua b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/yshtola.lua new file mode 100644 index 00000000..04e3b27f --- /dev/null +++ b/data/scripts/unique/sea0Town01/PrivateArea/PrivateAreaMasterPast_2/PopulaceStandard/yshtola.lua @@ -0,0 +1,13 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + man0l1Quest = player:GetQuest("Man0l1"); + + if (man0l1Quest ~= nil) then + if (triggerName == "talkDefault") then + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010_8"); + player:EndEvent(); + end + end + +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/MapObjShipPort/limsa_shipport.lua b/data/scripts/unique/sea0Town01a/MapObjShipPort/limsa_shipport.lua new file mode 100644 index 00000000..839a2f7e --- /dev/null +++ b/data/scripts/unique/sea0Town01a/MapObjShipPort/limsa_shipport.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 0xC4, 0x1C8; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/MapObjShipPort/limsa_shipport2.lua b/data/scripts/unique/sea0Town01a/MapObjShipPort/limsa_shipport2.lua new file mode 100644 index 00000000..3b372965 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/MapObjShipPort/limsa_shipport2.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 0x187, 0x2; +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/ahldskyf.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/ahldskyf.lua index 5caaaad5..1a090f6e 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/ahldskyf.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/ahldskyf.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAhldskyff_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAhldskyff_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/angry_river.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/angry_river.lua index d83bb0a0..fa9855e9 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/angry_river.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/angry_river.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAngryriver_001", nil, nil, nil) + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAngryriver_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/ansgor.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/ansgor.lua index eb0c0095..92289ab0 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/ansgor.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/ansgor.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithANSGOR_100", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAnsgor_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/arnegis.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/arnegis.lua index 15ad80e0..b285d09f 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/arnegis.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/arnegis.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithArnegis_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithArnegis_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/arthurioux.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/arthurioux.lua index 5b8574db..0fd68229 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/arthurioux.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/arthurioux.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithArthurioux_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithArthurioux_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/astrid.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/astrid.lua index 5da8b27c..e67496ad 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/astrid.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/astrid.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAstrid_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAstrid_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/audaine.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/audaine.lua index 64cdf7bf..b7a57044 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/audaine.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/audaine.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAudaine_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAudaine_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/bango_zango.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/bango_zango.lua index 4c481b36..78558052 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/bango_zango.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/bango_zango.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithKakalan_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithKakalan_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/bayard.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/bayard.lua index 041f9419..ea5930a3 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/bayard.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/bayard.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBayard_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBayard_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/bloemerl.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/bloemerl.lua index c042fa01..3a2b223a 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/bloemerl.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/bloemerl.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBloemerl_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBloemerl_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/bmallpa.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/bmallpa.lua index 4a7aef0e..b6479d94 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/bmallpa.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/bmallpa.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBmallpa_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBmallpa_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/bnhapla.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/bnhapla.lua index a06e69cc..a653e092 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/bnhapla.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/bnhapla.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBnhapla_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithBnhapla_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/chichiroon.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/chichiroon.lua index 7768869f..e6bb6a3e 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/chichiroon.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/chichiroon.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithChichiroon_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithChichiroon_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/drowsy-eyed_adventurer.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/drowsy-eyed_adventurer.lua index 884d206c..1d4fa36d 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/drowsy-eyed_adventurer.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/drowsy-eyed_adventurer.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAdventurer031_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAdventurer031_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/eugennoix.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/eugennoix.lua index 84be774f..54f16c22 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/eugennoix.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/eugennoix.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithEugennoix_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithEugennoix_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/fickle_beggar.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/fickle_beggar.lua index b44901ae..6fc7c517 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/fickle_beggar.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/fickle_beggar.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithYouty001_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithYouty001_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/hob.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/hob.lua index 2b97c724..6e5a9b2f 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/hob.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/hob.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithRubh_hob_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithHob_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/ivan.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/ivan.lua index e4ee41f4..6e607080 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/ivan.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/ivan.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithIvan_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithIvan_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/maetistym.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/maetistym.lua index 5f8dcb44..d791804d 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/maetistym.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/maetistym.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithMaetistym_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithMaetistym_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/mharelak.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/mharelak.lua index b85c39a1..390e071f 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/mharelak.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/mharelak.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithMharelak_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithMharelak_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/suspicious-looking_traveler.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/suspicious-looking_traveler.lua index 78533413..de45d24d 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/suspicious-looking_traveler.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/suspicious-looking_traveler.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTraveler031_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTraveler031_001", nil, nil, nil); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/syhrdaeg.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/syhrdaeg.lua index 320484f0..bf119926 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/syhrdaeg.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/syhrdaeg.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithSyhrdaeg_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithSyhrdaeg_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/syngsmyd.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/syngsmyd.lua index d8d9bc4d..6a49528e 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/syngsmyd.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/syngsmyd.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithSyngsmyd_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithSyngsmyd_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/tatasako.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/tatasako.lua index e2a342dc..60953fb2 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/tatasako.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/tatasako.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTatasako_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTatasako_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/tefh_moshroca.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/tefh_moshroca.lua index 77ff4093..2caa6ac3 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/tefh_moshroca.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/tefh_moshroca.lua @@ -2,7 +2,7 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTefhmoshroca_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTefhmoshroca_001"); player:endEvent(); end diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/thata_khamazom.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/thata_khamazom.lua index 95f39a92..51d06971 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/thata_khamazom.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/thata_khamazom.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithThatakhamazom_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithThatakhamazom_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/tittering_traveler.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/tittering_traveler.lua index 47004da1..ed528ee1 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/tittering_traveler.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/tittering_traveler.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTraveler030_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTraveler030_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/totoruto.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/totoruto.lua index 61c522a4..ebbd41c4 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/totoruto.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/totoruto.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTotoruto_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTotoruto_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/triaine.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/triaine.lua index 7e133e92..22a5a1e4 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/triaine.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/triaine.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTriaine_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTriaine_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/trinne.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/trinne.lua index 00da090b..d9fdd41d 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/trinne.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/trinne.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTrinne_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithTrinne_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/unconscious_adventurer.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/unconscious_adventurer.lua index 417626cf..0f883a7a 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/unconscious_adventurer.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/unconscious_adventurer.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAdventurer032_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithAdventurer032_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/undsatz.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/undsatz.lua index 56a2e526..0124774a 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/undsatz.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/undsatz.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithUndsatz_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithUndsatz_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/vhynho.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/vhynho.lua index bba3d48d..91af9e21 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/vhynho.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/vhynho.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithVhynho_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithVhynho_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/waekbyrt.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/waekbyrt.lua index 305fe7a5..b5b322f5 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/waekbyrt.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/waekbyrt.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWaekbyrt_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWaekbyrt_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/whahtoa.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/whahtoa.lua index 29b9cef0..f8eae722 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/whahtoa.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/whahtoa.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWhahtoa_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWhahtoa_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/wyra_khamazom.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/wyra_khamazom.lua index 5591a891..5b577db2 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/wyra_khamazom.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/wyra_khamazom.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWyrakhamazom_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWyrakhamazom_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/wyrstmann.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/wyrstmann.lua index dfb16371..c6f5f5ea 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/wyrstmann.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/wyrstmann.lua @@ -2,7 +2,7 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWyrstmann_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithWyrstmann_001"); player:endEvent(); end diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/xavalien.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/xavalien.lua index 471b264f..20ce7fb0 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/xavalien.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/xavalien.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithXavalien_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithXavalien_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/zonggo.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/zonggo.lua index 1dd681f9..8d046300 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/zonggo.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/zonggo.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithZonggo_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithZonggo_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PopulaceStandard/zuzule.lua b/data/scripts/unique/sea0Town01a/PopulaceStandard/zuzule.lua index 509b5e52..31d599d7 100644 --- a/data/scripts/unique/sea0Town01a/PopulaceStandard/zuzule.lua +++ b/data/scripts/unique/sea0Town01a/PopulaceStandard/zuzule.lua @@ -2,6 +2,6 @@ require ("global") function onEventStarted(player, npc) defaultSea = GetStaticActor("DftSea"); - callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithZuzule_001", nil, nil, nil); + callClientFunction(player, "delegateEvent", player, defaultSea, "defaultTalkWithZuzule_001"); player:endEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/PrivateAreaPastExit.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/PrivateAreaPastExit.lua new file mode 100644 index 00000000..d7140e37 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/PrivateAreaPastExit.lua @@ -0,0 +1,12 @@ +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + if (triggerName == "caution") then + worldMaster = GetWorldMaster(); + player:SendGameMessage(player, worldMaster, 34109, 0x20); + elseif (triggerName == "exit") then + end + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gert.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gert.lua new file mode 100644 index 00000000..49259513 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/gert.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_10", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/hob.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/hob.lua new file mode 100644 index 00000000..627443d9 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/hob.lua @@ -0,0 +1,18 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + choice = callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_9", nil, nil, nil); + + if (choice == 1) then + man0l1Quest = GetStaticActor("Man0l1"); + callClientFunction(player, "delegateEvent", player, man0l1Quest, "processEvent010", nil, nil, nil); + player:ReplaceQuest(110001, 110002); + player:SendGameMessage(GetStaticActor("Man0l1"), 320, 0x20); + player:SendGameMessage(GetStaticActor("Man0l1"), 321, 0x20); + GetWorldManager():DoZoneChange(player, 133, "PrivateAreaMasterPast", 2, 15, -459.619873, 40.0005722, 196.370377, 2.010813); + end + + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lanky_traveler.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lanky_traveler.lua new file mode 100644 index 00000000..76a89e55 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lanky_traveler.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_8", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lorhzant.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lorhzant.lua new file mode 100644 index 00000000..b894b11a --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/lorhzant.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_11", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/muscle-bound_deckhand.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/muscle-bound_deckhand.lua new file mode 100644 index 00000000..a67adb1d --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/muscle-bound_deckhand.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_2", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/pasty-faced_adventurer.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/pasty-faced_adventurer.lua new file mode 100644 index 00000000..b894b11a --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/pasty-faced_adventurer.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_11", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/pearly-toothed_porter.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/pearly-toothed_porter.lua new file mode 100644 index 00000000..4a9e15af --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/pearly-toothed_porter.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_3", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/undignified_adventurer.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/undignified_adventurer.lua new file mode 100644 index 00000000..e555c579 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/undignified_adventurer.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_5", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/voluptuous_vixen.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/voluptuous_vixen.lua new file mode 100644 index 00000000..3aa84bfb --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/voluptuous_vixen.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_6", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/well-traveled_merchant.lua b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/well-traveled_merchant.lua new file mode 100644 index 00000000..cdfcb886 --- /dev/null +++ b/data/scripts/unique/sea0Town01a/PrivateArea/PrivateAreaMasterPast_1/PopulaceStandard/well-traveled_merchant.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0l0") + +function onEventStarted(player, npc) + man0l0Quest = player:GetQuest("Man0l0"); + callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent020_7", nil, nil, nil); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door1_nosceatothan.lua b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door1_nosceatothan.lua new file mode 100644 index 00000000..68bf6c78 --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door1_nosceatothan.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 5142, 323; +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door1_thantonoscea.lua b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door1_thantonoscea.lua new file mode 100644 index 00000000..171b623b --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door1_thantonoscea.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 5143, 323; +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door2_nosceatothan.lua b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door2_nosceatothan.lua new file mode 100644 index 00000000..244b2ac8 --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door2_nosceatothan.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 5142, 326; +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door2_thantonoscea.lua b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door2_thantonoscea.lua new file mode 100644 index 00000000..ee98a388 --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/DoorStandard/ferry_door2_thantonoscea.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 5143, 326; +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/MapObjShipRouteLand/ferry_route_nosceatothan.lua b/data/scripts/unique/sea1Cruise01/MapObjShipRouteLand/ferry_route_nosceatothan.lua new file mode 100644 index 00000000..d9f69ef0 --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/MapObjShipRouteLand/ferry_route_nosceatothan.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 5145, 252; +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/MapObjShipRouteLand/ferry_route_thantonoscea.lua b/data/scripts/unique/sea1Cruise01/MapObjShipRouteLand/ferry_route_thantonoscea.lua new file mode 100644 index 00000000..af43e66d --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/MapObjShipRouteLand/ferry_route_thantonoscea.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return false, false, 0, 0, 5144, 201; +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/PopulaceStandard/ferry_man_noceatothan.lua b/data/scripts/unique/sea1Cruise01/PopulaceStandard/ferry_man_noceatothan.lua new file mode 100644 index 00000000..e2c3ed12 --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/PopulaceStandard/ferry_man_noceatothan.lua @@ -0,0 +1,7 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + defaultSrt = GetStaticActor("DftSrt"); + callClientFunction(player, "delegateEvent", player, defaultSrt, "defaultTalkWithPilot_001"); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/sea1Cruise01/PopulaceStandard/ferry_man_thantonocea.lua b/data/scripts/unique/sea1Cruise01/PopulaceStandard/ferry_man_thantonocea.lua new file mode 100644 index 00000000..e2c3ed12 --- /dev/null +++ b/data/scripts/unique/sea1Cruise01/PopulaceStandard/ferry_man_thantonocea.lua @@ -0,0 +1,7 @@ +require ("global") + +function onEventStarted(player, npc, triggerName) + defaultSrt = GetStaticActor("DftSrt"); + callClientFunction(player, "delegateEvent", player, defaultSrt, "defaultTalkWithPilot_001"); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/Director/opening_director.lua b/data/scripts/unique/wil0Battle01/Director/opening_director.lua deleted file mode 100644 index 5cd6ce52..00000000 --- a/data/scripts/unique/wil0Battle01/Director/opening_director.lua +++ /dev/null @@ -1,22 +0,0 @@ -require ("global") -require("/quests/man/man0u0") - -function onEventStarted(player, actor, triggerName) - - man0u0Quest = GetStaticActor("Man0u0"); - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrNomal001withHQ", nil, nil, nil, nil); - player:EndEvent(); - -end - -function onTalked(player, npc) - - man0u0Quest = player:GetQuest("Man0u0"); - - if (man0u0Quest ~= nil) then - - - - end - -end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/DoorStandard/door1.lua b/data/scripts/unique/wil0Battle01/DoorStandard/door1.lua index df61cfa6..0640e65f 100644 --- a/data/scripts/unique/wil0Battle01/DoorStandard/door1.lua +++ b/data/scripts/unique/wil0Battle01/DoorStandard/door1.lua @@ -1,3 +1,3 @@ function init(npc) - return false, false, 0, 0, 0x1A5, 0xB0D; + return false, false, 0, 0, 0x1A5, 2829; end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/DoorStandard/door2.lua b/data/scripts/unique/wil0Battle01/DoorStandard/door2.lua index c433fb29..c3d90089 100644 --- a/data/scripts/unique/wil0Battle01/DoorStandard/door2.lua +++ b/data/scripts/unique/wil0Battle01/DoorStandard/door2.lua @@ -1,3 +1,3 @@ function init(npc) - return false, false, 0, 0, 0x1A5, 0xB09; + return false, false, 0, 0, 0x1A5, 2825; end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/DoorStandard/door3.lua b/data/scripts/unique/wil0Battle01/DoorStandard/door3.lua new file mode 100644 index 00000000..c228e206 --- /dev/null +++ b/data/scripts/unique/wil0Battle01/DoorStandard/door3.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 0x1A5, 4040; +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua b/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua new file mode 100644 index 00000000..ab7f52a1 --- /dev/null +++ b/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua @@ -0,0 +1,13 @@ +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + if (triggerName == "caution") then + worldMaster = GetWorldMaster(); + player:SendGameMessage(player, worldMaster, 34109, 0x20); + elseif (triggerName == "exit") then + GetWorldManager():DoPlayerMoveInZone(player, 5.36433, 196, 133.656, -2.84938); + end + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah_battle.lua b/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah_battle.lua new file mode 100644 index 00000000..34601794 --- /dev/null +++ b/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah_battle.lua @@ -0,0 +1,13 @@ +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + if (triggerName == "caution") then + worldMaster = GetWorldMaster(); + player:SendGameMessage(player, worldMaster, 34109, 0x20); + elseif (triggerName == "exit") then + GetWorldManager():DoPlayerMoveInZone(player, 18); + end + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/pplStd_wil0Btl01_01@0B800.lua b/data/scripts/unique/wil0Battle01/PopulaceChocoboLender/rururaji.lua similarity index 67% rename from data/scripts/unique/wil0Battle01/PopulaceStandard/pplStd_wil0Btl01_01@0B800.lua rename to data/scripts/unique/wil0Battle01/PopulaceChocoboLender/rururaji.lua index 4c9c8304..903ca699 100644 --- a/data/scripts/unique/wil0Battle01/PopulaceStandard/pplStd_wil0Btl01_01@0B800.lua +++ b/data/scripts/unique/wil0Battle01/PopulaceChocoboLender/rururaji.lua @@ -2,7 +2,7 @@ require ("global") require ("quests/man/man0u0") function onEventStarted(player, npc, triggerName) - man0u0Quest = GetStaticActor("Man0u0"); - callClientFunction(player, "delegateEvent", player, man0u0Quest, "defaultTalkWithLady001_001", nil, nil, nil); + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_13", nil, nil, nil); player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/ascilia.lua b/data/scripts/unique/wil0Battle01/PopulaceStandard/ascilia.lua index 9ad27c11..4491c814 100644 --- a/data/scripts/unique/wil0Battle01/PopulaceStandard/ascilia.lua +++ b/data/scripts/unique/wil0Battle01/PopulaceStandard/ascilia.lua @@ -9,25 +9,40 @@ function onEventStarted(player, npc, triggerName) man0u0Quest = player:GetQuest("Man0u0"); if (man0u0Quest ~= nil) then - if (triggerName == "pushDefault") then + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == false) then + npc:SetQuestGraphic(player, 0x2); + end + + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_TUTORIAL3_DONE) == true) then + player:SetEventStatus(npc, "pushDefault", false, 0x2); + end + end + + if (man0u0Quest ~= nil) then + if (triggerName == "pushDefault") then callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrNomal002", nil, nil, nil); elseif (triggerName == "talkDefault") then - if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_TUTORIAL1_DONE) == false) then - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrNomal003", nil, nil, nil); + --Is doing talk tutorial? + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_TUTORIAL3_DONE) == false) then player:SetEventStatus(npc, "pushDefault", false, 0x2); - player:GetDirector():OnTalked(npc); - man0u0Quest:SetQuestFlag(MAN0U0_FLAG_TUTORIAL1_DONE, true); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrNomal003", nil, nil, nil); + man0u0Quest:SetQuestFlag(MAN0U0_FLAG_TUTORIAL3_DONE, true); + npc:SetQuestGraphic(player, 0x2); man0u0Quest:SaveData(); - else - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini001", nil, nil, nil); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); + --Was he talked to for the mini tutorial? + else + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini001", nil, nil, nil); if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == false) then npc:SetQuestGraphic(player, 0x0); man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1, true); - man0u0Quest:SaveData(); + man0u0Quest:SaveData(); end - + end + + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); else player:EndEvent(); end diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua b/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua new file mode 100644 index 00000000..1118f89d --- /dev/null +++ b/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua @@ -0,0 +1,46 @@ +require ("global") +require ("quests/man/man0u0") + +function onSpawn(player, npc) + + man0u0Quest = player:GetQuest("Man0u0"); + + if (man0u0Quest ~= nil) then + player:SetEventStatus(npc, "pushDefault", true, 0x2); + if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0U0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then + npc:SetQuestGraphic(player, 0x3); + else + npc:SetQuestGraphic(player, 0x0); + end + end + +end + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) ~= true) then + print "AAAA" + end + + if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then + player:EndEvent(); + + contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0u01", "SimpleContent30079", "Quest/QuestDirectorMan0u001"); + + if (contentArea == nil) then + player:EndEvent(); + return; + end + + director = contentArea:GetContentDirector(); + player:AddDirector(director); + director:StartDirector(false); + + player:KickEvent(director, "noticeEvent", true); + player:SetLoginDirector(director); + + GetWorldManager():DoZoneChangeContent(player, contentArea, -24.34, 192, 34.22, 0.78, 16); + end + +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/fretful_farmhand.lua b/data/scripts/unique/wil0Battle01/PopulaceStandard/fretful_farmhand.lua index 395d9d76..30ce2c1b 100644 --- a/data/scripts/unique/wil0Battle01/PopulaceStandard/fretful_farmhand.lua +++ b/data/scripts/unique/wil0Battle01/PopulaceStandard/fretful_farmhand.lua @@ -1,20 +1,31 @@ require ("global") require ("quests/man/man0u0") +function onSpawn(player, npc) + man0u0Quest = player:GetQuest("Man0u0"); + + if (man0u0Quest ~= nil) then + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == false) then + npc:SetQuestGraphic(player, 0x2); + end + end +end + function onEventStarted(player, npc, triggerName) man0u0Quest = player:GetQuest("Man0u0"); - - if (man0u0Quest != nil) - if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == false) then - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini002_first", nil, nil, nil); - npc:SetQuestGraphic(player, 0x0); - man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2, true); - man0u0Quest:SaveData(); - player:GetDirector():OnTalked(npc); - else - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini002", nil, nil, nil); + + if (man0u0Quest ~= nil) then + if (triggerName == "talkDefault") then + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == false) then + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini002_first", nil, nil, nil); + npc:SetQuestGraphic(player, 0x0); + man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2, true); + man0u0Quest:SaveData(); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); + else + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini002", nil, nil, nil); + end end end - player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/gil-digging_mistress.lua b/data/scripts/unique/wil0Battle01/PopulaceStandard/gil-digging_mistress.lua index 687f9c09..1f0afb17 100644 --- a/data/scripts/unique/wil0Battle01/PopulaceStandard/gil-digging_mistress.lua +++ b/data/scripts/unique/wil0Battle01/PopulaceStandard/gil-digging_mistress.lua @@ -1,21 +1,31 @@ require ("global") require ("quests/man/man0u0") +function onSpawn(player, npc) + man0u0Quest = player:GetQuest("Man0u0"); + + if (man0u0Quest ~= nil) then + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == false) then + npc:SetQuestGraphic(player, 0x2); + end + end +end + function onEventStarted(player, npc, triggerName) man0u0Quest = player:GetQuest("Man0u0"); - + if (man0u0Quest ~= nil) then - - if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == false) then - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini003_first", nil, nil, nil); - npc:SetQuestGraphic(player, 0x0); - man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3, true); - man0u0Quest:SaveData(); - player:GetDirector():OnTalked(npc); - else - callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini003", nil, nil, nil); + if (triggerName == "talkDefault") then + if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == false) then + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini003_first", nil, nil, nil); + npc:SetQuestGraphic(player, 0x0); + man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3, true); + man0u0Quest:SaveData(); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); + else + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini003", nil, nil, nil); + end end - end player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/warburton.lua b/data/scripts/unique/wil0Battle01/PopulaceStandard/warburton.lua index 8f6c62a1..4dfcc5a4 100644 --- a/data/scripts/unique/wil0Battle01/PopulaceStandard/warburton.lua +++ b/data/scripts/unique/wil0Battle01/PopulaceStandard/warburton.lua @@ -2,5 +2,7 @@ require ("global") require ("quests/man/man0u0") function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_3", nil, nil, nil); player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/ElevatorStandard/wellhead_lift_lvl1.lua b/data/scripts/unique/wil0Town01/ElevatorStandard/wellhead_lift_lvl1.lua index 96d7ba1e..c2c00d3f 100644 --- a/data/scripts/unique/wil0Town01/ElevatorStandard/wellhead_lift_lvl1.lua +++ b/data/scripts/unique/wil0Town01/ElevatorStandard/wellhead_lift_lvl1.lua @@ -5,10 +5,10 @@ function onEventStarted(player, npc) if (floorChoice == 1) then callClientFunction(player, "elevatorAskUldah001", 1); - GetWorldManager():DoZoneChange(player, 209, nil, 15, -116.78, 222, 115.7, 2.85); + GetWorldManager():DoZoneChange(player, 209, nil, 0, 15, -116.78, 222, 115.7, 2.85); elseif (floorChoice == 2) then callClientFunction(player, "elevatorAskUldah001", 2); - GetWorldManager():DoZoneChange(player, 209, nil, 15, -121.60, 269.8, 135.28, -0.268); + GetWorldManager():DoZoneChange(player, 209, nil, 0, 15, -121.60, 269.8, 135.28, -0.268); end player:EndEvent(); diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua new file mode 100644 index 00000000..0640e65f --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 0x1A5, 2829; +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua new file mode 100644 index 00000000..c3d90089 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 0x1A5, 2825; +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/blocker1.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/blocker1.lua new file mode 100644 index 00000000..729f1ce1 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/blocker1.lua @@ -0,0 +1,13 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + + if (man0u0Quest ~= nil) then + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBlkNml002", nil, nil, nil); + GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); + end + + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/blocker2.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/blocker2.lua new file mode 100644 index 00000000..40598fb4 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/blocker2.lua @@ -0,0 +1,14 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + + if (man0u0Quest ~= nil) then + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBlkNml003", nil, nil, nil); + GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/disreputable_midlander.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/disreputable_midlander.lua new file mode 100644 index 00000000..3c895bb5 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/disreputable_midlander.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_4"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/full-lipped_fille.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/full-lipped_fille.lua new file mode 100644 index 00000000..7858c31a --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/full-lipped_fille.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEtc002"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/high-spirited_fellow.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/high-spirited_fellow.lua new file mode 100644 index 00000000..a6182b5f --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/high-spirited_fellow.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_3"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/keen-eyed_merchant.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/keen-eyed_merchant.lua new file mode 100644 index 00000000..c0fd4106 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/keen-eyed_merchant.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_2"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/large-lunged_laborer.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/large-lunged_laborer.lua new file mode 100644 index 00000000..8a6c0029 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/large-lunged_laborer.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEtc003"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/long-legged_lady.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/long-legged_lady.lua new file mode 100644 index 00000000..9335baad --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/long-legged_lady.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_14"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/mumpish_miqote.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/mumpish_miqote.lua new file mode 100644 index 00000000..b4512aaa --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/mumpish_miqote.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_6"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/rururaji.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/rururaji.lua new file mode 100644 index 00000000..397e1461 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/rururaji.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_7"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/tooth-grinding_traveler.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/tooth-grinding_traveler.lua new file mode 100644 index 00000000..18a3d88f --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/tooth-grinding_traveler.lua @@ -0,0 +1,8 @@ +require ("global") +require ("quests/man/man0u0") + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEtc001"); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/uldah_opening_exit.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/uldah_opening_exit.lua new file mode 100644 index 00000000..2aef1669 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/uldah_opening_exit.lua @@ -0,0 +1,16 @@ +require ("global") +require ("quests/man/man0u0") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x3); +end + +function onEventStarted(player, npc) + man0u1Quest = GetStaticActor("Man0u1"); + callClientFunction(player, "delegateEvent", player, man0u1Quest, "processEventMomodiStart"); + player:ReplaceQuest(110009, 110010); + player:SendGameMessage(GetStaticActor("Man0u1"), 329, 0x20); + player:SendGameMessage(GetStaticActor("Man0u1"), 330, 0x20); + GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 4, 15, -75.242, 195.009, 74.572, -0.046); + player:endEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/yayatoki.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/yayatoki.lua new file mode 100644 index 00000000..1f2fc5a1 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/PopulaceStandard/yayatoki.lua @@ -0,0 +1,13 @@ +require ("global") +require ("quests/man/man0u0") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x2); +end + +function onEventStarted(player, npc, triggerName) + man0u0Quest = GetStaticActor("Man0u0"); + callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_8"); + npc:SetQuestGraphic(player, 0x0); + player:EndEvent(); +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_4/PopulaceStandard/momodi.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_4/PopulaceStandard/momodi.lua new file mode 100644 index 00000000..03cdfed4 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_4/PopulaceStandard/momodi.lua @@ -0,0 +1,26 @@ +require ("global") + +function onSpawn(player, npc) + npc:SetQuestGraphic(player, 0x2); +end + +function onEventStarted(player, npc, triggerName) + local man0u1Quest = player:GetQuest("Man0u1"); + local pos = player:GetPos(); + + if (man0u1Quest ~= nil) then + callClientFunction(player, "delegateEvent", player, man0u1Quest, "processEvent010"); + player:EndEvent(); + + --[[director = player:GetZone():CreateDirector("AfterQuestWarpDirector"); + player:KickEvent(director, "noticeEvent", true); + player:AddDirector(director); + player:SetLoginDirector(director); + --]] + GetWorldManager():DoZoneChange(player, 175, nil, 0, 15, pos[0], pos[1], pos[2], pos[3]); + return; + end + + player:EndEvent(); + +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl2.lua b/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl2.lua index 8cdd8585..7900baed 100644 --- a/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl2.lua +++ b/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl2.lua @@ -5,10 +5,10 @@ function onEventStarted(player, npc) if (floorChoice == 1) then callClientFunction(player, "elevatorAskUldah002", 1); - GetWorldManager():DoZoneChange(player, 175, nil, 15, -116.78, 198, 115.7, -2.8911); + GetWorldManager():DoZoneChange(player, 175, nil, 0, 15, -116.78, 198, 115.7, -2.8911); elseif (floorChoice == 2) then callClientFunction(player, "elevatorAskUldah002", 2); - GetWorldManager():DoZoneChange(player, 209, nil, 15, -121.60, 269.8, 135.28, -0.268); + GetWorldManager():DoZoneChange(player, 209, nil, 0, 15, -121.60, 269.8, 135.28, -0.268); end player:EndEvent(); diff --git a/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl3.lua b/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl3.lua index eb2ec4f2..7d575a21 100644 --- a/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl3.lua +++ b/data/scripts/unique/wil0Town01a/ElevatorStandard/wellhead_lift_lvl3.lua @@ -5,10 +5,10 @@ function onEventStarted(player, npc) if (floorChoice == 1) then callClientFunction(player, "elevatorAskUldah003", 1); - GetWorldManager():DoZoneChange(player, 175, nil, 15, -116.78, 198, 115.7, -2.8911); + GetWorldManager():DoZoneChange(player, 175, nil, 0, 15, -116.78, 198, 115.7, -2.8911); elseif (floorChoice == 2) then callClientFunction(player, "elevatorAskUldah003", 2); - GetWorldManager():DoZoneChange(player, 209, nil, 15, -116.78, 222, 115.7, 2.85); + GetWorldManager():DoZoneChange(player, 209, nil, 0, 15, -116.78, 222, 115.7, 2.85); end player:EndEvent(); diff --git a/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua b/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua index 124f6f9a..ca5ae35e 100644 --- a/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua +++ b/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua @@ -1,7 +1,19 @@ require ("global") function onEventStarted(player, npc) - defaultWil = GetStaticActor("DftWil"); - result = player:RunEventFunction("delegateEvent", player, defaultWil, "defaultTalkWithInn_Desk_2", nil, nil, nil); --BTN - player:EndEvent(); + defaultWil = GetStaticActor("DftWil"); + choice = callClientFunction(player, "delegateEvent", player, defaultWil, "defaultTalkWithInn_Desk_2", nil, nil, nil); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 0.048, 0, -5.737, 0); + elseif (choice == 2) then + if (player:GetHomePointInn() ~= 3) then + player:SetHomePointInn(3); + player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 3071); --Secondary homepoint set to the Hourglass + else + player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint + end + end + + player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/utils.lua b/data/scripts/utils.lua new file mode 100644 index 00000000..2aff7f62 --- /dev/null +++ b/data/scripts/utils.lua @@ -0,0 +1,29 @@ +--[[ + +Helper Utils + +--]] + +function getRandomPointInBand(originX, originY, minRadius, maxRadius) + angle = math.random() * math.pi * 2; + radius =(math.sqrt(math.random()) * (maxRadius-minRadius)) + minRadius; + x = radius * math.cos(angle); + y = radius * math.sin(angle); + return {x=x+originX,y=y+originY}; +end + +function getAngleFacing(x, y, targetX, targetY) + angle = math.atan2(targetX - x, targetY - y); + return angle; +end + +function getDistanceBetweenActors(actor1, actor2) + local pos1 = actor1:GetPos(); + local pos2 = actor2:GetPos(); + + local dx = pos1[0] - pos2[0]; + local dy = pos1[1] - pos2[1] + local dz = pos1[2] - pos2[2] + + return math.sqrt(dx * dx + dy * dy + dz *dz); +end \ No newline at end of file diff --git a/data/world_config.ini b/data/world_config.ini new file mode 100644 index 00000000..2a7166de --- /dev/null +++ b/data/world_config.ini @@ -0,0 +1,11 @@ +[General] +server_ip=0.0.0.0 +showtimestamp = true + +[Database] +worldid=1 +host=127.0.0.1 +port=3306 +database=ffxiv_server +username=root +password= diff --git a/sql/characters.sql b/sql/characters.sql index 4d9b7261..78213547 100644 --- a/sql/characters.sql +++ b/sql/characters.sql @@ -1,78 +1,51 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 5/1/2017 10:28:15 PM +*/ -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `characters` --- - -DROP TABLE IF EXISTS `characters`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `characters` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `userId` int(11) unsigned NOT NULL, - `slot` smallint(6) unsigned NOT NULL, - `serverId` int(11) NOT NULL, - `name` varchar(32) NOT NULL, - `state` smallint(5) unsigned NOT NULL DEFAULT '0', - `creationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `isLegacy` smallint(1) unsigned DEFAULT '0', - `doRename` smallint(1) unsigned DEFAULT '0', - `playTime` int(10) unsigned NOT NULL DEFAULT '0', - `positionX` float NOT NULL DEFAULT '0', - `positionY` float NOT NULL DEFAULT '0', - `positionZ` float NOT NULL DEFAULT '0', - `rotation` float NOT NULL DEFAULT '0', - `actorState` smallint(5) unsigned DEFAULT '0', - `currentZoneId` smallint(5) unsigned DEFAULT '0', - `guardian` tinyint(3) unsigned NOT NULL DEFAULT '0', - `birthDay` tinyint(3) unsigned NOT NULL DEFAULT '0', - `birthMonth` tinyint(3) unsigned NOT NULL DEFAULT '0', - `initialTown` tinyint(3) unsigned NOT NULL DEFAULT '0', - `tribe` tinyint(3) unsigned NOT NULL DEFAULT '0', - `gcCurrent` tinyint(3) unsigned DEFAULT '0', - `gcLimsaRank` tinyint(3) unsigned DEFAULT '127', - `gcGridaniaRank` tinyint(3) unsigned DEFAULT '127', - `gcUldahRank` tinyint(3) unsigned DEFAULT '127', - `currentTitle` int(10) unsigned DEFAULT '0', - `currentParty` int(10) unsigned DEFAULT '0', - `restBonus` int(10) DEFAULT '0', - `achievementPoints` int(10) unsigned DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `characters` --- - -LOCK TABLES `characters` WRITE; -/*!40000 ALTER TABLE `characters` DISABLE KEYS */; - -/*!40000 ALTER TABLE `characters` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:43 +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for characters +-- ---------------------------- +CREATE TABLE `characters` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `userId` int(11) unsigned NOT NULL, + `slot` smallint(6) unsigned NOT NULL, + `serverId` int(11) NOT NULL, + `name` varchar(32) NOT NULL, + `state` smallint(5) unsigned NOT NULL DEFAULT '0', + `creationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `isLegacy` smallint(1) unsigned DEFAULT '0', + `doRename` smallint(1) unsigned DEFAULT '0', + `playTime` int(10) unsigned NOT NULL DEFAULT '0', + `positionX` float NOT NULL DEFAULT '0', + `positionY` float NOT NULL DEFAULT '0', + `positionZ` float NOT NULL DEFAULT '0', + `rotation` float NOT NULL DEFAULT '0', + `actorState` smallint(5) unsigned DEFAULT '0', + `currentZoneId` smallint(5) unsigned DEFAULT '0', + `currentPrivateArea` varchar(32) DEFAULT NULL, + `currentPrivateAreaType` int(10) unsigned DEFAULT '0', + `destinationZoneId` smallint(5) unsigned DEFAULT '0', + `destinationSpawnType` tinyint(3) unsigned DEFAULT '0', + `guardian` tinyint(3) unsigned DEFAULT '0', + `birthDay` tinyint(3) unsigned DEFAULT '0', + `birthMonth` tinyint(3) unsigned DEFAULT '0', + `initialTown` tinyint(3) unsigned DEFAULT '0', + `tribe` tinyint(3) unsigned DEFAULT '0', + `gcCurrent` tinyint(3) unsigned DEFAULT '0', + `gcLimsaRank` tinyint(3) unsigned DEFAULT '127', + `gcGridaniaRank` tinyint(3) unsigned DEFAULT '127', + `gcUldahRank` tinyint(3) unsigned DEFAULT '127', + `currentTitle` int(10) unsigned DEFAULT '0', + `restBonus` int(10) DEFAULT '0', + `achievementPoints` int(10) unsigned DEFAULT '0', + `currentActiveLinkshell` varchar(32) NOT NULL DEFAULT '', + `homepoint` int(10) unsigned NOT NULL DEFAULT '0', + `homepointInn` tinyint(3) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; diff --git a/sql/characters_linkshells.sql b/sql/characters_linkshells.sql index 91730c06..629f1c14 100644 --- a/sql/characters_linkshells.sql +++ b/sql/characters_linkshells.sql @@ -1,52 +1,19 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 4/2/2017 3:12:27 PM +*/ -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `characters_linkshells` --- - -DROP TABLE IF EXISTS `characters_linkshells`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `characters_linkshells` ( - `id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT, - `characterId` int(10) unsigned NOT NULL, - `slot` int(10) unsigned NOT NULL, - `linkshellId` int(10) unsigned NOT NULL, - PRIMARY KEY (`id`) +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for characters_linkshells +-- ---------------------------- +CREATE TABLE `characters_linkshells` ( + `characterId` int(10) unsigned NOT NULL, + `linkshellId` bigint(20) unsigned NOT NULL, + `rank` tinyint(3) unsigned NOT NULL DEFAULT '4', + PRIMARY KEY (`characterId`,`linkshellId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `characters_linkshells` --- - -LOCK TABLES `characters_linkshells` WRITE; -/*!40000 ALTER TABLE `characters_linkshells` DISABLE KEYS */; -/*!40000 ALTER TABLE `characters_linkshells` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:46 diff --git a/sql/characters_npclinkshell.sql b/sql/characters_npclinkshell.sql index 23a11f44..1cca9a3a 100644 --- a/sql/characters_npclinkshell.sql +++ b/sql/characters_npclinkshell.sql @@ -23,12 +23,11 @@ DROP TABLE IF EXISTS `characters_npclinkshell`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `characters_npclinkshell` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `characterId` int(11) unsigned NOT NULL, `npcLinkshellId` smallint(5) unsigned NOT NULL, - `isCalling` tinyint(1) unsigned DEFAULT '0', - `isExtra` tinyint(1) unsigned DEFAULT '0', - PRIMARY KEY (`id`) + `isCalling` tinyint(1) unsigned NOT NULL DEFAULT '0', + `isExtra` tinyint(1) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`characterId`,`npcLinkshellId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/sql/characters_quest_scenario.sql b/sql/characters_quest_scenario.sql index 9edb4788..1136e579 100644 --- a/sql/characters_quest_scenario.sql +++ b/sql/characters_quest_scenario.sql @@ -1,53 +1,22 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 4/2/2017 2:27:54 PM +*/ -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `characters_quest_scenario` --- - -DROP TABLE IF EXISTS `characters_quest_scenario`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `characters_quest_scenario` ( - `characterId` int(10) unsigned NOT NULL, - `slot` smallint(5) unsigned NOT NULL, - `questId` int(10) unsigned NOT NULL, - `questData` longtext, - `questFlags` int(10) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`characterId`,`slot`) +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for characters_quest_scenario +-- ---------------------------- +CREATE TABLE `characters_quest_scenario` ( + `characterId` int(10) unsigned NOT NULL, + `slot` smallint(5) unsigned NOT NULL, + `questId` int(10) unsigned NOT NULL, + `currentPhase` int(10) unsigned NOT NULL DEFAULT '0', + `questData` longtext, + `questFlags` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`characterId`,`slot`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `characters_quest_scenario` --- - -LOCK TABLES `characters_quest_scenario` WRITE; -/*!40000 ALTER TABLE `characters_quest_scenario` DISABLE KEYS */; -/*!40000 ALTER TABLE `characters_quest_scenario` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:48 diff --git a/sql/characters_retainers.sql b/sql/characters_retainers.sql new file mode 100644 index 00000000..4e4e4ed3 --- /dev/null +++ b/sql/characters_retainers.sql @@ -0,0 +1,22 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 4/15/2017 4:38:42 PM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for characters_retainers +-- ---------------------------- +CREATE TABLE `characters_retainers` ( + `characterId` int(10) unsigned NOT NULL, + `retainerId` int(10) unsigned NOT NULL, + PRIMARY KEY (`characterId`,`retainerId`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- ---------------------------- +-- Records +-- ---------------------------- diff --git a/sql/gamedata_actor_class.sql b/sql/gamedata_actor_class.sql index dfdba4a1..5542420b 100644 --- a/sql/gamedata_actor_class.sql +++ b/sql/gamedata_actor_class.sql @@ -4,12 +4,10 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 8/14/2016 9:43:37 AM +Date: 6/25/2017 10:44:22 PM */ -SET FOREIGN_KEY_CHECKS = 0; -SET autocommit = 0; - +SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for gamedata_actor_class -- ---------------------------- @@ -26,15 +24,15 @@ CREATE TABLE `gamedata_actor_class` ( -- Records -- ---------------------------- INSERT INTO `gamedata_actor_class` VALUES ('0', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000001', '', '1900006', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1000002', '', '1600179', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000001', '/Chara/Npc/Populace/PopulaceStandard', '1900006', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000002', '/Chara/Npc/Populace/PopulaceStandard', '1600179', '19', null); INSERT INTO `gamedata_actor_class` VALUES ('1000003', '/Chara/Npc/Populace/PopulaceStandard', '1600217', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000004', '/Chara/Npc/Populace/PopulaceStandard', '1500015', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1000005', '', '1600150', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000005', '/Chara/Npc/Populace/PopulaceStandard', '1600150', '19', null); INSERT INTO `gamedata_actor_class` VALUES ('1000006', '', '1000053', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000007', '', '1000005', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000008', '', '1200028', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000009', '/Chara/Npc/Populace/PopulaceStandard', '2300120', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000009', '/Chara/Npc/Populace/PopulaceStandard', '2300120', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n\r\n {\r\n \"conditionName\": \"pushDefault\",\r\n \"radius\": 3.0,\r\n \"silent\": false,\r\n \"outwards\": false\r\n }\r\n \r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000010', '/Chara/Npc/Populace/PopulaceStandard', '1400004', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000011', '', '2000005', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000012', '', '1000021', '0', null); @@ -42,7 +40,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000013', '', '1000297', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000014', '', '1100019', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000015', '', '1900026', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000016', '', '1900030', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000017', '', '1000006', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000017', '/Chara/Npc/Populace/PopulaceStandard', '1000006', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000018', '', '1000013', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000019', '', '1600233', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000020', '', '1000016', '0', null); @@ -67,7 +65,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000038', '', '1900054', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000039', '', '1600089', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000040', '', '1400080', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000041', '', '1400081', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000042', '/Chara/Npc/Populace/PopulaceStandard', '1100003', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000042', '/Chara/Npc/Populace/PopulaceStandard', '1100003', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n\r\n {\r\n \"conditionName\": \"pushDefault\",\r\n \"radius\": 3.0,\r\n \"silent\": false,\r\n \"outwards\": false\r\n }\r\n \r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000043', '', '1200025', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000044', '', '1200009', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000045', '/Chara/Npc/Populace/PopulaceStandard', '1900051', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -97,24 +95,24 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000068', '/Chara/Npc/Populace/Popul INSERT INTO `gamedata_actor_class` VALUES ('1000069', '/Chara/Npc/Populace/PopulaceStandard', '1100350', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000070', '/Chara/Npc/Populace/PopulaceStandard', '1400066', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000071', '/Chara/Npc/Populace/PopulaceStandard', '1200035', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1000072', '', '1300052', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000073', '', '1000075', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000072', '/Chara/Npc/Populace/PopulaceStandard', '1300052', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000073', '/Chara/Npc/Populace/PopulaceStandard', '1000075', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000074', '/Chara/Npc/Populace/PopulaceStandard', '1100155', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1000075', '', '4000005', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000076', '', '4000006', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000077', '', '4000007', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000075', '/Chara/Npc/Populace/PopulaceStandard', '4000005', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000076', '/Chara/Npc/Populace/PopulaceStandard', '4000006', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000077', '/Chara/Npc/Populace/PopulaceStandard', '4000007', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000078', '/Chara/Npc/Populace/PopulaceLinkshellManager', '1900036', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1000079', '', '4000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000080', '', '4000011', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000081', '', '4000012', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000082', '', '4000013', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000083', '', '4000014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000084', '', '4000001', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000085', '', '4000001', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000086', '', '4000015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000087', '', '4000113', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000088', '', '4000114', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000089', '', '4000115', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000079', '/Chara/Npc/Populace/PopulaceStandard', '4000010', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000080', '/Chara/Npc/Populace/PopulaceStandard', '4000011', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000081', '/Chara/Npc/Populace/PopulaceStandard', '4000012', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000082', '/Chara/Npc/Populace/PopulaceStandard', '4000013', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000083', '/Chara/Npc/Populace/PopulaceStandard', '4000014', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000084', '/Chara/Npc/Populace/PopulaceStandard', '4000001', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000085', '/Chara/Npc/Populace/PopulaceStandard', '4000001', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000086', '/Chara/Npc/Populace/PopulaceStandard', '4000015', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000087', '/Chara/Npc/Populace/PopulaceStandard', '4000113', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000088', '/Chara/Npc/Populace/PopulaceStandard', '4000114', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000089', '/Chara/Npc/Populace/PopulaceStandard', '4000115', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000090', '/Chara/Npc/Populace/PopulaceStandard', '1000179', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000091', '', '4000016', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000092', '', '4000017', '0', null); @@ -123,9 +121,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000094', '', '4000019', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000095', '', '4000001', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000096', '', '4000020', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000097', '', '4000021', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000098', '', '4000008', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000099', '', '4000009', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000100', '', '4000004', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000098', '/Chara/Npc/Populace/PopulaceStandard', '4000008', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000099', '/Chara/Npc/Populace/PopulaceStandard', '4000009', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000100', '/Chara/Npc/Populace/PopulaceStandard', '4000004', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000101', '', '4000023', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000102', '', '4000022', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000103', '', '4000024', '0', null); @@ -384,8 +382,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000355', '', '1200065', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000356', '', '1200078', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000357', '', '1900043', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000358', '', '1400034', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000359', '', '1600154', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000360', '', '1900068', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000359', '/Chara/Npc/Populace/PopulaceStandard', '1600154', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000360', '/Chara/Npc/Populace/PopulaceStandard', '1900068', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000361', '', '1600018', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000362', '', '1300083', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000363', '', '1000182', '0', null); @@ -587,7 +585,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000558', '', '4000480', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000559', '', '4000481', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000560', '', '4000482', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000561', '', '4000483', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000562', '', '4000484', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000562', '/Chara/Npc/Populace/PopulaceStandard', '4000484', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000563', '', '4000485', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000564', '', '4000486', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000565', '/Chara/Npc/Populace/PopulaceStandard', '1100124', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -638,11 +636,11 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000609', '', '3101413', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000610', '', '3105201', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000611', '', '3106725', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000612', '', '2420003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000613', '', '1600125', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000614', '', '1400076', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000615', '', '1900056', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000616', '', '1300073', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000617', '', '2200258', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000613', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1600125', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000614', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1400076', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000615', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1900056', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000616', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1300073', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000617', '/Chara/Npc/Populace/PopulaceCampSubMaster', '2200258', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000618', '', '1000126', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000619', '', '1000126', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000620', '/Chara/Npc/Populace/PopulaceStandard', '1400093', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -705,16 +703,16 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000676', '', '1400088', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000677', '', '1000191', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000678', '', '1600115', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000679', '', '2000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000680', '', '1100010', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000680', '/Chara/Npc/Populace/PopulaceStandard', '1100010', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000681', '/Chara/Npc/Populace/PopulaceStandard', '1100210', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1000682', '', '1000027', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000683', '', '1100023', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000684', '', '1100211', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000685', '', '1000227', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000686', '', '1900118', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000687', '', '4000199', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000688', '', '4000200', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000689', '', '4000201', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000682', '/Chara/Npc/Populace/PopulaceStandard', '1000027', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000683', '/Chara/Npc/Populace/PopulaceStandard', '1100023', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000684', '/Chara/Npc/Populace/PopulaceStandard', '1100211', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000685', '/Chara/Npc/Populace/PopulaceStandard', '1000227', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000686', '/Chara/Npc/Populace/PopulaceStandard', '1900118', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000687', '/Chara/Npc/Populace/PopulaceStandard', '4000199', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000688', '/Chara/Npc/Populace/PopulaceStandard', '4000200', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000689', '/Chara/Npc/Populace/PopulaceStandard', '4000201', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000690', '', '4000202', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000691', '', '4000203', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000692', '', '4000204', '0', null); @@ -865,7 +863,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000836', '', '4000502', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000837', '', '1900037', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000838', '', '1400106', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000839', '', '1900152', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000840', '/Chara/Npc/Populace/PopulaceStandard', '1400060', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1000840', '/Chara/Npc/Populace/PopulaceChocoboLender', '1400060', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000841', '/Chara/Npc/Populace/PopulaceStandard', '1500014', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000842', '', '1900054', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000843', '', '1100449', '0', null); @@ -901,7 +899,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1000872', '', '4000114', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000873', '', '4000115', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000874', '', '4000113', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000875', '', '4000011', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1000876', '', '1900026', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1000876', '/Chara/Npc/Populace/PopulaceStandard', '1900026', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1000877', '', '4000496', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000878', '', '4000497', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1000879', '', '4000498', '0', null); @@ -1082,12 +1080,12 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001053', '', '1300113', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001054', '', '1200025', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001055', '/Chara/Npc/Populace/PopulaceStandard', '1000055', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001056', '/Chara/Npc/Populace/PopulaceStandard', '1500111', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1001057', '', '4000259', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001058', '', '4000258', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001059', '', '4000260', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001060', '', '4000261', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001061', '', '4000262', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001062', '', '4000263', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001057', '/Chara/Npc/Populace/PopulaceStandard', '4000259', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001058', '/Chara/Npc/Populace/PopulaceStandard', '4000258', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001059', '/Chara/Npc/Populace/PopulaceStandard', '4000260', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001060', '/Chara/Npc/Populace/PopulaceStandard', '4000261', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001061', '/Chara/Npc/Populace/PopulaceStandard', '4000262', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001062', '/Chara/Npc/Populace/PopulaceStandard', '4000263', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001063', '/Chara/Npc/Populace/PopulaceStandard', '1600114', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001064', '/Chara/Npc/Populace/PopulaceStandard', '1600093', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001065', '/Chara/Npc/Populace/PopulaceStandard', '1900131', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -1316,9 +1314,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001287', '', '4000446', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001288', '', '4000447', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001289', '', '4000448', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001290', '', '4000449', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001291', '', '4000111', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001292', '', '4000111', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001293', '', '4000111', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001291', '/Chara/Npc/Populace/PopulaceStandard', '4000111', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001292', '/Chara/Npc/Populace/PopulaceStandard', '4000111', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001293', '/Chara/Npc/Populace/PopulaceStandard', '4000111', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001294', '', '1300138', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001295', '', '1000065', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001296', '', '1600236', '0', null); @@ -1455,7 +1453,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001426', '/Chara/Npc/Populace/Popul INSERT INTO `gamedata_actor_class` VALUES ('1001427', '/Chara/Npc/Populace/PopulaceStandard', '1200153', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001428', '/Chara/Npc/Populace/PopulaceStandard', '1400156', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001429', '/Chara/Npc/Populace/PopulaceStandard', '1500117', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1001430', '', '1000157', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001430', '/Chara/Npc/Populace/PopulaceStandard', '1000157', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001431', '/Chara/Npc/Populace/PopulaceStandard', '1100194', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001432', '/Chara/Npc/Populace/PopulaceStandard', '1000172', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001433', '/Chara/Npc/Populace/PopulaceStandard', '2200228', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -1636,15 +1634,15 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001615', '', '1000038', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001616', '', '1000425', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001617', '', '1100454', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001618', '', '1000426', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001619', '', '1600313', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001619', '/Chara/Npc/Populace/PopulaceSpecialEventCryer', '1600313', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001620', '', '1300200', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001621', '', '1200238', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001622', '', '1300201', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001623', '', '1900265', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001623', '/Chara/Npc/Populace/PopulaceSpecialEventCryer', '1900265', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001624', '', '1600312', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001625', '', '1500202', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001626', '', '1400205', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001627', '', '1400206', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001627', '/Chara/Npc/Populace/PopulaceSpecialEventCryer', '1400206', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001628', '', '1100167', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001629', '', '2200231', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001630', '', '4000613', '0', null); @@ -1660,16 +1658,16 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001639', '', '1200187', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001640', '', '1600142', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001641', '', '1500159', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001642', '', '1400169', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001643', '', '4000606', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001643', '/Chara/Npc/Populace/PopulaceStandard', '4000606', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001644', '/Chara/Npc/Populace/PopulaceStandard', '4000607', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001645', '', '4000608', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001646', '', '4000609', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001647', '', '4000610', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001648', '', '4000611', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001649', '', '4000604', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001650', '', '4000605', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001648', '/Chara/Npc/Populace/PopulaceStandard', '4000611', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001649', '/Chara/Npc/Populace/PopulaceStandard', '4000604', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001650', '/Chara/Npc/Populace/PopulaceStandard', '4000605', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001651', '', '1100003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001652', '/Chara/Npc/Populace/PopulaceTutorial', '1600150', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n\r\n {\r\n \"conditionName\": \"pushDefault\",\r\n \"radius\": 3.0,\r\n \"silent\": false,\r\n \"outwards\": false\r\n }\r\n \r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001652', '/Chara/Npc/Populace/PopulaceStandard', '1600150', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n\r\n {\r\n \"conditionName\": \"pushDefault\",\r\n \"radius\": 3.0,\r\n \"silent\": false,\r\n \"outwards\": false\r\n }\r\n \r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001653', '', '1900168', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001654', '', '1000126', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001655', '', '1500076', '0', null); @@ -1696,7 +1694,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001675', '', '1400186', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001676', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001677', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001678', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001679', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001679', '/Chara/Npc/Populace/PopulaceSumFes', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001680', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001681', '', '1600083', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001682', '', '1000030', '0', null); @@ -1725,7 +1723,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001704', '', '1600119', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001705', '', '1300110', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001706', '/Chara/Npc/Populace/PopulaceStandard', '1500134', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001707', '/Chara/Npc/Populace/PopulaceStandard', '1600135', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1001708', '/Chara/Npc/Populace/PopulaceStandard\r\n', '1200196', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001708', '/Chara/Npc/Populace/PopulaceStandard', '1200196', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001709', '/Chara/Npc/Populace/PopulaceStandard', '1100073', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001710', '/Chara/Npc/Populace/PopulaceStandard', '1000257', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001711', '', '1900211', '0', null); @@ -1754,9 +1752,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001733', '', '1500138', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001734', '', '1000039', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001735', '', '1200090', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001736', '', '1400172', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001737', '', '1600078', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001738', '', '1200229', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001739', '', '1000205', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001737', '/Chara/Npc/Populace/PopulaceCompanyGuide', '1600078', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001738', '/Chara/Npc/Populace/PopulaceCompanyGuide', '1200229', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001739', '/Chara/Npc/Populace/PopulaceCompanyGuide', '1000205', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001740', '', '4000619', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001741', '', '1300199', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001742', '', '1600037', '0', null); @@ -1858,15 +1856,15 @@ INSERT INTO `gamedata_actor_class` VALUES ('1001837', '', '2480007', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001838', '', '2480008', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001839', '', '1000111', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001840', '', '1900246', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001841', '', '1100397', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001842', '', '1100398', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001843', '', '1100399', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001844', '', '1900233', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001845', '', '1900234', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001846', '', '1900235', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001847', '', '1500187', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001848', '', '1500188', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1001849', '', '1500189', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1001841', '/Chara/Npc/Populace/PopulaceValentMaster', '1100397', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001842', '/Chara/Npc/Populace/PopulaceValentMaster', '1100398', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001843', '/Chara/Npc/Populace/PopulaceValentMaster', '1100399', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001844', '/Chara/Npc/Populace/PopulaceValentMaster', '1900233', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001845', '/Chara/Npc/Populace/PopulaceValentMaster', '1900234', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001846', '/Chara/Npc/Populace/PopulaceValentMaster', '1900235', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001847', '/Chara/Npc/Populace/PopulaceValentMaster', '1500187', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001848', '/Chara/Npc/Populace/PopulaceValentMaster', '1500188', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1001849', '/Chara/Npc/Populace/PopulaceValentMaster', '1500189', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1001850', '', '3103110', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001851', '', '3104208', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1001852', '', '3202706', '0', null); @@ -2058,9 +2056,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1002074', '', '1200226', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1002075', '', '4000657', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1002076', '', '4000657', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1002077', '', '4000657', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1002078', '', '1900206', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1002079', '', '1900168', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1002080', '', '1900170', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1002078', '/Chara/Npc/Populace/PopulaceYukata', '1900206', '19', null); +INSERT INTO `gamedata_actor_class` VALUES ('1002079', '/Chara/Npc/Populace/PopulaceYukata', '1900168', '19', null); +INSERT INTO `gamedata_actor_class` VALUES ('1002080', '/Chara/Npc/Populace/PopulaceYukata', '1900170', '19', null); INSERT INTO `gamedata_actor_class` VALUES ('1002081', '', '1900175', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1002082', '', '1100355', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1002083', '', '1300152', '0', null); @@ -2118,7 +2116,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1060022', '/Chara/Npc/Populace/Insta INSERT INTO `gamedata_actor_class` VALUES ('1060024', '', '1600360', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1060025', '', '1000437', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1060026', '', '1300204', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1060027', '', '1000436', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1060027', '/Chara/Npc/Populace/PopulaceBountyPresenter', '1000436', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1060028', '', '1600318', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1060029', '', '1100419', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1060030', '', '2600009', '0', null); @@ -2328,9 +2326,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1080074', '', '4000257', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080075', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080076', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080077', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080078', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080079', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080080', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080078', '/Chara/Npc/MapObj/MapObjStandard', '1', '0', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1080079', '/Chara/Npc/MapObj/MapObjStandard', '1', '0', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1080080', '/Chara/Npc/MapObj/MapObjStandard', '1', '0', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); INSERT INTO `gamedata_actor_class` VALUES ('1080081', '', '4000257', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080082', '', '4000257', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080083', '', '4000257', '0', null); @@ -2370,19 +2368,19 @@ INSERT INTO `gamedata_actor_class` VALUES ('1080116', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080120', '/Chara/Npc/Populace/PopulaceCutScenePlayer', '4010013', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1080121', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080122', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080123', '', '4010020', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080124', '', '4010021', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080125', '', '4010022', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080126', '', '4010023', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080127', '', '4010024', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080128', '', '4010025', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080129', '', '4010026', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080130', '', '4010027', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080131', '', '4010028', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080132', '', '4010029', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080133', '', '4010030', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080134', '', '4010031', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1080135', '', '4010032', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080123', '/Chara/Npc/MapObj/Pray12Gods', '4010020', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080124', '/Chara/Npc/MapObj/Pray12Gods', '4010021', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080125', '/Chara/Npc/MapObj/Pray12Gods', '4010022', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080126', '/Chara/Npc/MapObj/Pray12Gods', '4010023', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080127', '/Chara/Npc/MapObj/Pray12Gods', '4010024', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080128', '/Chara/Npc/MapObj/Pray12Gods', '4010025', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080129', '/Chara/Npc/MapObj/Pray12Gods', '4010026', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080130', '/Chara/Npc/MapObj/Pray12Gods', '4010027', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080131', '/Chara/Npc/MapObj/Pray12Gods', '4010028', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080132', '/Chara/Npc/MapObj/Pray12Gods', '4010029', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080133', '/Chara/Npc/MapObj/Pray12Gods', '4010030', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080134', '/Chara/Npc/MapObj/Pray12Gods', '4010031', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1080135', '/Chara/Npc/MapObj/Pray12Gods', '4010032', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1080136', '', '4010033', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090001', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090002', '', '0', '0', null); @@ -2408,7 +2406,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1090021', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090022', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090023', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090024', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1090025', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1090025', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [ ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n\"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"2.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"false\",\r\n \"conditionName\": \"pushDefault\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090026', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090027', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090028', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -2755,8 +2753,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1090368', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090369', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090370', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090371', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1090372', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"20.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushDefault\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1090373', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1090372', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"6.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"false\",\r\n \"conditionName\": \"pushDefault\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1090373', '/Chara/Npc/Object/OpeningStoperW0B1', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 4.0,\r\n \"silent\": true,\r\n \"outwards\": false\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 5.0,\r\n \"silent\": true,\r\n \"outwards\": false\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090374', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090375', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090376', '', '0', '0', null); @@ -2767,8 +2765,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1090380', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090381', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090382', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090383', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1090384', '/Chara/Npc/Object/OpeningStoperF0B1', '0', '0', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 40.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1090385', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1090384', '/Chara/Npc/Object/OpeningStoperF0B1', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 40.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1090385', '/Chara/Npc/Object/OpeningStoperW0B1', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 40.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090386', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090387', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090388', '', '0', '0', null); @@ -2784,7 +2782,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1090397', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090398', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090399', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090400', '/Chara/Npc/Object/OpeningTownEventKeeper', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 40.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1090401', '/Chara/Npc/Object/OpeningTownEventKeeper', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 40.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1090401', '/Chara/Npc/Object/OpeningTownEventKeeper', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 5.0,\r\n \"silent\": false,\r\n \"outwards\": false\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 5.0,\r\n \"silent\": true,\r\n \"outwards\": false\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090402', '/Chara/Npc/Object/OpeningTownEventKeeper', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 40.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090403', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090404', '', '0', '0', null); @@ -2929,9 +2927,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1090543', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090544', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090545', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090546', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1090547', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1090548', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1090549', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1090547', '/Chara/Npc/Object/ObjectInnDoor', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1090548', '/Chara/Npc/Object/ObjectInnDoor', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1090549', '/Chara/Npc/Object/ObjectInnDoor', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1090550', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090551', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1090552', '', '0', '0', null); @@ -2981,8 +2979,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1099042', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1099043', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1099044', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1099045', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1099046', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1099047', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1099046', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"6.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"false\",\r\n \"conditionName\": \"pushDefault\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1099047', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"6.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"false\",\r\n \"conditionName\": \"pushDefault\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1099048', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1099049', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1099050', '', '0', '0', null); @@ -3044,7 +3042,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200036', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200037', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200038', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200039', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200040', '', '4010016', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200040', '/Chara/Npc/Object/GuildleveWarpPoint', '4010016', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"5.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"5.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200041', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200042', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200043', '', '0', '0', null); @@ -3056,12 +3054,12 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200048', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200049', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200050', '', '4000257', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200051', '', '4000257', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200052', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1200053', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200054', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200055', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200056', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200057', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200052', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 6,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200053', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 6,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200054', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 6,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200055', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 6,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200056', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 6,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200057', '/Chara/Npc/Object/MiningPoint', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 6,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"4.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200058', '', '4000257', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200059', '', '4000257', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200060', '', '4000257', '0', null); @@ -3109,14 +3107,14 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200101', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200102', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200103', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200104', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200105', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200106', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200105', '/Chara/Npc/Object/BeastTribesMachine', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200106', '/Chara/Npc/Object/BeastTribesMachine', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200107', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200108', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200109', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200110', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200111', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200112', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200111', '/Chara/Npc/Object/BeastTribesMachine', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200112', '/Chara/Npc/Object/BeastTribesMachine', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200113', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200114', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200115', '', '0', '0', null); @@ -3146,8 +3144,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200138', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200139', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200140', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200141', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200142', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200143', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200142', '/Chara/Npc/Object/BeastTribesMachine', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200143', '/Chara/Npc/Object/BeastTribesMachine', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200144', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200145', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200146', '', '0', '0', null); @@ -3165,7 +3163,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200157', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200158', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200159', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200160', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200161', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200161', '/Chara/Npc/Object/GuildleveBonusTreasureBox', '2', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200162', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200163', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200164', '', '0', '0', null); @@ -3194,20 +3192,20 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200191', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200192', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200193', '/Chara/Npc/Object/TaskBoard', '4000602', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200194', '/Chara/Npc/Object/TaskBoard', '4000602', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1200195', '/Chara/Npc/Populace/PopulaceStandard', '4000602', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200195', '/Chara/Npc/Object/TaskBoard', '4000602', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200196', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200197', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200198', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200199', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200200', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200201', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200202', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200203', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200204', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200205', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200206', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200207', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200208', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200200', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200201', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200202', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200203', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200204', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200205', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200206', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200207', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200208', '/Chara/Npc/Object/RaidDungeonBarrier', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200209', '/Chara/Npc/Populace/PopulaceStandard', '0', '1', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200210', '/Chara/Npc/Populace/PopulaceStandard', '0', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200211', '', '0', '0', null); @@ -3333,9 +3331,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200330', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200331', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200332', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200333', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200334', '/Chara/Npc/Object/ObjectInnDoor', '4010017', '1', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1200335', '/Chara/Npc/Object/ObjectInnDoor', '4010017', '1', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1200336', '/Chara/Npc/Object/ObjectInnDoor', '4010017', '1', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200334', '/Chara/Npc/Populace/PopulaceStandard', '4010017', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1200335', '/Chara/Npc/Populace/PopulaceStandard', '4010017', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1200336', '/Chara/Npc/Populace/PopulaceStandard', '4010017', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); INSERT INTO `gamedata_actor_class` VALUES ('1200337', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200338', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200339', '', '0', '0', null); @@ -3359,9 +3357,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200356', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200357', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200358', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200359', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200360', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200361', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200362', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200360', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200361', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200362', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200363', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200364', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200365', '', '0', '0', null); @@ -3371,16 +3369,16 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200368', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200369', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200370', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200371', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200372', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200373', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200374', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200375', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200372', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200373', '~~~magitek???~~~', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200374', '~~~magitek???~~~', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200375', '~~~magitek???~~~', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200376', '/Chara/Npc/Object/ObjectItemStorage', '4010019', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1200377', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200377', '~~~evilaetherytegate~~~', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200378', '/Chara/Npc/Object/ObjectBed', '4010018', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200379', '/Chara/Npc/Object/ObjectBed', '4010018', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200380', '/Chara/Npc/Object/ObjectBed', '4010018', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1200381', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200381', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200382', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200383', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200384', '', '0', '0', null); @@ -3396,7 +3394,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200393', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200394', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200395', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200396', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200397', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1200397', '~~~evilaetherytegate~~~', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200398', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200399', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200400', '', '0', '0', null); @@ -3411,126 +3409,126 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200409', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200410', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200411', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200412', '', '4000257', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280000', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1280000', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '0', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1280001', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280002', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280003', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280004', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280005', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280006', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280007', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280008', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280009', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280010', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280011', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280012', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280013', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280014', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280015', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280016', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280017', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280018', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280019', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280020', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280021', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280022', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280023', '', '4010015', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1280002', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280003', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280004', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280005', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280006', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280007', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280008', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280009', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280010', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280011', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280012', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280013', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280014', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280015', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280016', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280017', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280018', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280019', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280020', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280021', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280022', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280023', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1280031', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280032', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280033', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280034', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280035', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280036', '', '4010014', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280037', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280038', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280039', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280040', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280041', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280042', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280043', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280044', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280045', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280046', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280047', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280048', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280049', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280050', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280051', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280052', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280053', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280054', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280055', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280056', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280057', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280058', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280059', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280061', '/Chara/Npc/Populace/PopulaceStandard', '4010014', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1280062', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280063', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280064', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280065', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280066', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280067', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280068', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280069', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280070', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280071', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280072', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280073', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280074', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280075', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280076', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280077', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280078', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280079', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280080', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280081', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280082', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280083', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280084', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280085', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280086', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280087', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280088', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280089', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280091', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280092', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280093', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280094', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280095', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280096', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280097', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280098', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280099', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280100', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280101', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280102', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280103', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280104', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280105', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280106', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280107', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280108', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280109', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280110', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280111', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280112', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280113', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280114', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280115', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280116', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280117', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280118', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280119', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280121', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280122', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280123', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280124', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280125', '', '4010015', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280126', '', '4010014', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1280127', '', '4010014', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1280032', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280033', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280034', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280035', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280036', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"10.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280037', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280038', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280039', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280040', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280041', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280042', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280043', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280044', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280045', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280046', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280047', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280048', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280049', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280050', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280051', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280052', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280053', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280054', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280055', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280056', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280057', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280058', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280059', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280061', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280062', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280063', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280064', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280065', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280066', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280067', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280068', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280069', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280070', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280071', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280072', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280073', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280074', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280075', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280076', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280077', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280078', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280079', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280080', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280081', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280082', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280083', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280084', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280085', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280086', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280087', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280088', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280089', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280091', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280092', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280093', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280094', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280095', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280096', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280097', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280098', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280099', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280100', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280101', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280102', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280103', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280104', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280105', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280106', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280107', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280108', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280109', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280110', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280111', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280112', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280113', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280114', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280115', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280116', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280117', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280118', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280119', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280121', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280122', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280123', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280124', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280125', '/Chara/Npc/Object/Aetheryte/AetheryteChild', '4010015', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280126', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1280127', '/Chara/Npc/Object/Aetheryte/AetheryteParent', '4010014', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"3.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1290001', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1290002', '/Chara/Npc/Object/PrivateAreaMasterExit', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 30.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 20.0,\r\n \"silent\": true,\r\n \"outwards\": true\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1290002', '/Chara/Npc/Object/PrivateAreaPastExit', '0', '1', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"conditionName\": \"exit\",\r\n \"radius\": 60.0,\r\n \"silent\": true,\r\n \"outwards\": false\r\n },\r\n {\r\n \"conditionName\": \"caution\",\r\n \"radius\": 50.0,\r\n \"silent\": true,\r\n \"outwards\": false\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1290003', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1290004', '/Chara/Npc/Object/BgKeepout', '0', '1', null); INSERT INTO `gamedata_actor_class` VALUES ('1290005', '', '0', '0', null); @@ -3564,48 +3562,48 @@ INSERT INTO `gamedata_actor_class` VALUES ('1290032', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1290033', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500001', '/Chara/Npc/Populace/PopulaceGuildlevePublisher', '1200001', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500002', '', '1900028', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500003', '', '1600069', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500003', '/Chara/Npc/Populace/PopulaceFlyingShip', '1600069', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500004', '/Chara/Npc/Populace/PopulaceStandard', '1100075', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500005', '/Chara/Npc/Populace/PopulaceStandard', '1600103', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500006', '/Chara/Npc/Populace/PopulaceChocoboLender', '1100197', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1500007', '', '1400065', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500008', '', '2200128', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500009', '', '1200105', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500010', '', '1900010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500011', '', '1900078', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500012', '', '1600066', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500013', '', '4000171', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500014', '', '4000172', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500015', '', '4000173', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500016', '', '4000174', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500017', '', '4000175', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500018', '', '4000176', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500019', '', '4000177', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500020', '', '4000178', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500021', '', '4000179', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500022', '', '4000180', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500023', '', '4000581', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500024', '', '4000582', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500025', '', '4000583', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500007', '/Chara/Npc/Populace/PopulaceCampMaster', '1400065', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500008', '/Chara/Npc/Populace/PopulaceCampMaster', '2200128', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500009', '/Chara/Npc/Populace/PopulaceCampMaster', '1200105', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500010', '/Chara/Npc/Populace/PopulaceCampMaster', '1900010', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500011', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1900078', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500012', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1600066', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500013', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000171', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500014', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000172', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500015', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000173', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500016', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000174', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500017', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000175', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500018', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000176', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500019', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000177', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500020', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000178', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500021', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000179', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500022', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000180', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500023', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000581', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500024', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000582', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500025', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000583', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500026', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500027', '', '4000584', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500028', '', '4000585', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500029', '', '4000586', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500027', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000584', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500028', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000585', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500029', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000586', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500030', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500031', '', '4000587', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500031', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000587', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500032', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500033', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500034', '', '4000588', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500035', '', '4000589', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500036', '', '4000590', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500034', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000588', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500035', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000589', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500036', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000590', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500037', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500038', '', '4000591', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500039', '', '4000592', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500040', '', '4000593', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500038', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000591', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500039', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000592', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500040', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000593', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500041', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500042', '', '4000181', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500043', '', '4000182', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500044', '', '4000183', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500042', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000181', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500043', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000182', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500044', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000183', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500045', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500046', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500047', '', '1000010', '0', null); @@ -3613,8 +3611,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500048', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500049', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500050', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500051', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500052', '', '4000184', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500053', '', '4000185', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500052', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000184', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500053', '/Chara/Npc/Populace/PopulaceRequestWarden', '4000185', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500054', '', '1000010', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500055', '/Chara/Npc/Populace/PopulaceFlyingShip', '1200062', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500056', '/Chara/Npc/Populace/PopulaceFlyingShip', '1100083', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -3623,29 +3621,29 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500058', '', '1500090', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500059', '', '1900100', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500060', '', '1200116', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500061', '/Chara/Npc/Populace/PopulaceChocoboLender', '1600075', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); -INSERT INTO `gamedata_actor_class` VALUES ('1500062', '', '1000054', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500063', '', '1300044', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500064', '', '1100035', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500065', '', '1400006', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500066', '', '1200111', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500067', '', '1500037', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500068', '', '1300085', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500069', '', '1600021', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500070', '', '1900040', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500071', '', '1500064', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500072', '', '1000320', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500073', '', '1200106', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500074', '', '1600058', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500075', '', '1400079', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500076', '', '1900045', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500077', '', '1000063', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500078', '', '1100096', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500079', '', '1900125', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500080', '', '1400056', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500081', '', '1200126', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500082', '', '1900007', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500083', '', '1600171', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500084', '', '1200005', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500062', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1000054', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500063', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1300044', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500064', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1100035', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500065', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1400006', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500066', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1200111', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500067', '/Chara/Npc/Populace/PopulaceHamletBreeder', '1500037', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500068', '/Chara/Npc/Populace/PopulaceCampMaster', '1300085', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500069', '/Chara/Npc/Populace/PopulaceCampMaster', '1600021', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500070', '/Chara/Npc/Populace/PopulaceCampMaster', '1900040', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500071', '/Chara/Npc/Populace/PopulaceCampMaster', '1500064', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500072', '/Chara/Npc/Populace/PopulaceCampMaster', '1000320', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500073', '/Chara/Npc/Populace/PopulaceCampMaster', '1200106', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500074', '/Chara/Npc/Populace/PopulaceCampMaster', '1600058', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500075', '/Chara/Npc/Populace/PopulaceCampMaster', '1400079', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500076', '/Chara/Npc/Populace/PopulaceCampMaster', '1900045', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500077', '/Chara/Npc/Populace/PopulaceCampMaster', '1000063', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500078', '/Chara/Npc/Populace/PopulaceCampMaster', '1100096', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500079', '/Chara/Npc/Populace/PopulaceCampMaster', '1900125', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500080', '/Chara/Npc/Populace/PopulaceCampMaster', '1400056', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500081', '/Chara/Npc/Populace/PopulaceCampMaster', '1200126', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500082', '/Chara/Npc/Populace/PopulaceCampMaster', '1900007', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500083', '/Chara/Npc/Populace/PopulaceCampMaster', '1600171', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500084', '/Chara/Npc/Populace/PopulaceCampMaster', '1200005', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); INSERT INTO `gamedata_actor_class` VALUES ('1500085', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500086', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500087', '', '0', '0', null); @@ -3655,21 +3653,21 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500090', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500091', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500092', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500093', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500094', '', '1100050', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500095', '', '1600205', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500096', '', '1400069', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500097', '', '1900111', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500098', '', '1200093', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500099', '', '1500060', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500100', '', '1100072', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500101', '', '1600028', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500102', '', '2200114', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500103', '', '1300070', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500104', '', '1000089', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500105', '', '1600162', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500106', '', '1500068', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500107', '', '1900119', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500108', '', '1300123', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500094', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1100050', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500095', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1600205', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500096', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1400069', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500097', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1900111', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500098', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1200093', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500099', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1500060', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500100', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1100072', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500101', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1600028', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500102', '/Chara/Npc/Populace/PopulaceCampSubMaster', '2200114', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500103', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1300070', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500104', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1000089', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500105', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1600162', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500106', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1500068', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500107', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1900119', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500108', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1300123', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); INSERT INTO `gamedata_actor_class` VALUES ('1500109', '', '1200110', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500110', '', '1900145', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500111', '', '1000168', '0', null); @@ -3684,8 +3682,8 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500119', '', '1100242', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500120', '', '1600311', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500121', '', '1900183', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500122', '', '1000424', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500123', '', '1000240', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500124', '', '1500112', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500123', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1000240', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('1500124', '/Chara/Npc/Populace/PopulaceCampSubMaster', '1500112', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); INSERT INTO `gamedata_actor_class` VALUES ('1500125', '/Chara/Npc/Populace/PopulaceStandard', '1100150', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500126', '/Chara/Npc/Populace/PopulaceStandard', '1500139', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500127', '/Chara/Npc/Populace/PopulaceStandard', '1200119', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -3759,21 +3757,21 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500194', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500195', '', '1000280', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500196', '', '1100415', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500197', '', '1000110', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500198', '', '1000288', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500199', '', '1000385', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500200', '', '1000114', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500201', '', '1900184', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500202', '', '1600072', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500203', '', '1300185', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500198', '/Chara/Npc/Populace/PopulaceCompanyOfficer', '1000288', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500199', '/Chara/Npc/Populace/PopulaceCompanyOfficer', '1000385', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500200', '/Chara/Npc/Populace/PopulaceCompanyOfficer', '1000114', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500201', '/Chara/Npc/Populace/PopulaceCompanyShop', '1900184', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500202', '/Chara/Npc/Populace/PopulaceCompanyShop', '1600072', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500203', '/Chara/Npc/Populace/PopulaceCompanyShop', '1300185', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500204', '', '2700002', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500205', '', '4000612', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500206', '', '1900205', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500207', '', '1000258', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500207', '/Chara/Npc/Populace/PopulaceFlyingShip', '1000258', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500208', '/Chara/Npc/Populace/PopulaceFlyingShip', '1100106', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500209', '/Chara/Npc/Populace/PopulaceFlyingShip', '1300105', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1500210', '', '1900201', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500211', '', '1600153', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500212', '', '1200188', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500210', '/Chara/Npc/Populace/PopulaceCompanySupply', '1900201', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500211', '/Chara/Npc/Populace/PopulaceCompanySupply', '1600153', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500212', '/Chara/Npc/Populace/PopulaceCompanySupply', '1200188', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500213', '', '1300165', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500214', '', '1300112', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500215', '', '1300161', '0', null); @@ -3798,31 +3796,31 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500233', '', '1200222', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500234', '', '1000133', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500235', '', '1600043', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500236', '', '1300107', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500237', '', '1000035', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500237', '/Chara/Npc/Populace/PopulaceItemRepairer', '1000035', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500238', '', '1000048', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500239', '', '1000068', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500239', '/Chara/Npc/Populace/PopulaceItemRepairer', '1000068', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500240', '', '1000080', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500241', '', '1600265', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500242', '', '1300193', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500241', '/Chara/Npc/Populace/PopulaceItemRepairer', '1600265', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500242', '/Chara/Npc/Populace/PopulaceItemRepairer', '1300193', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500243', '', '1500162', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500244', '', '1600197', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500245', '', '1500165', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500246', '', '1100105', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500245', '/Chara/Npc/Populace/PopulaceItemRepairer', '1500165', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500246', '/Chara/Npc/Populace/PopulaceItemRepairer', '1100105', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500247', '', '1400192', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500248', '', '1200213', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500249', '', '1900263', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500249', '/Chara/Npc/Populace/PopulaceItemRepairer', '1900263', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500250', '', '1200211', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500251', '', '1900257', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500251', '/Chara/Npc/Populace/PopulaceItemRepairer', '1900257', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500252', '', '1900261', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500253', '', '1200206', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500254', '', '1200205', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500254', '/Chara/Npc/Populace/PopulaceItemRepairer', '1200205', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500255', '', '1200204', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500256', '', '1100084', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500256', '/Chara/Npc/Populace/PopulaceItemRepairer', '1100084', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500257', '', '1200203', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500258', '', '1100074', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500259', '', '2200097', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500258', '/Chara/Npc/Populace/PopulaceItemRepairer', '1100074', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500259', '/Chara/Npc/Populace/PopulaceItemRepairer', '2200097', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500260', '', '1300198', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500261', '', '1000099', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500261', '/Chara/Npc/Populace/PopulaceItemRepairer', '1000099', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500262', '', '2200076', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500263', '', '2200049', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500264', '', '2200041', '0', null); @@ -3831,20 +3829,20 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500266', '', '1900271', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500267', '', '1400220', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500268', '', '1100095', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500269', '', '1000024', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500270', '', '1300203', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500271', '', '1600143', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500272', '', '1400162', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500273', '', '1100409', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500270', '/Chara/Npc/Populace/PopulaceAchievement', '1300203', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500271', '/Chara/Npc/Populace/PopulaceAchievement', '1600143', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500272', '/Chara/Npc/Populace/PopulaceAchievement', '1400162', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500273', '/Chara/Npc/Populace/PopulaceAchievement', '1100409', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500274', '/Chara/Npc/Populace/PopulaceAchievement', '1000185', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1500275', '', '1200231', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500276', '', '1200138', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500277', '', '1000435', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500278', '', '1100455', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500279', '', '1000088', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500280', '', '1900215', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500281', '', '2200066', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500282', '', '1500182', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500283', '', '1000148', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500275', '/Chara/Npc/Populace/PopulaceAchievement', '1200231', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500276', '/Chara/Npc/Populace/PopulaceAchievement', '1200138', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500277', '/Chara/Npc/Populace/PopulaceAchievement', '1000435', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500278', '/Chara/Npc/Populace/PopulaceAchievement', '1100455', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500279', '/Chara/Npc/Populace/PopulaceAchievement', '1000088', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500280', '/Chara/Npc/Populace/PopulaceAchievement', '1900215', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500281', '/Chara/Npc/Populace/PopulaceAchievement', '2200066', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500282', '/Chara/Npc/Populace/PopulaceAchievement', '1500182', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500283', '/Chara/Npc/Populace/PopulaceAchievement', '1000148', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500284', '', '1300166', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500285', '', '1300167', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500286', '', '1300168', '0', null); @@ -3854,9 +3852,9 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500289', '', '1000202', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500290', '', '1600330', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500291', '', '1600331', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500292', '', '1600332', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500293', '', '2470021', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500293', '/Chara/Npc/Populace/PopulaceBlackMarketeer', '2470021', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500294', '/Chara/Npc/Populace/PopulaceBlackMarketeer', '2470007', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1500295', '', '2470014', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500295', '/Chara/Npc/Populace/PopulaceBlackMarketeer', '2470014', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500297', '', '1400175', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500298', '', '1400177', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500299', '', '1500194', '0', null); @@ -3880,11 +3878,11 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500316', '', '1100341', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500317', '', '1000062', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500318', '', '1500156', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500319', '', '1200220', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500320', '', '1900236', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500321', '', '1000373', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500322', '', '1000389', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500323', '', '1000390', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500324', '/Chara/Npc/Populace/PopulaceStandard', '1000394', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500320', '/Chara/Npc/Populace/PopulaceHamletSupply', '1900236', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500321', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000373', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500322', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000389', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500323', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000390', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500324', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000394', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500325', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000406', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500326', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000407', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500327', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1000411', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -3896,13 +3894,13 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500332', '/Chara/Npc/Populace/Popul INSERT INTO `gamedata_actor_class` VALUES ('1500333', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1100430', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500334', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1100433', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500335', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1100434', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1500336', '', '1100438', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500337', '', '1100440', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500336', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1100438', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500337', '/Chara/Npc/Populace/PopulaceCompanyWarp', '1100440', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500338', '', '1100443', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500339', '', '1000252', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500340', '', '1600146', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500341', '', '1000062', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500342', '', '1200220', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500340', '/Chara/Npc/Populace/PopulaceHamletCaptain', '1600146', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500341', '/Chara/Npc/Populace/PopulaceHamletCaptain', '1000062', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500342', '/Chara/Npc/Populace/PopulaceHamletCaptain', '1200220', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500343', '', '1000126', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500344', '', '1000126', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500345', '', '1000126', '0', null); @@ -3948,56 +3946,56 @@ INSERT INTO `gamedata_actor_class` VALUES ('1500384', '', '1000126', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500385', '', '1100341', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500386', '', '1500156', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500387', '', '1900236', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500388', '', '1600010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500389', '', '1200052', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500390', '', '1400173', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500391', '', '1000178', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500392', '', '1900202', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500388', '/Chara/Npc/Populace/PopulaceCompanyBuffer', '1600010', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500389', '/Chara/Npc/Populace/PopulaceCompanyBuffer', '1200052', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500390', '/Chara/Npc/Populace/PopulaceCompanyBuffer', '1400173', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500391', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1000178', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500392', '/Chara/Npc/Object/MarketEntrance', '1900202', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500393', '/Chara/Npc/Object/MarketEntrance', '1200224', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500394', '/Chara/Npc/Object/MarketEntrance', '1100059', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1500395', '', '1000137', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500396', '', '1000174', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500397', '', '1100367', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500398', '', '1200082', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500399', '', '1200094', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500400', '', '1200098', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500401', '', '1200107', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500402', '', '1300137', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500403', '', '1300155', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500404', '', '1300164', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500405', '', '1300183', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500406', '', '1300186', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500407', '', '1300187', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500408', '', '1300190', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500409', '', '1400049', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500410', '', '1400175', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500411', '', '1400181', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500412', '', '1400183', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500413', '', '1400196', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500414', '', '1400203', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500415', '', '1400204', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500416', '', '1500094', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500417', '', '1500155', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500418', '', '1500157', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500419', '', '1500177', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500420', '', '1600022', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500421', '', '1600317', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500422', '', '1900208', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500423', '', '1900209', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500424', '', '1900221', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500425', '', '1900231', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500426', '', '1900232', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500427', '', '1600222', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500428', '', '1600267', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500429', '', '1600319', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500395', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1000137', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500396', '/Chara/Npc/Populace/PopulaceItemRepairer', '1000174', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500397', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1100367', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500398', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1200082', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500399', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1200094', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500400', '/Chara/Npc/Populace/PopulaceItemRepairer', '1200098', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500401', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200107', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500402', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1300137', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500403', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1300155', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500404', '/Chara/Npc/Populace/PopulaceItemRepairer', '1300164', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500405', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300183', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500406', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1300186', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500407', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300187', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500408', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1300190', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500409', '/Chara/Npc/Populace/PopulaceItemRepairer', '1400049', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500410', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1400175', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500411', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400181', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500412', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1400183', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500413', '/Chara/Npc/Populace/PopulaceItemRepairer', '1400196', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500414', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400203', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500415', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1400204', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500416', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1500094', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500417', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1500155', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500418', '/Chara/Npc/Populace/PopulaceItemRepairer', '1500157', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500419', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1500177', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500420', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1600022', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500421', '/Chara/Npc/Populace/PopulaceItemRepairer', '1600317', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500422', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900208', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500423', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900209', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500424', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1900221', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500425', '/Chara/Npc/Populace/PopulaceItemRepairer', '1900231', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500426', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1900232', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500427', '/Chara/Npc/Populace/PopulaceBranchsVendor', '1600222', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500428', '/Chara/Npc/Populace/PopulaceItemRepairer', '1600267', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1500429', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600319', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1500430', '', '1000344', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500431', '', '1200125', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500432', '', '1400039', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500433', '', '1900198', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500434', '', '1900200', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500435', '', '1900198', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500436', '', '1900200', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1500437', '', '1400164', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500433', '/Chara/Npc/Populace/PopulaceHamletSupply', '1900198', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500434', '/Chara/Npc/Populace/PopulaceHamletSupply', '1900200', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500435', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '1900198', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500436', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '1900200', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1500437', '/Chara/Npc/Populace/PopulaceHamletPushEvent', '1400164', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1500438', '', '1900183', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600001', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100429', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600002', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1500023', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -4059,88 +4057,88 @@ INSERT INTO `gamedata_actor_class` VALUES ('1600057', '/Chara/Npc/Populace/Shop/ INSERT INTO `gamedata_actor_class` VALUES ('1600058', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900103', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600059', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300058', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600060', '', '1400063', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600061', '', '1200051', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600062', '', '1000047', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600063', '', '1900098', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600061', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200051', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600062', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000047', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600063', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900098', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600064', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900196', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600065', '', '1100437', '19', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600065', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100437', '19', null); INSERT INTO `gamedata_actor_class` VALUES ('1600066', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1500160', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600067', '', '1200202', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600068', '', '1600193', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600069', '', '1400188', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600070', '', '1000238', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600071', '', '1100436', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600072', '', '1300153', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600073', '', '1000241', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600074', '', '2200044', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600067', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200202', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600068', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600193', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600069', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400188', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600070', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000238', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600071', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100436', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600072', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300153', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600073', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000241', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600074', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '2200044', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600075', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200219', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600076', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300157', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600077', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900191', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600078', '', '1500161', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600078', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1500161', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600079', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200207', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600080', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000245', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600081', '', '2200011', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600082', '', '1200209', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600083', '', '1100425', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600081', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '2200011', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600082', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200209', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600083', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100425', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600084', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000249', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600085', '', '1100413', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600086', '', '1200217', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600087', '', '1400189', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600088', '', '1300162', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600085', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100413', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600086', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200217', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600087', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400189', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600088', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300162', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600089', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900192', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600090', '', '1600212', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600091', '', '1000259', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600090', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600212', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600091', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000259', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600092', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000267', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600093', '', '1900194', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600093', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900194', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600094', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600218', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600095', '', '1000082', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600096', '', '1000096', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600097', '', '1000107', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600098', '', '1400195', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600099', '', '1600259', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600095', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000082', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600096', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000096', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600097', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000107', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600098', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400195', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600099', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600259', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600100', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600253', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600101', '', '1500164', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600101', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1500164', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600102', '', '1300194', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600103', '', '1600232', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600104', '', '1600231', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600103', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600232', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600104', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600231', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600105', '', '1600230', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600106', '', '1600229', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600107', '', '1600215', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600108', '', '1500163', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600109', '', '1600207', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600110', '', '1100109', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600111', '', '1900262', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600112', '', '1200215', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600113', '', '1400194', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600114', '', '1400191', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600108', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1500163', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600109', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1600207', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600110', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100109', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600111', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900262', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600112', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200215', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1600113', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400194', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600114', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400191', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600115', '', '1100100', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600116', '', '1200214', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600117', '', '1300197', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600117', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300197', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600118', '', '1200212', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600119', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900259', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600120', '', '1200210', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600121', '', '1300196', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600120', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200210', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600121', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1300196', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600122', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1200208', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600123', '', '1100092', '0', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 1,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600124', '', '1100090', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600125', '', '1400190', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600126', '', '1900258', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600127', '', '1900253', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600125', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1400190', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600126', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900258', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600127', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1900253', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600128', '', '1000118', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600129', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000116', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('1600130', '', '2200091', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600130', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '2200091', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600131', '', '1400193', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600132', '', '2200085', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600133', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000105', '19', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1600134', '', '1100057', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600135', '', '1100055', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600136', '', '1100053', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600137', '', '1000083', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600137', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1000083', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600138', '', '1300195', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600139', '', '1900256', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600140', '', '2200062', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600141', '', '1900254', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1600142', '', '1100051', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('1600142', '/Chara/Npc/Populace/Shop/PopulaceShopSalesman', '1100051', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600143', '', '1500166', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600144', '', '1500167', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1600145', '', '1500168', '0', null); @@ -4725,7 +4723,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2103907', '', '3103907', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2103908', '', '3103908', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2103909', '', '3103909', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2103910', '', '3103910', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2104001', '/Chara/Npc/Monster/Lemming/LemmingStandard', '3104027', '7', null); +INSERT INTO `gamedata_actor_class` VALUES ('2104001', '/Chara/Npc/Monster/Lemming/LemmingStandard', '3104027', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2104002', '', '3104002', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2104003', '', '3104003', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2104004', '', '3104004', '0', null); @@ -4943,7 +4941,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2105611', '', '3105610', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105612', '', '3105611', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105613', '', '3105611', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105614', '', '3105611', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2105701', '/Chara/Npc/Monster/Mole/MoleMoleStandard', '3105701', '7', null); +INSERT INTO `gamedata_actor_class` VALUES ('2105701', '/Chara/Npc/Monster/Mole/MoleMoleStandard', '3105701', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2105702', '', '3105702', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105703', '', '3105703', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105704', '', '3105704', '0', null); @@ -5703,10 +5701,10 @@ INSERT INTO `gamedata_actor_class` VALUES ('2201309', '', '3201309', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201401', '', '3201401', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201402', '', '3201402', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201403', '', '3201403', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2201404', '', '3201405', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2201404', '/Chara/Npc/Monster/Wolf/WolfStandard', '3201405', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2201405', '', '3201419', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201406', '', '3201404', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2201407', '', '3201406', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2201407', '/Chara/Npc/Monster/Wolf/WolfStandard', '3201406', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2201408', '', '3201407', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201409', '', '3201408', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201410', '', '3201409', '0', null); @@ -5884,7 +5882,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2203201', '', '3203201', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203202', '', '3203202', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203203', '', '3203203', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203204', '', '3203204', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2203301', '', '3203301', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2203301', '/Chara/Npc/Monster/Goobbue/GoobbueLesserStandard', '3203301', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2203302', '', '3203302', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203303', '', '3203303', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203401', '', '3203401', '0', null); @@ -6057,7 +6055,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2205310', '', '3205310', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205311', '', '3205311', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205401', '', '3205401', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205402', '', '3205402', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2205403', '/Chara/Npc/Monster/Jellyfish/JellyfishScenarioLimsaLv00', '3205403', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2205403', '/Chara/Npc/Monster/Jellyfish/JellyfishScenarioLimsaLv00', '3205403', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2205404', '', '3205404', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205405', '', '3205405', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205406', '', '3205406', '0', null); @@ -6306,14 +6304,14 @@ INSERT INTO `gamedata_actor_class` VALUES ('2207008', '', '3207028', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207009', '', '3207001', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207301', '', '3207301', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207302', '', '3207302', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2207303', '', '3207302', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2207303', '/Chara/Npc/Monster/Ifrit/IfritNormal', '3207302', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2207304', '', '3207302', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2207305', '', '3207302', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2207305', '/Chara/Npc/Monster/Ifrit/IfritDummy', '3207302', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2207306', '', '3207303', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207307', '', '3207303', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207308', '', '3207302', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207309', '', '3207302', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2207310', '', '3207302', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2207310', '/Chara/Npc/Monster/Ifrit/IfritHotAir', '3207302', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2207311', '', '3207304', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207312', '', '3207304', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2207313', '', '3207303', '0', null); @@ -6667,12 +6665,12 @@ INSERT INTO `gamedata_actor_class` VALUES ('2289041', '', '3280323', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2289042', '', '3280324', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2289043', '', '3280325', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2289044', '', '3280403', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2290001', '/Chara/Npc/Monster/FighterAlly/FighterAllyOpeningHealer', '1900006', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290002', '/Chara/Npc/Monster/FighterAlly/FighterAllyOpeningAttacker', '1600179', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290003', '', '1200024', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2290004', '', '1000010', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2290005', '', '1400004', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2290006', '', '2300120', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('2290001', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1900006', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290002', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '1600179', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290003', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1200024', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290004', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '1000010', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290005', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1400004', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290006', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '2300120', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2290007', '', '1500024', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2290008', '', '1900054', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2290009', '', '1000029', '0', null); @@ -7076,96 +7074,96 @@ INSERT INTO `gamedata_actor_class` VALUES ('3003172', '', '1600074', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('3003173', '', '1600147', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('3003174', '', '1600194', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('3003175', '', '1600246', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000001', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000002', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000003', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000004', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000005', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000006', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000007', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000008', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000009', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000010', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000011', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000012', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000013', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000014', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000015', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000016', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000017', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000018', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000019', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000020', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000021', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000022', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000023', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000024', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000025', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000026', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000027', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000028', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000029', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000030', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000031', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000032', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000033', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000034', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000035', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000036', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000037', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000038', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000039', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000040', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000041', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000042', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000043', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000044', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000045', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000046', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000047', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000048', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000049', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000050', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000051', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000052', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000053', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000054', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000055', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000056', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000057', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000058', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000059', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000060', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000061', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000062', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000063', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000064', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000065', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000066', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000067', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000068', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000069', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000070', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000071', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000072', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000073', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000074', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000075', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000076', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000077', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000078', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000079', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000080', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000081', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000082', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000083', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000084', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000085', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000086', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000087', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000088', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000089', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('5000090', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('5000001', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000002', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000003', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000004', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000005', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000006', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000007', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000008', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000009', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000010', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000011', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000012', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000013', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000014', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000015', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000016', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000017', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000018', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000019', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000020', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000021', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000022', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000023', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000024', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000025', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000026', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000027', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000028', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000029', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000030', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000031', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000032', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000033', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000034', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000035', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000036', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000037', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000038', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000039', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000040', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000041', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000042', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000043', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000044', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000045', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000046', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000047', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000048', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000049', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000050', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000051', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000052', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000053', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000054', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000055', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000056', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000057', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000058', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000059', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000060', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000061', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000062', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000063', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000064', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000065', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000066', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000067', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000068', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000069', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000070', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000071', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000072', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000073', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000074', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000075', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000076', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000077', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000078', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000079', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000080', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000081', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000082', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000083', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000084', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000085', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000086', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000087', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000088', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000089', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); +INSERT INTO `gamedata_actor_class` VALUES ('5000090', '/Chara/Npc/MapObj/MarketStand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}\r\n'); INSERT INTO `gamedata_actor_class` VALUES ('5000101', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('5000106', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('5000107', '', '0', '0', null); @@ -7183,11 +7181,11 @@ INSERT INTO `gamedata_actor_class` VALUES ('5900003', '/Chara/Npc/MapObj/DoorSta INSERT INTO `gamedata_actor_class` VALUES ('5900004', '/Chara/Npc/MapObj/DoorStandard', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('5900005', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('5900006', '/Chara/Npc/MapObj/MapObjOnlyShowHide', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('5900007', '', '0', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('5900007', '/Chara/Npc/MapObj/MapObjOnlyShowHide', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('5900008', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('5900009', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('5900010', '/Chara/Npc/MapObj/MapObjPortDoor', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('5900011', '/Chara/Npc/MapObj/MapObjShipPort', '1', '19', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('5900011', '/Chara/Npc/MapObj/MapObjShipPort', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('5900012', '/Chara/Npc/MapObj/MapObjPortDoor', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('5900013', '/Chara/Npc/MapObj/MapObjShipRouteLand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('5900014', '/Chara/Npc/MapObj/MapObjShipRouteLand', '0', '1', '{ \r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); @@ -7915,34 +7913,34 @@ INSERT INTO `gamedata_actor_class` VALUES ('9114433', '', '1500001', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9114434', '', '1500001', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9114435', '', '1500001', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9114436', '', '1900001', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114437', '', '1000002', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114438', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114439', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114440', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114441', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114442', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114443', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114444', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114445', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114446', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114447', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114448', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114449', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114450', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114451', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114452', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114453', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114454', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114455', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114456', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114457', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114458', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114459', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114460', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114461', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114462', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114463', '', '1000003', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('9114464', '', '1000003', '0', null); +INSERT INTO `gamedata_actor_class` VALUES ('9114437', '/Chara/Npc/Debug/PopulaceMenuMan', '1000002', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114438', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114439', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114440', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114441', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114442', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114443', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114444', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114445', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114446', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114447', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114448', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114449', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114450', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114451', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114452', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114453', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114454', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114455', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114456', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114457', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114458', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114459', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114460', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114461', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114462', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114463', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('9114464', '/Chara/Npc/Debug/PopulaceQuestTestManStandard', '1000003', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('9114465', '', '1400012', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9114466', '', '1400012', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9115401', '', '1', '0', null); @@ -8009,5 +8007,3 @@ INSERT INTO `gamedata_actor_class` VALUES ('9220405', '', '2', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9220406', '', '2', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9220407', '', '2', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9220408', '', '2', '0', null); - -COMMIT; \ No newline at end of file diff --git a/sql/gamedata_actor_pushcommand.sql b/sql/gamedata_actor_pushcommand.sql new file mode 100644 index 00000000..6de15b7b --- /dev/null +++ b/sql/gamedata_actor_pushcommand.sql @@ -0,0 +1,169 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 6/19/2017 10:23:42 PM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for gamedata_actor_pushcommand +-- ---------------------------- +CREATE TABLE `gamedata_actor_pushcommand` ( + `id` int(10) unsigned NOT NULL, + `pushCommand` smallint(5) unsigned NOT NULL DEFAULT '0', + `pushCommandSub` smallint(6) NOT NULL DEFAULT '0', + `pushCommandPriority` tinyint(3) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +-- ---------------------------- +-- Records +-- ---------------------------- +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1090460', '10013', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1090461', '10013', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1090462', '10013', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1290007', '10006', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1290008', '10006', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1290009', '10006', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200052', '20001', '0', '6'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200055', '20006', '0', '6'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200053', '20005', '0', '6'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200057', '20007', '0', '6'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200054', '20002', '0', '6'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200056', '20003', '0', '6'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280000', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280001', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280002', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280003', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280004', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280005', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280006', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280007', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280008', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280009', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280010', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280011', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280012', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280013', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280014', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280015', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280016', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280017', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280018', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280019', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280020', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280021', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280022', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280023', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280024', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280025', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280026', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280027', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280028', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280029', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280030', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280031', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280032', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280033', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280034', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280035', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280036', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280037', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280038', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280039', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280040', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280041', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280042', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280043', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280044', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280045', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280046', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280047', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280048', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280049', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280050', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280051', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280052', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280053', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280054', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280055', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280056', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280057', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280058', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280059', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280060', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280061', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280062', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280063', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280064', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280065', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280066', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280067', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280068', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280069', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280070', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280071', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280072', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280073', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280074', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280075', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280076', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280077', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280078', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280079', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280080', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280081', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280082', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280083', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280084', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280085', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280086', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280087', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280088', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280089', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280090', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280091', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280092', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280093', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280094', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280095', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280096', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280097', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280098', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280099', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280100', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280101', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280102', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280103', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280104', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280105', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280106', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280107', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280108', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280109', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280110', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280111', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280112', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280113', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280114', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280115', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280116', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280117', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280118', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280119', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280120', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280121', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280122', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280123', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280124', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280125', '10010', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280126', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1280127', '10002', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200027', '10008', '0', '8'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1200040', '10003', '0', '12'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1090547', '10011', '0', '10'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1090548', '10011', '0', '10'); +INSERT INTO `gamedata_actor_pushcommand` VALUES ('1090549', '10011', '0', '10'); diff --git a/sql/gamedata_guildleves.sql b/sql/gamedata_guildleves.sql new file mode 100644 index 00000000..9ccab6e2 --- /dev/null +++ b/sql/gamedata_guildleves.sql @@ -0,0 +1,671 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 6/24/2017 2:11:35 PM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for gamedata_guildleves +-- ---------------------------- +CREATE TABLE `gamedata_guildleves` ( + `id` int(10) unsigned NOT NULL, + `classType` int(10) unsigned DEFAULT NULL, + `location` int(10) unsigned DEFAULT NULL, + `factionCreditRequired` smallint(5) unsigned DEFAULT NULL, + `level` smallint(5) unsigned DEFAULT NULL, + `aetheryte` int(10) unsigned DEFAULT NULL, + `plateId` int(10) unsigned NOT NULL, + `borderId` int(10) unsigned NOT NULL, + `objective` int(10) unsigned DEFAULT NULL, + `partyRecommended` int(10) unsigned DEFAULT NULL, + `targetLocation` int(10) unsigned DEFAULT NULL, + `authority` int(10) unsigned DEFAULT NULL, + `timeLimit` tinyint(3) unsigned DEFAULT NULL, + `skill` int(10) unsigned DEFAULT NULL, + `favorCount` tinyint(3) unsigned DEFAULT NULL, + `aimNum1` tinyint(4) NOT NULL DEFAULT '0', + `aimNum2` tinyint(4) NOT NULL DEFAULT '0', + `aimNum3` tinyint(4) NOT NULL DEFAULT '0', + `aimNum4` tinyint(4) NOT NULL DEFAULT '0', + `item1` int(10) unsigned NOT NULL DEFAULT '0', + `item2` int(10) unsigned NOT NULL DEFAULT '0', + `item3` int(10) unsigned NOT NULL DEFAULT '0', + `item4` int(10) unsigned NOT NULL DEFAULT '0', + `mob1` int(10) unsigned NOT NULL DEFAULT '0', + `mob2` int(10) unsigned NOT NULL DEFAULT '0', + `mob3` int(10) unsigned NOT NULL DEFAULT '0', + `mob4` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- ---------------------------- +-- Records +-- ---------------------------- +INSERT INTO `gamedata_guildleves` VALUES ('0', '1', '0', '0', '0', '1280000', '0', '0', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1', '1', '0', '0', '0', '1280000', '0', '0', '10011', '0', '0', '0', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('2', '1', '1', '0', '5', '1280002', '20021', '20005', '10011', '0', '0', '40001', '40', '1', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3204006', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3', '1', '1', '0', '5', '1280002', '20021', '20005', '10021', '0', '0', '40001', '30', '1', '10', '3', '1', '0', '0', '0', '0', '0', '0', '3204006', '3204006', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4', '1', '1', '0', '5', '1280002', '20022', '20005', '10031', '0', '0', '40001', '30', '1', '10', '3', '1', '0', '0', '0', '0', '0', '0', '3204006', '3204006', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '2', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('6', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '2', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('7', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '2', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('8', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('9', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('47', '1', '1', '0', '0', '1280002', '20021', '20001', '0', '0', '0', '40001', '60', '0', '10', '8', '1', '1', '1', '0', '0', '0', '0', '1', '3106209', '3200801', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('48', '1', '1', '0', '0', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '8', '1', '1', '1', '0', '0', '0', '0', '1', '3106312', '3101511', '3100612'); +INSERT INTO `gamedata_guildleves` VALUES ('49', '1', '1', '0', '0', '1280002', '20032', '20005', '10011', '0', '0', '40001', '60', '0', '10', '8', '1', '1', '1', '0', '0', '0', '0', '1', '3104323', '3107616', '3100913'); +INSERT INTO `gamedata_guildleves` VALUES ('1001', '1', '1', '100', '20', '1280003', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '4', '2', '4', '0', '0', '0', '0', '0', '3280203', '3280207', '3280211', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1002', '1', '1', '100', '20', '1280005', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3206601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1003', '1', '2', '100', '20', '1280066', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3206701', '3206702', '3206703', '3206704'); +INSERT INTO `gamedata_guildleves` VALUES ('1004', '1', '1', '200', '30', '1280007', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206601', '3206601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1005', '1', '3', '200', '30', '1280042', '20022', '20002', '12006', '0', '0', '40019', '40', '0', '10', '4', '6', '9', '0', '0', '0', '0', '0', '3206301', '3206301', '3206301', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1006', '1', '1', '200', '30', '1280007', '20025', '20002', '10021', '0', '0', '40019', '40', '0', '10', '5', '0', '0', '0', '12000078', '0', '0', '0', '3280203', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1007', '1', '3', '300', '40', '1280036', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3206501', '3206505', '3206509', '3206513'); +INSERT INTO `gamedata_guildleves` VALUES ('1008', '1', '3', '300', '40', '1280036', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '5', '4', '3', '0', '0', '0', '0', '0', '3206501', '3206505', '3206513', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1009', '1', '4', '300', '40', '1280092', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1010', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1011', '1', '3', '100', '50', '1280036', '20025', '20002', '10021', '0', '0', '40019', '40', '0', '10', '20', '0', '0', '0', '12000187', '0', '0', '0', '3202201', '3202204', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1012', '1', '3', '100', '50', '1280036', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3206506', '3202205', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1013', '1', '3', '400', '50', '1280036', '20021', '20002', '12001', '101', '0', '40019', '40', '0', '10', '1', '1', '2', '4', '0', '0', '0', '0', '3206515', '3202201', '3206506', '3202205'); +INSERT INTO `gamedata_guildleves` VALUES ('1014', '1', '2', '100', '50', '1280073', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3201419', '3201404', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1015', '1', '2', '100', '50', '1280073', '20022', '20002', '12006', '0', '0', '40019', '40', '0', '10', '3', '4', '0', '1', '0', '0', '0', '0', '3201419', '3201419', '0', '3206402'); +INSERT INTO `gamedata_guildleves` VALUES ('1016', '1', '2', '400', '50', '1280073', '20021', '20002', '12001', '101', '0', '40019', '40', '0', '10', '1', '1', '3', '4', '0', '0', '0', '0', '3206403', '3201405', '3206402', '3201419'); +INSERT INTO `gamedata_guildleves` VALUES ('1017', '1', '4', '100', '50', '1280096', '20060', '20002', '12001', '106', '0', '40019', '12', '0', '10', '1', '1', '1', '1', '0', '0', '0', '0', '3206432', '3206433', '3206434', '3206435'); +INSERT INTO `gamedata_guildleves` VALUES ('1018', '1', '3', '100', '50', '1280049', '20060', '20002', '12006', '106', '0', '40019', '11', '0', '10', '1', '1', '1', '0', '0', '0', '0', '0', '3206542', '3206543', '3202210', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1019', '1', '1', '100', '50', '1280006', '20060', '20002', '12009', '106', '0', '40019', '10', '0', '10', '6', '1', '1', '0', '0', '0', '0', '0', '3206624', '3206622', '3206623', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1020', '1', '1', '100', '50', '1280006', '20059', '20002', '12001', '103', '0', '40019', '10', '0', '10', '1', '1', '0', '0', '0', '0', '0', '0', '3110702', '3110703', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1021', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1022', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1023', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1024', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1025', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1101', '1', '1', '100', '20', '1280003', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '11', '0', '0', '0', '0', '0', '0', '3280107', '3204001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1102', '1', '1', '100', '20', '1280005', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '3', '8', '0', '0', '0', '0', '0', '3280108', '3201401', '3201402', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1103', '1', '2', '100', '20', '1280066', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '3', '6', '0', '0', '0', '0', '0', '3280131', '3200502', '3200501', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1104', '1', '3', '200', '30', '1280042', '20022', '20002', '12006', '0', '0', '40020', '40', '0', '10', '1', '8', '0', '3', '0', '0', '0', '0', '3280121', '3203902', '0', '3203904'); +INSERT INTO `gamedata_guildleves` VALUES ('1105', '1', '1', '200', '30', '1280020', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '8', '3', '0', '0', '0', '0', '0', '3280109', '3204202', '3204204', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1106', '1', '1', '200', '30', '1280007', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '1', '4', '6', '0', '0', '0', '0', '3280110', '3201403', '3206010', '3206009'); +INSERT INTO `gamedata_guildleves` VALUES ('1107', '1', '3', '300', '40', '1280036', '20022', '20002', '12006', '0', '0', '40020', '40', '0', '10', '1', '6', '0', '3', '0', '0', '0', '0', '3280121', '3205306', '0', '3200602'); +INSERT INTO `gamedata_guildleves` VALUES ('1108', '1', '2', '300', '40', '1280063', '20022', '20002', '12006', '0', '0', '40020', '40', '0', '10', '1', '2', '0', '5', '0', '0', '0', '0', '3280132', '3200702', '0', '3200107'); +INSERT INTO `gamedata_guildleves` VALUES ('1109', '1', '4', '300', '40', '1280092', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '7', '0', '0', '0', '0', '0', '0', '3280146', '3203101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1110', '1', '2', '300', '40', '1280063', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '6', '5', '0', '0', '0', '0', '0', '3280133', '3205902', '3202706', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1111', '1', '1', '100', '50', '1280005', '20025', '20002', '10021', '0', '0', '40020', '40', '0', '10', '5', '0', '0', '0', '12000184', '0', '0', '0', '3200603', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1112', '1', '1', '100', '50', '1280005', '20025', '20002', '10021', '0', '0', '40020', '40', '0', '10', '20', '0', '0', '0', '12000185', '0', '0', '0', '3202707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1113', '1', '1', '400', '50', '1280005', '20021', '20002', '12002', '102', '0', '40020', '40', '0', '10', '1', '1', '0', '0', '0', '0', '0', '12000186', '3280111', '3200801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1114', '1', '1', '100', '50', '1280012', '20060', '20002', '12010', '106', '0', '40020', '10', '0', '10', '5', '1', '0', '1', '0', '0', '0', '12000188', '3203507', '3203506', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1115', '1', '1', '100', '50', '1280018', '20060', '20002', '12008', '106', '0', '40020', '10', '0', '10', '3', '1', '0', '0', '0', '0', '0', '0', '3203408', '3203407', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1116', '1', '1', '100', '50', '1280012', '20060', '20002', '12009', '106', '0', '40020', '10', '0', '0', '6', '1', '1', '0', '0', '0', '0', '0', '3280195', '3280194', '3203203', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1117', '1', '4', '100', '50', '1280103', '20060', '20002', '12007', '106', '0', '40020', '10', '0', '0', '1', '0', '0', '1', '0', '0', '0', '0', '3202505', '0', '0', '3290010'); +INSERT INTO `gamedata_guildleves` VALUES ('1118', '1', '1', '100', '50', '1280010', '20059', '20002', '12011', '104', '0', '40020', '15', '0', '10', '1', '0', '0', '1', '0', '0', '0', '0', '3280403', '3101424', '0', '1900183'); +INSERT INTO `gamedata_guildleves` VALUES ('1119', '1', '1', '400', '50', '1280002', '20059', '20002', '12012', '103', '0', '40020', '15', '0', '10', '1', '1', '0', '1', '0', '0', '0', '0', '3109003', '3109004', '0', '1900183'); +INSERT INTO `gamedata_guildleves` VALUES ('1120', '1', '2', '300', '40', '1280063', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '6', '5', '0', '0', '0', '0', '0', '3280133', '3205902', '3202706', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1201', '4', '1', '100', '20', '1280001', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '10', '2', '2', '2', '9', '12000069', '12000069', '12000069', '12000069', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1202', '4', '1', '200', '30', '1280020', '20031', '20002', '12003', '0', '0', '40021', '20', '0', '10', '18', '7', '5', '6', '12000075', '12000075', '12000075', '12000075', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1203', '4', '1', '300', '40', '1280006', '20031', '20002', '12004', '0', '0', '40021', '10', '0', '10', '3', '2', '1', '7', '12000068', '12000068', '12000068', '12000068', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1204', '4', '3', '200', '30', '1280031', '20031', '20002', '12004', '0', '0', '40021', '10', '0', '10', '3', '2', '2', '9', '12000070', '12000070', '12000070', '12000070', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1205', '4', '2', '200', '30', '1280061', '20031', '20002', '12004', '0', '0', '40021', '10', '0', '10', '4', '3', '3', '12', '12000071', '12000071', '12000071', '12000071', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1206', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '10', '4', '3', '2', '11', '12000072', '12000072', '12000072', '12000072', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1207', '4', '2', '300', '40', '1280063', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000073', '12000073', '12000073', '12000073', '3206303', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1208', '4', '4', '300', '40', '1280096', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000074', '12000074', '12000074', '12000074', '3206207', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1209', '4', '3', '300', '40', '1280052', '20031', '20002', '12003', '0', '0', '40021', '20', '0', '10', '12', '1', '5', '6', '12000076', '12000076', '12000076', '12000076', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1210', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '10', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1211', '4', '2', '100', '20', '1280066', '20031', '20002', '12003', '0', '0', '40021', '20', '0', '10', '12', '3', '5', '4', '12000181', '12000181', '12000181', '12000181', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1212', '4', '3', '100', '20', '1280034', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000182', '12000182', '12000182', '12000182', '3200707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1213', '4', '2', '250', '30', '1280082', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000183', '12000183', '12000183', '12000183', '3280173', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1214', '4', '1', '100', '50', '1280004', '20059', '20002', '12013', '104', '30003', '40021', '15', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1215', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1216', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1217', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1218', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1219', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1220', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3200', '2', '1', '0', '1', '1280002', '20029', '20005', '11021', '0', '31001', '40013', '30', '39', '10', '3', '0', '0', '0', '12000060', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3201', '2', '1', '0', '1', '1280002', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3203', '2', '1', '0', '1', '1280002', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000061', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3216', '2', '1', '0', '10', '1280003', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3219', '2', '1', '0', '10', '1280003', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000062', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3232', '2', '1', '0', '20', '1280005', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3235', '2', '1', '0', '20', '1280005', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000063', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3248', '2', '1', '0', '30', '1280007', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3251', '2', '1', '0', '30', '1280007', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000163', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3264', '2', '1', '0', '40', '1280006', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3266', '2', '1', '0', '40', '1280006', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000164', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3400', '2', '1', '0', '1', '1280002', '20029', '20005', '11021', '0', '31003', '40013', '30', '40', '10', '3', '0', '0', '0', '12000064', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3401', '2', '1', '0', '1', '1280002', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3403', '2', '1', '0', '1', '1280002', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000066', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3416', '2', '1', '0', '10', '1280003', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3419', '2', '1', '0', '10', '1280003', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000067', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3432', '2', '1', '0', '20', '1280005', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3435', '2', '1', '0', '20', '1280005', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000165', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3448', '2', '1', '0', '30', '1280007', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3451', '2', '1', '0', '30', '1280007', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000166', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3464', '2', '1', '0', '40', '1280006', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3466', '2', '1', '0', '40', '1280006', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000162', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3600', '2', '1', '0', '1', '1280002', '20029', '20005', '11021', '0', '31004', '40013', '30', '41', '10', '3', '0', '0', '0', '12000144', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3601', '2', '1', '0', '1', '1280002', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3603', '2', '1', '0', '1', '1280002', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000147', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3616', '2', '1', '0', '10', '1280003', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3619', '2', '1', '0', '10', '1280003', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000148', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3632', '2', '1', '0', '20', '1280005', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3635', '2', '1', '0', '20', '1280005', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000167', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3648', '2', '1', '0', '30', '1280007', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3651', '2', '1', '0', '30', '1280007', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000149', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3664', '2', '1', '0', '40', '1280006', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3666', '2', '1', '0', '40', '1280006', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000168', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4000', '2', '3', '0', '1', '1280032', '20029', '20005', '11021', '0', '31001', '40025', '30', '39', '10', '3', '0', '0', '0', '12000060', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4001', '2', '3', '0', '1', '1280032', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4003', '2', '3', '0', '1', '1280032', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000061', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4016', '2', '3', '0', '10', '1280033', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4019', '2', '3', '0', '10', '1280033', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000140', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4032', '2', '3', '0', '20', '1280034', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4035', '2', '3', '0', '20', '1280034', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000169', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4048', '2', '3', '0', '30', '1280042', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4051', '2', '3', '0', '30', '1280042', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000141', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4064', '2', '3', '0', '40', '1280039', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4066', '2', '3', '0', '40', '1280039', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000170', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4200', '2', '3', '0', '1', '1280032', '20029', '20005', '11021', '0', '31003', '40025', '30', '40', '10', '3', '0', '0', '0', '12000064', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4201', '2', '3', '0', '1', '1280032', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4203', '2', '3', '0', '1', '1280032', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000156', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4216', '2', '3', '0', '10', '1280033', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4219', '2', '3', '0', '10', '1280033', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000157', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4232', '2', '3', '0', '20', '1280034', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4235', '2', '3', '0', '20', '1280034', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000158', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4248', '2', '3', '0', '30', '1280042', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4251', '2', '3', '0', '30', '1280042', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000171', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4264', '2', '3', '0', '40', '1280039', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4266', '2', '3', '0', '40', '1280039', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000172', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4400', '2', '3', '0', '1', '1280032', '20029', '20005', '11021', '0', '31004', '40025', '30', '41', '10', '3', '0', '0', '0', '12000145', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4401', '2', '3', '0', '1', '1280032', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4403', '2', '3', '0', '1', '1280032', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000150', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4416', '2', '3', '0', '10', '1280033', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4419', '2', '3', '0', '10', '1280033', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000151', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4432', '2', '3', '0', '40', '1280039', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4435', '2', '3', '0', '40', '1280039', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000152', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4448', '2', '3', '0', '30', '1280042', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4451', '2', '3', '0', '30', '1280042', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000174', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4464', '2', '3', '0', '20', '1280034', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4467', '2', '3', '0', '20', '1280034', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000173', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4800', '2', '2', '0', '1', '1280062', '20029', '20005', '11021', '0', '31001', '40038', '30', '39', '10', '3', '0', '0', '0', '12000060', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4801', '2', '2', '0', '1', '1280062', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4803', '2', '2', '0', '1', '1280062', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000142', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4816', '2', '2', '0', '10', '1280064', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4819', '2', '2', '0', '10', '1280064', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000063', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4832', '2', '2', '0', '20', '1280066', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4835', '2', '2', '0', '20', '1280066', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000175', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4848', '2', '2', '0', '30', '1280067', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4851', '2', '2', '0', '30', '1280067', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000176', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4864', '2', '2', '0', '40', '1280073', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4866', '2', '2', '0', '40', '1280073', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000143', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5000', '2', '2', '0', '1', '1280062', '20029', '20005', '11021', '0', '31003', '40038', '30', '40', '10', '3', '0', '0', '0', '12000064', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5001', '2', '2', '0', '1', '1280062', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5003', '2', '2', '0', '1', '1280062', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000159', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5016', '2', '2', '0', '10', '1280064', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5019', '2', '2', '0', '10', '1280064', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000160', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5032', '2', '2', '0', '20', '1280066', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5035', '2', '2', '0', '20', '1280066', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000177', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5048', '2', '2', '0', '30', '1280067', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5051', '2', '2', '0', '30', '1280067', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000161', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5064', '2', '2', '0', '40', '1280073', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5066', '2', '2', '0', '40', '1280073', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000178', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5200', '2', '2', '0', '1', '1280062', '20029', '20005', '11021', '0', '31004', '40038', '30', '41', '10', '3', '0', '0', '0', '12000146', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5201', '2', '2', '0', '1', '1280062', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5203', '2', '2', '0', '1', '1280062', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000153', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5216', '2', '2', '0', '10', '1280064', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5219', '2', '2', '0', '10', '1280064', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000154', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5232', '2', '2', '0', '40', '1280063', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5234', '2', '2', '0', '40', '1280063', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000180', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5248', '2', '2', '0', '30', '1280067', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5251', '2', '2', '0', '30', '1280067', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000179', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5264', '2', '2', '0', '20', '1280066', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5266', '2', '2', '0', '20', '1280066', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000155', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10801', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40013', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204001', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10802', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40013', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204001', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10821', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3205701', '3205701', '3205701', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10822', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3206002', '3206002', '3206002', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10823', '1', '1', '0', '1', '1280002', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '3', '0', '0', '0', '12000042', '0', '0', '0', '3204001', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10824', '1', '1', '0', '1', '1280002', '20025', '20004', '10021', '0', '0', '40004', '30', '0', '10', '20', '0', '0', '0', '12000049', '0', '0', '0', '3206201', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10825', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3204001', '3204001', '3204001', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10826', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3203901', '3203901', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10827', '1', '1', '0', '1', '1280002', '20021', '20005', '10012', '0', '0', '40001', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205601', '3205601', '3205601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10828', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10829', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10830', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10831', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10832', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10833', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10834', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10835', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10841', '1', '1', '0', '30', '1280007', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '10', '2', '0', '0', '0', '0', '0', '0', '3202304', '3202301', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10842', '1', '1', '0', '30', '1280007', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3205507', '3205507', '3205507', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10843', '1', '1', '0', '30', '1280007', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '3', '0', '0', '0', '12000046', '0', '0', '0', '3202305', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10844', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '2', '4', '0', '0', '0', '0', '0', '3201601', '3204601', '3204601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10845', '1', '1', '0', '30', '1280007', '20028', '20005', '10041', '0', '0', '40001', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3202604', '3204601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10846', '1', '1', '0', '30', '1280007', '20023', '20004', '10051', '0', '0', '40022', '30', '0', '10', '3', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10847', '1', '1', '0', '30', '1280007', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '3', '3', '0', '0', '12000001', '12000002', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10848', '1', '1', '0', '30', '1280007', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '5', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10849', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10850', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10851', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10852', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10853', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10854', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10855', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10861', '1', '1', '0', '20', '1280005', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '11', '0', '0', '0', '0', '0', '0', '0', '3202002', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10862', '1', '1', '0', '20', '1280005', '20021', '20005', '10012', '0', '0', '40001', '30', '0', '10', '3', '3', '3', '2', '0', '0', '0', '0', '3203902', '3205602', '3205304', '3203903'); +INSERT INTO `gamedata_guildleves` VALUES ('10863', '1', '1', '0', '20', '1280005', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '3', '0', '0', '0', '12000058', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10864', '1', '1', '0', '20', '1280005', '20025', '20004', '10021', '0', '0', '40004', '30', '0', '10', '5', '0', '0', '0', '12000047', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10865', '1', '1', '0', '20', '1280005', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '2', '4', '6', '0', '0', '0', '0', '0', '3200502', '3200502', '3200502', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10866', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202603', '3206004', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10867', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40007', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202603', '3202002', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10868', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40051', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '12000101', '3202603', '3202002', '0', '3205803'); +INSERT INTO `gamedata_guildleves` VALUES ('10869', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10870', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10871', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10872', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10873', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10874', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10875', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10881', '1', '1', '0', '10', '1280003', '20021', '20005', '10012', '0', '0', '40001', '30', '0', '10', '3', '4', '1', '0', '0', '0', '0', '0', '3205602', '3204102', '3204305', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10882', '1', '1', '0', '10', '1280003', '20021', '20004', '10012', '0', '0', '40002', '30', '0', '10', '4', '4', '0', '0', '0', '0', '0', '0', '3200101', '3202701', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10883', '1', '1', '0', '10', '1280003', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '2', '2', '0', '0', '12000043', '12000044', '0', '0', '3200101', '3204102', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10884', '1', '1', '0', '10', '1280003', '20022', '20004', '10031', '0', '0', '40002', '30', '0', '10', '1', '2', '0', '0', '0', '0', '0', '0', '3202601', '3201401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10885', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '4', '6', '8', '0', '0', '0', '0', '0', '3205304', '3205304', '3205304', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10886', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3204002', '3200101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10887', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '7', '0', '0', '0', '0', '0', '0', '3202001', '3202001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10888', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10889', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10890', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10891', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10892', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10893', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10894', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10895', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10901', '1', '1', '0', '40', '1280004', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3201301', '3201301', '3201301', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10902', '1', '1', '0', '40', '1280004', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3202705', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10903', '1', '1', '0', '40', '1280004', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '16', '0', '0', '0', '12000128', '0', '0', '0', '3201301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10904', '1', '1', '0', '40', '1280004', '20022', '20005', '10031', '0', '0', '40052', '30', '0', '10', '3', '4', '2', '0', '0', '0', '0', '0', '3202003', '3206004', '3201412', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10905', '1', '1', '0', '40', '1280004', '20028', '20005', '10041', '0', '0', '40051', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000048', '3202605', '3202302', '0', '3202705'); +INSERT INTO `gamedata_guildleves` VALUES ('10906', '1', '1', '0', '40', '1280004', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10907', '1', '1', '0', '40', '1280004', '20027', '20004', '10061', '0', '30001', '40001', '30', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3203101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10908', '1', '1', '0', '40', '1280004', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10909', '1', '1', '0', '40', '1280004', '20024', '20005', '10071', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3201301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10910', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10911', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10912', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10913', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10914', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10915', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10921', '1', '1', '0', '40', '1280006', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '9', '0', '0', '0', '0', '0', '0', '3205404', '3205402', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10922', '1', '1', '0', '40', '1280006', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '7', '1', '0', '0', '0', '0', '0', '0', '3200602', '3201301', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10923', '1', '1', '0', '40', '1280006', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '1', '2', '0', '0', '12000089', '12000096', '0', '0', '3201412', '3202302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10924', '1', '1', '0', '40', '1280006', '20022', '20005', '10031', '0', '0', '40053', '30', '0', '10', '6', '8', '10', '0', '0', '0', '0', '0', '3201412', '3201412', '3201412', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10925', '1', '1', '0', '40', '1280006', '20028', '20005', '10041', '0', '0', '40001', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202605', '3205705', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10926', '1', '1', '0', '40', '1280006', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '3', '3', '0', '0', '12000001', '12000002', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10927', '1', '1', '0', '40', '1280006', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3205404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10928', '1', '1', '0', '40', '1280006', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10929', '1', '1', '0', '40', '1280006', '20024', '20004', '10071', '0', '0', '40054', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000045', '3203101', '0', '0', '3205509'); +INSERT INTO `gamedata_guildleves` VALUES ('10930', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10931', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10932', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10933', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10934', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10935', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10941', '1', '1', '0', '100', '1280012', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3205710', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10942', '1', '1', '0', '100', '1280012', '20025', '20005', '10021', '0', '0', '40001', '20', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3204210', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10943', '1', '1', '0', '100', '1280012', '20022', '20005', '10031', '0', '0', '40001', '20', '0', '10', '11', '0', '0', '0', '0', '0', '0', '0', '3204021', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10944', '1', '1', '0', '100', '1280012', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10945', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10946', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10947', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10948', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10961', '1', '1', '0', '100', '1280008', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '2', '4', '4', '0', '0', '0', '0', '0', '3202204', '3200112', '3205005', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10962', '1', '1', '0', '100', '1280008', '20025', '20005', '10021', '0', '0', '40001', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3200605', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10963', '1', '1', '0', '100', '1280008', '20022', '20005', '10031', '0', '0', '40001', '20', '0', '10', '6', '6', '0', '0', '0', '0', '0', '0', '3207607', '3207608', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10964', '1', '1', '0', '100', '1280008', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10965', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10966', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10967', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10968', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10981', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10982', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10983', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10984', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10985', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10986', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10987', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10988', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11001', '1', '1', '0', '100', '1280010', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3203502', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11002', '1', '1', '0', '100', '1280010', '20025', '20005', '10021', '0', '0', '40001', '20', '0', '10', '1', '1', '1', '1', '0', '0', '0', '0', '3203403', '3201703', '3200605', '3201307'); +INSERT INTO `gamedata_guildleves` VALUES ('11003', '1', '1', '0', '100', '1280010', '20022', '20005', '10031', '0', '0', '40001', '20', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3201704', '3203502', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11004', '1', '1', '0', '100', '1280010', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11005', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11006', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11007', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11008', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11021', '1', '1', '0', '100', '1280013', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '2', '3', '2', '0', '0', '0', '0', '0', '3206209', '3201704', '3203404', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11022', '1', '1', '0', '100', '1280013', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '4', '2', '0', '0', '0', '0', '0', '0', '3203104', '3203302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11023', '1', '1', '0', '100', '1280013', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3202608', '3203302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11024', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11025', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11026', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11027', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11028', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11041', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11042', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11043', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11044', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11045', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11046', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11047', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11048', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11421', '1', '1', '0', '30', '1280020', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3200601', '3205306', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11422', '1', '1', '0', '30', '1280020', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '24', '0', '0', '0', '12000045', '0', '0', '0', '3205507', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11423', '1', '1', '0', '30', '1280020', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '5', '0', '0', '0', '12000055', '0', '0', '0', '3204901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11424', '1', '1', '0', '30', '1280020', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '3', '6', '3', '0', '0', '0', '0', '0', '3202305', '3202305', '3202301', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11425', '1', '1', '0', '30', '1280020', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '2', '4', '2', '0', '0', '0', '0', '0', '3207603', '3207603', '3205101', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11426', '1', '1', '0', '30', '1280020', '20028', '20005', '10041', '0', '0', '40051', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000091', '3202604', '3207603', '0', '3201601'); +INSERT INTO `gamedata_guildleves` VALUES ('11427', '1', '1', '0', '30', '1280020', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '3', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11428', '1', '1', '0', '30', '1280020', '20023', '20004', '10051', '0', '0', '40022', '30', '0', '10', '5', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11441', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11442', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11443', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11444', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11445', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11446', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11447', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11448', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11449', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11450', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11451', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11452', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11453', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11454', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11455', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11461', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11462', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11463', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11464', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11465', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11466', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11467', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11468', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11601', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40025', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3205702', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11602', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11621', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3204008', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11622', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '2', '4', '0', '0', '0', '0', '0', '0', '3203901', '3205601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11623', '1', '3', '0', '1', '1280032', '20025', '20004', '10021', '0', '0', '40027', '30', '0', '10', '4', '0', '0', '0', '12000108', '0', '0', '0', '3204301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11624', '1', '3', '0', '1', '1280032', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '24', '0', '0', '0', '12000050', '0', '0', '0', '3202101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11625', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205307', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11626', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205702', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11627', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3206201', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11628', '1', '3', '0', '1', '1280032', '20021', '20005', '10012', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3202101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11629', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11630', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11631', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11632', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11633', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11634', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11635', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11641', '1', '3', '0', '10', '1280033', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3205501', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11642', '1', '3', '0', '10', '1280033', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3205308', '3205304', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11643', '1', '3', '0', '10', '1280033', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '4', '0', '0', '0', '12000049', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11644', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40029', '30', '0', '10', '6', '9', '0', '0', '0', '0', '0', '0', '3205501', '3205501', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11645', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '4', '6', '8', '0', '0', '0', '0', '0', '3206202', '3206202', '3206202', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11646', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40026', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3204009', '3205704', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11647', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3202102', '3202102', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11648', '1', '3', '0', '10', '1280033', '20022', '20004', '10031', '0', '0', '40031', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3202001', '3202001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11649', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11650', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11651', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11652', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11653', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11654', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11655', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11661', '1', '3', '0', '20', '1280034', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '5', '5', '0', '0', '0', '0', '0', '0', '3280101', '3280105', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11662', '1', '3', '0', '20', '1280034', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200901', '3200901', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11663', '1', '3', '0', '20', '1280034', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '5', '0', '0', '0', '12000087', '0', '0', '0', '3200901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11664', '1', '3', '0', '20', '1280034', '20025', '20005', '10021', '0', '0', '40055', '30', '0', '10', '20', '0', '0', '0', '12000134', '0', '0', '0', '3201901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11665', '1', '3', '0', '20', '1280034', '20022', '20005', '10031', '0', '0', '40029', '30', '0', '10', '6', '1', '0', '1', '0', '0', '0', '0', '3280117', '3280114', '0', '3280120'); +INSERT INTO `gamedata_guildleves` VALUES ('11666', '1', '3', '0', '20', '1280034', '20028', '20004', '10041', '0', '0', '40031', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202603', '3202002', '3209901', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11667', '1', '3', '0', '20', '1280034', '20028', '20005', '10042', '0', '0', '40030', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3203903', '3202002', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11668', '1', '3', '0', '20', '1280034', '20028', '20005', '10041', '0', '0', '40056', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '12000117', '3202603', '3280114', '0', '3209901'); +INSERT INTO `gamedata_guildleves` VALUES ('11669', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11670', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11671', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11672', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11673', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11674', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11675', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11681', '1', '3', '0', '30', '1280042', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11682', '1', '3', '0', '30', '1280042', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '9', '1', '0', '0', '0', '0', '0', '0', '3202003', '3204801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11683', '1', '3', '0', '30', '1280042', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '3', '0', '0', '0', '12000116', '0', '0', '0', '3205606', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11684', '1', '3', '0', '30', '1280042', '20022', '20005', '10031', '0', '0', '40026', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3202003', '3202305', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11685', '1', '3', '0', '30', '1280042', '20028', '20005', '10041', '0', '0', '40057', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202604', '3200503', '3204601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11686', '1', '3', '0', '30', '1280042', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11687', '1', '3', '0', '30', '1280042', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '3', '3', '0', '0', '12000002', '12000003', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11688', '1', '3', '0', '30', '1280042', '20023', '20004', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11689', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11690', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11691', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11692', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11693', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11694', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11695', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11701', '1', '3', '0', '40', '1280039', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3200701', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11702', '1', '3', '0', '40', '1280039', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '5', '0', '0', '0', '12000089', '0', '0', '0', '3201413', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11703', '1', '3', '0', '40', '1280039', '20025', '20005', '10021', '0', '0', '40055', '30', '0', '10', '4', '0', '0', '0', '12000136', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11704', '1', '3', '0', '40', '1280039', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '3', '4', '0', '0', '0', '0', '0', '0', '3200701', '3200701', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11705', '1', '3', '0', '40', '1280039', '20028', '20005', '10041', '0', '0', '40057', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202605', '3205706', '3204802', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11706', '1', '3', '0', '40', '1280039', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11707', '1', '3', '0', '40', '1280039', '20026', '20005', '10081', '0', '30002', '40057', '30', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3200701', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11708', '1', '3', '0', '40', '1280039', '20026', '20005', '10081', '0', '30002', '40057', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3201803', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11709', '1', '3', '0', '40', '1280039', '20024', '20004', '10071', '0', '0', '40059', '30', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3205607', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11710', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11711', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11712', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11713', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11714', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11715', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11721', '1', '3', '0', '40', '1280036', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '4', '4', '0', '0', '0', '0', '0', '0', '3202302', '3202004', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11722', '1', '3', '0', '40', '1280036', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3205706', '3205706', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11723', '1', '3', '0', '40', '1280036', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '30', '0', '0', '0', '12000094', '0', '0', '0', '3202004', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11724', '1', '3', '0', '40', '1280036', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3200602', '3200602', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11725', '1', '3', '0', '40', '1280036', '20028', '20005', '10041', '0', '0', '40030', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202605', '3202105', '3201701', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11726', '1', '3', '0', '40', '1280036', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '3200107', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11727', '1', '3', '0', '40', '1280036', '20026', '20004', '10081', '0', '30002', '40057', '30', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3200701', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11728', '1', '3', '0', '40', '1280036', '20026', '20005', '10081', '0', '30002', '40057', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3201413', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11729', '1', '3', '0', '40', '1280036', '20024', '20005', '10071', '0', '0', '40057', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000089', '3200701', '0', '0', '3201413'); +INSERT INTO `gamedata_guildleves` VALUES ('11730', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11731', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11732', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11733', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11734', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11735', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12221', '1', '3', '0', '30', '1280052', '20021', '20005', '10011', '0', '0', '40030', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200104', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12222', '1', '3', '0', '30', '1280052', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '5', '0', '0', '0', '12000084', '0', '0', '0', '3200601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12223', '1', '3', '0', '30', '1280052', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '4', '0', '0', '0', '12000117', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12224', '1', '3', '0', '30', '1280052', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3209902', '3209902', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12225', '1', '3', '0', '30', '1280052', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '7', '0', '0', '0', '0', '0', '0', '3203001', '3203001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12226', '1', '3', '0', '30', '1280052', '20028', '20005', '10041', '0', '0', '40056', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '12000117', '3202604', '3203904', '0', '3209902'); +INSERT INTO `gamedata_guildleves` VALUES ('12227', '1', '3', '0', '30', '1280052', '20023', '20004', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12228', '1', '3', '0', '30', '1280052', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12229', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12230', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12231', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12232', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12233', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12234', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12235', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12241', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12242', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12243', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12244', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12245', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12246', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12247', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12248', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12249', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12250', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12251', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12252', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12253', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12254', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12255', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12401', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40038', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3205901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12402', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12421', '1', '2', '0', '1', '1280062', '20021', '20005', '10012', '0', '0', '40039', '30', '0', '10', '3', '3', '0', '0', '0', '0', '0', '0', '3204008', '3205901', '3205901', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12422', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205601', '3205601', '3205601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12423', '1', '2', '0', '1', '1280062', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '3', '0', '0', '0', '12000101', '0', '0', '0', '3205801', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12424', '1', '2', '0', '1', '1280062', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '20', '0', '0', '0', '12000127', '0', '0', '0', '3205901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12425', '1', '2', '0', '1', '1280062', '20021', '20004', '10011', '0', '0', '40041', '30', '0', '10', '3', '3', '0', '0', '0', '0', '0', '0', '3206201', '3205801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12426', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205702', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12427', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12428', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12429', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12430', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12431', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12432', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12433', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12434', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12435', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12441', '1', '2', '0', '10', '1280064', '20021', '20005', '10012', '0', '0', '40039', '30', '0', '10', '4', '4', '0', '0', '0', '0', '0', '0', '3200501', '3205602', '3200501', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12442', '1', '2', '0', '10', '1280064', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3205501', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12443', '1', '2', '0', '10', '1280064', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '3', '0', '0', '0', '12000050', '0', '0', '0', '3206202', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12444', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3205902', '3205902', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12445', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '5', '8', '0', '0', '0', '0', '0', '0', '3205602', '3205602', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12446', '1', '2', '0', '10', '1280064', '20022', '20004', '10031', '0', '0', '40044', '30', '0', '10', '4', '2', '0', '0', '0', '0', '0', '0', '3202601', '3205801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12447', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '4', '8', '0', '0', '0', '0', '0', '0', '3205704', '3205704', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12448', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '7', '0', '1', '0', '0', '0', '0', '3205302', '3205302', '0', '3202702'); +INSERT INTO `gamedata_guildleves` VALUES ('12449', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12450', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12451', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12452', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12453', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12454', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12455', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12461', '1', '2', '0', '20', '1280066', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3204006', '3204009', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12462', '1', '2', '0', '20', '1280066', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12463', '1', '2', '0', '20', '1280066', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '5', '0', '0', '0', '12000079', '0', '0', '0', '3200105', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12464', '1', '2', '0', '20', '1280066', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '32', '0', '0', '0', '12000130', '0', '0', '0', '3205303', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12465', '1', '2', '0', '20', '1280066', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '8', '10', '0', '0', '0', '0', '0', '0', '3207601', '3207601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12466', '1', '2', '0', '20', '1280066', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202603', '3200502', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12467', '1', '2', '0', '20', '1280066', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202603', '3200301', '3205801', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12468', '1', '2', '0', '20', '1280066', '20028', '20004', '10041', '0', '0', '40061', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000101', '3202603', '3200105', '0', '3205803'); +INSERT INTO `gamedata_guildleves` VALUES ('12469', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12470', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12471', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12472', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12473', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12474', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12475', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12481', '1', '2', '0', '30', '1280067', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '5', '5', '0', '0', '0', '0', '0', '0', '3204013', '3204007', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12482', '1', '2', '0', '30', '1280067', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '9', '1', '1', '0', '0', '0', '0', '0', '3204502', '3204501', '3204202', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12483', '1', '2', '0', '30', '1280067', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '5', '0', '0', '0', '12000137', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12484', '1', '2', '0', '30', '1280067', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3200302', '3200302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12485', '1', '2', '0', '30', '1280067', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '1', '0', '1', '0', '0', '0', '0', '0', '3202604', '3207604', '3205101', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12486', '1', '2', '0', '30', '1280067', '20023', '20004', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12487', '1', '2', '0', '30', '1280067', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '3', '3', '0', '0', '12000003', '12000001', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12488', '1', '2', '0', '30', '1280067', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12489', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12490', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12491', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12492', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12493', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12494', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12495', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12501', '1', '2', '0', '40', '1280063', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3201501', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12502', '1', '2', '0', '40', '1280063', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '7', '1', '0', '0', '0', '0', '0', '0', '3201701', '3204902', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12503', '1', '2', '0', '40', '1280063', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '24', '0', '0', '0', '12000111', '0', '0', '0', '3204504', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12504', '1', '2', '0', '40', '1280063', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3201302', '3201302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12505', '1', '2', '0', '40', '1280063', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202605', '3204015', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12506', '1', '2', '0', '40', '1280063', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12507', '1', '2', '0', '40', '1280063', '20027', '20005', '10061', '0', '30001', '40060', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12508', '1', '2', '0', '40', '1280063', '20027', '20004', '10061', '0', '30001', '40064', '30', '0', '10', '1', '1', '0', '0', '0', '0', '0', '0', '3202706', '3210001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12509', '1', '2', '0', '40', '1280063', '20026', '20005', '10081', '0', '30002', '40060', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3207606', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12510', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12511', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12512', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12513', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12514', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12515', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12521', '1', '2', '0', '40', '1280073', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3203101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12522', '1', '2', '0', '40', '1280073', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '4', '0', '0', '0', '12000083', '0', '0', '0', '3200504', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12523', '1', '2', '0', '40', '1280073', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '5', '0', '0', '0', '12000119', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12524', '1', '2', '0', '40', '1280073', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '4', '5', '6', '0', '0', '0', '0', '0', '3203101', '3203101', '3203101', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12525', '1', '2', '0', '40', '1280073', '20028', '20005', '10041', '0', '0', '40061', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000056', '3202605', '3207606', '0', '3205002'); +INSERT INTO `gamedata_guildleves` VALUES ('12526', '1', '2', '0', '40', '1280073', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12527', '1', '2', '0', '40', '1280073', '20027', '20005', '10061', '0', '30001', '40060', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12528', '1', '2', '0', '40', '1280073', '20027', '20005', '10061', '0', '30001', '40060', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3201303', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12529', '1', '2', '0', '40', '1280073', '20026', '20004', '10081', '0', '30002', '40064', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3280125', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12530', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12531', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12532', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12533', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12534', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12535', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13021', '1', '2', '0', '30', '1280082', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3200104', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13022', '1', '2', '0', '30', '1280082', '20025', '20004', '10021', '0', '0', '40063', '30', '0', '10', '5', '0', '0', '0', '12000084', '0', '0', '0', '3200601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13023', '1', '2', '0', '30', '1280082', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '5', '0', '0', '0', '12000055', '0', '0', '0', '3204901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13024', '1', '2', '0', '30', '1280082', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3201403', '3201403', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13025', '1', '2', '0', '30', '1280082', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '1', '3', '0', '0', '0', '0', '0', '0', '3207604', '3207604', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13026', '1', '2', '0', '30', '1280082', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3202604', '3203903', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13027', '1', '2', '0', '30', '1280082', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13028', '1', '2', '0', '30', '1280082', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13029', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13030', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13031', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13032', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13033', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13034', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13035', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13041', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13042', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13043', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13044', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13045', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13046', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13047', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13048', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13049', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13050', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13051', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13052', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13053', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13054', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13055', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20901', '1', '1', '0', '40', '1280004', '20051', '20003', '13001', '104', '0', '40065', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000625', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20902', '1', '1', '0', '40', '1280004', '20051', '20003', '13001', '104', '0', '40065', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000626', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20903', '1', '1', '0', '40', '1280004', '20036', '20003', '13002', '104', '0', '40065', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3204404', '3205411', '3202715', '3205713'); +INSERT INTO `gamedata_guildleves` VALUES ('20904', '1', '1', '0', '40', '1280004', '20036', '20003', '13002', '104', '0', '40065', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3204404', '3205106', '3204806', '3205006'); +INSERT INTO `gamedata_guildleves` VALUES ('20905', '1', '1', '0', '40', '1280004', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3204404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20906', '1', '1', '0', '40', '1280004', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3201707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21421', '1', '1', '0', '30', '1280020', '20051', '20003', '13001', '104', '0', '40065', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000622', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21422', '1', '1', '0', '30', '1280020', '20036', '20003', '13002', '104', '0', '40065', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3203406', '3205410', '3207609', '3204213'); +INSERT INTO `gamedata_guildleves` VALUES ('21423', '1', '1', '0', '30', '1280020', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3202610', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21424', '1', '1', '0', '30', '1280020', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3204320', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21701', '1', '3', '0', '40', '1280039', '20051', '20003', '13001', '104', '0', '40067', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000629', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21702', '1', '3', '0', '40', '1280039', '20051', '20003', '13001', '104', '0', '40067', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000630', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21703', '1', '3', '0', '40', '1280039', '20036', '20003', '13002', '104', '0', '40067', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3205613', '3201609', '3201610', '3202010'); +INSERT INTO `gamedata_guildleves` VALUES ('21704', '1', '3', '0', '40', '1280039', '20036', '20003', '13002', '104', '0', '40067', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3201609', '3205106', '3204806', '3205006'); +INSERT INTO `gamedata_guildleves` VALUES ('21705', '1', '3', '0', '40', '1280039', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3204404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21706', '1', '3', '0', '40', '1280039', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3201707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22221', '1', '3', '0', '30', '1280052', '20051', '20003', '13001', '104', '0', '40067', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000624', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22222', '1', '3', '0', '30', '1280052', '20036', '20003', '13002', '104', '0', '40067', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3201117', '3202114', '3200115', '3205612'); +INSERT INTO `gamedata_guildleves` VALUES ('22223', '1', '3', '0', '30', '1280052', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3202610', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22224', '1', '3', '0', '30', '1280052', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3204320', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22521', '1', '2', '0', '40', '1280073', '20051', '20003', '13001', '104', '0', '40066', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000627', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22522', '1', '2', '0', '40', '1280073', '20051', '20003', '13001', '104', '0', '40066', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000628', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22523', '1', '2', '0', '40', '1280073', '20036', '20003', '13002', '104', '0', '40066', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3205907', '3207610', '3200310', '3200510'); +INSERT INTO `gamedata_guildleves` VALUES ('22524', '1', '2', '0', '40', '1280073', '20036', '20003', '13002', '104', '0', '40066', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3205907', '3205106', '3204806', '3205006'); +INSERT INTO `gamedata_guildleves` VALUES ('22525', '1', '2', '0', '40', '1280073', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3204404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22526', '1', '2', '0', '40', '1280073', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3201707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('23021', '1', '2', '0', '30', '1280082', '20051', '20003', '13001', '104', '0', '40066', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000623', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('23022', '1', '2', '0', '30', '1280082', '20036', '20003', '13002', '104', '0', '40066', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3203406', '3204025', '3200509', '3204213'); +INSERT INTO `gamedata_guildleves` VALUES ('23023', '1', '2', '0', '30', '1280082', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3202610', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('23024', '1', '2', '0', '30', '1280082', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3204320', '0', '0', '0'); diff --git a/sql/gamedata_items_graphics_extra.sql b/sql/gamedata_items_graphics_extra.sql new file mode 100644 index 00000000..c78a928d --- /dev/null +++ b/sql/gamedata_items_graphics_extra.sql @@ -0,0 +1,26 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 7/9/2017 11:38:35 AM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for gamedata_items_graphics_extra +-- ---------------------------- +CREATE TABLE `gamedata_items_graphics_extra` ( + `catalogID` int(10) unsigned NOT NULL, + `offHandWeaponId` int(10) unsigned NOT NULL DEFAULT '0', + `offHandEquipmentId` int(10) unsigned NOT NULL DEFAULT '0', + `offHandVarientId` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`catalogID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- ---------------------------- +-- Records +-- ---------------------------- +INSERT INTO `gamedata_items_graphics_extra` VALUES ('4020001', '58', '1', '0'); +INSERT INTO `gamedata_items_graphics_extra` VALUES ('4070001', '226', '1', '0'); diff --git a/sql/import.bat b/sql/import.bat new file mode 100644 index 00000000..bb1e091f --- /dev/null +++ b/sql/import.bat @@ -0,0 +1,34 @@ +@ECHO OFF +SETLOCAL +REM ============= +REM IMPORT CONFIG +REM ============= +REM NOTE: No spaces before or after the '='!!! + +REM ============= +SET PATH_MYSQL="C:\wamp\bin\mysql\mysql5.6.17\bin\mysql.exe" +SET PATH_MYSQLADMIN="C:\wamp\bin\mysql\mysql5.6.17\bin\mysqladmin.exe" +SET PATH_SQL="D:\Coding\FFXIV Related\ffxiv-classic-map-server\sql" + +SET USER=root +SET PASSWORD= +SET DBADDRESS=localhost +SET DBPORT=3306 +SET DBNAME=ffxiv_server +REM ============= + +IF DEFINED PASSWORD (SET PASSWORD=-p%PASSWORD%) + +ECHO Deleteing old database +%PATH_MYSQLADMIN% -h %DBADDRESS% -u %USER% %PASSWORD% DROP %DBNAME% + +ECHO Creating new database +%PATH_MYSQLADMIN% -h %DBADDRESS% -u %USER% %PASSWORD% CREATE %DBNAME% + +ECHO Loading tables into the database +cd %PATH_SQL% +FOR %%X IN (*.sql) DO ECHO Importing %%X & %PATH_MYSQL% %DBNAME% -h %DBADDRESS% -u %USER% < %%X +ECHO Finished! + +ENDLOCAL +@ECHO ON \ No newline at end of file diff --git a/sql/linkshells.sql b/sql/linkshells.sql deleted file mode 100644 index 31bbae68..00000000 --- a/sql/linkshells.sql +++ /dev/null @@ -1,52 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `linkshells` --- - -DROP TABLE IF EXISTS `linkshells`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `linkshells` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `crestIcon` smallint(5) unsigned NOT NULL, - `founder` int(10) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `linkshells` --- - -LOCK TABLES `linkshells` WRITE; -/*!40000 ALTER TABLE `linkshells` DISABLE KEYS */; -/*!40000 ALTER TABLE `linkshells` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:53 diff --git a/sql/parties.sql b/sql/parties.sql deleted file mode 100644 index 7e6c781a..00000000 --- a/sql/parties.sql +++ /dev/null @@ -1,50 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `parties` --- - -DROP TABLE IF EXISTS `parties`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `parties` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `leaderCharacterId` int(10) unsigned NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `parties` --- - -LOCK TABLES `parties` WRITE; -/*!40000 ALTER TABLE `parties` DISABLE KEYS */; -/*!40000 ALTER TABLE `parties` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:53 diff --git a/sql/retainers.sql b/sql/retainers.sql deleted file mode 100644 index 08509ebc..00000000 --- a/sql/retainers.sql +++ /dev/null @@ -1,55 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `retainers` --- - -DROP TABLE IF EXISTS `retainers`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `retainers` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `characterId` int(10) unsigned NOT NULL, - `name` varchar(255) NOT NULL, - `slot` smallint(5) unsigned NOT NULL, - `doRename` smallint(1) unsigned NOT NULL DEFAULT '0', - `locationId` smallint(5) unsigned NOT NULL, - `state` tinyint(4) unsigned DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `retainers` --- - -LOCK TABLES `retainers` WRITE; -/*!40000 ALTER TABLE `retainers` DISABLE KEYS */; -/*!40000 ALTER TABLE `retainers` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:53 diff --git a/sql/server_linkshells.sql b/sql/server_linkshells.sql new file mode 100644 index 00000000..3b30eceb --- /dev/null +++ b/sql/server_linkshells.sql @@ -0,0 +1,25 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 4/15/2017 4:38:26 PM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for server_linkshells +-- ---------------------------- +CREATE TABLE `server_linkshells` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `crestIcon` smallint(5) unsigned NOT NULL, + `master` int(10) unsigned NOT NULL DEFAULT '0', + `rank` tinyint(3) unsigned NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records +-- ---------------------------- diff --git a/sql/server_retainers.sql b/sql/server_retainers.sql new file mode 100644 index 00000000..13f05f35 --- /dev/null +++ b/sql/server_retainers.sql @@ -0,0 +1,27 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 4/15/2017 4:38:21 PM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for server_retainers +-- ---------------------------- +CREATE TABLE `server_retainers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `classActorId` int(10) unsigned NOT NULL, + `cdIDOffset` tinyint(3) unsigned NOT NULL DEFAULT '0', + `placeName` smallint(5) unsigned NOT NULL, + `conditions` tinyint(3) unsigned NOT NULL DEFAULT '0', + `level` tinyint(3) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records +-- ---------------------------- diff --git a/sql/server_seamless_zonechange_bounds.sql b/sql/server_seamless_zonechange_bounds.sql index a0497dd8..d95354b3 100644 --- a/sql/server_seamless_zonechange_bounds.sql +++ b/sql/server_seamless_zonechange_bounds.sql @@ -31,12 +31,23 @@ CREATE TABLE `server_seamless_zonechange_bounds` ( `merge_boundingbox_x2` float NOT NULL, `merge_boundingbox_y2` float NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records -- ---------------------------- INSERT INTO `server_seamless_zonechange_bounds` VALUES ('1', '103', '155', '206', '115', '-1219', '55', '-1217', '33', '95', '-1279', '-1261', '55', '-1219', '95', '-1261'); INSERT INTO `server_seamless_zonechange_bounds` VALUES ('2', '103', '155', '150', '255', '-1139', '304', '-1125', '304', '338', '-1066', '-1046', '255', '-1125', '338', '-1066'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('3', '101', '133', '230', '-457', '131', '-436', '142', '-460', '-439', '92', '100', '-454', '101', '-439', '128'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('4', '101', '133', '230', '-486', '228', '-501', '218', '-482', '-503', '255', '242', '-490', '238', '-501', '229'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('5', '101', '133', '128', '-85', '165', '-79', '185', '-51', '-47', '149', '167', '-71', '160', '-69', '174'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('6', '101', '133', '230', '-483', '200', '-496', '181', '-506', '-514', '206', '177', '-500', '198', '-505', '185'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('7', '104', '170', '209', '87', '178', '110', '189', '89', '108', '142', '150', '94', '158', '108', '167'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('8', '104', '175', '209', '-134', '84', '-95', '92', '-120', '-82', '139', '143', '-120', '125', '-96', '124'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('9', '104', '170', '175', '-70', '-47', '-47', '-17', '-117', '-108', '-43', '-28', '-99', '-43', '-86', '-28'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('10', '104', '170', '175', '-39', '-33', '-24', '-9', '22', '23', '-7', '22', '-7', '-26', '-1', '-4'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('11', '104', '175', '209', '-243', '82', '-208', '107', '-264', '-230', '138', '173', '-254', '109', '-220', '128'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('12', '104', '175', '209', '0', '173', '24', '179', '-23', '9', '204', '232', '-6', '185', '13', '201'); +INSERT INTO `server_seamless_zonechange_bounds` VALUES ('13', '104', '175', '209', '-20', '99', '5', '119', '-57', '-31', '124', '145', '-41', '115', '-15', '127'); COMMIT; \ No newline at end of file diff --git a/sql/server_spawn_locations.sql b/sql/server_spawn_locations.sql index 2e9f6947..d410bc9a 100644 --- a/sql/server_spawn_locations.sql +++ b/sql/server_spawn_locations.sql @@ -4,12 +4,11 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 8/14/2016 9:43:16 AM +Date: 7/9/2017 7:11:04 PM */ -SET FOREIGN_KEY_CHECKS = 0; -SET autocommit = 0; - +SET FOREIGN_KEY_CHECKS=0; +SET AUTOCOMMIT=0; -- ---------------------------- -- Table structure for server_spawn_locations -- ---------------------------- @@ -28,7 +27,7 @@ CREATE TABLE `server_spawn_locations` ( `animationId` int(10) unsigned NOT NULL DEFAULT '0', `customDisplayName` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=729 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=939 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records @@ -147,8 +146,6 @@ INSERT INTO `server_spawn_locations` VALUES ('111', '1200044', '', '175', '', '0 INSERT INTO `server_spawn_locations` VALUES ('112', '1200194', 'task_board', '175', '', '0', '-50.24', '197.6', '58.94', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('113', '1200210', '', '175', '', '0', '-169.94', '191.8', '25.9', '0.523', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('114', '1200288', '', '175', '', '0', '-189.13', '190', '15.59', '-1.04', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('115', '1280031', 'uldah_aetheryte', '175', '', '0', '-240.45', '185.93', '-9.56', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('116', '1280031', '', '175', '', '0', '-240.45', '185.93', '-9.56', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('117', '1290004', '', '175', '', '0', '-239.02', '190', '55.67', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('118', '1500116', 'gogorano', '175', '', '0', '-77.82', '192.1', '4.29', '0.23', '0', '1040', null); INSERT INTO `server_spawn_locations` VALUES ('119', '1500129', 'yayatoki', '175', '', '0', '-27.31', '196', '87.25', '1.91', '0', '1040', null); @@ -497,7 +494,6 @@ INSERT INTO `server_spawn_locations` VALUES ('461', '1090386', '', '230', '', '0 INSERT INTO `server_spawn_locations` VALUES ('462', '1090387', '', '230', '', '0', '-807.66', '8', '234.42', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('463', '1090007', '', '230', '', '0', '-490.38', '42.8', '417.81', '2.45', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('464', '1090400', '', '230', '', '0', '-838.1', '6', '231.94', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('465', '1280001', '', '230', '', '0', '-395.1', '42.5', '337.12', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('466', '1200119', 'dusty_tomes', '230', '', '0', '-789.24', '14', '195', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('467', '1200027', '', '230', '', '0', '-592', '18', '207', '1', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('468', '5900001', 'guild_mrd_mid', '230', '', '0', '-775', '10', '387', '0', '0', '0', null); @@ -544,7 +540,7 @@ INSERT INTO `server_spawn_locations` VALUES ('508', '1001493', 'dapper_dan', '18 INSERT INTO `server_spawn_locations` VALUES ('509', '1001494', 'loutish_lad', '184', '', '0', '-9.13', '196', '114.84', '2.33', '0', '1031', null); INSERT INTO `server_spawn_locations` VALUES ('510', '1001495', 'gil-digging_mistress', '184', '', '0', '-19.11', '196', '95.09', '2.13', '0', '1037', null); INSERT INTO `server_spawn_locations` VALUES ('511', '1001496', 'twittering_tomboy', '184', '', '0', '-32.37', '196', '80.75', '-0.74', '0', '1101', null); -INSERT INTO `server_spawn_locations` VALUES ('512', '1290002', 'priv_areapast_exit', '184', '', '0', '-22.81', '196', '87.82', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('512', '1280127', '', '0', '', '0', '-400', '19', '338', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('513', '1090372', 'exit_trigger', '184', '', '0', '-13', '194.91', '76.75', '-2.72', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('514', '1000438', 'well-traveled_merchant', '193', '', '0', '-0.71', '10.35', '-40.51', '0.3', '0', '1035', null); INSERT INTO `server_spawn_locations` VALUES ('515', '1000439', 'tipsy_adventurer', '193', '', '0', '-1.87', '9.15', '-30.67', '2.44', '0', '1032', null); @@ -562,17 +558,17 @@ INSERT INTO `server_spawn_locations` VALUES ('526', '1000450', 'lanky_traveler', INSERT INTO `server_spawn_locations` VALUES ('527', '1000451', 'grinning_adventurer', '193', '', '0', '-1.1', '9.85', '-33.62', '-0.82', '0', '1026', null); INSERT INTO `server_spawn_locations` VALUES ('528', '1001652', 'rostnsthal', '193', '', '0', '-7.73', '9.967', '-27.44', '1.6', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('529', '1090025', 'exit_door', '193', '', '0', '0', '10', '-18', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('530', '2205403', '', '193', '', '0', '-3.02', '17.35', '14.24', '-2.81', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('531', '2290001', '', '193', '', '0', '-8', '16.35', '6', '0.5', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('532', '2290002', '', '193', '', '0', '0', '16.35', '22', '3', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('533', '1000009', '', '166', '', '0', '353.37', '3.88', '-698.98', '-2.6', '0', '1007', null); -INSERT INTO `server_spawn_locations` VALUES ('534', '1000010', '', '166', '', '0', '353.37', '3.75', '-703.09', '-2.6', '0', '1000', null); -INSERT INTO `server_spawn_locations` VALUES ('535', '1090384', '', '166', '', '0', '356.09', '3.74', '-701.62', '-1.41', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('536', '1080120', '', '244', '', '0', '159.84', '0.7', '167.17', '-0.2', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('537', '1200334', '', '244', '', '0', '159.98', '0.02', '151.9', '-0.44', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('538', '1200376', '', '244', '', '0', '164.91', '-0.1', '167.03', '0.05', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('539', '1200379', '', '244', '', '0', '155.97', '0', '165.14', '-1.65', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('540', '1200380', '', '244', '', '0', '-4.16', '0', '4.14', '-1.65', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('530', '2205403', 'opening_jelly', '193', '', '0', '-3.02', '17.35', '14.24', '-2.81', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('531', '2290001', 'opening_yshtola', '193', '', '0', '-8', '16.35', '6', '0.5', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('532', '2290002', 'opening_stahlmann', '193', '', '0', '0', '16.35', '22', '3', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('533', '1000009', 'yda', '166', '', '0', '353.37', '3.88', '-698.98', '-2.6', '0', '1007', null); +INSERT INTO `server_spawn_locations` VALUES ('534', '1000010', 'papalymo', '166', '', '0', '353.37', '3.75', '-703.09', '-2.6', '0', '1000', null); +INSERT INTO `server_spawn_locations` VALUES ('535', '1090384', 'openingstoper_gridania', '166', '', '0', '356.09', '3.74', '-701.62', '-1.41', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('536', '1080120', 'inn_grid_cutscene', '244', '', '0', '159.84', '0.7', '167.17', '-0.2', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('537', '1200335', 'inn_grid_exitdoor_target', '244', '', '0', '159.98', '0.02', '151.9', '-0.44', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('538', '1200376', 'inn_grid_itemstorage', '244', '', '0', '164.91', '-0.1', '167.03', '0.05', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('539', '1200379', 'inn_grid_bed', '244', '', '0', '155.97', '0', '165.14', '-1.65', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('540', '1200380', 'inn_uld_bed', '244', '', '0', '-4.16', '0', '4.14', '-1.65', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('541', '1090264', '', '206', '', '0', '-192.57', '23.48', '-1407.58', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('542', '1001469', 'eldid', '206', '', '0', '-195.3', '23.96', '-1410.34', '0.98', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('543', '1290004', 'bgkeepout_market', '206', '', '0', '-195.3', '23.96', '-1410.34', '0', '0', '0', null); @@ -647,11 +643,11 @@ INSERT INTO `server_spawn_locations` VALUES ('612', '1000436', 'seikfrae', '155' INSERT INTO `server_spawn_locations` VALUES ('613', '1001951', 'anselm', '155', '', '0', '66.94', '4', '-1194.13', '-2.32', '0', '1016', null); INSERT INTO `server_spawn_locations` VALUES ('614', '1700001', 'penelope', '155', '', '0', '58.08', '3.8', '-1183.33', '2.93', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('615', '1001708', 'beaudonet', '155', '', '0', '54.04', '-7', '-1218.46', '-0.59', '0', '1151', null); -INSERT INTO `server_spawn_locations` VALUES ('616', '1200378', '', '244', '', '0', '-164', '0', '-154.21', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('617', '1080120', '', '244', '', '0', '-4', '0.7', '-0.03', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('618', '1080120', '', '244', '', '0', '-161.5', '0.7', '-152.8', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('619', '1200376', '', '244', '', '0', '-155.31', '-0.1', '-153', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('620', '1200376', '', '244', '', '0', '3.3', '-0.1', '7', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('616', '1200378', 'inn_limsa_bed', '244', '', '0', '-164', '0', '-154.21', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('617', '1080120', 'inn_uld_cutscene', '244', '', '0', '-4', '0.7', '-0.03', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('618', '1080120', 'inn_limsa_cutscene', '244', '', '0', '-161.5', '0.7', '-152.8', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('619', '1200376', 'inn_limsa_itemstorage', '244', '', '0', '-155.31', '-0.1', '-153', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('620', '1200376', 'inn_uld_itemstorage', '244', '', '0', '3.3', '-0.1', '7', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('621', '5900001', 'guild_crp', '206', '', '0', '18', '9', '-1270', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('622', '5900001', 'guild_ltw', '206', '', '0', '87', '20', '-1452', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('623', '5900001', 'fenyll_fineries', '206', '', '0', '114', '20', '-1402', '0', '0', '0', null); @@ -726,7 +722,7 @@ INSERT INTO `server_spawn_locations` VALUES ('692', '1000067', 'dadalo', '206', INSERT INTO `server_spawn_locations` VALUES ('693', '1000066', 'alixe', '206', '', '0', '103.75', '20.4', '-1468.51', '2.18', '0', '2021', null); INSERT INTO `server_spawn_locations` VALUES ('694', '1000068', 'kain', '206', '', '0', '100.33', '20.22', '-1482.5', '-0.5', '0', '2023', null); INSERT INTO `server_spawn_locations` VALUES ('695', '1001189', 'pukiki', '206', '', '0', '33.04', '17.29', '-1366.27', '0.83', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('696', '1001079', 'drystbrod', '206', '', '0', '106.66', '22', '-1483.73', '-0.74', '0', '1041', null); +INSERT INTO `server_spawn_locations` VALUES ('696', '1001079', 'dyrstbrod', '206', '', '0', '106.66', '22', '-1483.73', '-0.74', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('697', '1500325', 'serpent_private_holmes', '206', '', '0', '201.78', '9.53', '-1245.48', '1.53', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('698', '1001188', 'maisenta', '206', '', '0', '221.77', '9.4', '-1230.49', '-2.29', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('699', '1000463', 'nonolato', '206', '', '0', '232.88', '12.46', '-1268.94', '-1.38', '0', '1015', null); @@ -755,7 +751,204 @@ INSERT INTO `server_spawn_locations` VALUES ('721', '1000071', 'bertennant', '15 INSERT INTO `server_spawn_locations` VALUES ('722', '1001433', 'ulta', '155', '', '0', '192.07', '-0.85', '-1159.97', '0.78', '0', '1015', null); INSERT INTO `server_spawn_locations` VALUES ('723', '1001432', 'mathye', '155', '', '0', '179.56', '2.75', '-1144.66', '-2.97', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('724', '1000951', 'lonsygg', '155', '', '0', '162.79', '-1.48', '-1153.32', '1.94', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('727', '1200021', 'testship', '230', '', '0', '-897', '0', '239', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('728', '1200052', '', '155', '', '0', '100', '7', '-1200', '0', '0', '0', null); - +INSERT INTO `server_spawn_locations` VALUES ('728', '1200052', 'test_mining_point', '141', '', '0', '-8.48', '45.36', '139.5', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('729', '5900013', 'ferry_route_thantonoscea', '200', '', '0', '0', '10', '-128', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('730', '5900014', 'ferry_route_nosceatothan', '200', '', '0', '0', '10', '128', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('731', '1280001', 'limsa_aetheryte', '230', '', '0', '-395.1', '42.5', '337.12', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('732', '1280002', 'camp_beardedrock_aetheryte', '128', '', '0', '29.97', '45.83', '-35.47', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('733', '1280003', 'camp_skullvalley_aetheryte', '129', '', '0', '-991.88', '61.71', '-1120.79', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('734', '1280004', 'camp_baldknoll_aetheryte', '129', '', '0', '-1883.47', '53.77', '-1372.68', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('735', '1280005', 'camp_bloodshore_aetheryte', '130', '', '0', '1123.29', '45.7', '-928.69', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('736', '1280006', 'camp_ironlake_aetheryte', '135', '', '0', '-278.181', '77.63', '-2260.79', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('737', '1280007', 'cedarwood_aetherytegate', '128', '', '0', '582.47', '54.52', '-1.2', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('738', '1280008', 'widowcliffs_aetherytegate', '128', '', '0', '966', '50', '833', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('739', '1280009', 'morabybay_aetherytegate', '128', '', '0', '318', '25', '581', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('740', '1280010', 'woadwhisper_aetherytegate', '129', '', '0', '-636', '50', '-1287', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('741', '1280011', 'islesofumbra_aetherytegate', '129', '', '0', '-2018', '61', '-763', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('742', '1280012', 'tigerhelm_aetherytegate', '130', '', '0', '1628', '62', '-449', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('743', '1280013', 'southbloodshore_aetherytegate', '130', '', '0', '1522', '3', '-669', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('744', '1280014', 'agelysswise_aetherytegate', '130', '', '0', '1410', '55', '-1650', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('745', '1280015', 'zelmasrun_aetherytegate', '135', '', '0', '-125', '61', '-1440', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('746', '1280016', 'bronzelake_aetherytegate', '135', '', '0', '-320', '53', '-1826', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('747', '1280017', 'oakwood_aetherytegate', '135', '', '0', '-894', '42', '-2188', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('748', '1280018', 'mistbeardcove_aetherytegate', '131', '', '0', '-1694.5', '-19', '-1534', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('749', '1280020', 'cassiopeia_aetherytegate', '132', '', '0', '1343.5', '-54.38', '-870.84', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('750', '1280031', 'uldah_aetheryte', '175', '', '0', '-240.45', '185.93', '-9.56', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('751', '1280032', 'camp_blackbrush_aetheryte', '170', '', '0', '33', '201', '-482', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('752', '1280033', 'camp_drybone_aetheryte', '171', '', '0', '1250.9', '264', '-544.2', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('753', '1280034', 'camp_horizon_aetheryte', '172', '', '0', '-1315', '57', '-147', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('754', '1280035', 'camp_bluefog_aetheryte', '173', '', '0', '-165', '281', '-1699', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('755', '1280036', 'camp_brokenwater_aetheryte', '174', '', '0', '1686', '297', '995', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('756', '1280037', 'cactusbasin_aetherytegate', '170', '', '0', '639', '185', '122', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('757', '1280038', 'foursisters_aetherytegate', '170', '', '0', '539', '218', '-14', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('758', '1280039', 'halatali_aetherytegate', '171', '', '0', '1599', '259', '-233', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('759', '1280040', 'burningwall_aetherytegate', '171', '', '0', '2010', '281', '-768', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('760', '1280041', 'sandgate_aetherytegate', '171', '', '0', '2015', '248', '64', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('761', '1280042', 'nophicaswells_aetherytegate', '172', '', '0', '-866', '89', '376', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('762', '1280043', 'footfalls_aetherytegate', '172', '', '0', '-1653', '25', '-469', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('763', '1280044', 'scorpionkeep_aetherytegate', '172', '', '0', '-1223', '70', '191', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('764', '1280045', 'hiddengorge_aetherytegate', '173', '', '0', '-635', '281', '-1797', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('765', '1280046', 'seaofspires_aetherytegate', '173', '', '0', '447', '260', '-2158', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('766', '1280047', 'cutterspass_aetherytegate', '173', '', '0', '-710', '281', '-2212', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('767', '1280048', 'redlabyrinth_aetherytegate', '174', '', '0', '1797', '249', '1856', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('768', '1280049', 'burntlizardcreek_aetherytegate', '174', '', '0', '1185', '280', '1407', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('769', '1280050', 'zanrak_aetherytegate', '174', '', '0', '2416', '249', '1535', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('770', '1280052', 'nanawamines_aetherytegate', '0', '', '0', '80.5', '169', '-1268.5', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('771', '1280054', 'copperbellmines_aetherytegate', '0', '', '0', '-621', '112', '-118', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('772', '1280057', '', '0', '', '0', '33', '201', '-482', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('773', '1280058', '', '0', '', '0', '-1315', '57', '-147', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('774', '1280059', '', '0', '', '0', '-165', '281', '-1699', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('775', '1280061', 'gridania_aetheryte', '206', '', '0', '-130.63', '16.08', '-1323.99', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('776', '1280062', 'camp_bentbranch_aetheryte', '150', '', '0', '288', '4', '-543.928', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('777', '1280063', 'camp_nineivies_aetheryte', '151', '', '0', '1702', '20', '-862', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('778', '1280064', 'camp_emeraldmoss_aetheryte', '152', '', '0', '-1052', '20', '-1760', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('779', '1280065', 'camp_crimsonbark_aetheryte', '153', '', '0', '-1566.04', '-11.89', '-550.51', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('780', '1280066', 'camp_tranquil_aetheryte', '154', '', '0', '734', '-12', '1126', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('781', '1280067', 'humblehearth_aetherytegate', '150', '', '0', '-94.07', '4', '-543.16', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('782', '1280068', 'sorrelhaven_aetherytegate', '150', '', '0', '-285', '-21', '-46', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('783', '1280069', 'fivehangs_aetherytegate', '150', '', '0', '636', '17', '-324', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('784', '1280070', 'verdantdrop_aetherytegate', '151', '', '0', '1529', '27', '-1147', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('785', '1280071', 'lynxpeltpatch_aetherytegate', '151', '', '0', '1296', '48', '-1534', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('786', '1280072', 'larkscall_aetherytegate', '151', '', '0', '2297', '33', '-703', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('787', '1280073', 'treespeak_aetherytegate', '152', '', '0', '-888', '40', '-2192', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('788', '1280074', 'aldersprings_aetherytegate', '152', '', '0', '-1567', '17', '-2593', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('789', '1280075', 'lasthold_aetherytegate', '152', '', '0', '-801', '32', '-2792', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('790', '1280076', 'lichenweed_aetherytegate', '153', '', '0', '-1908', '1', '-1042', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('791', '1280077', 'mumurrills_aetherytegate', '153', '', '0', '-2158', '-45', '-166', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('792', '1280078', 'turningleaf_aetherytegate', '153', '', '0', '-1333', '-13', '324', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('793', '1280079', 'silentarbor_aetherytegate', '154', '', '0', '991', '-11', '600', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('794', '1280080', 'longroot_aetherytegate', '154', '', '0', '1126', '1', '1440', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('795', '1280081', 'snakemolt_aetherytegate', '154', '', '0', '189', '1', '1337', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('796', '1280082', 'muntuycellars_aetherytegate', '0', '', '0', '-689', '-15', '-2065', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('797', '1280083', 'tamtaradeeprcroft_aetherytegate', '0', '', '0', '313', '-35', '-171', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('798', '1280088', '', '0', '', '0', '-1054', '21', '-1761', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('799', '1280089', '', '0', '', '0', '-1568', '-11', '-552', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('800', '1280092', 'camp_dragonhead_aetheryte', '143', '', '0', '216', '303', '-258', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('801', '1280093', 'camp_crookedfork_aetheryte', '144', '', '0', '1122', '271', '-1149', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('802', '1280094', 'camp_glory_aetheryte', '145', '', '0', '1498', '207', '767', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('803', '1280095', 'camp_everlakes_aetheryte', '147', '', '0', '-163', '223', '1151', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('804', '1280096', 'camp_riversmeet_aetheryte', '148', '', '0', '-1761', '270', '-198', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('805', '1280097', 'boulderdowns_aetherytegate', '143', '', '0', '-517', '210', '543', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('806', '1280098', 'prominencepoint_aetherytegate', '143', '', '0', '190', '368', '-662', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('807', '1280099', 'feathergorge_aetherytegate', '143', '', '0', '960', '288', '-22', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('808', '1280100', 'maidenglen_aetherytegate', '144', '', '0', '1737', '177', '-1250', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('809', '1280101', 'hushedboughs_aetherytegate', '144', '', '0', '1390', '223', '-736', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('810', '1280102', 'scarwingfall_aetherytegate', '144', '', '0', '1788', '166', '-829', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('811', '1280103', 'weepingvale_aetherytegate', '145', '', '0', '1383', '232', '422', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('812', '1280104', 'clearwater_aetherytegate', '145', '', '0', '2160', '143', '622', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('813', '1280105', 'teriggansstand_aetherytegate', '147', '', '0', '-1', '145', '1373', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('814', '1280106', 'shepherdpeak_aetherytegate', '147', '', '0', '-64', '186', '1924', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('815', '1280107', 'fellwood_aetherytegate', '147', '', '0', '-908', '192', '2162', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('816', '1280108', 'wyrmkingspearch_aetherytegate', '148', '', '0', '-1738', '286', '-844', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('817', '1280109', 'lance_aetherytegate', '148', '', '0', '-2366', '337', '-1058', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('818', '1280110', 'twinpools_aetherytegate', '148', '', '0', '-2821', '257', '-290', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('819', '1280117', '', '0', '', '0', '216', '303', '-258', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('820', '1280118', '', '0', '', '0', '1498', '207', '767', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('821', '1280119', '', '0', '', '0', '-163', '223', '1151', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('822', '1280121', 'camp_brittlebark_aetheryte', '190', '', '0', '484', '19', '672', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('823', '1280122', 'camp_revenantstoll_aetheryte', '190', '', '0', '-400', '19', '338', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('824', '1280123', 'fogfens_aetherytegate', '190', '', '0', '-458', '-40', '-318', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('825', '1280124', 'singingshards_aetherytegate', '190', '', '0', '580', '59', '206', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('826', '1280125', 'jaggedcrestcave_aetherytegate', '190', '', '0', '-365', '-13', '-37', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('827', '1280126', '', '0', '', '0', '484', '19', '672', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('828', '1280127', '', '0', '', '0', '-400', '19', '338', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('832', '1090373', 'opening_stoper_uldah', '184', '', '0', '27.42', '192', '126.94', '0.33', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('835', '1000444', 'undignified_adventurer', '230', 'PrivateAreaMasterPast', '1', '-832.36', '6', '209.44', '-0.35', '0', '1041', null); +INSERT INTO `server_spawn_locations` VALUES ('836', '1000438', 'well-traveled_merchant', '230', 'PrivateAreaMasterPast', '1', '-831.73', '6', '196.77', '0.86', '0', '1035', null); +INSERT INTO `server_spawn_locations` VALUES ('837', '1000447', 'voluptuous_vixen', '230', 'PrivateAreaMasterPast', '1', '-863.34', '4', '236.13', '0.93', '0', '1016', null); +INSERT INTO `server_spawn_locations` VALUES ('838', '1000450', 'lanky_traveler', '230', 'PrivateAreaMasterPast', '1', '-855.68', '3.1', '258.51', '-1.56', '0', '1015', null); +INSERT INTO `server_spawn_locations` VALUES ('839', '1000151', 'hob', '230', 'PrivateAreaMasterPast', '1', '-834.77', '6', '241.55', '-2.79', '0', '1041', null); +INSERT INTO `server_spawn_locations` VALUES ('840', '1000260', 'pearly-toothed_porter', '230', 'PrivateAreaMasterPast', '1', '-823.86', '6', '198.95', '0.13', '0', '1070', null); +INSERT INTO `server_spawn_locations` VALUES ('841', '1000264', 'pasty-faced_adventurer', '230', 'PrivateAreaMasterPast', '1', '-829.72', '6', '260.6', '-1.07', '0', '1058', null); +INSERT INTO `server_spawn_locations` VALUES ('842', '1000261', 'muscle-bound_deckhand', '230', 'PrivateAreaMasterPast', '1', '-823.75', '6', '200.27', '-2.7', '0', '1033', null); +INSERT INTO `server_spawn_locations` VALUES ('843', '1500004', 'gert', '230', 'PrivateAreaMasterPast', '1', '-809.15', '8', '230.88', '0.4', '0', '1016', null); +INSERT INTO `server_spawn_locations` VALUES ('844', '1500005', 'lorhzant', '230', 'PrivateAreaMasterPast', '1', '-809.19', '8', '244.86', '-2.78', '0', '1017', null); +INSERT INTO `server_spawn_locations` VALUES ('845', '1000137', 'man0l1_baderon', '133', 'PrivateAreaMasterPast', '2', '-430.844', '40.2116', '186.773', '-1.30039', '0', '1060', null); +INSERT INTO `server_spawn_locations` VALUES ('846', '1290002', 'privatearea_exit', '230', 'PrivateAreaMasterPast', '1', '-838.1', '6', '231.94', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('847', '1000099', 'skittish_adventurer', '133', 'PrivateAreaMasterPast', '2', '-442.743', '39.5', '185.32', '-1.69155', '0', '1002', null); +INSERT INTO `server_spawn_locations` VALUES ('848', '1000098', 'onyx-haired_adventurer', '133', 'PrivateAreaMasterPast', '2', '-446.004', '39.5', '184.858', '1.482', '0', '1002', null); +INSERT INTO `server_spawn_locations` VALUES ('849', '1000076', 'duplicitous_trader', '133', 'PrivateAreaMasterPast', '2', '-442.31', '39.5', '193.317', '0.581998', '0', '1019', null); +INSERT INTO `server_spawn_locations` VALUES ('850', '1000075', 'crapulous_adventurer', '133', 'PrivateAreaMasterPast', '2', '-450.865', '39.5', '194.59', '1.538', '0', '1019', null); +INSERT INTO `server_spawn_locations` VALUES ('851', '1000100', 'relaxing_adventurer', '133', 'PrivateAreaMasterPast', '2', '-449.132', '39.5', '196.246', '3.108', '0', '1003', null); +INSERT INTO `server_spawn_locations` VALUES ('852', '1000167', 'mytesyn', '133', 'PrivateAreaMasterPast', '2', '-435.2', '40', '207.07', '-1.9', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('853', '1000077', 'debonair_pirate', '133', 'PrivateAreaMasterPast', '2', '-452.427', '39.5', '202.873', '2.25598', '0', '1003', null); +INSERT INTO `server_spawn_locations` VALUES ('854', '1000001', 'yshtola', '133', 'PrivateAreaMasterPast', '2', '-463.547', '40', '183.262', '-1.3983', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('855', '1001643', 'cocksure-cockswain', '133', 'PrivateAreaMasterPast', '2', '-445.719', '40', '221.513', '-1.59477', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('856', '1001649', 'sententious_sellsword', '133', 'PrivateAreaMasterPast', '2', '-473.359', '40', '207.664', '2.742', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('857', '1001650', 'solicitous_sellsword', '133', 'PrivateAreaMasterPast', '2', '-445.765', '43', '167.759', '-1.59122', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('858', '1000951', 'lonsygg', '155', 'PrivateAreaMasterPast', '1', '107.96', '9.4', '-1211.89', '0.3243', '0', '1031', null); +INSERT INTO `server_spawn_locations` VALUES ('859', '1000876', 'tkebbe', '155', 'PrivateAreaMasterPast', '1', '175.76', '-1.25', '-1151.11', '-2.67', '0', '1015', null); +INSERT INTO `server_spawn_locations` VALUES ('860', '1000017', 'farrimond', '155', 'PrivateAreaMasterPast', '1', '181.82', '-1', '-1154.03', '-1.57', '0', '1017', null); +INSERT INTO `server_spawn_locations` VALUES ('861', '1000680', 'swethyna', '155', 'PrivateAreaMasterPast', '1', '163.58', '-1.44', '-1153.96', '2.23', '0', '1015', null); +INSERT INTO `server_spawn_locations` VALUES ('862', '1000683', 'cecilia', '155', 'PrivateAreaMasterPast', '1', '161.5', '-1.48', '-1156.34', '1.44', '0', '1016', null); +INSERT INTO `server_spawn_locations` VALUES ('863', '1000230', 'miounne', '155', 'PrivateAreaMasterPast', '2', '57.42', '4', '-1196.69', '1.67', '0', '1060', null); +INSERT INTO `server_spawn_locations` VALUES ('864', '1001062', 'beaming_adventurer', '155', 'PrivateAreaMasterPast', '2', '67.4', '4', '-1208.22', '-2.63', '0', '1005', null); +INSERT INTO `server_spawn_locations` VALUES ('865', '1001057', 'amiable_adventurer', '155', 'PrivateAreaMasterPast', '2', '64.89', '4', '-1209.33', '1.74', '0', '1002', null); +INSERT INTO `server_spawn_locations` VALUES ('866', '1001060', 'well-bundled_adventurer', '155', 'PrivateAreaMasterPast', '2', '71.83', '4', '-1200.14', '-0.88', '0', '1005', null); +INSERT INTO `server_spawn_locations` VALUES ('867', '1001059', 'narrow-eyed_adventurer', '155', 'PrivateAreaMasterPast', '2', '69.62', '4', '-1199.51', '1.29', '0', '1005', null); +INSERT INTO `server_spawn_locations` VALUES ('868', '1001058', 'morose_merchant', '155', 'PrivateAreaMasterPast', '2', '66.26', '4', '-1199.79', '-2.71', '0', '1005', null); +INSERT INTO `server_spawn_locations` VALUES ('869', '1000562', 'wispily_whiskered_woodworker', '155', 'PrivateAreaMasterPast', '2', '64.41', '4', '-1199.61', '1.71', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('870', '1000458', 'vkorolon', '155', 'PrivateAreaMasterPast', '2', '55.82', '4', '-1212.23', '1.91', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('871', '5900004', 'closed_gridania_gate', '155', 'PrivateAreaMasterPast', '1', '185', '-1', '-1154', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('872', '1099047', 'gridania_blocker1', '155', 'PrivateAreaMasterPast', '1', '105.945', '10.851', '-1217.8', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('874', '1001430', 'kinnison', '206', '', '0', '-194', '23', '-1610', '0.9', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('875', '1099046', 'gridania_opening_exit', '155', 'PrivateAreaMasterPast', '1', '72.19', '4', '-1207.91', '1.17', '0', '0', ''); +INSERT INTO `server_spawn_locations` VALUES ('876', '1001648', 'unconcerned_passerby', '155', 'PrivateAreaMasterPast', '2', '77.577', '3.953', '-1210.66', '-0.518', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('882', '1500007', 'didiwai', '128', '', '0', '23.98', '46.05', '-42.96', '0.6', '0', '1041', null); +INSERT INTO `server_spawn_locations` VALUES ('883', '1000613', 'nahctahr', '128', '', '0', '22.57', '45.5', '-23.08', '1.5', '0', '1041', null); +INSERT INTO `server_spawn_locations` VALUES ('884', '1000359', 'ryssfloh', '128', '', '0', '58.78', '46.1', '-12.45', '0.6', '0', '1056', null); +INSERT INTO `server_spawn_locations` VALUES ('885', '1000360', 'kiht_gamduhla', '128', '', '0', '8.37', '45.62', '-37.45', '-1.64', '0', '1056', null); +INSERT INTO `server_spawn_locations` VALUES ('886', '1600016', 'sungyve', '128', '', '0', '45.86', '45.53', '-11.5', '-3.13', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('887', '1500013', 'bearded_rock_battlewarden', '128', '', '0', '56.43', '45.34', '-40.84', '-1.65', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('888', '1500008', '', '0', '', '0', '0', '0', '0', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('889', '1001291', 'ferry_man_thantonocea', '200', '', '0', '-14.52', '12.409', '127.997', '-1.57', '0', '2072', null); +INSERT INTO `server_spawn_locations` VALUES ('890', '1001291', 'ferry_man_noceatothan', '200', '', '0', '14.52', '12.409', '-127.997', '1.57', '0', '2072', null); +INSERT INTO `server_spawn_locations` VALUES ('891', '5900015', 'seadun6_door_centralfurnaces', '137', '', '0', '79.8', '-12.2', '-2949.8', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('892', '5900015', 'seadun6_door_dome2605', '137', '', '0', '16.011', '-12.218', '-3077.03', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('893', '5900015', 'seadun6_door_dome2610_topleft', '137', '', '0', '96.858', '-12.567', '-3055.05', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('894', '5900015', 'seadun6_door_dome2610_bottom', '137', '', '0', '144.761', '-12.497', '-2975.01', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('895', '5900015', 'seadun6_door_aurumloft', '137', '', '0', '127.904', '-11.875', '-2928', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('896', '5900015', 'seadun6_door_titandoor1', '137', '', '0', '303.918', '-19.875', '-2991.97', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('897', '5900015', 'seadun6_door_titandoor2', '137', '', '0', '320.025', '-19.875', '-3040.02', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('898', '5900015', 'seadun6_door_titandoor3', '137', '', '0', '383.833', '-19.875', '-3039.93', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('899', '5900001', 'seadun6_beastmachine1', '137', '', '0', '191.217', '-14.427', '-2924.85', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('900', '5900001', 'seadun6_beastmachine2', '137', '', '0', '191.217', '-14.427', '-2924.85', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('901', '5900015', 'rocdun1_door_chocobostables', '231', '', '0', '63.99', '181.25', '192.013', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('902', '5900015', 'rocdun1_door_thegullet', '231', '', '0', '128.173', '181.25', '192.19', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('903', '5900015', 'rocdun1_door_grandhall', '231', '', '0', '79.976', '181.25', '144.041', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('904', '5900016', 'rocdun1_barrier_grandhall', '231', '', '0', '65.725', '180.859', '81.098', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('905', '5900016', 'rocdun1_barrier_feastinghall', '231', '', '0', '-95.198', '164.884', '-13.873', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('906', '5900016', 'rocdun1_barrier_knightsquarters', '231', '', '0', '-0.544', '172.854', '-109.665', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('907', '5900016', 'rocdun1_barrier_captainsquarters', '231', '', '0', '-32.564', '172.795', '-77.364', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('908', '5900016', 'rocdun1_barrier_granary', '231', '', '0', '-74.02', '172.187', '-48.423', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('909', '5900016', 'rocdun1_barrier_unknown1', '0', '', '0', '0', '0', '0', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('910', '5900016', 'rocdun4_barrier_goldenpools_sout', '245', '', '0', '-686.923', '171.343', '1359.91', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('911', '5900016', 'rocdun4_barrier_goldenpools_nort', '245', '', '0', '-733.348', '171.92', '1230.88', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('912', '5900016', 'rocdun4_barrier_minerstare', '245', '', '0', '-996.74', '196.244', '1391.07', '0', '0', '0', ''); +INSERT INTO `server_spawn_locations` VALUES ('913', '5900016', 'rocdun4_barrier_coincnterschest', '245', '', '0', '-1083.28', '193.835', '1264.69', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('914', '5900016', 'rocdun4_barrier_map3enter', '245', '', '0', '-1163', '188.093', '1167.11', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('915', '5900001', 'fstdun3_door_entrance', '159', '', '0', '880.116', '-22.89', '648.988', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('916', '5900001', 'fstdun3_door_confessionchamber', '159', '', '0', '1216.05', '-47.89', '-912.021', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('917', '5900001', 'fstdun3_door_interrogatiochamber', '159', '', '0', '1312.07', '-63.89', '560.007', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('918', '5900001', 'fstdun3_door_executionchamber', '159', '', '0', '1456.01', '-59.89', '671.623', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('919', '5900016', 'fstdun3_barrier_tornsrest', '159', '', '0', '1119.88', '-44.125', '880.115', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('920', '5900016', 'fstdun3_barrier_foolsrest_east', '159', '', '0', '1150.34', '-47.975', '687.889', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('921', '5900016', 'fstdun3_barrier_foolsrest_west', '159', '', '0', '1120.43', '-48.125', '688.064', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('922', '5900016', 'fstdun3_barrier_seraucheforne', '159', '', '0', '1223.84', '-52', '816.426', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('923', '5900016', 'fstdun3_barrier_bergand_north', '159', '', '0', '1262.39', '-55.991', '743.272', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('924', '5900016', 'fstdun3_barrier_bergand_east', '159', '', '0', '1279.77', '-56.076', '751.932', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('925', '5900016', 'fstdun3_barrier_joukil', '159', '', '0', '1232.05', '-52.125', '672.751', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('926', '5900001', 'ferry_door1_thantonoscea', '200', '', '0', '-10.242', '7.75', '133.405', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('927', '5900001', 'ferry_door2_thantonoscea', '200', '', '0', '4.066', '4.76', '133.573', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('928', '5900001', 'ferry_door1_nosceatothan', '200', '', '0', '10.211', '7.75', '-133.43', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('929', '5900001', 'ferry_door2_nosceatothan', '200', '', '0', '-4.066', '4.76', '-133.573', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('930', '1090548', 'inn_grid_exitdoor_push', '244', '', '0', '159.98', '0.02', '151.9', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('931', '1200336', 'inn_uld_exitdoor_target', '244', '', '0', '-0.02', '0.02', '-8.6', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('932', '1200334', 'inn_limsa_exitdoor_target', '244', '', '0', '-160.02', '0.02', '-168.4', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('933', '1090549', 'inn_uld_exitdoor_push', '244', '', '0', '-0.02', '0.02', '-8.6', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('934', '1090547', 'inn_limsa_exitdoor_push', '244', '', '0', '-160.02', '0.02', '-168.4', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('935', '1060027', 'yoshi_p', '130', '', '0', '1117.76', '52.143', '-445.258', '2.173', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('936', '5900004', 'door1', '175', 'PrivateAreaMasterPast', '3', '14', '196', '174', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('937', '5900004', 'door2', '175', 'PrivateAreaMasterPast', '3', '12', '196', '184', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('938', '5900004', 'door3', '184', '', '0', '-44', '196', '68', '0', '0', '0', null); COMMIT; \ No newline at end of file diff --git a/sql/server_zones.sql b/sql/server_zones.sql index 1d83110a..86964759 100644 --- a/sql/server_zones.sql +++ b/sql/server_zones.sql @@ -4,12 +4,10 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 8/14/2016 9:43:28 AM +Date: 6/14/2017 10:19:40 PM */ -SET FOREIGN_KEY_CHECKS = 0; -SET autocommit = 0; - +SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for server_zones -- ---------------------------- @@ -18,7 +16,9 @@ CREATE TABLE `server_zones` ( `regionId` smallint(6) unsigned NOT NULL, `zoneName` varchar(255) DEFAULT NULL, `placeName` varchar(255) NOT NULL, - `className` varchar(30) NOT NULL, + `serverIp` varchar(32) NOT NULL, + `serverPort` int(10) unsigned NOT NULL, + `classPath` varchar(255) NOT NULL, `dayMusic` smallint(6) unsigned DEFAULT '0', `nightMusic` smallint(6) unsigned DEFAULT '0', `battleMusic` smallint(6) unsigned DEFAULT '0', @@ -33,116 +33,114 @@ CREATE TABLE `server_zones` ( -- ---------------------------- -- Records -- ---------------------------- -INSERT INTO `server_zones` VALUES ('0', '0', null, '--', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('128', '101', 'sea0Field01', 'Lower La Noscea', 'ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('129', '101', 'sea0Field02', 'Western La Noscea', 'ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('130', '101', 'sea0Field03', 'Eastern La Noscea', 'ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('131', '101', 'sea0Dungeon01', 'Mistbeard Cove', 'ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('132', '101', 'sea0Dungeon02', 'Cassiopeia Hollow', 'ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('133', '101', 'sea0Town01', 'Limsa Lominsa', 'ZoneMasterSeaS0', '59', '59', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('134', '202', 'sea0Market01', 'Market Wards', 'ZoneMasterMarketSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('135', '101', 'sea0Field04', 'Upper La Noscea', 'ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('137', '101', null, 'U\'Ghamaro Mines', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('138', '101', null, 'La Noscea', '', '60', '60', '21', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('139', '112', 'sea0Field01a', 'The Cieldalaes', 'ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('140', '101', null, 'Sailors Ward', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('141', '101', 'sea0Field01a', 'Lower La Noscea', 'ZoneMasterSeaS0', '60', '60', '21', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('143', '102', 'roc0Field01', 'Coerthas Central Highlands', 'ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('144', '102', 'roc0Field02', 'Coerthas Eastern Highlands', 'ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('145', '102', 'roc0Field03', 'Coerthas Eastern Lowlands', 'ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('146', '102', null, 'Coerthas', '', '55', '55', '15', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('147', '102', 'roc0Field04', 'Coerthas Central Lowlands', 'ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('148', '102', 'roc0Field05', 'Coerthas Western Highlands', 'ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('150', '103', 'fst0Field01', 'Central Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('151', '103', 'fst0Field02', 'East Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('152', '103', 'fst0Field03', 'North Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('153', '103', 'fst0Field04', 'West Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('154', '103', 'fst0Field05', 'South Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('155', '103', 'fst0Town01', 'Gridania', 'ZoneMasterFstF0', '51', '51', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('156', '103', null, 'The Black Shroud', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('157', '103', 'fst0Dungeon01', 'The Mun-Tuy Cellars', 'ZoneMasterFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('158', '103', 'fst0Dungeon02', 'The Tam-Tara Deepcroft', 'ZoneMasterFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('159', '103', 'fst0Dungeon03', 'The Thousand Maws of Toto-Rak', 'ZoneMasterFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('160', '204', 'fst0Market01', 'Market Wards', 'ZoneMasterMarketFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('161', '103', null, 'Peasants Ward', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('162', '103', 'fst0Field01a', 'Central Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('164', '106', 'fst0Battle01', 'Central Shroud', 'ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('165', '106', 'fst0Battle02', 'Central Shroud', 'ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('166', '106', 'fst0Battle03', 'Central Shroud', 'ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('167', '106', 'fst0Battle04', 'Central Shroud', 'ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('168', '106', 'fst0Battle05', 'Central Shroud', 'ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('170', '104', 'wil0Field01', 'Central Thanalan', 'ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('171', '104', 'wil0Field02', 'Eastern Thanalan', 'ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('172', '104', 'wil0Field03', 'Western Thanalan', 'ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('173', '104', 'wil0Field04', 'Northern Thanalan', 'ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('174', '104', 'wil0Field05', 'Southern Thanalan', 'ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('175', '104', 'wil0Town01', 'Ul\'dah', 'ZoneMasterWilW0', '66', '66', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('176', '104', 'wil0Dungeon01', 'Nanawa Mines', 'ZoneMasterWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('177', '207', '_jail', '-', 'ZoneMasterJail', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('178', '104', 'wil0Dungeon02', 'Copperbell Mines', 'ZoneMasterWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('179', '104', null, 'Thanalan', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('180', '205', 'wil0Market01', 'Market Wards', 'ZoneMasterMarketWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('181', '104', null, 'Merchants Ward', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('182', '104', null, 'Central Thanalan', '', '68', '68', '25', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('184', '107', 'wil0Battle01', 'Ul\'dah', 'ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('185', '107', 'wil0Battle01', 'Ul\'dah', 'ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('186', '104', 'wil0Battle02', 'Ul\'dah', 'ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('187', '104', 'wil0Battle03', 'Ul\'dah', 'ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('188', '104', 'wil0Battle04', 'Ul\'dah', 'ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('190', '105', 'lak0Field01', 'Mor Dhona', 'ZoneMasterLakL0', '49', '49', '11', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('192', '111', 'ocn0Battle01', 'Rhotano Sea', 'ZoneMasterBattleOcnO0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('193', '111', 'ocn0Battle02', 'Rhotano Sea', 'ZoneMasterBattleOcnO0', '7', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('194', '111', 'ocn0Battle03', 'Rhotano Sea', 'ZoneMasterBattleOcnO0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('195', '111', 'ocn0Battle04', 'Rhotano Sea', 'ZoneMasterBattleOcnO0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('196', '111', 'ocn0Battle05', 'Rhotano Sea', 'ZoneMasterBattleOcnO0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('198', '111', 'ocn0Battle06', 'Rhotano Sea', 'ZoneMasterBattleOcnO0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('200', '111', null, 'Strait of Merlthor', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('201', '111', null, '-', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('204', '101', 'sea0Field02a', 'Western La Noscea', '', '60', '60', '21', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('205', '101', 'sea0Field03a', 'Eastern La Noscea', '', '60', '60', '21', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('206', '103', 'fst0Town01a', 'Gridania', 'ZoneMasterFstF0', '51', '51', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('207', '103', 'fst0Field03a', 'North Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('208', '103', 'fst0Field05a', 'South Shroud', 'ZoneMasterFstF0', '52', '52', '13', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('209', '104', 'wil0Town01a', 'Ul\'dah', 'ZoneMasterWilW0', '66', '66', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('210', '104', null, 'Eastern Thanalan', '', '68', '68', '25', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('211', '104', null, 'Western Thanalan', '', '68', '68', '25', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('230', '101', 'sea0Town01a', 'Limsa Lominsa', 'ZoneMasterSeaS0', '59', '59', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('231', '102', 'roc0Dungeon01', 'Dzemael Darkhold', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('232', '202', 'sea0Office01', 'Maelstrom Command', 'ZoneMasterOfficeSeaS0', '3', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('233', '205', 'wil0Office01', 'Hall of Flames', 'ZoneMasterOfficeWilW0', '4', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('234', '204', 'fst0Office01', 'Adders\' Nest', 'ZoneMasterOfficeFstF0', '2', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('235', '101', null, 'Shposhae', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('236', '101', null, 'Locke\'s Lie', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('237', '101', null, 'Turtleback Island', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('238', '103', 'fst0Field04', 'Thornmarch', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('239', '102', null, 'The Howling Eye', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('240', '104', 'wil0Field05a', 'The Bowl of Embers', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('244', '209', 'prv0Inn01', 'Inn Room', 'ZoneMasterPrvI0', '61', '61', '0', '0', '1', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('245', '102', 'roc0Dungeon02', 'The Aurum Vale', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('246', '104', null, 'Cutter\'s Cry', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('247', '103', null, 'North Shroud', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('248', '101', null, 'Western La Noscea', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('249', '104', null, 'Eastern Thanalan', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('250', '102', null, 'The Howling Eye', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('251', '105', null, 'Transmission Tower', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('252', '102', null, 'The Aurum Vale', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('253', '102', null, 'The Aurum Vale', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('254', '104', null, 'Cutter\'s Cry', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('255', '104', null, 'Cutter\'s Cry', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('256', '102', null, 'The Howling Eye', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('257', '109', null, 'Rivenroad', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('258', '103', null, 'North Shroud', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('259', '103', null, 'North Shroud', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('260', '101', null, 'Western La Noscea', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('261', '101', null, 'Western La Noscea', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('262', '104', null, 'Eastern Thanalan', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('263', '104', null, 'Eastern Thanalan', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('264', '105', 'lak0Field01', 'Transmission Tower', '', '0', '0', '0', '0', '0', '1', '0', '0'); -INSERT INTO `server_zones` VALUES ('265', '104', null, 'The Bowl of Embers', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('266', '105', 'lak0Field01a', 'Mor Dhona', 'ZoneMasterLakL0', '49', '49', '11', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('267', '109', null, 'Rivenroad', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('268', '109', null, 'Rivenroad', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('269', '101', null, 'Locke\'s Lie', '', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('270', '101', null, 'Turtleback Island', '', '0', '0', '0', '0', '0', '0', '0', '0'); - -COMMIT; \ No newline at end of file +INSERT INTO `server_zones` VALUES ('0', '0', null, '--', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('128', '101', 'sea0Field01', 'Lower La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('129', '101', 'sea0Field02', 'Western La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('130', '101', 'sea0Field03', 'Eastern La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('131', '101', 'sea0Dungeon01', 'Mistbeard Cove', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('132', '101', 'sea0Dungeon03', 'Cassiopeia Hollow', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('133', '101', 'sea0Town01', 'Limsa Lominsa', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '59', '59', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('134', '202', 'sea0Market01', 'Market Wards', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterMarketSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('135', '101', 'sea0Field04', 'Upper La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('137', '101', 'sea0Dungeon06', 'U\'Ghamaro Mines', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('138', '101', null, 'La Noscea', '127.0.0.1', '1989', '', '60', '60', '21', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('139', '112', 'sea0Field01a', 'The Cieldalaes', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('140', '101', null, 'Sailors Ward', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('141', '101', 'sea0Field01a', 'Lower La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('143', '102', 'roc0Field01', 'Coerthas Central Highlands', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('144', '102', 'roc0Field02', 'Coerthas Eastern Highlands', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('145', '102', 'roc0Field03', 'Coerthas Eastern Lowlands', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('146', '102', null, 'Coerthas', '127.0.0.1', '1989', '', '55', '55', '15', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('147', '102', 'roc0Field04', 'Coerthas Central Lowlands', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('148', '102', 'roc0Field05', 'Coerthas Western Highlands', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '55', '55', '15', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('150', '103', 'fst0Field01', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('151', '103', 'fst0Field02', 'East Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('152', '103', 'fst0Field03', 'North Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('153', '103', 'fst0Field04', 'West Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('154', '103', 'fst0Field05', 'South Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('155', '103', 'fst0Town01', 'Gridania', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '51', '51', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('156', '103', null, 'The Black Shroud', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('157', '103', 'fst0Dungeon01', 'The Mun-Tuy Cellars', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('158', '103', 'fst0Dungeon02', 'The Tam-Tara Deepcroft', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('159', '103', 'fst0Dungeon03', 'The Thousand Maws of Toto-Rak', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('160', '204', 'fst0Market01', 'Market Wards', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterMarketFstF0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('161', '103', null, 'Peasants Ward', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('162', '103', 'fst0Field01a', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('164', '106', 'fst0Battle01', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('165', '106', 'fst0Battle02', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('166', '106', 'fst0Battle03', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('167', '106', 'fst0Battle04', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('168', '106', 'fst0Battle05', 'Central Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleFstF0', '0', '0', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('170', '104', 'wil0Field01', 'Central Thanalan', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('171', '104', 'wil0Field02', 'Eastern Thanalan', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('172', '104', 'wil0Field03', 'Western Thanalan', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('173', '104', 'wil0Field04', 'Northern Thanalan', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('174', '104', 'wil0Field05', 'Southern Thanalan', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '68', '68', '25', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('175', '104', 'wil0Town01', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '66', '66', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('176', '104', 'wil0Dungeon02', 'Nanawa Mines', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('177', '207', '_jail', '-', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterJail', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('178', '104', 'wil0Dungeon04', 'Copperbell Mines', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('179', '104', null, 'Thanalan', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('180', '205', 'wil0Market01', 'Market Wards', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterMarketWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('181', '104', null, 'Merchants Ward', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('182', '104', null, 'Central Thanalan', '127.0.0.1', '1989', '', '68', '68', '25', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('184', '107', 'wil0Battle01', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('185', '107', 'wil0Battle01', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('186', '104', 'wil0Battle02', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('187', '104', 'wil0Battle03', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('188', '104', 'wil0Battle04', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleWilW0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('190', '105', 'lak0Field01', 'Mor Dhona', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterLakL0', '49', '49', '11', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('192', '112', 'ocn1Battle01', 'Rhotano Sea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleOcnO1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('193', '111', 'ocn0Battle02', 'Rhotano Sea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleOcnO0', '7', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('194', '112', 'ocn1Battle03', 'Rhotano Sea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleOcnO1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('195', '112', 'ocn1Battle04', 'Rhotano Sea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleOcnO1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('196', '112', 'ocn1Battle05', 'Rhotano Sea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleOcnO1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('198', '112', 'ocn1Battle06', 'Rhotano Sea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterBattleOcnO1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('200', '805', 'sea1Cruise01', 'Strait of Merlthor', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterCruiseSeaS1', '65', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('201', '208', 'prv0Cottage00', '-', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterCottagePrv00', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('204', '101', 'sea0Field02a', 'Western La Noscea', '127.0.0.1', '1989', '', '60', '60', '21', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('205', '101', 'sea0Field03a', 'Eastern La Noscea', '127.0.0.1', '1989', '', '60', '60', '21', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('206', '103', 'fst0Town01a', 'Gridania', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '51', '51', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('207', '103', 'fst0Field03a', 'North Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('208', '103', 'fst0Field05a', 'South Shroud', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterFstF0', '52', '52', '13', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('209', '104', 'wil0Town01a', 'Ul\'dah', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterWilW0', '66', '66', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('210', '104', null, 'Eastern Thanalan', '127.0.0.1', '1989', '', '68', '68', '25', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('211', '104', null, 'Western Thanalan', '127.0.0.1', '1989', '', '68', '68', '25', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('230', '101', 'sea0Town01a', 'Limsa Lominsa', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '59', '59', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('231', '102', 'roc0Dungeon01', 'Dzemael Darkhold', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('232', '202', 'sea0Office01', 'Maelstrom Command', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterOfficeSeaS0', '3', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('233', '205', 'wil0Office01', 'Hall of Flames', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterOfficeWilW0', '4', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('234', '204', 'fst0Office01', 'Adders\' Nest', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterOfficeFstF0', '2', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('235', '101', null, 'Shposhae', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('236', '101', 'sea1Field01', 'Locke\'s Lie', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('237', '101', null, 'Turtleback Island', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('238', '103', 'fst0Field04', 'Thornmarch', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('239', '102', 'roc0Field02a', 'The Howling Eye', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('240', '104', 'wil0Field05a', 'The Bowl of Embers', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('244', '209', 'prv0Inn01', 'Inn Room', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterPrvI0', '61', '61', '0', '0', '1', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('245', '102', 'roc0Dungeon04', 'The Aurum Vale', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('246', '104', null, 'Cutter\'s Cry', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('247', '103', null, 'North Shroud', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('248', '101', null, 'Western La Noscea', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('249', '104', null, 'Eastern Thanalan', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('250', '102', 'roc0Field02a', 'The Howling Eye', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('251', '105', null, 'Transmission Tower', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('252', '102', 'roc0Dungeon04', 'The Aurum Vale', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('253', '102', 'roc0Dungeon04', 'The Aurum Vale', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('254', '104', null, 'Cutter\'s Cry', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('255', '104', null, 'Cutter\'s Cry', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('256', '102', 'roc0Field02a', 'The Howling Eye', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('257', '109', 'roc1Field01', 'Rivenroad', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('258', '103', null, 'North Shroud', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('259', '103', null, 'North Shroud', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('260', '101', null, 'Western La Noscea', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('261', '101', null, 'Western La Noscea', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('262', '104', null, 'Eastern Thanalan', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('263', '104', null, 'Eastern Thanalan', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('264', '105', 'lak0Field01', 'Transmission Tower', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '1', '0', '0'); +INSERT INTO `server_zones` VALUES ('265', '104', null, 'The Bowl of Embers', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('266', '105', 'lak0Field01a', 'Mor Dhona', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterLakL0', '49', '49', '11', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('267', '109', 'roc1Field02', 'Rivenroad', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('268', '109', 'roc1Field03', 'Rivenroad', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterRocR1', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('269', '101', null, 'Locke\'s Lie', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('270', '101', null, 'Turtleback Island', '127.0.0.1', '1989', '', '0', '0', '0', '0', '0', '0', '0', '0'); diff --git a/sql/server_zones_privateareas.sql b/sql/server_zones_privateareas.sql index 986fce84..ddddee1a 100644 --- a/sql/server_zones_privateareas.sql +++ b/sql/server_zones_privateareas.sql @@ -1,58 +1,36 @@ --- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64) --- --- Host: localhost Database: ffxiv_database --- ------------------------------------------------------ --- Server version 5.7.10-log +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 7/9/2017 7:11:12 PM +*/ -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +SET FOREIGN_KEY_CHECKS=0; +SET AUTOCOMMIT=0; +-- ---------------------------- +-- Table structure for server_zones_privateareas +-- ---------------------------- +CREATE TABLE `server_zones_privateareas` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `parentZoneId` int(10) unsigned NOT NULL, + `className` varchar(64) NOT NULL, + `privateAreaName` varchar(32) NOT NULL, + `privateAreaType` int(10) unsigned NOT NULL, + `dayMusic` smallint(6) unsigned DEFAULT '0', + `nightMusic` smallint(6) unsigned DEFAULT '0', + `battleMusic` smallint(6) unsigned DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1; --- --- Table structure for table `server_zones_privateareas` --- - -DROP TABLE IF EXISTS `server_zones_privateareas`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `server_zones_privateareas` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `parentZoneId` int(10) unsigned NOT NULL, - `privateAreaName` varchar(32) NOT NULL, - `className` varchar(32) NOT NULL, - `dayMusic` smallint(6) unsigned DEFAULT '0', - `nightMusic` smallint(6) unsigned DEFAULT '0', - `battleMusic` smallint(6) unsigned DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `server_zones_privateareas` --- - -LOCK TABLES `server_zones_privateareas` WRITE; -/*!40000 ALTER TABLE `server_zones_privateareas` DISABLE KEYS */; -INSERT INTO `server_zones_privateareas` VALUES (1,175,'PrivateAreaMasterPast','PrivateAreaMasterPast',0,0,0); -INSERT INTO `server_zones_privateareas` VALUES (2,230,'PrivateAreaMasterPast','PrivateAreaMasterPast',0,0,0); -INSERT INTO `server_zones_privateareas` VALUES (3,193,'ContentSimpleContent30002','PrivateAreaMasterSimpleContent',0,0,0); -/*!40000 ALTER TABLE `server_zones_privateareas` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-06-07 22:54:54 +-- ---------------------------- +-- Records +-- ---------------------------- +INSERT INTO `server_zones_privateareas` VALUES ('1', '184', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '66', '0', '0'); +INSERT INTO `server_zones_privateareas` VALUES ('2', '230', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '59', '0', '0'); +INSERT INTO `server_zones_privateareas` VALUES ('4', '133', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0'); +INSERT INTO `server_zones_privateareas` VALUES ('5', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '51', '0', '0'); +INSERT INTO `server_zones_privateareas` VALUES ('6', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0'); +INSERT INTO `server_zones_privateareas` VALUES ('8', '175', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '3', '66', '0', '0'); +COMMIT; \ No newline at end of file diff --git a/sql/server_zones_spawnlocations.sql b/sql/server_zones_spawnlocations.sql index dbe9e0b2..7f0574a6 100644 --- a/sql/server_zones_spawnlocations.sql +++ b/sql/server_zones_spawnlocations.sql @@ -4,7 +4,7 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 8/21/2016 7:50:14 PM +Date: 3/7/2017 8:30:07 AM */ SET FOREIGN_KEY_CHECKS=0; @@ -21,7 +21,7 @@ CREATE TABLE `server_zones_spawnlocations` ( `spawnZ` float NOT NULL, `spawnRotation` float NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records @@ -31,7 +31,7 @@ INSERT INTO `server_zones_spawnlocations` VALUES ('2', '133', null, '15', '-444. INSERT INTO `server_zones_spawnlocations` VALUES ('3', '175', null, '15', '-110.157', '202', '171.345', '0'); INSERT INTO `server_zones_spawnlocations` VALUES ('4', '193', null, '15', '0.016', '10.35', '-36.91', '0.025'); INSERT INTO `server_zones_spawnlocations` VALUES ('5', '166', null, '15', '356.09', '3.74', '-701.62', '-1.4'); -INSERT INTO `server_zones_spawnlocations` VALUES ('6', '184', null, '15', '12.63', '196.05', '131.01', '-1.34'); +INSERT INTO `server_zones_spawnlocations` VALUES ('6', '184', null, '15', '5.36433', '196', '133.656', '-2.84938'); INSERT INTO `server_zones_spawnlocations` VALUES ('7', '128', null, '15', '-8.48', '45.36', '139.5', '2.02'); INSERT INTO `server_zones_spawnlocations` VALUES ('8', '230', 'PrivateAreaMasterPast', '15', '-838.1', '6', '231.94', '1.1'); INSERT INTO `server_zones_spawnlocations` VALUES ('9', '193', null, '16', '-5', '16.35', '6', '0.5'); @@ -42,3 +42,6 @@ INSERT INTO `server_zones_spawnlocations` VALUES ('13', '244', null, '15', '160. INSERT INTO `server_zones_spawnlocations` VALUES ('14', '150', null, '15', '333.271', '5.889', '-943.275', '0.794'); INSERT INTO `server_zones_spawnlocations` VALUES ('15', '133', null, '15', '-8.062', '45.429', '139.364', '2.955'); INSERT INTO `server_zones_spawnlocations` VALUES ('16', '170', null, '15', '-27.015', '181.798', '-79.72', '2.513'); +INSERT INTO `server_zones_spawnlocations` VALUES ('17', '184', null, '16', '-24.34', '192', '34.22', '0.78'); +INSERT INTO `server_zones_spawnlocations` VALUES ('18', '184', null, '15', '-24.34', '192', '34.22', '0.78'); +INSERT INTO `server_zones_spawnlocations` VALUES ('19', '184', null, '15', '-22', '196', '87', '1.8'); diff --git a/sql/users.sql b/sql/users.sql index 35266275..73b58438 100644 --- a/sql/users.sql +++ b/sql/users.sql @@ -30,7 +30,7 @@ CREATE TABLE `users` ( `email` varchar(256) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- diff --git a/www/login/config.php b/www/login/config.php new file mode 100644 index 00000000..62c13d2d --- /dev/null +++ b/www/login/config.php @@ -0,0 +1,15 @@ + diff --git a/www/login/css/login.css b/www/login/css/login.css new file mode 100644 index 00000000..2d178016 --- /dev/null +++ b/www/login/css/login.css @@ -0,0 +1,3 @@ +.loginBody { + background-color: #EFEFEF; +} \ No newline at end of file diff --git a/www/login/database.php b/www/login/database.php new file mode 100644 index 00000000..5fc0f306 --- /dev/null +++ b/www/login/database.php @@ -0,0 +1,388 @@ +select_db($database); + $dataConnection->query("SET NAMES 'utf8'"); + + return $dataConnection; +} + +$g_databaseConnection = CreateDatabaseConnection($db_server, $db_username, $db_password, $db_database); + +function GenerateRandomSha224() +{ + mt_srand(microtime(true) * 100000 + memory_get_usage(true)); + return hash("sha224", uniqid(mt_rand(), true)); +} + +function VerifyUser($dataConnection, $username, $password) +{ + $statement = $dataConnection->prepare("SELECT id, passhash, salt FROM users WHERE name = ?"); + if(!$statement) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + try + { + $statement->bind_param('s', $username); + if(!$statement->execute()) + { + throw new Exception(__FUNCTION__ . " failed."); + } + + $statement->bind_result($id, $storedPasshash, $salt); + if(!$statement->fetch()) + { + throw new Exception("Incorrect username."); + } + + $saltedPassword = $password . $salt; + $hashedPassword = hash("sha224", $saltedPassword); + + if($hashedPassword !== $storedPasshash) + { + throw new Exception("Incorrect password."); + } + + return $id; + } + finally + { + $statement->close(); + } +} + +function InsertUser($dataConnection, $username, $passhash, $salt, $email) +{ + { + $statement = $dataConnection->prepare("INSERT INTO users (name, passhash, salt, email) VALUES (?, ?, ?, ?)"); + if(!$statement) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + try + { + $statement->bind_param('ssss', $username, $passhash, $salt, $email); + + if(!$statement->execute()) + { + throw new Exception(__FUNCTION__ . " failed."); + } + } + finally + { + $statement->close(); + } + } +} + +function RefreshOrCreateSession($dataConnection, $userId) +{ + try + { + $sessionId = GetSessionFromUserId($dataConnection, $userId); + RefreshSession($dataConnection, $sessionId); + } + catch(Exception $e) + { + $sessionId = CreateSession($dataConnection, $userId); + } + + return $sessionId; +} + +function CreateSession($dataConnection, $userId) +{ + //Delete any session that might be active + { + $statement = $dataConnection->prepare("DELETE FROM sessions WHERE userId = ?"); + if(!$statement) + { + throw new Exception("Failed to create session: " . $dataConnection->error); + } + + try + { + $statement->bind_param('i', $userId); + + if(!$statement->execute()) + { + throw new Exception("Failed to create session: " . $dataConnection->error); + } + } + finally + { + $statement->close(); + } + } + + //Create new session + { + $sessionId = GenerateRandomSha224(); + + $statement = $dataConnection->prepare("INSERT INTO sessions (id, userid, expiration) VALUES (?, ?, NOW() + INTERVAL " . FFXIV_SESSION_LENGTH . " HOUR)"); + if(!$statement) + { + throw new Exception("Failed to create session: " . $dataConnection->error); + } + + try + { + $statement->bind_param('si', $sessionId, $userId); + + if(!$statement->execute()) + { + throw new Exception("Failed to create session: " . $dataConnection->error); + } + } + finally + { + $statement->close(); + } + + return $sessionId; + } +} + +function GetSessionFromUserId($dataConnection, $userId) +{ + $statement = $dataConnection->prepare("SELECT id FROM sessions WHERE userId = ? AND expiration > NOW()"); + if(!$statement) + { + throw new Exception("Failed to get session id: " . $dataConnection->error); + } + + try + { + $statement->bind_param('i', $userId); + + if(!$statement->execute()) + { + throw new Exception("Failed to get session id: " . $dataConnection->error); + } + + $statement->bind_result($sessionId); + if(!$statement->fetch()) + { + throw new Exception("Failed to get session id: " . $dataConnection->error); + } + + return $sessionId; + } + finally + { + $statement->close(); + } +} + +function RefreshSession($dataConnection, $sessionId) +{ + $statement = $dataConnection->prepare("UPDATE sessions SET expiration = NOW() + INTERVAL " . FFXIV_SESSION_LENGTH . " HOUR WHERE id = ?"); + if(!$statement) + { + throw new Exception("Failed to refresh session: " . $dataConnection->error); + } + + try + { + $statement->bind_param('s', $sessionId); + + if(!$statement->execute()) + { + throw new Exception("Failed to refresh session: " . $dataConnection->error); + } + } + finally + { + $statement->close(); + } +} + +function GetUserIdFromSession($dataConnection, $sessionId) +{ + $statement = $dataConnection->prepare("SELECT userId FROM sessions WHERE id = ? AND expiration > NOW()"); + if(!$statement) + { + throw new Exception("Could not get user id."); + } + + try + { + $statement->bind_param('s', $sessionId); + if(!$statement->execute()) + { + throw new Exception("Could not get user id."); + } + + $statement->bind_result($userId); + if(!$statement->fetch()) + { + throw new Exception("Could not get user id."); + } + + return $userId; + } + finally + { + $statement->close(); + } +} + +function GetUserInfo($dataConnection, $userId) +{ + $statement = $dataConnection->prepare("SELECT name FROM users WHERE id = ?"); + if(!$statement) + { + throw new Exception("Failed to get user information: " . $dataConnection->error); + } + + try + { + $statement->bind_param('i', $userId); + if(!$statement->execute()) + { + throw new Exception("Failed to get user information: " . $dataConnection->error); + } + + $result = $statement->get_result(); + if(!$result) + { + throw new Exception("Failed to get user information: " . $dataConnection->error); + } + + $row = $result->fetch_assoc(); + if(!$row) + { + throw new Exception("Failed to get user information: " . $dataConnection->error); + } + + return $row; + } + finally + { + $statement->close(); + } +} + +function GetUserCharacters($dataConnection, $userId) +{ + $statement = $dataConnection->prepare("SELECT id, name FROM characters WHERE userId = ?"); + if(!$statement) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + try + { + $statement->bind_param('i', $userId); + if(!$statement->execute()) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + $result = $statement->get_result(); + if(!$result) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + $characters = array(); + + while(1) + { + $row = $result->fetch_assoc(); + if(!$row) + { + break; + } + array_push($characters, $row); + } + + return $characters; + } + finally + { + $statement->close(); + } +} + +function GetCharacterInfo($dataConnection, $userId, $characterId) +{ + $query = sprintf("SELECT * FROM characters WHERE userId = '%d' AND id = '%d'", + $userId, $characterId); + $result = $dataConnection->query($query); + if(!$result) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + $row = $result->fetch_assoc(); + if(!$row) + { + throw new Exception(__FUNCTION__ . " failed: " . $dataConnection->error); + } + + return $row; +} + +function UpdateCharacterInfo($dataConnection, $characterId, $characterInfo) +{ + $statement = $dataConnection->prepare("UPDATE ffxiv_characters SET + name = ?, tribe = ?, size = ?, voice = ?, skinColor = ?, hairStyle = ?, hairColor = ?, hairOption = ?, + eyeColor = ?, faceType = ?, faceBrow = ?, faceEye = ?, faceIris = ?, faceNose = ?, faceMouth = ?, faceJaw = ?, + faceCheek = ?, faceOption1 = ?, faceOption2 = ?, guardian = ?, birthMonth = ?, birthDay = ?, allegiance = ?, + weapon1 = ?, weapon2 = ?, headGear = ?, bodyGear = ?, legsGear = ?, handsGear = ?, feetGear = ?, + waistGear = ?, rightEarGear = ?, leftEarGear = ?, rightFingerGear = ?, leftFingerGear = ? + WHERE id = ?"); + if(!$statement) + { + throw new Exception("Failed to update character information: " . $dataConnection->error); + } + + try + { + if(!$statement->bind_param("siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", + $characterInfo["name"], $characterInfo["tribe"], $characterInfo["size"], $characterInfo["voice"], + $characterInfo["skinColor"], $characterInfo["hairStyle"], $characterInfo["hairColor"], + $characterInfo["hairOption"], $characterInfo["eyeColor"], $characterInfo["faceType"], + $characterInfo["faceBrow"], $characterInfo["faceEye"], $characterInfo["faceIris"], + $characterInfo["faceNose"], $characterInfo["faceMouth"], $characterInfo["faceJaw"], + $characterInfo["faceCheek"], $characterInfo["faceOption1"], $characterInfo["faceOption2"], + $characterInfo["guardian"], $characterInfo["birthMonth"], $characterInfo["birthDay"], $characterInfo["allegiance"], + $characterInfo["weapon1"], $characterInfo["weapon2"], $characterInfo["headGear"], $characterInfo["bodyGear"], + $characterInfo["legsGear"], $characterInfo["handsGear"], $characterInfo["feetGear"], + $characterInfo["waistGear"], $characterInfo["rightEarGear"], $characterInfo["leftEarGear"], + $characterInfo["rightFingerGear"], $characterInfo["leftFingerGear"], + $characterId)) + { + throw new Exception("Failed to update character information: " . $dataConnection->error); + } + + if(!$statement->execute()) + { + throw new Exception("Failed to update character information: " . $dataConnection->error); + } + } + finally + { + $statement->close(); + } +} + +?> diff --git a/www/login/img/banner.png b/www/login/img/banner.png new file mode 100644 index 00000000..c1f68fd2 Binary files /dev/null and b/www/login/img/banner.png differ diff --git a/www/login/img/btLogin.gif b/www/login/img/btLogin.gif new file mode 100644 index 00000000..5a044723 Binary files /dev/null and b/www/login/img/btLogin.gif differ diff --git a/www/login/img/lbSQEXId_mem.gif b/www/login/img/lbSQEXId_mem.gif new file mode 100644 index 00000000..bef27324 Binary files /dev/null and b/www/login/img/lbSQEXId_mem.gif differ diff --git a/www/login/img/lbSQEXPass_mem.gif b/www/login/img/lbSQEXPass_mem.gif new file mode 100644 index 00000000..03992a63 Binary files /dev/null and b/www/login/img/lbSQEXPass_mem.gif differ diff --git a/www/login/img/logo.png b/www/login/img/logo.png new file mode 100644 index 00000000..f71cee4e Binary files /dev/null and b/www/login/img/logo.png differ diff --git a/www/login/index.php b/www/login/index.php new file mode 100644 index 00000000..fcfb3218 --- /dev/null +++ b/www/login/index.php @@ -0,0 +1,151 @@ +getMessage(); + } + } + +?> + + + + + + + + "); ?> + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + +
+
+

+
+ +
+ Don't have a awesome account? +
+ +
+ +
+ + \ No newline at end of file diff --git a/www/config.php b/www/login_su/config.php similarity index 100% rename from www/config.php rename to www/login_su/config.php diff --git a/www/control_panel.php b/www/login_su/control_panel.php similarity index 100% rename from www/control_panel.php rename to www/login_su/control_panel.php diff --git a/www/control_panel_common.php b/www/login_su/control_panel_common.php similarity index 100% rename from www/control_panel_common.php rename to www/login_su/control_panel_common.php diff --git a/www/control_panel_edit_character.php b/www/login_su/control_panel_edit_character.php similarity index 99% rename from www/control_panel_edit_character.php rename to www/login_su/control_panel_edit_character.php index 470b6f41..a05b895b 100644 --- a/www/control_panel_edit_character.php +++ b/www/login_su/control_panel_edit_character.php @@ -107,11 +107,11 @@ $g_yesno = array( ); $g_grandcompany = array( - 0 => "None", - /* TODO: Find correct order for 1+ */ - 1 => "Maelstrom", - 2 => "Order of the Twin Adder ", - 3 => "Immortal Flames" + 0 => "None", + /* TODO: Find correct order for 1+ */ + 1 => "Maelstrom", + 2 => "Order of the Twin Adder ", + 3 => "Immortal Flames" ); $g_profileMapping = array( diff --git a/www/control_panel_header.php b/www/login_su/control_panel_header.php similarity index 100% rename from www/control_panel_header.php rename to www/login_su/control_panel_header.php diff --git a/www/control_panel_login.php b/www/login_su/control_panel_login.php similarity index 100% rename from www/control_panel_login.php rename to www/login_su/control_panel_login.php diff --git a/www/control_panel_logout.php b/www/login_su/control_panel_logout.php similarity index 100% rename from www/control_panel_logout.php rename to www/login_su/control_panel_logout.php diff --git a/www/create_user.php b/www/login_su/create_user.php similarity index 100% rename from www/create_user.php rename to www/login_su/create_user.php diff --git a/www/create_user_success.php b/www/login_su/create_user_success.php similarity index 100% rename from www/create_user_success.php rename to www/login_su/create_user_success.php diff --git a/www/css/global.css b/www/login_su/css/global.css similarity index 100% rename from www/css/global.css rename to www/login_su/css/global.css diff --git a/www/css/reset.css b/www/login_su/css/reset.css similarity index 100% rename from www/css/reset.css rename to www/login_su/css/reset.css diff --git a/www/database.php b/www/login_su/database.php similarity index 99% rename from www/database.php rename to www/login_su/database.php index 2ddec593..d68aba9c 100644 --- a/www/database.php +++ b/www/login_su/database.php @@ -48,7 +48,7 @@ function VerifyUser($dataConnection, $username, $password) $statement->bind_result($id, $storedPasshash, $salt); if(!$statement->fetch()) { - throw new Exception(__FUNCTION__ . " failed."); + throw new Exception("Incorrect username."); } $saltedPassword = $password . $salt; @@ -56,7 +56,7 @@ function VerifyUser($dataConnection, $username, $password) if($hashedPassword !== $storedPasshash) { - throw new Exception(__FUNCTION__ . " failed."); + throw new Exception("Incorrect password."); } return $id; diff --git a/www/favicon.ico b/www/login_su/favicon.ico similarity index 100% rename from www/favicon.ico rename to www/login_su/favicon.ico diff --git a/www/header.php b/www/login_su/header.php similarity index 100% rename from www/header.php rename to www/login_su/header.php diff --git a/www/img/logo.png b/www/login_su/img/logo.png similarity index 100% rename from www/img/logo.png rename to www/login_su/img/logo.png diff --git a/www/login.php b/www/login_su/login.php similarity index 100% rename from www/login.php rename to www/login_su/login.php diff --git a/www/presets_armor.json b/www/login_su/presets_armor.json similarity index 100% rename from www/presets_armor.json rename to www/login_su/presets_armor.json diff --git a/www/presets_weapon.json b/www/login_su/presets_weapon.json similarity index 100% rename from www/presets_weapon.json rename to www/login_su/presets_weapon.json diff --git a/www/patch/ffxiv/48eca647/metainfo/D2010.09.19.0000.torrent b/www/patch/ffxiv/48eca647/metainfo/D2010.09.19.0000.torrent new file mode 100644 index 00000000..a01c5ef6 Binary files /dev/null and b/www/patch/ffxiv/48eca647/metainfo/D2010.09.19.0000.torrent differ diff --git a/www/patch/ffxiv/48eca647/metainfo/D2010.09.23.0000.torrent b/www/patch/ffxiv/48eca647/metainfo/D2010.09.23.0000.torrent new file mode 100644 index 00000000..ba51ba5c Binary files /dev/null and b/www/patch/ffxiv/48eca647/metainfo/D2010.09.23.0000.torrent differ diff --git a/www/patch/ffxiv/48eca647/metainfo/D2012.05.20.0000.0001.torrent b/www/patch/ffxiv/48eca647/metainfo/D2012.05.20.0000.0001.torrent new file mode 100644 index 00000000..6cd55e8e Binary files /dev/null and b/www/patch/ffxiv/48eca647/metainfo/D2012.05.20.0000.0001.torrent differ diff --git a/www/patch/ffxiv/48eca647/patch/D2010.09.23.0000.patch b/www/patch/ffxiv/48eca647/patch/D2010.09.23.0000.patch new file mode 100644 index 00000000..d28c7adf Binary files /dev/null and b/www/patch/ffxiv/48eca647/patch/D2010.09.23.0000.patch differ diff --git a/www/patch/test.php b/www/patch/test.php new file mode 100644 index 00000000..a612015f --- /dev/null +++ b/www/patch/test.php @@ -0,0 +1,3 @@ + + +