mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
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:
parent
7587a6e142
commit
0f61c4c0e1
@ -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
|
@ -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
|
@ -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
|
||||
{
|
@ -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>
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
@ -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
|
@ -23,7 +23,7 @@ using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace FFXIVClassic.Common
|
||||
namespace Meteor.Common
|
||||
{
|
||||
public static class Utils
|
||||
{
|
@ -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
|
||||
{
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -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")]
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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('/', '_');
|
||||
}
|
@ -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();
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
|
@ -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">
|
@ -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" />
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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
|
||||
{
|
@ -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;
|
@ -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;
|
@ -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>
|
@ -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;
|
@ -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;
|
@ -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
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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
|
||||
{
|
@ -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;
|
@ -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
Loading…
Reference in New Issue
Block a user