Cleaned up namespaces (still have to do Map Project) and removed references to FFXIV Classic from the code. Removed the Launcher Editor project as it is no longer needed (host file editing is cleaner).

This commit is contained in:
Filip Maj 2019-06-19 00:05:18 -04:00
parent 7587a6e142
commit 0f61c4c0e1
544 changed files with 54548 additions and 55498 deletions

View File

@ -24,11 +24,12 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using Ionic.Zlib;
using NLog;
using NLog.Targets;
using Ionic.Zlib;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
[StructLayout(LayoutKind.Sequential)]
public struct BasePacketHeader

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
[global::System.AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
public sealed class BitfieldLengthAttribute : Attribute

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
public class Blowfish
{

View File

@ -8,8 +8,8 @@
<ProjectGuid>{3A3D6626-C820-4C18-8C81-64811424F20E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FFXIVClassic.Common</RootNamespace>
<AssemblyName>FFXIVClassic.Common</AssemblyName>
<RootNamespace>Meteor.Common</RootNamespace>
<AssemblyName>Meteor.Common</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
namespace EfficientHashTables
{

View File

@ -3,13 +3,14 @@
// *******************************
// *** (C)2009-2013 S.T.A. snc ***
// *******************************
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
public class INIFile
{

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using NLog;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
// todo:
// havent decided whether it's worth wrapping every sql class

View File

@ -21,10 +21,11 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
using System.Runtime.InteropServices;
using NLog;
using NLog.Targets;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
[StructLayout(LayoutKind.Sequential)]
public struct SubPacketHeader

View File

@ -23,7 +23,7 @@ using System;
using System.IO;
using System.Text;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
public static class Utils
{

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
namespace FFXIVClassic.Common
namespace Meteor.Common
{
public class Vector3
{

View File

@ -1,63 +0,0 @@
/*
===========================================================================
Copyright (C) 2015-2019 Project Meteor Dev Team
This file is part of Project Meteor Server.
Project Meteor Server is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Project Meteor Server is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.lua;
using FFXIVClassic_Map_Server.packets.send.actor;
using System.Collections.Generic;
namespace FFXIVClassic_Map_Server.Actors
{
class DebugProg : Actor
{
public DebugProg()
: base(0x5FF80002)
{
this.displayNameId = 0;
this.customDisplayName = "debug";
this.actorName = "debug";
this.className = "Debug";
}
public override SubPacket CreateScriptBindPacket()
{
List<LuaParam> lParams;
lParams = LuaUtils.CreateLuaParamList("/System/Debug.prog", false, false, false, false, true, 0xC51F, true, true);
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
}
public override List<SubPacket> GetSpawnPackets()
{
List<SubPacket> subpackets = new List<SubPacket>();
subpackets.Add(CreateAddActorPacket(0));
subpackets.Add(CreateSpeedPacket());
subpackets.Add(CreateSpawnPositonPacket(0x1));
subpackets.Add(CreateNamePacket());
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket());
return subpackets;
}
}
}

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>

View File

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0FFA9D2F-41C6-443C-99B7-665702CF548F}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Launcher_Editor</RootNamespace>
<AssemblyName>Launcher Editor</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,526 +0,0 @@
/*
===========================================================================
Copyright (C) 2015-2019 Project Meteor Dev Team
This file is part of Project Meteor Server.
Project Meteor Server is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Project Meteor Server is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using System;
using System.IO;
using System.Text;
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));
}
}
}

View File

@ -1,35 +0,0 @@
using System.Reflection;
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")]

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System.Collections.Generic;
namespace FFXIVClassic_Lobby_Server.utils
namespace Meteor.Lobby
{
class CharacterCreatorUtils
{

View File

@ -20,13 +20,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
*/
using System;
using System.Net.Sockets;
using FFXIVClassic.Common;
using System.Collections.Concurrent;
using Cyotek.Collections.Generic;
using System.Net;
using System.Net.Sockets;
namespace FFXIVClassic_Lobby_Server
using Cyotek.Collections.Generic;
using Meteor.Common;
namespace Meteor.Lobby
{
class ClientConnection
{

View File

@ -19,13 +19,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using System;
using System.IO;
using System.Linq;
using System.Net;
namespace FFXIVClassic_Lobby_Server
using Meteor.Common;
namespace Meteor.Lobby
{
class ConfigConstants
{

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
namespace FFXIVClassic_Lobby_Server.dataobjects
namespace Meteor.Lobby.DataObjects
{
class Account
{

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
namespace FFXIVClassic_Lobby_Server.dataobjects
namespace Meteor.Lobby.DataObjects
{
class Appearance
{

View File

@ -20,10 +20,10 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
*/
using System;
using FFXIVClassic.Common;
using System.IO;
using Meteor.Common;
namespace FFXIVClassic_Lobby_Server.dataobjects
namespace Meteor.Lobby.DataObjects
{
class CharaInfo
{
@ -248,7 +248,7 @@ namespace FFXIVClassic_Lobby_Server.dataobjects
{
byte[] bytes = File.ReadAllBytes("./packets/charaappearance.bin");
Program.Log.Debug(Utils.ByteArrayToHex(bytes));
Program.Log.Debug(Common.Utils.ByteArrayToHex(bytes));
return Convert.ToBase64String(bytes).Replace('+', '-').Replace('/', '_');
}

View File

@ -20,10 +20,8 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
*/
using System;
using FFXIVClassic.Common;
using FFXIVClassic_Lobby_Server.dataobjects;
namespace FFXIVClassic_Lobby_Server
namespace Meteor.Lobby.DataObjects
{
class Character
{
@ -55,7 +53,7 @@ namespace FFXIVClassic_Lobby_Server
byte[] data = System.Convert.FromBase64String(charaInfo);
Program.Log.Debug("------------Base64 printout------------------");
Program.Log.Debug(Utils.ByteArrayToHex(data));
Program.Log.Debug(Common.Utils.ByteArrayToHex(data));
Program.Log.Debug("------------Base64 printout------------------");
CharaInfo chara = new CharaInfo();

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
namespace FFXIVClassic_Lobby_Server
namespace Meteor.Lobby.DataObjects
{
class Retainer
{

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
namespace FFXIVClassic_Lobby_Server.dataobjects
namespace Meteor.Lobby.DataObjects
{
class World
{

View File

@ -19,13 +19,13 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic_Lobby_Server.dataobjects;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using FFXIVClassic_Lobby_Server.utils;
namespace FFXIVClassic_Lobby_Server
using Meteor.Lobby.DataObjects;
using MySql.Data.MySqlClient;
namespace Meteor.Lobby
{
//charState: 0 - Reserved, 1 - Inactive, 2 - Active

View File

@ -8,8 +8,8 @@
<ProjectGuid>{703091E0-F69C-4177-8FAE-C258AC6A65AA}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FFXIVClassic_Lobby_Server</RootNamespace>
<AssemblyName>FFXIVClassic_Lobby_Server</AssemblyName>
<RootNamespace>Meteor.Lobby</RootNamespace>
<AssemblyName>Lobby Server</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<IsWebBootstrapper>false</IsWebBootstrapper>
@ -97,33 +97,33 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="dataobjects\Account.cs" />
<Compile Include="dataobjects\Appearance.cs" />
<Compile Include="dataobjects\CharaInfo.cs" />
<Compile Include="dataobjects\Retainer.cs" />
<Compile Include="dataobjects\Character.cs" />
<Compile Include="DataObjects\Account.cs" />
<Compile Include="DataObjects\Appearance.cs" />
<Compile Include="DataObjects\CharaInfo.cs" />
<Compile Include="DataObjects\Retainer.cs" />
<Compile Include="DataObjects\Character.cs" />
<Compile Include="ClientConnection.cs" />
<Compile Include="ConfigConstants.cs" />
<Compile Include="Database.cs" />
<Compile Include="dataobjects\World.cs" />
<Compile Include="DataObjects\World.cs" />
<Compile Include="PacketProcessor.cs" />
<Compile Include="packets\receive\CharacterModifyPacket.cs" />
<Compile Include="packets\receive\SecurityHandshakePacket.cs" />
<Compile Include="packets\receive\SelectCharacterPacket.cs" />
<Compile Include="packets\receive\SessionPacket.cs" />
<Compile Include="packets\send\CharaCreatorPacket.cs" />
<Compile Include="packets\send\RetainerListPacket.cs" />
<Compile Include="packets\send\ErrorPacket.cs" />
<Compile Include="packets\HardCoded_Packets.cs" />
<Compile Include="packets\send\SelectCharacterConfirmPacket.cs" />
<Compile Include="packets\send\CharacterListPacket.cs" />
<Compile Include="packets\send\ImportListPacket.cs" />
<Compile Include="packets\send\AccountListPacket.cs" />
<Compile Include="packets\send\WorldListPacket.cs" />
<Compile Include="Packets\Receive\CharacterModifyPacket.cs" />
<Compile Include="Packets\Receive\SecurityHandshakePacket.cs" />
<Compile Include="Packets\Receive\SelectCharacterPacket.cs" />
<Compile Include="Packets\Receive\SessionPacket.cs" />
<Compile Include="Packets\Send\CharaCreatorPacket.cs" />
<Compile Include="Packets\Send\RetainerListPacket.cs" />
<Compile Include="Packets\Send\ErrorPacket.cs" />
<Compile Include="Packets\HardCoded_Packets.cs" />
<Compile Include="Packets\Send\SelectCharacterConfirmPacket.cs" />
<Compile Include="Packets\Send\CharacterListPacket.cs" />
<Compile Include="Packets\Send\ImportListPacket.cs" />
<Compile Include="Packets\Send\AccountListPacket.cs" />
<Compile Include="Packets\Send\WorldListPacket.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Server.cs" />
<Compile Include="utils\CharacterCreatorUtils.cs" />
<Compile Include="CharacterCreatorUtils.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="NLog.config">

View File

@ -38,13 +38,13 @@
<target xsi:type="ColoredConsole" name="packets"
layout="${message}">
<highlight-row
condition="equals('${logger}', 'FFXIVClassic.Common.BasePacket') and equals('${event-context:item=color}', '6')"
condition="equals('${logger}', 'Meteor.Common.BasePacket') and equals('${event-context:item=color}', '6')"
backgroundColor="DarkYellow" foregroundColor="NoChange" />
<highlight-row
condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '4')"
condition="equals('${logger}', 'Meteor.Common.SubPacket') and equals('${event-context:item=color}', '4')"
backgroundColor="DarkRed" foregroundColor="NoChange" />
<highlight-row
condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '5')"
condition="equals('${logger}', 'Meteor.Common.SubPacket') and equals('${event-context:item=color}', '5')"
backgroundColor="DarkMagenta" foregroundColor="NoChange" />
</target>
</targets>
@ -52,8 +52,8 @@
<rules>
<!-- add your logging rules here -->
<logger name='*' minlevel='Trace' writeTo='file' />
<logger name='FFXIVClassic_Lobby_Server.Program' minlevel='Trace' writeTo='console' />
<logger name='FFXIVClassic.Common.*' minlevel='Debug' writeTo='packets' />
<logger name='Meteor.Lobby.Program' minlevel='Trace' writeTo='console' />
<logger name='Meteor.Common.*' minlevel='Debug' writeTo='packets' />
<!--
Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
<logger name="*" minlevel="Debug" writeTo="f" />

View File

@ -19,18 +19,18 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using FFXIVClassic_Lobby_Server.dataobjects;
using FFXIVClassic_Lobby_Server.packets;
using FFXIVClassic_Lobby_Server.packets.receive;
using FFXIVClassic_Lobby_Server.utils;
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace FFXIVClassic_Lobby_Server
using Meteor.Common;
using Meteor.Lobby.DataObjects;
using Meteor.Lobby.Packets;
using Meteor.Lobby.Packets.Receive;
namespace Meteor.Lobby
{
class PacketProcessor
{

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class HardCoded_Packets
{

View File

@ -23,7 +23,7 @@ using System;
using System.IO;
using System.Text;
namespace FFXIVClassic_Lobby_Server.packets.receive
namespace Meteor.Lobby.Packets.Receive
{
class CharacterModifyPacket
{

View File

@ -23,7 +23,7 @@ using System;
using System.IO;
using System.Text;
namespace FFXIVClassic_Lobby_Server.packets.receive
namespace Meteor.Lobby.Packets.Receive
{
class SecurityHandshakePacket
{

View File

@ -22,7 +22,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
using System.IO;
namespace FFXIVClassic_Lobby_Server.packets.receive
namespace Meteor.Lobby.Packets.Receive
{
class SelectCharacterPacket
{

View File

@ -23,7 +23,7 @@ using System;
using System.IO;
using System.Text;
namespace FFXIVClassic_Lobby_Server.packets.receive
namespace Meteor.Lobby.Packets.Receive
{
class SessionPacket
{

View File

@ -19,14 +19,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using FFXIVClassic_Lobby_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Meteor.Common;
using Meteor.Lobby.DataObjects;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class AccountListPacket
{

View File

@ -19,12 +19,12 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using System;
using System.IO;
using System.Text;
using Meteor.Common;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class CharaCreatorPacket
{

View File

@ -19,14 +19,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using FFXIVClassic_Lobby_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Meteor.Common;
using Meteor.Lobby.DataObjects;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class CharacterListPacket
{

View File

@ -19,12 +19,12 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using System;
using System.IO;
using System.Text;
using Meteor.Common;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class ErrorPacket
{

View File

@ -19,13 +19,13 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Meteor.Common;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class ImportListPacket
{

View File

@ -19,13 +19,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Meteor.Common;
using Meteor.Lobby.DataObjects;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class RetainerListPacket
{

View File

@ -19,13 +19,13 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Meteor.Common;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class SelectCharacterConfirmPacket
{

View File

@ -19,14 +19,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using FFXIVClassic_Lobby_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Meteor.Common;
using Meteor.Lobby.DataObjects;
namespace FFXIVClassic_Lobby_Server.packets
namespace Meteor.Lobby.Packets
{
class WorldListPacket
{

View File

@ -22,9 +22,11 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
using System.Diagnostics;
using System.Threading;
using MySql.Data.MySqlClient;
using NLog;
namespace FFXIVClassic_Lobby_Server
namespace Meteor.Lobby
{
class Program
{

View File

@ -25,9 +25,9 @@ using System.Net;
using System.Net.Sockets;
using System.Threading;
using FFXIVClassic.Common;
using Meteor.Common;
namespace FFXIVClassic_Lobby_Server
namespace Meteor.Lobby
{
class Server
{

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using System;
using System.IO;
using System.Linq;

View File

@ -22,7 +22,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.utils;
using FFXIVClassic_Map_Server.packets.send.player;

View File

@ -8,8 +8,8 @@
<ProjectGuid>{E8FA2784-D4B9-4711-8CC6-712A4B1CD54F}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FFXIVClassic_Map_Server</RootNamespace>
<AssemblyName>FFXIVClassic Map Server</AssemblyName>
<RootNamespace>Meteor.Map</RootNamespace>
<AssemblyName>Map Server</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<NuGetPackageImportStamp>1d22ec4a</NuGetPackageImportStamp>

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using System;
using FFXIVClassic_Map_Server.dataobjects;

View File

@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace FFXIVClassic_Map_Server.Properties {
namespace Meteor.Map.Properties {
using System;
@ -19,7 +19,7 @@ namespace FFXIVClassic_Map_Server.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Resources {
@ -39,7 +39,7 @@ namespace FFXIVClassic_Map_Server.Properties {
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FFXIVClassic_Map_Server.Properties.Resources", typeof(Resources).Assembly);
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Meteor.Map.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;

View File

@ -25,7 +25,7 @@ using System.Net;
using System.Net.Sockets;
using FFXIVClassic_Map_Server.dataobjects;
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.Actors;
namespace FFXIVClassic_Map_Server

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.actors.area;
using FFXIVClassic_Map_Server.actors.chara.npc;
using FFXIVClassic_Map_Server.Actors;

View File

@ -24,7 +24,7 @@ using FFXIVClassic_Map_Server.actors;
using FFXIVClassic_Map_Server.lua;
using FFXIVClassic_Map_Server.packets.send.actor;
using FFXIVClassic_Map_Server.packets.send.actor.events;
using FFXIVClassic.Common;
using Meteor.Common;
using System;
using System.Collections.Generic;
using FFXIVClassic_Map_Server.actors.area;

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using System;
using System.Collections.Generic;
using System.IO;

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.actors.area;
using FFXIVClassic_Map_Server.actors.chara.npc;
using FFXIVClassic_Map_Server.lua;

View File

@ -20,7 +20,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
*/
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.lua;
using FFXIVClassic_Map_Server.packets.send.actor;

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.lua;
using FFXIVClassic_Map_Server.packets.send.actor;

View File

@ -20,7 +20,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
*/
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.actors.chara.player;
using FFXIVClassic_Map_Server.actors.group;
using FFXIVClassic_Map_Server.Actors.Chara;

View File

@ -19,7 +19,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
===========================================================================
*/
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.actors.chara.npc;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects;

View File

@ -24,7 +24,7 @@ using FFXIVClassic_Map_Server.lua;
using FFXIVClassic_Map_Server.packets.send.actor.battle;
using System;
using MoonSharp.Interpreter;
using FFXIVClassic.Common;
using Meteor.Common;
namespace FFXIVClassic_Map_Server.actors.chara.ai
{

View File

@ -22,7 +22,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
using System.Collections.Generic;
using System.Linq;
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.lua;
using FFXIVClassic_Map_Server.packets.send.actor;

View File

@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
using System;
using System.Collections.Generic;
using FFXIVClassic.Common;
using Meteor.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.packets.send.actor;
using FFXIVClassic_Map_Server.actors.area;

Some files were not shown because too many files have changed in this diff Show More