mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-20 03:37:48 +00: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
544 changed files with 54548 additions and 55498 deletions
|
@ -24,11 +24,12 @@ using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
using Ionic.Zlib;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Targets;
|
using NLog.Targets;
|
||||||
using Ionic.Zlib;
|
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct BasePacketHeader
|
public struct BasePacketHeader
|
|
@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
[global::System.AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
|
[global::System.AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
|
||||||
public sealed class BitfieldLengthAttribute : Attribute
|
public sealed class BitfieldLengthAttribute : Attribute
|
|
@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
public class Blowfish
|
public class Blowfish
|
||||||
{
|
{
|
|
@ -1,113 +1,113 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props') AND '$(OS)' == 'Windows_NT'" />
|
<Import Project="..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props') AND '$(OS)' == 'Windows_NT'" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props') AND '$(OS)' == 'Windows_NT'" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props') AND '$(OS)' == 'Windows_NT'" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{3A3D6626-C820-4C18-8C81-64811424F20E}</ProjectGuid>
|
<ProjectGuid>{3A3D6626-C820-4C18-8C81-64811424F20E}</ProjectGuid>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>FFXIVClassic.Common</RootNamespace>
|
<RootNamespace>Meteor.Common</RootNamespace>
|
||||||
<AssemblyName>FFXIVClassic.Common</AssemblyName>
|
<AssemblyName>Meteor.Common</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<TargetFrameworkProfile>
|
<TargetFrameworkProfile>
|
||||||
</TargetFrameworkProfile>
|
</TargetFrameworkProfile>
|
||||||
<NuGetPackageImportStamp>792e4711</NuGetPackageImportStamp>
|
<NuGetPackageImportStamp>792e4711</NuGetPackageImportStamp>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
<RegisterForComInterop>false</RegisterForComInterop>
|
<RegisterForComInterop>false</RegisterForComInterop>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DotNetZip">
|
<Reference Include="DotNetZip">
|
||||||
<HintPath>..\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll</HintPath>
|
<HintPath>..\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.3.5\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.3.5\lib\net45\NLog.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Numerics" />
|
<Reference Include="System.Numerics" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="BasePacket.cs" />
|
<Compile Include="BasePacket.cs" />
|
||||||
<Compile Include="Bitfield.cs" />
|
<Compile Include="Bitfield.cs" />
|
||||||
<Compile Include="Blowfish.cs" />
|
<Compile Include="Blowfish.cs" />
|
||||||
<Compile Include="EfficientHashTables.cs" />
|
<Compile Include="EfficientHashTables.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Sql.cs" />
|
<Compile Include="Sql.cs" />
|
||||||
<Compile Include="STA_INIFile.cs" />
|
<Compile Include="STA_INIFile.cs" />
|
||||||
<Compile Include="SubPacket.cs" />
|
<Compile Include="SubPacket.cs" />
|
||||||
<Compile Include="Utils.cs" />
|
<Compile Include="Utils.cs" />
|
||||||
<Compile Include="Vector3.cs" />
|
<Compile Include="Vector3.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
</Target>
|
</Target>
|
||||||
-->
|
-->
|
||||||
</Project>
|
</Project>
|
|
@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
namespace EfficientHashTables
|
namespace EfficientHashTables
|
||||||
{
|
{
|
|
@ -1,35 +1,35 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
// set of attributes. Change these attribute values to modify the information
|
// set of attributes. Change these attribute values to modify the information
|
||||||
// associated with an assembly.
|
// associated with an assembly.
|
||||||
[assembly: AssemblyTitle("FFXIVClassic.Common")]
|
[assembly: AssemblyTitle("FFXIVClassic.Common")]
|
||||||
[assembly: AssemblyDescription("Common class library for FFXIVClassic project")]
|
[assembly: AssemblyDescription("Common class library for FFXIVClassic project")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("ffxivclassic.fragmenterworks.com")]
|
[assembly: AssemblyCompany("ffxivclassic.fragmenterworks.com")]
|
||||||
[assembly: AssemblyProduct("FFXIVClassic.Common")]
|
[assembly: AssemblyProduct("FFXIVClassic.Common")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2016")]
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
// Setting ComVisible to false makes the types in this assembly not visible
|
// 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
|
// to COM components. If you need to access a type in this assembly from
|
||||||
// COM, set the ComVisible attribute to true on that type.
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
[assembly: Guid("3a3d6626-c820-4c18-8c81-64811424f20e")]
|
[assembly: Guid("3a3d6626-c820-4c18-8c81-64811424f20e")]
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
// Version information for an assembly consists of the following four values:
|
||||||
//
|
//
|
||||||
// Major Version
|
// Major Version
|
||||||
// Minor Version
|
// Minor Version
|
||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -3,13 +3,14 @@
|
||||||
// *******************************
|
// *******************************
|
||||||
// *** (C)2009-2013 S.T.A. snc ***
|
// *** (C)2009-2013 S.T.A. snc ***
|
||||||
// *******************************
|
// *******************************
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
public class INIFile
|
public class INIFile
|
||||||
{
|
{
|
|
@ -1,33 +1,33 @@
|
||||||
/*
|
/*
|
||||||
===========================================================================
|
===========================================================================
|
||||||
Copyright (C) 2015-2019 Project Meteor Dev Team
|
Copyright (C) 2015-2019 Project Meteor Dev Team
|
||||||
|
|
||||||
This file is part of Project Meteor Server.
|
This file is part of Project Meteor Server.
|
||||||
|
|
||||||
Project Meteor Server is free software: you can redistribute it and/or modify
|
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
|
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
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Project Meteor Server is distributed in the hope that it will be useful,
|
Project Meteor Server is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU Affero General Public License for more details.
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
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/>.
|
along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
===========================================================================
|
===========================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using NLog;
|
using NLog;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
// todo:
|
// todo:
|
||||||
// havent decided whether it's worth wrapping every sql class
|
// havent decided whether it's worth wrapping every sql class
|
||||||
// so i'll just leave it with logger for now
|
// so i'll just leave it with logger for now
|
||||||
public class Sql
|
public class Sql
|
||||||
{
|
{
|
||||||
public static Logger Log = LogManager.GetCurrentClassLogger();
|
public static Logger Log = LogManager.GetCurrentClassLogger();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -21,10 +21,11 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Targets;
|
using NLog.Targets;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct SubPacketHeader
|
public struct SubPacketHeader
|
|
@ -1,478 +1,478 @@
|
||||||
/*
|
/*
|
||||||
===========================================================================
|
===========================================================================
|
||||||
Copyright (C) 2015-2019 Project Meteor Dev Team
|
Copyright (C) 2015-2019 Project Meteor Dev Team
|
||||||
|
|
||||||
This file is part of Project Meteor Server.
|
This file is part of Project Meteor Server.
|
||||||
|
|
||||||
Project Meteor Server is free software: you can redistribute it and/or modify
|
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
|
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
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Project Meteor Server is distributed in the hope that it will be useful,
|
Project Meteor Server is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU Affero General Public License for more details.
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
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/>.
|
along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
===========================================================================
|
===========================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
public static class Utils
|
public static class Utils
|
||||||
{
|
{
|
||||||
private static readonly uint[] _lookup32 = CreateLookup32();
|
private static readonly uint[] _lookup32 = CreateLookup32();
|
||||||
private static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
private static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||||
|
|
||||||
private static uint[] CreateLookup32()
|
private static uint[] CreateLookup32()
|
||||||
{
|
{
|
||||||
var result = new uint[256];
|
var result = new uint[256];
|
||||||
for (var i = 0; i < 256; i++)
|
for (var i = 0; i < 256; i++)
|
||||||
{
|
{
|
||||||
var s = i.ToString("X2");
|
var s = i.ToString("X2");
|
||||||
result[i] = s[0] + ((uint)s[1] << 16);
|
result[i] = s[0] + ((uint)s[1] << 16);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ByteArrayToHex(byte[] bytes, int offset = 0, int bytesPerLine = 16)
|
public static string ByteArrayToHex(byte[] bytes, int offset = 0, int bytesPerLine = 16)
|
||||||
{
|
{
|
||||||
if (bytes == null)
|
if (bytes == null)
|
||||||
{
|
{
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
var hexChars = "0123456789ABCDEF".ToCharArray();
|
var hexChars = "0123456789ABCDEF".ToCharArray();
|
||||||
|
|
||||||
var offsetBlock = 8 + 3;
|
var offsetBlock = 8 + 3;
|
||||||
var byteBlock = offsetBlock + bytesPerLine * 3 + (bytesPerLine - 1) / 8 + 2;
|
var byteBlock = offsetBlock + bytesPerLine * 3 + (bytesPerLine - 1) / 8 + 2;
|
||||||
var lineLength = byteBlock + bytesPerLine + Environment.NewLine.Length;
|
var lineLength = byteBlock + bytesPerLine + Environment.NewLine.Length;
|
||||||
|
|
||||||
var line = (new string(' ', lineLength - Environment.NewLine.Length) + Environment.NewLine).ToCharArray();
|
var line = (new string(' ', lineLength - Environment.NewLine.Length) + Environment.NewLine).ToCharArray();
|
||||||
var numLines = (bytes.Length + bytesPerLine - 1) / bytesPerLine;
|
var numLines = (bytes.Length + bytesPerLine - 1) / bytesPerLine;
|
||||||
|
|
||||||
var sb = new StringBuilder(numLines * lineLength);
|
var sb = new StringBuilder(numLines * lineLength);
|
||||||
|
|
||||||
for (var i = 0; i < bytes.Length; i += bytesPerLine)
|
for (var i = 0; i < bytes.Length; i += bytesPerLine)
|
||||||
{
|
{
|
||||||
var h = i + offset;
|
var h = i + offset;
|
||||||
|
|
||||||
line[0] = hexChars[(h >> 28) & 0xF];
|
line[0] = hexChars[(h >> 28) & 0xF];
|
||||||
line[1] = hexChars[(h >> 24) & 0xF];
|
line[1] = hexChars[(h >> 24) & 0xF];
|
||||||
line[2] = hexChars[(h >> 20) & 0xF];
|
line[2] = hexChars[(h >> 20) & 0xF];
|
||||||
line[3] = hexChars[(h >> 16) & 0xF];
|
line[3] = hexChars[(h >> 16) & 0xF];
|
||||||
line[4] = hexChars[(h >> 12) & 0xF];
|
line[4] = hexChars[(h >> 12) & 0xF];
|
||||||
line[5] = hexChars[(h >> 8) & 0xF];
|
line[5] = hexChars[(h >> 8) & 0xF];
|
||||||
line[6] = hexChars[(h >> 4) & 0xF];
|
line[6] = hexChars[(h >> 4) & 0xF];
|
||||||
line[7] = hexChars[(h >> 0) & 0xF];
|
line[7] = hexChars[(h >> 0) & 0xF];
|
||||||
|
|
||||||
var hexColumn = offsetBlock;
|
var hexColumn = offsetBlock;
|
||||||
var charColumn = byteBlock;
|
var charColumn = byteBlock;
|
||||||
|
|
||||||
for (var j = 0; j < bytesPerLine; j++)
|
for (var j = 0; j < bytesPerLine; j++)
|
||||||
{
|
{
|
||||||
if (j > 0 && (j & 7) == 0)
|
if (j > 0 && (j & 7) == 0)
|
||||||
{
|
{
|
||||||
hexColumn++;
|
hexColumn++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i + j >= bytes.Length)
|
if (i + j >= bytes.Length)
|
||||||
{
|
{
|
||||||
line[hexColumn] = ' ';
|
line[hexColumn] = ' ';
|
||||||
line[hexColumn + 1] = ' ';
|
line[hexColumn + 1] = ' ';
|
||||||
line[charColumn] = ' ';
|
line[charColumn] = ' ';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var by = bytes[i + j];
|
var by = bytes[i + j];
|
||||||
line[hexColumn] = hexChars[(by >> 4) & 0xF];
|
line[hexColumn] = hexChars[(by >> 4) & 0xF];
|
||||||
line[hexColumn + 1] = hexChars[by & 0xF];
|
line[hexColumn + 1] = hexChars[by & 0xF];
|
||||||
line[charColumn] = by < 32 ? '.' : (char)by;
|
line[charColumn] = by < 32 ? '.' : (char)by;
|
||||||
}
|
}
|
||||||
|
|
||||||
hexColumn += 3;
|
hexColumn += 3;
|
||||||
charColumn++;
|
charColumn++;
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.Append(line);
|
sb.Append(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.ToString().TrimEnd(Environment.NewLine.ToCharArray());
|
return sb.ToString().TrimEnd(Environment.NewLine.ToCharArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint UnixTimeStampUTC(DateTime? time = null)
|
public static uint UnixTimeStampUTC(DateTime? time = null)
|
||||||
{
|
{
|
||||||
uint unixTimeStamp;
|
uint unixTimeStamp;
|
||||||
var currentTime = time ?? DateTime.Now;
|
var currentTime = time ?? DateTime.Now;
|
||||||
var zuluTime = currentTime.ToUniversalTime();
|
var zuluTime = currentTime.ToUniversalTime();
|
||||||
var unixEpoch = new DateTime(1970, 1, 1);
|
var unixEpoch = new DateTime(1970, 1, 1);
|
||||||
unixTimeStamp = (uint)zuluTime.Subtract(unixEpoch).TotalSeconds;
|
unixTimeStamp = (uint)zuluTime.Subtract(unixEpoch).TotalSeconds;
|
||||||
|
|
||||||
return unixTimeStamp;
|
return unixTimeStamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ulong MilisUnixTimeStampUTC(DateTime? time = null)
|
public static ulong MilisUnixTimeStampUTC(DateTime? time = null)
|
||||||
{
|
{
|
||||||
ulong unixTimeStamp;
|
ulong unixTimeStamp;
|
||||||
var currentTime = time ?? DateTime.Now;
|
var currentTime = time ?? DateTime.Now;
|
||||||
var zuluTime = currentTime.ToUniversalTime();
|
var zuluTime = currentTime.ToUniversalTime();
|
||||||
var unixEpoch = new DateTime(1970, 1, 1);
|
var unixEpoch = new DateTime(1970, 1, 1);
|
||||||
unixTimeStamp = (ulong)zuluTime.Subtract(unixEpoch).TotalMilliseconds;
|
unixTimeStamp = (ulong)zuluTime.Subtract(unixEpoch).TotalMilliseconds;
|
||||||
|
|
||||||
return unixTimeStamp;
|
return unixTimeStamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DateTime UnixTimeStampToDateTime(uint timestamp)
|
public static DateTime UnixTimeStampToDateTime(uint timestamp)
|
||||||
{
|
{
|
||||||
return epoch.AddSeconds(timestamp);
|
return epoch.AddSeconds(timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ulong SwapEndian(ulong input)
|
public static ulong SwapEndian(ulong input)
|
||||||
{
|
{
|
||||||
return 0x00000000000000FF & (input >> 56) |
|
return 0x00000000000000FF & (input >> 56) |
|
||||||
0x000000000000FF00 & (input >> 40) |
|
0x000000000000FF00 & (input >> 40) |
|
||||||
0x0000000000FF0000 & (input >> 24) |
|
0x0000000000FF0000 & (input >> 24) |
|
||||||
0x00000000FF000000 & (input >> 8) |
|
0x00000000FF000000 & (input >> 8) |
|
||||||
0x000000FF00000000 & (input << 8) |
|
0x000000FF00000000 & (input << 8) |
|
||||||
0x0000FF0000000000 & (input << 24) |
|
0x0000FF0000000000 & (input << 24) |
|
||||||
0x00FF000000000000 & (input << 40) |
|
0x00FF000000000000 & (input << 40) |
|
||||||
0xFF00000000000000 & (input << 56);
|
0xFF00000000000000 & (input << 56);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint SwapEndian(uint input)
|
public static uint SwapEndian(uint input)
|
||||||
{
|
{
|
||||||
return ((input >> 24) & 0xff) |
|
return ((input >> 24) & 0xff) |
|
||||||
((input << 8) & 0xff0000) |
|
((input << 8) & 0xff0000) |
|
||||||
((input >> 8) & 0xff00) |
|
((input >> 8) & 0xff00) |
|
||||||
((input << 24) & 0xff000000);
|
((input << 24) & 0xff000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int SwapEndian(int input)
|
public static int SwapEndian(int input)
|
||||||
{
|
{
|
||||||
var inputAsUint = (uint)input;
|
var inputAsUint = (uint)input;
|
||||||
|
|
||||||
input = (int)
|
input = (int)
|
||||||
(((inputAsUint >> 24) & 0xff) |
|
(((inputAsUint >> 24) & 0xff) |
|
||||||
((inputAsUint << 8) & 0xff0000) |
|
((inputAsUint << 8) & 0xff0000) |
|
||||||
((inputAsUint >> 8) & 0xff00) |
|
((inputAsUint >> 8) & 0xff00) |
|
||||||
((inputAsUint << 24) & 0xff000000));
|
((inputAsUint << 24) & 0xff000000));
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ushort SwapEndian(ushort input)
|
public static ushort SwapEndian(ushort input)
|
||||||
{
|
{
|
||||||
return (ushort)(((input << 8) & 0xff00) |
|
return (ushort)(((input << 8) & 0xff00) |
|
||||||
((input >> 8) & 0x00ff));
|
((input >> 8) & 0x00ff));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint MurmurHash2(string key, uint seed)
|
public static uint MurmurHash2(string key, uint seed)
|
||||||
{
|
{
|
||||||
// 'm' and 'r' are mixing constants generated offline.
|
// 'm' and 'r' are mixing constants generated offline.
|
||||||
// They're not really 'magic', they just happen to work well.
|
// They're not really 'magic', they just happen to work well.
|
||||||
|
|
||||||
var data = Encoding.ASCII.GetBytes(key);
|
var data = Encoding.ASCII.GetBytes(key);
|
||||||
const uint m = 0x5bd1e995;
|
const uint m = 0x5bd1e995;
|
||||||
const int r = 24;
|
const int r = 24;
|
||||||
var len = key.Length;
|
var len = key.Length;
|
||||||
var dataIndex = len - 4;
|
var dataIndex = len - 4;
|
||||||
|
|
||||||
// Initialize the hash to a 'random' value
|
// Initialize the hash to a 'random' value
|
||||||
|
|
||||||
var h = seed ^ (uint)len;
|
var h = seed ^ (uint)len;
|
||||||
|
|
||||||
// Mix 4 bytes at a time into the hash
|
// Mix 4 bytes at a time into the hash
|
||||||
|
|
||||||
|
|
||||||
while (len >= 4)
|
while (len >= 4)
|
||||||
{
|
{
|
||||||
h *= m;
|
h *= m;
|
||||||
|
|
||||||
var k = (uint)BitConverter.ToInt32(data, dataIndex);
|
var k = (uint)BitConverter.ToInt32(data, dataIndex);
|
||||||
k = ((k >> 24) & 0xff) | // move byte 3 to byte 0
|
k = ((k >> 24) & 0xff) | // move byte 3 to byte 0
|
||||||
((k << 8) & 0xff0000) | // move byte 1 to byte 2
|
((k << 8) & 0xff0000) | // move byte 1 to byte 2
|
||||||
((k >> 8) & 0xff00) | // move byte 2 to byte 1
|
((k >> 8) & 0xff00) | // move byte 2 to byte 1
|
||||||
((k << 24) & 0xff000000); // byte 0 to byte 3
|
((k << 24) & 0xff000000); // byte 0 to byte 3
|
||||||
|
|
||||||
k *= m;
|
k *= m;
|
||||||
k ^= k >> r;
|
k ^= k >> r;
|
||||||
k *= m;
|
k *= m;
|
||||||
|
|
||||||
h ^= k;
|
h ^= k;
|
||||||
|
|
||||||
dataIndex -= 4;
|
dataIndex -= 4;
|
||||||
len -= 4;
|
len -= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle the last few bytes of the input array
|
// Handle the last few bytes of the input array
|
||||||
switch (len)
|
switch (len)
|
||||||
{
|
{
|
||||||
case 3:
|
case 3:
|
||||||
h ^= (uint)data[0] << 16;
|
h ^= (uint)data[0] << 16;
|
||||||
goto case 2;
|
goto case 2;
|
||||||
case 2:
|
case 2:
|
||||||
h ^= (uint)data[len - 2] << 8;
|
h ^= (uint)data[len - 2] << 8;
|
||||||
goto case 1;
|
goto case 1;
|
||||||
case 1:
|
case 1:
|
||||||
h ^= data[len - 1];
|
h ^= data[len - 1];
|
||||||
h *= m;
|
h *= m;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
// Do a few final mixes of the hash to ensure the last few
|
// Do a few final mixes of the hash to ensure the last few
|
||||||
// bytes are well-incorporated.
|
// bytes are well-incorporated.
|
||||||
|
|
||||||
h ^= h >> 13;
|
h ^= h >> 13;
|
||||||
h *= m;
|
h *= m;
|
||||||
h ^= h >> 15;
|
h ^= h >> 15;
|
||||||
|
|
||||||
return h;
|
return h;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] ConvertBoolArrayToBinaryStream(bool[] array)
|
public static byte[] ConvertBoolArrayToBinaryStream(bool[] array)
|
||||||
{
|
{
|
||||||
var data = new byte[array.Length / 8 + (array.Length % 8 != 0 ? 1 : 0)];
|
var data = new byte[array.Length / 8 + (array.Length % 8 != 0 ? 1 : 0)];
|
||||||
|
|
||||||
var dataCounter = 0;
|
var dataCounter = 0;
|
||||||
for (var i = 0; i < array.Length; i += 8)
|
for (var i = 0; i < array.Length; i += 8)
|
||||||
{
|
{
|
||||||
for (var bitCount = 0; bitCount < 8; bitCount++)
|
for (var bitCount = 0; bitCount < 8; bitCount++)
|
||||||
{
|
{
|
||||||
if (i + bitCount >= array.Length)
|
if (i + bitCount >= array.Length)
|
||||||
break;
|
break;
|
||||||
data[dataCounter] = (byte)(((array[i + bitCount] ? 1 : 0) << 7 - bitCount) | data[dataCounter]);
|
data[dataCounter] = (byte)(((array[i + bitCount] ? 1 : 0) << 7 - bitCount) | data[dataCounter]);
|
||||||
}
|
}
|
||||||
dataCounter++;
|
dataCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ToStringBase63(int number)
|
public static string ToStringBase63(int number)
|
||||||
{
|
{
|
||||||
var lookup = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
var lookup = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
|
||||||
var secondDigit = lookup.Substring((int)Math.Floor(number / (double)lookup.Length), 1);
|
var secondDigit = lookup.Substring((int)Math.Floor(number / (double)lookup.Length), 1);
|
||||||
var firstDigit = lookup.Substring(number % lookup.Length, 1);
|
var firstDigit = lookup.Substring(number % lookup.Length, 1);
|
||||||
|
|
||||||
return secondDigit + firstDigit;
|
return secondDigit + firstDigit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static string FFXIVLoginStringDecodeBinary(string path)
|
public static string FFXIVLoginStringDecodeBinary(string path)
|
||||||
{
|
{
|
||||||
Console.OutputEncoding = System.Text.Encoding.UTF8;
|
Console.OutputEncoding = System.Text.Encoding.UTF8;
|
||||||
byte[] data = File.ReadAllBytes(path);
|
byte[] data = File.ReadAllBytes(path);
|
||||||
int offset = 0x5405a;
|
int offset = 0x5405a;
|
||||||
//int offset = 0x5425d;
|
//int offset = 0x5425d;
|
||||||
//int offset = 0x53ea0;
|
//int offset = 0x53ea0;
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
string result = "";
|
string result = "";
|
||||||
uint key = (uint)data[offset + 0] << 8 | data[offset + 1];
|
uint key = (uint)data[offset + 0] << 8 | data[offset + 1];
|
||||||
uint key2 = data[offset + 2];
|
uint key2 = data[offset + 2];
|
||||||
key = RotateRight(key, 1) & 0xFFFF;
|
key = RotateRight(key, 1) & 0xFFFF;
|
||||||
key -= 0x22AF;
|
key -= 0x22AF;
|
||||||
key &= 0xFFFF;
|
key &= 0xFFFF;
|
||||||
key2 = key2 ^ key;
|
key2 = key2 ^ key;
|
||||||
key = RotateRight(key, 1) & 0xFFFF;
|
key = RotateRight(key, 1) & 0xFFFF;
|
||||||
key -= 0x22AF;
|
key -= 0x22AF;
|
||||||
key &= 0xFFFF;
|
key &= 0xFFFF;
|
||||||
uint finalKey = key;
|
uint finalKey = key;
|
||||||
key = data[offset + 3];
|
key = data[offset + 3];
|
||||||
uint count = (key2 & 0xFF) << 8;
|
uint count = (key2 & 0xFF) << 8;
|
||||||
key = key ^ finalKey;
|
key = key ^ finalKey;
|
||||||
key &= 0xFF;
|
key &= 0xFF;
|
||||||
count |= key;
|
count |= key;
|
||||||
|
|
||||||
int count2 = 0;
|
int count2 = 0;
|
||||||
while (count != 0)
|
while (count != 0)
|
||||||
{
|
{
|
||||||
uint encrypted = data[offset + 4 + count2];
|
uint encrypted = data[offset + 4 + count2];
|
||||||
finalKey = RotateRight(finalKey, 1) & 0xFFFF;
|
finalKey = RotateRight(finalKey, 1) & 0xFFFF;
|
||||||
finalKey -= 0x22AF;
|
finalKey -= 0x22AF;
|
||||||
finalKey &= 0xFFFF;
|
finalKey &= 0xFFFF;
|
||||||
encrypted = encrypted ^ (finalKey & 0xFF);
|
encrypted = encrypted ^ (finalKey & 0xFF);
|
||||||
|
|
||||||
result += (char)encrypted;
|
result += (char)encrypted;
|
||||||
count--;
|
count--;
|
||||||
count2++;
|
count2++;
|
||||||
}
|
}
|
||||||
|
|
||||||
offset += 4 + count2;
|
offset += 4 + count2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string FFXIVLoginStringDecode(byte[] data)
|
public static string FFXIVLoginStringDecode(byte[] data)
|
||||||
{
|
{
|
||||||
string result = "";
|
string result = "";
|
||||||
uint key = (uint)data[0] << 8 | data[1];
|
uint key = (uint)data[0] << 8 | data[1];
|
||||||
uint key2 = data[2];
|
uint key2 = data[2];
|
||||||
key = RotateRight(key, 1) & 0xFFFF;
|
key = RotateRight(key, 1) & 0xFFFF;
|
||||||
key -= 0x22AF;
|
key -= 0x22AF;
|
||||||
key2 = key2 ^ key;
|
key2 = key2 ^ key;
|
||||||
key = RotateRight(key, 1) & 0xFFFF;
|
key = RotateRight(key, 1) & 0xFFFF;
|
||||||
key -= 0x22AF;
|
key -= 0x22AF;
|
||||||
uint finalKey = key;
|
uint finalKey = key;
|
||||||
key = data[3];
|
key = data[3];
|
||||||
uint count = (key2 & 0xFF) << 8;
|
uint count = (key2 & 0xFF) << 8;
|
||||||
key = key ^ finalKey;
|
key = key ^ finalKey;
|
||||||
key &= 0xFF;
|
key &= 0xFF;
|
||||||
count |= key;
|
count |= key;
|
||||||
|
|
||||||
int count2 = 0;
|
int count2 = 0;
|
||||||
while (count != 0)
|
while (count != 0)
|
||||||
{
|
{
|
||||||
uint encrypted = data[4 + count2];
|
uint encrypted = data[4 + count2];
|
||||||
finalKey = RotateRight(finalKey, 1) & 0xFFFF;
|
finalKey = RotateRight(finalKey, 1) & 0xFFFF;
|
||||||
finalKey -= 0x22AF;
|
finalKey -= 0x22AF;
|
||||||
encrypted = encrypted ^ (finalKey & 0xFF);
|
encrypted = encrypted ^ (finalKey & 0xFF);
|
||||||
result += (char)encrypted;
|
result += (char)encrypted;
|
||||||
count--;
|
count--;
|
||||||
count2++;
|
count2++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] FFXIVLoginStringEncode(uint key, string text)
|
public static byte[] FFXIVLoginStringEncode(uint key, string text)
|
||||||
{
|
{
|
||||||
key = key & 0xFFFF;
|
key = key & 0xFFFF;
|
||||||
|
|
||||||
uint count = 0;
|
uint count = 0;
|
||||||
byte[] asciiBytes = Encoding.ASCII.GetBytes(text);
|
byte[] asciiBytes = Encoding.ASCII.GetBytes(text);
|
||||||
byte[] result = new byte[4 + text.Length];
|
byte[] result = new byte[4 + text.Length];
|
||||||
for (count = 0; count < text.Length; count++)
|
for (count = 0; count < text.Length; count++)
|
||||||
{
|
{
|
||||||
result[result.Length - count - 1] = (byte)(asciiBytes[asciiBytes.Length - count - 1] ^ (key & 0xFF));
|
result[result.Length - count - 1] = (byte)(asciiBytes[asciiBytes.Length - count - 1] ^ (key & 0xFF));
|
||||||
key += 0x22AF;
|
key += 0x22AF;
|
||||||
key &= 0xFFFF;
|
key &= 0xFFFF;
|
||||||
key = RotateLeft(key, 1) & 0xFFFF;
|
key = RotateLeft(key, 1) & 0xFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
count = count ^ key;
|
count = count ^ key;
|
||||||
result[3] = (byte)(count & 0xFF);
|
result[3] = (byte)(count & 0xFF);
|
||||||
|
|
||||||
key += 0x22AF & 0xFFFF;
|
key += 0x22AF & 0xFFFF;
|
||||||
key = RotateLeft(key, 1) & 0xFFFF;
|
key = RotateLeft(key, 1) & 0xFFFF;
|
||||||
|
|
||||||
result[2] = (byte)(key & 0xFF);
|
result[2] = (byte)(key & 0xFF);
|
||||||
|
|
||||||
key += 0x22AF & 0xFFFF;
|
key += 0x22AF & 0xFFFF;
|
||||||
key = RotateLeft(key, 1) & 0xFFFF;
|
key = RotateLeft(key, 1) & 0xFFFF;
|
||||||
|
|
||||||
|
|
||||||
result[1] = (byte)(key & 0xFF);
|
result[1] = (byte)(key & 0xFF);
|
||||||
result[0] = (byte)((key >> 8) & 0xFF);
|
result[0] = (byte)((key >> 8) & 0xFF);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint RotateLeft(uint value, int bits)
|
public static uint RotateLeft(uint value, int bits)
|
||||||
{
|
{
|
||||||
return (value << bits) | (value >> (16 - bits));
|
return (value << bits) | (value >> (16 - bits));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint RotateRight(uint value, int bits)
|
public static uint RotateRight(uint value, int bits)
|
||||||
{
|
{
|
||||||
return (value >> bits) | (value << (16 - bits));
|
return (value >> bits) | (value << (16 - bits));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static T Clamp<T>(this T value, T min, T max) where T : IComparable<T>
|
public static T Clamp<T>(this T value, T min, T max) where T : IComparable<T>
|
||||||
{
|
{
|
||||||
if (value.CompareTo(min) < 0)
|
if (value.CompareTo(min) < 0)
|
||||||
return min;
|
return min;
|
||||||
else if (value.CompareTo(max) > 0)
|
else if (value.CompareTo(max) > 0)
|
||||||
return max;
|
return max;
|
||||||
else
|
else
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static T Min<T>(this T value, T min) where T : IComparable<T>
|
public static T Min<T>(this T value, T min) where T : IComparable<T>
|
||||||
{
|
{
|
||||||
if (value.CompareTo(min) > 0)
|
if (value.CompareTo(min) > 0)
|
||||||
return min;
|
return min;
|
||||||
else
|
else
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static T Max<T>(this T value, T max) where T : IComparable<T>
|
public static T Max<T>(this T value, T max) where T : IComparable<T>
|
||||||
{
|
{
|
||||||
|
|
||||||
if (value.CompareTo(max) < 0)
|
if (value.CompareTo(max) < 0)
|
||||||
return max;
|
return max;
|
||||||
else
|
else
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float DistanceSquared(Vector3 lhs, Vector3 rhs)
|
public static float DistanceSquared(Vector3 lhs, Vector3 rhs)
|
||||||
{
|
{
|
||||||
return DistanceSquared(lhs.X, lhs.Y, lhs.Z, rhs.X, rhs.Y, rhs.Z);
|
return DistanceSquared(lhs.X, lhs.Y, lhs.Z, rhs.X, rhs.Y, rhs.Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float Distance(Vector3 lhs, Vector3 rhs)
|
public static float Distance(Vector3 lhs, Vector3 rhs)
|
||||||
{
|
{
|
||||||
return Distance(lhs.X, lhs.Y, lhs.Z, rhs.X, rhs.Y, rhs.Z);
|
return Distance(lhs.X, lhs.Y, lhs.Z, rhs.X, rhs.Y, rhs.Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float Distance(float x, float y, float z, float x2, float y2, float z2)
|
public static float Distance(float x, float y, float z, float x2, float y2, float z2)
|
||||||
{
|
{
|
||||||
if (x == x2 && y == y2 && z == z2)
|
if (x == x2 && y == y2 && z == z2)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|
||||||
return (float)Math.Sqrt(DistanceSquared(x, y, z, x2, y2, z2));
|
return (float)Math.Sqrt(DistanceSquared(x, y, z, x2, y2, z2));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float DistanceSquared(float x, float y, float z, float x2, float y2, float z2)
|
public static float DistanceSquared(float x, float y, float z, float x2, float y2, float z2)
|
||||||
{
|
{
|
||||||
if (x == x2 && y == y2 && z == z2)
|
if (x == x2 && y == y2 && z == z2)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|
||||||
// todo: my maths is shit
|
// todo: my maths is shit
|
||||||
var dx = x - x2;
|
var dx = x - x2;
|
||||||
var dy = y - y2;
|
var dy = y - y2;
|
||||||
var dz = z - z2;
|
var dz = z - z2;
|
||||||
|
|
||||||
return dx * dx + dy * dy + dz * dz;
|
return dx * dx + dy * dy + dz * dz;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Distance of just the x and z valeus, ignoring y
|
//Distance of just the x and z valeus, ignoring y
|
||||||
public static float XZDistanceSquared(Vector3 lhs, Vector3 rhs)
|
public static float XZDistanceSquared(Vector3 lhs, Vector3 rhs)
|
||||||
{
|
{
|
||||||
return XZDistanceSquared(lhs.X, lhs.Z, rhs.X, rhs.Z);
|
return XZDistanceSquared(lhs.X, lhs.Z, rhs.X, rhs.Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float XZDistance(Vector3 lhs, Vector3 rhs)
|
public static float XZDistance(Vector3 lhs, Vector3 rhs)
|
||||||
{
|
{
|
||||||
return XZDistance(lhs.X, lhs.Z, rhs.X, rhs.Z);
|
return XZDistance(lhs.X, lhs.Z, rhs.X, rhs.Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float XZDistance(float x, float z, float x2, float z2)
|
public static float XZDistance(float x, float z, float x2, float z2)
|
||||||
{
|
{
|
||||||
if (x == x2 && z == z2)
|
if (x == x2 && z == z2)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|
||||||
return (float)Math.Sqrt(XZDistanceSquared(x, z, x2, z2));
|
return (float)Math.Sqrt(XZDistanceSquared(x, z, x2, z2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static float XZDistanceSquared(float x, float z, float x2, float z2)
|
public static float XZDistanceSquared(float x, float z, float x2, float z2)
|
||||||
{
|
{
|
||||||
if (x == x2 && z == z2)
|
if (x == x2 && z == z2)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|
||||||
// todo: mz maths is shit
|
// todo: mz maths is shit
|
||||||
var dx = x - x2;
|
var dx = x - x2;
|
||||||
var dz = z - z2;
|
var dz = z - z2;
|
||||||
|
|
||||||
return dx * dx + dz * dz;
|
return dx * dx + dz * dz;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace FFXIVClassic.Common
|
namespace Meteor.Common
|
||||||
{
|
{
|
||||||
public class Vector3
|
public class Vector3
|
||||||
{
|
{
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<system.data>
|
<system.data>
|
||||||
<DbProviderFactories>
|
<DbProviderFactories>
|
||||||
<remove invariant="MySql.Data.MySqlClient"/>
|
<remove invariant="MySql.Data.MySqlClient"/>
|
||||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
|
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
|
||||||
</DbProviderFactories>
|
</DbProviderFactories>
|
||||||
</system.data>
|
</system.data>
|
||||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="DotNetZip" version="1.10.1" targetFramework="net45" />
|
<package id="DotNetZip" version="1.10.1" targetFramework="net45" />
|
||||||
<package id="MySql.Data" version="6.9.8" targetFramework="net45" />
|
<package id="MySql.Data" version="6.9.8" targetFramework="net45" />
|
||||||
<package id="NLog" version="4.3.5" targetFramework="net45" />
|
<package id="NLog" version="4.3.5" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
|
@ -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;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.utils
|
namespace Meteor.Lobby
|
||||||
{
|
{
|
||||||
class CharacterCreatorUtils
|
class CharacterCreatorUtils
|
||||||
{
|
{
|
|
@ -20,13 +20,14 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Net.Sockets;
|
|
||||||
using FFXIVClassic.Common;
|
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using Cyotek.Collections.Generic;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server
|
using Cyotek.Collections.Generic;
|
||||||
|
using Meteor.Common;
|
||||||
|
|
||||||
|
namespace Meteor.Lobby
|
||||||
{
|
{
|
||||||
class ClientConnection
|
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;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server
|
using Meteor.Common;
|
||||||
|
|
||||||
|
namespace Meteor.Lobby
|
||||||
{
|
{
|
||||||
class ConfigConstants
|
class ConfigConstants
|
||||||
{
|
{
|
|
@ -21,7 +21,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.dataobjects
|
namespace Meteor.Lobby.DataObjects
|
||||||
{
|
{
|
||||||
class Account
|
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
|
class Appearance
|
||||||
{
|
{
|
|
@ -20,10 +20,10 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using FFXIVClassic.Common;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.dataobjects
|
namespace Meteor.Lobby.DataObjects
|
||||||
{
|
{
|
||||||
class CharaInfo
|
class CharaInfo
|
||||||
{
|
{
|
||||||
|
@ -248,7 +248,7 @@ namespace FFXIVClassic_Lobby_Server.dataobjects
|
||||||
{
|
{
|
||||||
byte[] bytes = File.ReadAllBytes("./packets/charaappearance.bin");
|
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('/', '_');
|
return Convert.ToBase64String(bytes).Replace('+', '-').Replace('/', '_');
|
||||||
}
|
}
|
|
@ -20,11 +20,9 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using FFXIVClassic.Common;
|
|
||||||
using FFXIVClassic_Lobby_Server.dataobjects;
|
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server
|
namespace Meteor.Lobby.DataObjects
|
||||||
{
|
{
|
||||||
class Character
|
class Character
|
||||||
{
|
{
|
||||||
public uint id;
|
public uint id;
|
||||||
|
@ -52,10 +50,10 @@ namespace FFXIVClassic_Lobby_Server
|
||||||
{
|
{
|
||||||
charaInfo.Replace("+", "-");
|
charaInfo.Replace("+", "-");
|
||||||
charaInfo.Replace("/", "_");
|
charaInfo.Replace("/", "_");
|
||||||
byte[] data = System.Convert.FromBase64String(charaInfo);
|
byte[] data = System.Convert.FromBase64String(charaInfo);
|
||||||
|
|
||||||
Program.Log.Debug("------------Base64 printout------------------");
|
Program.Log.Debug("------------Base64 printout------------------");
|
||||||
Program.Log.Debug(Utils.ByteArrayToHex(data));
|
Program.Log.Debug(Common.Utils.ByteArrayToHex(data));
|
||||||
Program.Log.Debug("------------Base64 printout------------------");
|
Program.Log.Debug("------------Base64 printout------------------");
|
||||||
|
|
||||||
CharaInfo chara = new CharaInfo();
|
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
|
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
|
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;
|
||||||
using System.Collections.Generic;
|
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
|
//charState: 0 - Reserved, 1 - Inactive, 2 - Active
|
||||||
|
|
|
@ -1,167 +1,167 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" />
|
<Import Project="..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{703091E0-F69C-4177-8FAE-C258AC6A65AA}</ProjectGuid>
|
<ProjectGuid>{703091E0-F69C-4177-8FAE-C258AC6A65AA}</ProjectGuid>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>FFXIVClassic_Lobby_Server</RootNamespace>
|
<RootNamespace>Meteor.Lobby</RootNamespace>
|
||||||
<AssemblyName>FFXIVClassic_Lobby_Server</AssemblyName>
|
<AssemblyName>Lobby Server</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
<InstallFrom>Disk</InstallFrom>
|
<InstallFrom>Disk</InstallFrom>
|
||||||
<UpdateEnabled>false</UpdateEnabled>
|
<UpdateEnabled>false</UpdateEnabled>
|
||||||
<UpdateMode>Foreground</UpdateMode>
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
<UpdateInterval>7</UpdateInterval>
|
<UpdateInterval>7</UpdateInterval>
|
||||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||||
<UpdatePeriodically>false</UpdatePeriodically>
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
<UpdateRequired>false</UpdateRequired>
|
<UpdateRequired>false</UpdateRequired>
|
||||||
<MapFileExtensions>true</MapFileExtensions>
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
<NuGetPackageImportStamp>cc1ba6f5</NuGetPackageImportStamp>
|
<NuGetPackageImportStamp>cc1ba6f5</NuGetPackageImportStamp>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Cyotek.Collections.Generic.CircularBuffer">
|
<Reference Include="Cyotek.Collections.Generic.CircularBuffer">
|
||||||
<HintPath>..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll</HintPath>
|
<HintPath>..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="FFXIVClassic.Common">
|
<Reference Include="FFXIVClassic.Common">
|
||||||
<HintPath>..\FFXIVClassic Common Class Lib\bin\Debug\FFXIVClassic.Common.dll</HintPath>
|
<HintPath>..\FFXIVClassic Common Class Lib\bin\Debug\FFXIVClassic.Common.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.3.4\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.3.4\lib\net45\NLog.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="dataobjects\Account.cs" />
|
<Compile Include="DataObjects\Account.cs" />
|
||||||
<Compile Include="dataobjects\Appearance.cs" />
|
<Compile Include="DataObjects\Appearance.cs" />
|
||||||
<Compile Include="dataobjects\CharaInfo.cs" />
|
<Compile Include="DataObjects\CharaInfo.cs" />
|
||||||
<Compile Include="dataobjects\Retainer.cs" />
|
<Compile Include="DataObjects\Retainer.cs" />
|
||||||
<Compile Include="dataobjects\Character.cs" />
|
<Compile Include="DataObjects\Character.cs" />
|
||||||
<Compile Include="ClientConnection.cs" />
|
<Compile Include="ClientConnection.cs" />
|
||||||
<Compile Include="ConfigConstants.cs" />
|
<Compile Include="ConfigConstants.cs" />
|
||||||
<Compile Include="Database.cs" />
|
<Compile Include="Database.cs" />
|
||||||
<Compile Include="dataobjects\World.cs" />
|
<Compile Include="DataObjects\World.cs" />
|
||||||
<Compile Include="PacketProcessor.cs" />
|
<Compile Include="PacketProcessor.cs" />
|
||||||
<Compile Include="packets\receive\CharacterModifyPacket.cs" />
|
<Compile Include="Packets\Receive\CharacterModifyPacket.cs" />
|
||||||
<Compile Include="packets\receive\SecurityHandshakePacket.cs" />
|
<Compile Include="Packets\Receive\SecurityHandshakePacket.cs" />
|
||||||
<Compile Include="packets\receive\SelectCharacterPacket.cs" />
|
<Compile Include="Packets\Receive\SelectCharacterPacket.cs" />
|
||||||
<Compile Include="packets\receive\SessionPacket.cs" />
|
<Compile Include="Packets\Receive\SessionPacket.cs" />
|
||||||
<Compile Include="packets\send\CharaCreatorPacket.cs" />
|
<Compile Include="Packets\Send\CharaCreatorPacket.cs" />
|
||||||
<Compile Include="packets\send\RetainerListPacket.cs" />
|
<Compile Include="Packets\Send\RetainerListPacket.cs" />
|
||||||
<Compile Include="packets\send\ErrorPacket.cs" />
|
<Compile Include="Packets\Send\ErrorPacket.cs" />
|
||||||
<Compile Include="packets\HardCoded_Packets.cs" />
|
<Compile Include="Packets\HardCoded_Packets.cs" />
|
||||||
<Compile Include="packets\send\SelectCharacterConfirmPacket.cs" />
|
<Compile Include="Packets\Send\SelectCharacterConfirmPacket.cs" />
|
||||||
<Compile Include="packets\send\CharacterListPacket.cs" />
|
<Compile Include="Packets\Send\CharacterListPacket.cs" />
|
||||||
<Compile Include="packets\send\ImportListPacket.cs" />
|
<Compile Include="Packets\Send\ImportListPacket.cs" />
|
||||||
<Compile Include="packets\send\AccountListPacket.cs" />
|
<Compile Include="Packets\Send\AccountListPacket.cs" />
|
||||||
<Compile Include="packets\send\WorldListPacket.cs" />
|
<Compile Include="Packets\Send\WorldListPacket.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Server.cs" />
|
<Compile Include="Server.cs" />
|
||||||
<Compile Include="utils\CharacterCreatorUtils.cs" />
|
<Compile Include="CharacterCreatorUtils.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="NLog.config">
|
<Content Include="NLog.config">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
<None Include="NLog.xsd">
|
<None Include="NLog.xsd">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BootstrapperPackage Include=".NETFramework,Version=v4.5">
|
<BootstrapperPackage Include=".NETFramework,Version=v4.5">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
|
<ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>xcopy "$(SolutionDir)data\lobby_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /y</PostBuildEvent>
|
<PostBuildEvent>xcopy "$(SolutionDir)data\lobby_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /y</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
</Target>
|
</Target>
|
||||||
-->
|
-->
|
||||||
</Project>
|
</Project>
|
|
@ -1,62 +1,62 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
|
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
|
||||||
autoReload="true"
|
autoReload="true"
|
||||||
throwExceptions="false"
|
throwExceptions="false"
|
||||||
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
|
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
|
||||||
|
|
||||||
|
|
||||||
<!-- optional, add some variabeles
|
<!-- optional, add some variabeles
|
||||||
https://github.com/nlog/NLog/wiki/Configuration-file#variables
|
https://github.com/nlog/NLog/wiki/Configuration-file#variables
|
||||||
-->
|
-->
|
||||||
<variable name="myvar" value="myvalue" />
|
<variable name="myvar" value="myvalue" />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
See https://github.com/nlog/nlog/wiki/Configuration-file
|
See https://github.com/nlog/nlog/wiki/Configuration-file
|
||||||
for information on customizing logging rules and outputs.
|
for information on customizing logging rules and outputs.
|
||||||
-->
|
-->
|
||||||
<targets async="true">
|
<targets async="true">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
add your targets here
|
add your targets here
|
||||||
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
|
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
|
||||||
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
|
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Write events to a file with the date in the filename.
|
Write events to a file with the date in the filename.
|
||||||
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
|
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
|
||||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||||
-->
|
-->
|
||||||
<!--<target xsi:type="ColoredConsole" name="console" layout="[${longdate}] [${uppercase:${level}}] ${message}" />-->
|
<!--<target xsi:type="ColoredConsole" name="console" layout="[${longdate}] [${uppercase:${level}}] ${message}" />-->
|
||||||
<target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}/map.log"
|
<target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}/map.log"
|
||||||
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
||||||
<target xsi:type="ColoredConsole" name="console"
|
<target xsi:type="ColoredConsole" name="console"
|
||||||
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
||||||
<target xsi:type="ColoredConsole" name="packets"
|
<target xsi:type="ColoredConsole" name="packets"
|
||||||
layout="${message}">
|
layout="${message}">
|
||||||
<highlight-row
|
<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" />
|
backgroundColor="DarkYellow" foregroundColor="NoChange" />
|
||||||
<highlight-row
|
<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" />
|
backgroundColor="DarkRed" foregroundColor="NoChange" />
|
||||||
<highlight-row
|
<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" />
|
backgroundColor="DarkMagenta" foregroundColor="NoChange" />
|
||||||
</target>
|
</target>
|
||||||
</targets>
|
</targets>
|
||||||
|
|
||||||
<rules>
|
<rules>
|
||||||
<!-- add your logging rules here -->
|
<!-- add your logging rules here -->
|
||||||
<logger name='*' minlevel='Trace' writeTo='file' />
|
<logger name='*' minlevel='Trace' writeTo='file' />
|
||||||
<logger name='FFXIVClassic_Lobby_Server.Program' minlevel='Trace' writeTo='console' />
|
<logger name='Meteor.Lobby.Program' minlevel='Trace' writeTo='console' />
|
||||||
<logger name='FFXIVClassic.Common.*' minlevel='Debug' writeTo='packets' />
|
<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"
|
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" />
|
<logger name="*" minlevel="Debug" writeTo="f" />
|
||||||
-->
|
-->
|
||||||
</rules>
|
</rules>
|
||||||
</nlog>
|
</nlog>
|
|
@ -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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
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
|
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
|
class HardCoded_Packets
|
||||||
{
|
{
|
|
@ -23,7 +23,7 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets.receive
|
namespace Meteor.Lobby.Packets.Receive
|
||||||
{
|
{
|
||||||
class CharacterModifyPacket
|
class CharacterModifyPacket
|
||||||
{
|
{
|
|
@ -23,7 +23,7 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets.receive
|
namespace Meteor.Lobby.Packets.Receive
|
||||||
{
|
{
|
||||||
class SecurityHandshakePacket
|
class SecurityHandshakePacket
|
||||||
{
|
{
|
|
@ -22,7 +22,7 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets.receive
|
namespace Meteor.Lobby.Packets.Receive
|
||||||
{
|
{
|
||||||
class SelectCharacterPacket
|
class SelectCharacterPacket
|
||||||
{
|
{
|
|
@ -23,7 +23,7 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets.receive
|
namespace Meteor.Lobby.Packets.Receive
|
||||||
{
|
{
|
||||||
class SessionPacket
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
using Meteor.Lobby.DataObjects;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class AccountListPacket
|
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;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class CharaCreatorPacket
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
using Meteor.Lobby.DataObjects;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class CharacterListPacket
|
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;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class ErrorPacket
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class ImportListPacket
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
using Meteor.Lobby.DataObjects;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class RetainerListPacket
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class SelectCharacterConfirmPacket
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Meteor.Common;
|
||||||
|
using Meteor.Lobby.DataObjects;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server.packets
|
namespace Meteor.Lobby.Packets
|
||||||
{
|
{
|
||||||
class WorldListPacket
|
class WorldListPacket
|
||||||
{
|
{
|
|
@ -22,9 +22,11 @@ along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
using MySql.Data.MySqlClient;
|
using MySql.Data.MySqlClient;
|
||||||
using NLog;
|
using NLog;
|
||||||
namespace FFXIVClassic_Lobby_Server
|
|
||||||
|
namespace Meteor.Lobby
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
|
@ -25,9 +25,9 @@ using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Lobby_Server
|
namespace Meteor.Lobby
|
||||||
{
|
{
|
||||||
class Server
|
class Server
|
||||||
{
|
{
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<system.data>
|
<system.data>
|
||||||
<DbProviderFactories>
|
<DbProviderFactories>
|
||||||
<remove invariant="MySql.Data.MySqlClient"/>
|
<remove invariant="MySql.Data.MySqlClient"/>
|
||||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
|
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
|
||||||
</DbProviderFactories>
|
</DbProviderFactories>
|
||||||
</system.data>
|
</system.data>
|
||||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Cyotek.CircularBuffer" version="1.0.0.0" targetFramework="net45" />
|
<package id="Cyotek.CircularBuffer" version="1.0.0.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Net.Compilers" version="2.0.0-beta3" targetFramework="net45" developmentDependency="true" />
|
<package id="Microsoft.Net.Compilers" version="2.0.0-beta3" targetFramework="net45" developmentDependency="true" />
|
||||||
<package id="MySql.Data" version="6.9.8" targetFramework="net45" />
|
<package id="MySql.Data" version="6.9.8" targetFramework="net45" />
|
||||||
<package id="NLog" version="4.3.4" targetFramework="net45" />
|
<package id="NLog" version="4.3.4" targetFramework="net45" />
|
||||||
<package id="NLog.Config" version="4.3.4" targetFramework="net45" />
|
<package id="NLog.Config" version="4.3.4" targetFramework="net45" />
|
||||||
<package id="NLog.Schema" version="4.3.4" targetFramework="net45" />
|
<package id="NLog.Schema" version="4.3.4" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
|
@ -1,20 +1,20 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
|
||||||
</startup>
|
</startup>
|
||||||
<system.data>
|
<system.data>
|
||||||
<DbProviderFactories>
|
<DbProviderFactories>
|
||||||
<remove invariant="MySql.Data.MySqlClient" />
|
<remove invariant="MySql.Data.MySqlClient" />
|
||||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||||
</DbProviderFactories>
|
</DbProviderFactories>
|
||||||
</system.data>
|
</system.data>
|
||||||
<runtime>
|
<runtime>
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
|
@ -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;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
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 MySql.Data.MySqlClient;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
using FFXIVClassic_Map_Server.utils;
|
using FFXIVClassic_Map_Server.utils;
|
||||||
|
|
||||||
using FFXIVClassic_Map_Server.packets.send.player;
|
using FFXIVClassic_Map_Server.packets.send.player;
|
|
@ -1,443 +1,443 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props') AND '$(OS)' == 'Windows_NT'" />
|
<Import Project="..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props') AND '$(OS)' == 'Windows_NT'" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props') AND '$(OS)' == 'Windows_NT'" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props') AND '$(OS)' == 'Windows_NT'" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{E8FA2784-D4B9-4711-8CC6-712A4B1CD54F}</ProjectGuid>
|
<ProjectGuid>{E8FA2784-D4B9-4711-8CC6-712A4B1CD54F}</ProjectGuid>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>FFXIVClassic_Map_Server</RootNamespace>
|
<RootNamespace>Meteor.Map</RootNamespace>
|
||||||
<AssemblyName>FFXIVClassic Map Server</AssemblyName>
|
<AssemblyName>Map Server</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<NuGetPackageImportStamp>1d22ec4a</NuGetPackageImportStamp>
|
<NuGetPackageImportStamp>1d22ec4a</NuGetPackageImportStamp>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Cyotek.Collections.Generic.CircularBuffer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=58daa28b0b2de221, processorArchitecture=MSIL">
|
<Reference Include="Cyotek.Collections.Generic.CircularBuffer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=58daa28b0b2de221, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll</HintPath>
|
<HintPath>..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="FFXIVClassic.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="FFXIVClassic.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\FFXIVClassic Common Class Lib\bin\Debug\FFXIVClassic.Common.dll</HintPath>
|
<HintPath>..\FFXIVClassic Common Class Lib\bin\Debug\FFXIVClassic.Common.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MoonSharp.Interpreter">
|
<Reference Include="MoonSharp.Interpreter">
|
||||||
<HintPath>..\packages\MoonSharp.1.2.1.0\lib\net40-client\MoonSharp.Interpreter.dll</HintPath>
|
<HintPath>..\packages\MoonSharp.1.2.1.0\lib\net40-client\MoonSharp.Interpreter.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.3.5\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.3.5\lib\net45\NLog.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SharpNav, Version=1.0.0.1, Culture=neutral, PublicKeyToken=b467138d8cacd85b, processorArchitecture=MSIL">
|
<Reference Include="SharpNav, Version=1.0.0.1, Culture=neutral, PublicKeyToken=b467138d8cacd85b, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>navmesh\SharpNav.dll</HintPath>
|
<HintPath>navmesh\SharpNav.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Numerics" />
|
<Reference Include="System.Numerics" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="actors\area\PrivateArea.cs" />
|
<Compile Include="actors\area\PrivateArea.cs" />
|
||||||
<Compile Include="actors\area\PrivateAreaContent.cs" />
|
<Compile Include="actors\area\PrivateAreaContent.cs" />
|
||||||
<Compile Include="actors\area\SpawnLocation.cs" />
|
<Compile Include="actors\area\SpawnLocation.cs" />
|
||||||
<Compile Include="actors\area\Zone.cs" />
|
<Compile Include="actors\area\Zone.cs" />
|
||||||
<Compile Include="actors\chara\ai\BattleTrait.cs" />
|
<Compile Include="actors\chara\ai\BattleTrait.cs" />
|
||||||
<Compile Include="actors\chara\ai\controllers\AllyController.cs" />
|
<Compile Include="actors\chara\ai\controllers\AllyController.cs" />
|
||||||
<Compile Include="actors\chara\ai\helpers\ActionQueue.cs" />
|
<Compile Include="actors\chara\ai\helpers\ActionQueue.cs" />
|
||||||
<Compile Include="actors\chara\ai\AIContainer.cs" />
|
<Compile Include="actors\chara\ai\AIContainer.cs" />
|
||||||
<Compile Include="actors\chara\ai\controllers\Controller.cs" />
|
<Compile Include="actors\chara\ai\controllers\Controller.cs" />
|
||||||
<Compile Include="actors\chara\ai\controllers\BattleNpcController.cs" />
|
<Compile Include="actors\chara\ai\controllers\BattleNpcController.cs" />
|
||||||
<Compile Include="actors\chara\ai\controllers\PetController.cs" />
|
<Compile Include="actors\chara\ai\controllers\PetController.cs" />
|
||||||
<Compile Include="actors\chara\ai\controllers\PlayerController.cs" />
|
<Compile Include="actors\chara\ai\controllers\PlayerController.cs" />
|
||||||
<Compile Include="actors\chara\ai\HateContainer.cs" />
|
<Compile Include="actors\chara\ai\HateContainer.cs" />
|
||||||
<Compile Include="actors\chara\ai\helpers\PathFind.cs" />
|
<Compile Include="actors\chara\ai\helpers\PathFind.cs" />
|
||||||
<Compile Include="actors\chara\ai\BattleCommand.cs" />
|
<Compile Include="actors\chara\ai\BattleCommand.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\AbilityState.cs" />
|
<Compile Include="actors\chara\ai\state\AbilityState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\AttackState.cs" />
|
<Compile Include="actors\chara\ai\state\AttackState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\DeathState.cs" />
|
<Compile Include="actors\chara\ai\state\DeathState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\DespawnState.cs" />
|
<Compile Include="actors\chara\ai\state\DespawnState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\InactiveState.cs" />
|
<Compile Include="actors\chara\ai\state\InactiveState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\ItemState.cs" />
|
<Compile Include="actors\chara\ai\state\ItemState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\MagicState.cs" />
|
<Compile Include="actors\chara\ai\state\MagicState.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\State.cs" />
|
<Compile Include="actors\chara\ai\state\State.cs" />
|
||||||
<Compile Include="actors\chara\ai\state\WeaponSkillState.cs" />
|
<Compile Include="actors\chara\ai\state\WeaponSkillState.cs" />
|
||||||
<Compile Include="actors\chara\ai\StatusEffect.cs" />
|
<Compile Include="actors\chara\ai\StatusEffect.cs" />
|
||||||
<Compile Include="actors\chara\ai\StatusEffectContainer.cs" />
|
<Compile Include="actors\chara\ai\StatusEffectContainer.cs" />
|
||||||
<Compile Include="actors\chara\ai\helpers\TargetFind.cs" />
|
<Compile Include="actors\chara\ai\helpers\TargetFind.cs" />
|
||||||
<Compile Include="actors\chara\ai\utils\AttackUtils.cs" />
|
<Compile Include="actors\chara\ai\utils\AttackUtils.cs" />
|
||||||
<Compile Include="actors\chara\ai\utils\BattleUtils.cs" />
|
<Compile Include="actors\chara\ai\utils\BattleUtils.cs" />
|
||||||
<Compile Include="actors\chara\Modifier.cs" />
|
<Compile Include="actors\chara\Modifier.cs" />
|
||||||
<Compile Include="actors\chara\ModifierList.cs" />
|
<Compile Include="actors\chara\ModifierList.cs" />
|
||||||
<Compile Include="actors\chara\npc\ActorClass.cs" />
|
<Compile Include="actors\chara\npc\ActorClass.cs" />
|
||||||
<Compile Include="actors\chara\npc\Ally.cs" />
|
<Compile Include="actors\chara\npc\Ally.cs" />
|
||||||
<Compile Include="actors\chara\npc\BattleNpc.cs" />
|
<Compile Include="actors\chara\npc\BattleNpc.cs" />
|
||||||
<Compile Include="actors\chara\npc\MobModifier.cs" />
|
<Compile Include="actors\chara\npc\MobModifier.cs" />
|
||||||
<Compile Include="actors\chara\npc\NpcWork.cs" />
|
<Compile Include="actors\chara\npc\NpcWork.cs" />
|
||||||
<Compile Include="actors\chara\AetheryteWork.cs" />
|
<Compile Include="actors\chara\AetheryteWork.cs" />
|
||||||
<Compile Include="actors\chara\npc\Retainer.cs" />
|
<Compile Include="actors\chara\npc\Retainer.cs" />
|
||||||
<Compile Include="actors\chara\npc\Pet.cs" />
|
<Compile Include="actors\chara\npc\Pet.cs" />
|
||||||
<Compile Include="actors\chara\ItemPackage.cs" />
|
<Compile Include="actors\chara\ItemPackage.cs" />
|
||||||
<Compile Include="actors\chara\ReferencedItemPackage.cs" />
|
<Compile Include="actors\chara\ReferencedItemPackage.cs" />
|
||||||
<Compile Include="actors\chara\SubState.cs" />
|
<Compile Include="actors\chara\SubState.cs" />
|
||||||
<Compile Include="actors\chara\Work.cs" />
|
<Compile Include="actors\chara\Work.cs" />
|
||||||
<Compile Include="actors\debug\Debug.cs" />
|
<Compile Include="actors\debug\Debug.cs" />
|
||||||
<Compile Include="actors\director\Director.cs" />
|
<Compile Include="actors\director\Director.cs" />
|
||||||
<Compile Include="actors\director\GuildleveDirector.cs" />
|
<Compile Include="actors\director\GuildleveDirector.cs" />
|
||||||
<Compile Include="actors\director\work\GuildleveWork.cs" />
|
<Compile Include="actors\director\work\GuildleveWork.cs" />
|
||||||
<Compile Include="actors\EventList.cs" />
|
<Compile Include="actors\EventList.cs" />
|
||||||
<Compile Include="actors\group\GLContentGroup.cs" />
|
<Compile Include="actors\group\GLContentGroup.cs" />
|
||||||
<Compile Include="actors\group\ContentGroup.cs" />
|
<Compile Include="actors\group\ContentGroup.cs" />
|
||||||
<Compile Include="actors\group\TradeGroup.cs" />
|
<Compile Include="actors\group\TradeGroup.cs" />
|
||||||
<Compile Include="actors\group\RetainerMeetingRelationGroup.cs" />
|
<Compile Include="actors\group\RetainerMeetingRelationGroup.cs" />
|
||||||
<Compile Include="actors\group\Work\ContentGroupWork.cs" />
|
<Compile Include="actors\group\Work\ContentGroupWork.cs" />
|
||||||
<Compile Include="actors\group\Work\GlobalTemp.cs" />
|
<Compile Include="actors\group\Work\GlobalTemp.cs" />
|
||||||
<Compile Include="actors\group\Group.cs" />
|
<Compile Include="actors\group\Group.cs" />
|
||||||
<Compile Include="actors\group\MonsterParty.cs" />
|
<Compile Include="actors\group\MonsterParty.cs" />
|
||||||
<Compile Include="actors\group\Party.cs" />
|
<Compile Include="actors\group\Party.cs" />
|
||||||
<Compile Include="actors\group\RelationGroup.cs" />
|
<Compile Include="actors\group\RelationGroup.cs" />
|
||||||
<Compile Include="actors\group\Work\GroupGlobalSave.cs" />
|
<Compile Include="actors\group\Work\GroupGlobalSave.cs" />
|
||||||
<Compile Include="actors\group\Work\GroupGlobalTemp.cs" />
|
<Compile Include="actors\group\Work\GroupGlobalTemp.cs" />
|
||||||
<Compile Include="actors\group\Work\GroupMemberSave.cs" />
|
<Compile Include="actors\group\Work\GroupMemberSave.cs" />
|
||||||
<Compile Include="actors\group\Work\PartyWork.cs" />
|
<Compile Include="actors\group\Work\PartyWork.cs" />
|
||||||
<Compile Include="actors\group\Work\RelationWork.cs" />
|
<Compile Include="actors\group\Work\RelationWork.cs" />
|
||||||
<Compile Include="actors\judge\Judge.cs" />
|
<Compile Include="actors\judge\Judge.cs" />
|
||||||
<Compile Include="actors\quest\Quest.cs" />
|
<Compile Include="actors\quest\Quest.cs" />
|
||||||
<Compile Include="actors\StaticActors.cs" />
|
<Compile Include="actors\StaticActors.cs" />
|
||||||
<Compile Include="actors\world\WorldMaster.cs" />
|
<Compile Include="actors\world\WorldMaster.cs" />
|
||||||
<Compile Include="dataobjects\GuildleveData.cs" />
|
<Compile Include="dataobjects\GuildleveData.cs" />
|
||||||
<Compile Include="dataobjects\TradeTransaction.cs" />
|
<Compile Include="dataobjects\TradeTransaction.cs" />
|
||||||
<Compile Include="dataobjects\ZoneConnection.cs" />
|
<Compile Include="dataobjects\ZoneConnection.cs" />
|
||||||
<Compile Include="CommandProcessor.cs" />
|
<Compile Include="CommandProcessor.cs" />
|
||||||
<Compile Include="ConfigConstants.cs" />
|
<Compile Include="ConfigConstants.cs" />
|
||||||
<Compile Include="Database.cs" />
|
<Compile Include="Database.cs" />
|
||||||
<Compile Include="actors\Actor.cs" />
|
<Compile Include="actors\Actor.cs" />
|
||||||
<Compile Include="actors\chara\BattleSave.cs" />
|
<Compile Include="actors\chara\BattleSave.cs" />
|
||||||
<Compile Include="actors\chara\BattleTemp.cs" />
|
<Compile Include="actors\chara\BattleTemp.cs" />
|
||||||
<Compile Include="actors\chara\Character.cs" />
|
<Compile Include="actors\chara\Character.cs" />
|
||||||
<Compile Include="actors\chara\EventSave.cs" />
|
<Compile Include="actors\chara\EventSave.cs" />
|
||||||
<Compile Include="actors\chara\EventTemp.cs" />
|
<Compile Include="actors\chara\EventTemp.cs" />
|
||||||
<Compile Include="actors\chara\npc\Npc.cs" />
|
<Compile Include="actors\chara\npc\Npc.cs" />
|
||||||
<Compile Include="actors\chara\ParameterTemp.cs" />
|
<Compile Include="actors\chara\ParameterTemp.cs" />
|
||||||
<Compile Include="actors\chara\player\Player.cs" />
|
<Compile Include="actors\chara\player\Player.cs" />
|
||||||
<Compile Include="actors\command\Command.cs" />
|
<Compile Include="actors\command\Command.cs" />
|
||||||
<Compile Include="actors\chara\CharaWork.cs" />
|
<Compile Include="actors\chara\CharaWork.cs" />
|
||||||
<Compile Include="actors\chara\ParameterSave.cs" />
|
<Compile Include="actors\chara\ParameterSave.cs" />
|
||||||
<Compile Include="actors\chara\player\PlayerWork.cs" />
|
<Compile Include="actors\chara\player\PlayerWork.cs" />
|
||||||
<Compile Include="dataobjects\InventoryItem.cs" />
|
<Compile Include="dataobjects\InventoryItem.cs" />
|
||||||
<Compile Include="dataobjects\Session.cs" />
|
<Compile Include="dataobjects\Session.cs" />
|
||||||
<Compile Include="dataobjects\ItemData.cs" />
|
<Compile Include="dataobjects\ItemData.cs" />
|
||||||
<Compile Include="dataobjects\RecruitmentDetails.cs" />
|
<Compile Include="dataobjects\RecruitmentDetails.cs" />
|
||||||
<Compile Include="dataobjects\SeamlessBoundry.cs" />
|
<Compile Include="dataobjects\SeamlessBoundry.cs" />
|
||||||
<Compile Include="dataobjects\SearchEntry.cs" />
|
<Compile Include="dataobjects\SearchEntry.cs" />
|
||||||
<Compile Include="lua\LuaEngine.cs" />
|
<Compile Include="lua\LuaEngine.cs" />
|
||||||
<Compile Include="lua\LuaParam.cs" />
|
<Compile Include="lua\LuaParam.cs" />
|
||||||
<Compile Include="lua\LuaScript.cs" />
|
<Compile Include="lua\LuaScript.cs" />
|
||||||
<Compile Include="lua\LuaUtils.cs" />
|
<Compile Include="lua\LuaUtils.cs" />
|
||||||
<Compile Include="PacketProcessor.cs" />
|
<Compile Include="PacketProcessor.cs" />
|
||||||
<Compile Include="packets\receive\AchievementProgressRequestPacket.cs" />
|
<Compile Include="packets\receive\AchievementProgressRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\ChatMessagePacket.cs" />
|
<Compile Include="packets\receive\ChatMessagePacket.cs" />
|
||||||
<Compile Include="packets\receive\events\EventUpdatePacket.cs" />
|
<Compile Include="packets\receive\events\EventUpdatePacket.cs" />
|
||||||
<Compile Include="packets\receive\events\EventStartPacket.cs" />
|
<Compile Include="packets\receive\events\EventStartPacket.cs" />
|
||||||
<Compile Include="packets\receive\GroupCreatedPacket.cs" />
|
<Compile Include="packets\receive\GroupCreatedPacket.cs" />
|
||||||
<Compile Include="packets\receive\HandshakePacket.cs" />
|
<Compile Include="packets\receive\HandshakePacket.cs" />
|
||||||
<Compile Include="packets\receive\CountdownRequestPacket.cs" />
|
<Compile Include="packets\receive\CountdownRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\LangaugeCodePacket.cs" />
|
<Compile Include="packets\receive\LangaugeCodePacket.cs" />
|
||||||
<Compile Include="packets\receive\UpdateItemPackagePacket.cs" />
|
<Compile Include="packets\receive\UpdateItemPackagePacket.cs" />
|
||||||
<Compile Include="packets\receive\ParameterDataRequestPacket.cs" />
|
<Compile Include="packets\receive\ParameterDataRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\recruitment\RecruitmentDetailsRequestPacket.cs" />
|
<Compile Include="packets\receive\recruitment\RecruitmentDetailsRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\recruitment\RecruitmentSearchRequestPacket.cs" />
|
<Compile Include="packets\receive\recruitment\RecruitmentSearchRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\recruitment\StartRecruitingRequestPacket.cs" />
|
<Compile Include="packets\receive\recruitment\StartRecruitingRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\SetTargetPacket.cs" />
|
<Compile Include="packets\receive\SetTargetPacket.cs" />
|
||||||
<Compile Include="packets\receive\LockTargetPacket.cs" />
|
<Compile Include="packets\receive\LockTargetPacket.cs" />
|
||||||
<Compile Include="packets\receive\social\AddRemoveSocialPacket.cs" />
|
<Compile Include="packets\receive\social\AddRemoveSocialPacket.cs" />
|
||||||
<Compile Include="packets\receive\social\FriendlistRequestPacket.cs" />
|
<Compile Include="packets\receive\social\FriendlistRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\supportdesk\FaqBodyRequestPacket.cs" />
|
<Compile Include="packets\receive\supportdesk\FaqBodyRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\supportdesk\FaqListRequestPacket.cs" />
|
<Compile Include="packets\receive\supportdesk\FaqListRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\supportdesk\GMSupportTicketPacket.cs" />
|
<Compile Include="packets\receive\supportdesk\GMSupportTicketPacket.cs" />
|
||||||
<Compile Include="packets\receive\supportdesk\GMTicketIssuesRequestPacket.cs" />
|
<Compile Include="packets\receive\supportdesk\GMTicketIssuesRequestPacket.cs" />
|
||||||
<Compile Include="packets\receive\_0x02ReceivePacket.cs" />
|
<Compile Include="packets\receive\_0x02ReceivePacket.cs" />
|
||||||
<Compile Include="packets\receive\ZoneInCompletePacket.cs" />
|
<Compile Include="packets\receive\ZoneInCompletePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\ActorDoEmotePacket.cs" />
|
<Compile Include="packets\send\actor\ActorDoEmotePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\ActorInstantiatePacket.cs" />
|
<Compile Include="packets\send\actor\ActorInstantiatePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\ActorSpecialGraphicPacket.cs" />
|
<Compile Include="packets\send\actor\ActorSpecialGraphicPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\CommandResult.cs" />
|
<Compile Include="packets\send\actor\battle\CommandResult.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\CommandResultContainer.cs" />
|
<Compile Include="packets\send\actor\battle\CommandResultContainer.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\CommandResultX00Packet.cs" />
|
<Compile Include="packets\send\actor\battle\CommandResultX00Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\CommandResultX18Packet.cs" />
|
<Compile Include="packets\send\actor\battle\CommandResultX18Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\CommandResultX10Packet.cs" />
|
<Compile Include="packets\send\actor\battle\CommandResultX10Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\DeleteAllActorsPacket.cs" />
|
<Compile Include="packets\send\actor\DeleteAllActorsPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetEventStatus.cs" />
|
<Compile Include="packets\send\actor\events\SetEventStatus.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetNoticeEventCondition.cs" />
|
<Compile Include="packets\send\actor\events\SetNoticeEventCondition.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetPushEventConditionWithTriggerBox.cs" />
|
<Compile Include="packets\send\actor\events\SetPushEventConditionWithTriggerBox.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetPushEventConditionWithFan.cs" />
|
<Compile Include="packets\send\actor\events\SetPushEventConditionWithFan.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetEmoteEventCondition.cs" />
|
<Compile Include="packets\send\actor\events\SetEmoteEventCondition.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetTalkEventCondition.cs" />
|
<Compile Include="packets\send\actor\events\SetTalkEventCondition.cs" />
|
||||||
<Compile Include="packets\send\actor\events\SetPushEventConditionWithCircle.cs" />
|
<Compile Include="packets\send\actor\events\SetPushEventConditionWithCircle.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryRemoveX01Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryRemoveX01Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryRemoveX08Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryRemoveX08Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryRemoveX16Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryRemoveX16Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryRemoveX32Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryRemoveX32Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryRemoveX64Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryRemoveX64Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryListX01Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryListX01Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryListX08Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryListX08Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryListX16Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryListX16Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryListX64Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryListX64Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryListX32Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryListX32Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\PlayAnimationOnActorPacket.cs" />
|
<Compile Include="packets\send\actor\PlayAnimationOnActorPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\PlayBGAnimation.cs" />
|
<Compile Include="packets\send\actor\PlayBGAnimation.cs" />
|
||||||
<Compile Include="packets\send\actor\StartCountdownPacket.cs" />
|
<Compile Include="packets\send\actor\StartCountdownPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\_0x132Packet.cs" />
|
<Compile Include="packets\send\actor\_0x132Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorIsZoningPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorIsZoningPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\CommandResultX01Packet.cs" />
|
<Compile Include="packets\send\actor\battle\CommandResultX01Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\LinkedItemListX01Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\LinkedItemListX01Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\LinkedItemListX08Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\LinkedItemListX08Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\LinkedItemListX16Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\LinkedItemListX16Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\LinkedItemListX32Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\LinkedItemListX32Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\LinkedItemListX64Packet.cs" />
|
<Compile Include="packets\send\actor\inventory\LinkedItemListX64Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryBeginChangePacket.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryBeginChangePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryEndChangePacket.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryEndChangePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryItemEndPacket.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryItemEndPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventoryItemPacket.cs" />
|
<Compile Include="packets\send\actor\inventory\InventoryItemPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventorySetBeginPacket.cs" />
|
<Compile Include="packets\send\actor\inventory\InventorySetBeginPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\inventory\InventorySetEndPacket.cs" />
|
<Compile Include="packets\send\actor\inventory\InventorySetEndPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\RemoveActorPacket.cs" />
|
<Compile Include="packets\send\actor\RemoveActorPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorIconPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorIconPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorSubStatePacket.cs" />
|
<Compile Include="packets\send\actor\SetActorSubStatePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorStatusPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorStatusPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorBGPropertiesPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorBGPropertiesPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\_0xFPacket.cs" />
|
<Compile Include="packets\send\actor\_0xFPacket.cs" />
|
||||||
<Compile Include="packets\send\groups\CreateNamedGroup.cs" />
|
<Compile Include="packets\send\groups\CreateNamedGroup.cs" />
|
||||||
<Compile Include="packets\send\groups\CreateNamedGroupMultiple.cs" />
|
<Compile Include="packets\send\groups\CreateNamedGroupMultiple.cs" />
|
||||||
<Compile Include="packets\send\events\EndEventPacket.cs" />
|
<Compile Include="packets\send\events\EndEventPacket.cs" />
|
||||||
<Compile Include="packets\send\events\KickEventPacket.cs" />
|
<Compile Include="packets\send\events\KickEventPacket.cs" />
|
||||||
<Compile Include="packets\send\events\RunEventFunctionPacket.cs" />
|
<Compile Include="packets\send\events\RunEventFunctionPacket.cs" />
|
||||||
<Compile Include="packets\send\GameMessagePacket.cs" />
|
<Compile Include="packets\send\GameMessagePacket.cs" />
|
||||||
<Compile Include="packets\send\groups\DeleteGroupPacket.cs" />
|
<Compile Include="packets\send\groups\DeleteGroupPacket.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupHeaderPacket.cs" />
|
<Compile Include="packets\send\groups\GroupHeaderPacket.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMember.cs" />
|
<Compile Include="packets\send\groups\GroupMember.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMembersBeginPacket.cs" />
|
<Compile Include="packets\send\groups\GroupMembersBeginPacket.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMembersEndPacket.cs" />
|
<Compile Include="packets\send\groups\GroupMembersEndPacket.cs" />
|
||||||
<Compile Include="packets\send\groups\ContentMembersX08Packet.cs" />
|
<Compile Include="packets\send\groups\ContentMembersX08Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMembersX08Packet.cs" />
|
<Compile Include="packets\send\groups\GroupMembersX08Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\ContentMembersX16Packet.cs" />
|
<Compile Include="packets\send\groups\ContentMembersX16Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMembersX16Packet.cs" />
|
<Compile Include="packets\send\groups\GroupMembersX16Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\ContentMembersX32Packet.cs" />
|
<Compile Include="packets\send\groups\ContentMembersX32Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMembersX32Packet.cs" />
|
<Compile Include="packets\send\groups\GroupMembersX32Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\ContentMembersX64Packet.cs" />
|
<Compile Include="packets\send\groups\ContentMembersX64Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\GroupMembersX64Packet.cs" />
|
<Compile Include="packets\send\groups\GroupMembersX64Packet.cs" />
|
||||||
<Compile Include="packets\send\groups\SynchGroupWorkValuesPacket.cs" />
|
<Compile Include="packets\send\groups\SynchGroupWorkValuesPacket.cs" />
|
||||||
<Compile Include="packets\send\player\GenericDataPacket.cs" />
|
<Compile Include="packets\send\player\GenericDataPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SendAchievementRatePacket.cs" />
|
<Compile Include="packets\send\player\SendAchievementRatePacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetCurrentJobPacket.cs" />
|
<Compile Include="packets\send\player\SetCurrentJobPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetCurrentMountGoobbuePacket.cs" />
|
<Compile Include="packets\send\player\SetCurrentMountGoobbuePacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetCurrentMountChocoboPacket.cs" />
|
<Compile Include="packets\send\player\SetCurrentMountChocoboPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetGrandCompanyPacket.cs" />
|
<Compile Include="packets\send\player\SetGrandCompanyPacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorNamePacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorNamePacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorPropetyPacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorPropetyPacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorSpeedPacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorSpeedPacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorStatePacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorStatePacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorTargetAnimatedPacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorTargetAnimatedPacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorTargetPacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorTargetPacket.cs" />
|
||||||
<Compile Include="packets\send\Actor\SetActorStatusAllPacket.cs" />
|
<Compile Include="packets\send\Actor\SetActorStatusAllPacket.cs" />
|
||||||
<Compile Include="packets\send\login\0x2Packet.cs" />
|
<Compile Include="packets\send\login\0x2Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\AddActorPacket.cs" />
|
<Compile Include="packets\send\actor\AddActorPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\MoveActorToPositionPacket.cs" />
|
<Compile Include="packets\send\actor\MoveActorToPositionPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorAppearancePacket.cs" />
|
<Compile Include="packets\send\actor\SetActorAppearancePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorPositionPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorPositionPacket.cs" />
|
||||||
<Compile Include="packets\send\LogoutPacket.cs" />
|
<Compile Include="packets\send\LogoutPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetCompletedAchievementsPacket.cs" />
|
<Compile Include="packets\send\player\SetCompletedAchievementsPacket.cs" />
|
||||||
<Compile Include="packets\send\player\AchievementEarnedPacket.cs" />
|
<Compile Include="packets\send\player\AchievementEarnedPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetCutsceneBookPacket.cs" />
|
<Compile Include="packets\send\player\SetCutsceneBookPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetAchievementPointsPacket.cs" />
|
<Compile Include="packets\send\player\SetAchievementPointsPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetChocoboNamePacket.cs" />
|
<Compile Include="packets\send\player\SetChocoboNamePacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetHasGoobbuePacket.cs" />
|
<Compile Include="packets\send\player\SetHasGoobbuePacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetHasChocoboPacket.cs" />
|
<Compile Include="packets\send\player\SetHasChocoboPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetLatestAchievementsPacket.cs" />
|
<Compile Include="packets\send\player\SetLatestAchievementsPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetPlayerItemStoragePacket.cs" />
|
<Compile Include="packets\send\player\SetPlayerItemStoragePacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetPlayerDreamPacket.cs" />
|
<Compile Include="packets\send\player\SetPlayerDreamPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetPlayerTitlePacket.cs" />
|
<Compile Include="packets\send\player\SetPlayerTitlePacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetSpecialEventWorkPacket.cs" />
|
<Compile Include="packets\send\player\SetSpecialEventWorkPacket.cs" />
|
||||||
<Compile Include="packets\send\PongPacket.cs" />
|
<Compile Include="packets\send\PongPacket.cs" />
|
||||||
<Compile Include="packets\send\QuitPacket.cs" />
|
<Compile Include="packets\send\QuitPacket.cs" />
|
||||||
<Compile Include="packets\send\recruitment\CurrentRecruitmentDetailsPacket.cs" />
|
<Compile Include="packets\send\recruitment\CurrentRecruitmentDetailsPacket.cs" />
|
||||||
<Compile Include="packets\send\recruitment\EndRecruitmentPacket.cs" />
|
<Compile Include="packets\send\recruitment\EndRecruitmentPacket.cs" />
|
||||||
<Compile Include="packets\send\recruitment\RecruiterStatePacket.cs" />
|
<Compile Include="packets\send\recruitment\RecruiterStatePacket.cs" />
|
||||||
<Compile Include="packets\send\recruitment\StartRecruitingResponse.cs" />
|
<Compile Include="packets\send\recruitment\StartRecruitingResponse.cs" />
|
||||||
<Compile Include="packets\send\search\ItemSearchClosePacket.cs" />
|
<Compile Include="packets\send\search\ItemSearchClosePacket.cs" />
|
||||||
<Compile Include="packets\send\search\PlayerSearchResult.cs" />
|
<Compile Include="packets\send\search\PlayerSearchResult.cs" />
|
||||||
<Compile Include="packets\send\search\ItemSearchResult.cs" />
|
<Compile Include="packets\send\search\ItemSearchResult.cs" />
|
||||||
<Compile Include="packets\send\search\PlayerSearchCommentResultPacket.cs" />
|
<Compile Include="packets\send\search\PlayerSearchCommentResultPacket.cs" />
|
||||||
<Compile Include="packets\send\search\PlayerSearchInfoResultPacket.cs" />
|
<Compile Include="packets\send\search\PlayerSearchInfoResultPacket.cs" />
|
||||||
<Compile Include="packets\send\search\ItemSearchResultsEndPacket.cs" />
|
<Compile Include="packets\send\search\ItemSearchResultsEndPacket.cs" />
|
||||||
<Compile Include="packets\send\search\ItemSearchResultsBodyPacket.cs" />
|
<Compile Include="packets\send\search\ItemSearchResultsBodyPacket.cs" />
|
||||||
<Compile Include="packets\send\search\ItemSearchResultsBeginPacket.cs" />
|
<Compile Include="packets\send\search\ItemSearchResultsBeginPacket.cs" />
|
||||||
<Compile Include="packets\send\search\RetainerResultBodyPacket.cs" />
|
<Compile Include="packets\send\search\RetainerResultBodyPacket.cs" />
|
||||||
<Compile Include="packets\send\search\RetainerResultEndPacket.cs" />
|
<Compile Include="packets\send\search\RetainerResultEndPacket.cs" />
|
||||||
<Compile Include="packets\send\search\RetainerResultUpdatePacket.cs" />
|
<Compile Include="packets\send\search\RetainerResultUpdatePacket.cs" />
|
||||||
<Compile Include="packets\send\search\RetainerSearchHistoryPacket.cs" />
|
<Compile Include="packets\send\search\RetainerSearchHistoryPacket.cs" />
|
||||||
<Compile Include="packets\send\search\RetainerSearchHistoryResult.cs" />
|
<Compile Include="packets\send\search\RetainerSearchHistoryResult.cs" />
|
||||||
<Compile Include="packets\send\search\RetainerSearchResult.cs" />
|
<Compile Include="packets\send\search\RetainerSearchResult.cs" />
|
||||||
<Compile Include="packets\send\SendMessagePacket.cs" />
|
<Compile Include="packets\send\SendMessagePacket.cs" />
|
||||||
<Compile Include="packets\send\SetMapPacket.cs" />
|
<Compile Include="packets\send\SetMapPacket.cs" />
|
||||||
<Compile Include="packets\send\SetMusicPacket.cs" />
|
<Compile Include="packets\send\SetMusicPacket.cs" />
|
||||||
<Compile Include="packets\send\SetWeatherPacket.cs" />
|
<Compile Include="packets\send\SetWeatherPacket.cs" />
|
||||||
<Compile Include="packets\send\social\BlacklistAddedPacket.cs" />
|
<Compile Include="packets\send\social\BlacklistAddedPacket.cs" />
|
||||||
<Compile Include="packets\send\social\BlacklistRemovedPacket.cs" />
|
<Compile Include="packets\send\social\BlacklistRemovedPacket.cs" />
|
||||||
<Compile Include="packets\send\social\FriendlistAddedPacket.cs" />
|
<Compile Include="packets\send\social\FriendlistAddedPacket.cs" />
|
||||||
<Compile Include="packets\send\social\FriendlistRemovedPacket.cs" />
|
<Compile Include="packets\send\social\FriendlistRemovedPacket.cs" />
|
||||||
<Compile Include="packets\send\social\FriendStatusPacket.cs" />
|
<Compile Include="packets\send\social\FriendStatusPacket.cs" />
|
||||||
<Compile Include="packets\send\social\SendFriendlistPacket.cs" />
|
<Compile Include="packets\send\social\SendFriendlistPacket.cs" />
|
||||||
<Compile Include="packets\send\social\SendBlacklistPacket.cs" />
|
<Compile Include="packets\send\social\SendBlacklistPacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\IssueListResponsePacket.cs" />
|
<Compile Include="packets\send\supportdesk\IssueListResponsePacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\StartGMTicketPacket.cs" />
|
<Compile Include="packets\send\supportdesk\StartGMTicketPacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\EndGMTicketPacket.cs" />
|
<Compile Include="packets\send\supportdesk\EndGMTicketPacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\FaqBodyResponsePacket.cs" />
|
<Compile Include="packets\send\supportdesk\FaqBodyResponsePacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\FaqListResponsePacket.cs" />
|
<Compile Include="packets\send\supportdesk\FaqListResponsePacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\GMTicketPacket.cs" />
|
<Compile Include="packets\send\supportdesk\GMTicketPacket.cs" />
|
||||||
<Compile Include="packets\send\supportdesk\GMTicketSentResponsePacket.cs" />
|
<Compile Include="packets\send\supportdesk\GMTicketSentResponsePacket.cs" />
|
||||||
<Compile Include="packets\send\_0x02Packet.cs" />
|
<Compile Include="packets\send\_0x02Packet.cs" />
|
||||||
<Compile Include="packets\send\SetDalamudPacket.cs" />
|
<Compile Include="packets\send\SetDalamudPacket.cs" />
|
||||||
<Compile Include="packets\send\_0xE2Packet.cs" />
|
<Compile Include="packets\send\_0xE2Packet.cs" />
|
||||||
<Compile Include="packets\receive\PingPacket.cs" />
|
<Compile Include="packets\receive\PingPacket.cs" />
|
||||||
<Compile Include="packets\receive\UpdatePlayerPositionPacket.cs" />
|
<Compile Include="packets\receive\UpdatePlayerPositionPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Receive\ErrorPacket.cs" />
|
<Compile Include="packets\WorldPackets\Receive\ErrorPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Receive\PartySyncPacket.cs" />
|
<Compile Include="packets\WorldPackets\Receive\PartySyncPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Receive\LinkshellResultPacket.cs" />
|
<Compile Include="packets\WorldPackets\Receive\LinkshellResultPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Receive\SessionEndPacket.cs" />
|
<Compile Include="packets\WorldPackets\Receive\SessionEndPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Receive\SessionBeginPacket.cs" />
|
<Compile Include="packets\WorldPackets\Receive\SessionBeginPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\CreateLinkshellPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\CreateLinkshellPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\DeleteLinkshellPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\DeleteLinkshellPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\LinkshellInviteCancelPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\LinkshellInviteCancelPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\LinkshellChangePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\LinkshellChangePacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\LinkshellRankChangePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\LinkshellRankChangePacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\ModifyLinkshellPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\ModifyLinkshellPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\GroupInviteResultPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\GroupInviteResultPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\LinkshellInvitePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\LinkshellInvitePacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\PartyInvitePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\PartyInvitePacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\LinkshellLeavePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\LinkshellLeavePacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\PartyLeavePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\PartyLeavePacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\Group\PartyModifyPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\Group\PartyModifyPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\SessionBeginConfirmPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\SessionBeginConfirmPacket.cs" />
|
||||||
<Compile Include="packets\WorldPackets\Send\SessionEndConfirmPacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\SessionEndConfirmPacket.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Server.cs" />
|
<Compile Include="Server.cs" />
|
||||||
<Compile Include="utils\ActorPropertyPacketUtil.cs" />
|
<Compile Include="utils\ActorPropertyPacketUtil.cs" />
|
||||||
<Compile Include="utils\CharacterUtils.cs" />
|
<Compile Include="utils\CharacterUtils.cs" />
|
||||||
<Compile Include="utils\NavmeshUtils.cs" />
|
<Compile Include="utils\NavmeshUtils.cs" />
|
||||||
<Compile Include="utils\SQLGeneration.cs" />
|
<Compile Include="utils\SQLGeneration.cs" />
|
||||||
<Compile Include="actors\area\Area.cs" />
|
<Compile Include="actors\area\Area.cs" />
|
||||||
<Compile Include="WorldManager.cs" />
|
<Compile Include="WorldManager.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
<Content Include="NLog.config">
|
<Content Include="NLog.config">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
<None Include="NLog.xsd">
|
<None Include="NLog.xsd">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<Compile Include="packets\WorldPackets\Send\WorldRequestZoneChangePacket.cs" />
|
<Compile Include="packets\WorldPackets\Send\WorldRequestZoneChangePacket.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="navmesh\" />
|
<Folder Include="navmesh\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.0.0-beta3\build\Microsoft.Net.Compilers.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
</Target>
|
</Target>
|
||||||
-->
|
-->
|
||||||
</Project>
|
</Project>
|
|
@ -1,64 +1,64 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
|
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
|
||||||
autoReload="true"
|
autoReload="true"
|
||||||
throwExceptions="false"
|
throwExceptions="false"
|
||||||
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
|
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
|
||||||
|
|
||||||
|
|
||||||
<!-- optional, add some variabeles
|
<!-- optional, add some variabeles
|
||||||
https://github.com/nlog/NLog/wiki/Configuration-file#variables
|
https://github.com/nlog/NLog/wiki/Configuration-file#variables
|
||||||
-->
|
-->
|
||||||
<variable name="myvar" value="myvalue" />
|
<variable name="myvar" value="myvalue" />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
See https://github.com/nlog/nlog/wiki/Configuration-file
|
See https://github.com/nlog/nlog/wiki/Configuration-file
|
||||||
for information on customizing logging rules and outputs.
|
for information on customizing logging rules and outputs.
|
||||||
-->
|
-->
|
||||||
<targets async="true">
|
<targets async="true">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
add your targets here
|
add your targets here
|
||||||
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
|
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
|
||||||
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
|
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Write events to a file with the date in the filename.
|
Write events to a file with the date in the filename.
|
||||||
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
|
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
|
||||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||||
-->
|
-->
|
||||||
<!--<target xsi:type="ColoredConsole" name="console" layout="[${longdate}] [${uppercase:${level}}] ${message}" />-->
|
<!--<target xsi:type="ColoredConsole" name="console" layout="[${longdate}] [${uppercase:${level}}] ${message}" />-->
|
||||||
<target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}/map.log"
|
<target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}/map.log"
|
||||||
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
||||||
<target xsi:type="ColoredConsole" name="console"
|
<target xsi:type="ColoredConsole" name="console"
|
||||||
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
|
||||||
<target xsi:type="ColoredConsole" name="packets"
|
<target xsi:type="ColoredConsole" name="packets"
|
||||||
layout="${message}">
|
layout="${message}">
|
||||||
<highlight-row
|
<highlight-row
|
||||||
condition="equals('${logger}', 'FFXIVClassic.Common.BasePacket') and equals('${event-context:item=color}', '6')"
|
condition="equals('${logger}', 'FFXIVClassic.Common.BasePacket') and equals('${event-context:item=color}', '6')"
|
||||||
backgroundColor="DarkYellow" foregroundColor="NoChange" />
|
backgroundColor="DarkYellow" foregroundColor="NoChange" />
|
||||||
<highlight-row
|
<highlight-row
|
||||||
condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '4')"
|
condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '4')"
|
||||||
backgroundColor="DarkRed" foregroundColor="NoChange" />
|
backgroundColor="DarkRed" foregroundColor="NoChange" />
|
||||||
<highlight-row
|
<highlight-row
|
||||||
condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '5')"
|
condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '5')"
|
||||||
backgroundColor="DarkMagenta" foregroundColor="NoChange" />
|
backgroundColor="DarkMagenta" foregroundColor="NoChange" />
|
||||||
</target>
|
</target>
|
||||||
</targets>
|
</targets>
|
||||||
|
|
||||||
<rules>
|
<rules>
|
||||||
<!-- add your logging rules here -->
|
<!-- add your logging rules here -->
|
||||||
<logger name='*' minlevel='Trace' writeTo='file' />
|
<logger name='*' minlevel='Trace' writeTo='file' />
|
||||||
<logger name='FFXIVClassic_Map_Server.Program' minlevel='Trace' writeTo='console' />
|
<logger name='FFXIVClassic_Map_Server.Program' minlevel='Trace' writeTo='console' />
|
||||||
<logger name='FFXIVClassic_Map_Server.lua.*' minlevel='Trace' writeTo='console' />
|
<logger name='FFXIVClassic_Map_Server.lua.*' minlevel='Trace' writeTo='console' />
|
||||||
<logger name='FFXIVClassic_Map_Server.packets.*' minlevel='Debug' writeTo='packets' />
|
<logger name='FFXIVClassic_Map_Server.packets.*' minlevel='Debug' writeTo='packets' />
|
||||||
<logger name='FFXIVClassic.Common.*' minlevel='Debug' writeTo='packets' />
|
<logger name='FFXIVClassic.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"
|
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" />
|
<logger name="*" minlevel="Debug" writeTo="f" />
|
||||||
-->
|
-->
|
||||||
</rules>
|
</rules>
|
||||||
</nlog>
|
</nlog>
|
File diff suppressed because it is too large
Load diff
|
@ -1,394 +1,394 @@
|
||||||
/*
|
/*
|
||||||
===========================================================================
|
===========================================================================
|
||||||
Copyright (C) 2015-2019 Project Meteor Dev Team
|
Copyright (C) 2015-2019 Project Meteor Dev Team
|
||||||
|
|
||||||
This file is part of Project Meteor Server.
|
This file is part of Project Meteor Server.
|
||||||
|
|
||||||
Project Meteor Server is free software: you can redistribute it and/or modify
|
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
|
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
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Project Meteor Server is distributed in the hope that it will be useful,
|
Project Meteor Server is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU Affero General Public License for more details.
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
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/>.
|
along with Project Meteor Server. If not, see <https:www.gnu.org/licenses/>.
|
||||||
===========================================================================
|
===========================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using FFXIVClassic_Map_Server.dataobjects;
|
using FFXIVClassic_Map_Server.dataobjects;
|
||||||
using FFXIVClassic_Map_Server.packets.receive;
|
using FFXIVClassic_Map_Server.packets.receive;
|
||||||
using FFXIVClassic_Map_Server.packets.send;
|
using FFXIVClassic_Map_Server.packets.send;
|
||||||
using FFXIVClassic_Map_Server.packets.send.login;
|
using FFXIVClassic_Map_Server.packets.send.login;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
using FFXIVClassic_Map_Server.packets.send.actor;
|
||||||
using FFXIVClassic_Map_Server.packets.send.supportdesk;
|
using FFXIVClassic_Map_Server.packets.send.supportdesk;
|
||||||
using FFXIVClassic_Map_Server.packets.receive.social;
|
using FFXIVClassic_Map_Server.packets.receive.social;
|
||||||
using FFXIVClassic_Map_Server.packets.send.social;
|
using FFXIVClassic_Map_Server.packets.send.social;
|
||||||
using FFXIVClassic_Map_Server.packets.receive.supportdesk;
|
using FFXIVClassic_Map_Server.packets.receive.supportdesk;
|
||||||
using FFXIVClassic_Map_Server.packets.receive.recruitment;
|
using FFXIVClassic_Map_Server.packets.receive.recruitment;
|
||||||
using FFXIVClassic_Map_Server.packets.send.recruitment;
|
using FFXIVClassic_Map_Server.packets.send.recruitment;
|
||||||
using FFXIVClassic_Map_Server.packets.receive.events;
|
using FFXIVClassic_Map_Server.packets.receive.events;
|
||||||
using FFXIVClassic_Map_Server.lua;
|
using FFXIVClassic_Map_Server.lua;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
||||||
using FFXIVClassic_Map_Server.packets.WorldPackets.Send;
|
using FFXIVClassic_Map_Server.packets.WorldPackets.Send;
|
||||||
using FFXIVClassic_Map_Server.packets.WorldPackets.Receive;
|
using FFXIVClassic_Map_Server.packets.WorldPackets.Receive;
|
||||||
using FFXIVClassic_Map_Server.actors.director;
|
using FFXIVClassic_Map_Server.actors.director;
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server
|
namespace FFXIVClassic_Map_Server
|
||||||
{
|
{
|
||||||
class PacketProcessor
|
class PacketProcessor
|
||||||
{
|
{
|
||||||
Server mServer;
|
Server mServer;
|
||||||
|
|
||||||
public PacketProcessor(Server server)
|
public PacketProcessor(Server server)
|
||||||
{
|
{
|
||||||
mServer = server;
|
mServer = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ProcessPacket(ZoneConnection client, SubPacket subpacket)
|
public void ProcessPacket(ZoneConnection client, SubPacket subpacket)
|
||||||
{
|
{
|
||||||
Session session = mServer.GetSession(subpacket.header.sourceId);
|
Session session = mServer.GetSession(subpacket.header.sourceId);
|
||||||
|
|
||||||
if (session == null && subpacket.gameMessage.opcode != 0x1000)
|
if (session == null && subpacket.gameMessage.opcode != 0x1000)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//Normal Game Opcode
|
//Normal Game Opcode
|
||||||
switch (subpacket.gameMessage.opcode)
|
switch (subpacket.gameMessage.opcode)
|
||||||
{
|
{
|
||||||
//World Server - Error
|
//World Server - Error
|
||||||
case 0x100A:
|
case 0x100A:
|
||||||
ErrorPacket worldError = new ErrorPacket(subpacket.data);
|
ErrorPacket worldError = new ErrorPacket(subpacket.data);
|
||||||
switch (worldError.errorCode)
|
switch (worldError.errorCode)
|
||||||
{
|
{
|
||||||
case 0x01:
|
case 0x01:
|
||||||
session.GetActor().SendGameMessage(Server.GetWorldManager().GetActor(), 60005, 0x20);
|
session.GetActor().SendGameMessage(Server.GetWorldManager().GetActor(), 60005, 0x20);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//World Server - Session Begin
|
//World Server - Session Begin
|
||||||
case 0x1000:
|
case 0x1000:
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
|
|
||||||
SessionBeginPacket beginSessionPacket = new SessionBeginPacket(subpacket.data);
|
SessionBeginPacket beginSessionPacket = new SessionBeginPacket(subpacket.data);
|
||||||
|
|
||||||
session = mServer.AddSession(subpacket.header.sourceId);
|
session = mServer.AddSession(subpacket.header.sourceId);
|
||||||
|
|
||||||
if (!beginSessionPacket.isLogin)
|
if (!beginSessionPacket.isLogin)
|
||||||
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
|
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
|
||||||
|
|
||||||
Program.Log.Info("{0} has been added to the session list.", session.GetActor().customDisplayName);
|
Program.Log.Info("{0} has been added to the session list.", session.GetActor().customDisplayName);
|
||||||
|
|
||||||
client.FlushQueuedSendPackets();
|
client.FlushQueuedSendPackets();
|
||||||
break;
|
break;
|
||||||
//World Server - Session End
|
//World Server - Session End
|
||||||
case 0x1001:
|
case 0x1001:
|
||||||
SessionEndPacket endSessionPacket = new SessionEndPacket(subpacket.data);
|
SessionEndPacket endSessionPacket = new SessionEndPacket(subpacket.data);
|
||||||
|
|
||||||
if (endSessionPacket.destinationZoneId == 0)
|
if (endSessionPacket.destinationZoneId == 0)
|
||||||
session.GetActor().CleanupAndSave();
|
session.GetActor().CleanupAndSave();
|
||||||
else
|
else
|
||||||
session.GetActor().CleanupAndSave(endSessionPacket.destinationZoneId, endSessionPacket.destinationSpawnType, endSessionPacket.destinationX, endSessionPacket.destinationY, endSessionPacket.destinationZ, endSessionPacket.destinationRot);
|
session.GetActor().CleanupAndSave(endSessionPacket.destinationZoneId, endSessionPacket.destinationSpawnType, endSessionPacket.destinationX, endSessionPacket.destinationY, endSessionPacket.destinationZ, endSessionPacket.destinationRot);
|
||||||
|
|
||||||
Server.GetServer().RemoveSession(session.id);
|
Server.GetServer().RemoveSession(session.id);
|
||||||
Program.Log.Info("{0} has been removed from the session list.", session.GetActor().customDisplayName);
|
Program.Log.Info("{0} has been removed from the session list.", session.GetActor().customDisplayName);
|
||||||
|
|
||||||
session.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId));
|
session.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId));
|
||||||
client.FlushQueuedSendPackets();
|
client.FlushQueuedSendPackets();
|
||||||
break;
|
break;
|
||||||
//World Server - Party Synch
|
//World Server - Party Synch
|
||||||
case 0x1020:
|
case 0x1020:
|
||||||
PartySyncPacket partySyncPacket = new PartySyncPacket(subpacket.data);
|
PartySyncPacket partySyncPacket = new PartySyncPacket(subpacket.data);
|
||||||
Server.GetWorldManager().PartyMemberListRecieved(partySyncPacket);
|
Server.GetWorldManager().PartyMemberListRecieved(partySyncPacket);
|
||||||
break;
|
break;
|
||||||
//World Server - Linkshell Creation Result
|
//World Server - Linkshell Creation Result
|
||||||
case 0x1025:
|
case 0x1025:
|
||||||
LinkshellResultPacket lsResult = new LinkshellResultPacket(subpacket.data);
|
LinkshellResultPacket lsResult = new LinkshellResultPacket(subpacket.data);
|
||||||
LuaEngine.GetInstance().OnSignal("ls_result", lsResult.resultCode);
|
LuaEngine.GetInstance().OnSignal("ls_result", lsResult.resultCode);
|
||||||
break;
|
break;
|
||||||
//Ping
|
//Ping
|
||||||
case 0x0001:
|
case 0x0001:
|
||||||
//subpacket.DebugPrintSubPacket();
|
//subpacket.DebugPrintSubPacket();
|
||||||
PingPacket pingPacket = new PingPacket(subpacket.data);
|
PingPacket pingPacket = new PingPacket(subpacket.data);
|
||||||
session.QueuePacket(PongPacket.BuildPacket(session.id, pingPacket.time));
|
session.QueuePacket(PongPacket.BuildPacket(session.id, pingPacket.time));
|
||||||
session.Ping();
|
session.Ping();
|
||||||
break;
|
break;
|
||||||
//Unknown
|
//Unknown
|
||||||
case 0x0002:
|
case 0x0002:
|
||||||
|
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
session.QueuePacket(_0x2Packet.BuildPacket(session.id));
|
session.QueuePacket(_0x2Packet.BuildPacket(session.id));
|
||||||
client.FlushQueuedSendPackets();
|
client.FlushQueuedSendPackets();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
//Chat Received
|
//Chat Received
|
||||||
case 0x0003:
|
case 0x0003:
|
||||||
ChatMessagePacket chatMessage = new ChatMessagePacket(subpacket.data);
|
ChatMessagePacket chatMessage = new ChatMessagePacket(subpacket.data);
|
||||||
//Program.Log.Info("Got type-{5} message: {0} @ {1}, {2}, {3}, Rot: {4}", chatMessage.message, chatMessage.posX, chatMessage.posY, chatMessage.posZ, chatMessage.posRot, chatMessage.logType);
|
//Program.Log.Info("Got type-{5} message: {0} @ {1}, {2}, {3}, Rot: {4}", chatMessage.message, chatMessage.posX, chatMessage.posY, chatMessage.posZ, chatMessage.posRot, chatMessage.logType);
|
||||||
|
|
||||||
if (chatMessage.message.StartsWith("!"))
|
if (chatMessage.message.StartsWith("!"))
|
||||||
{
|
{
|
||||||
if (Server.GetCommandProcessor().DoCommand(chatMessage.message, session))
|
if (Server.GetCommandProcessor().DoCommand(chatMessage.message, session))
|
||||||
return; ;
|
return; ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SAY || chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SHOUT)
|
if (chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SAY || chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SHOUT)
|
||||||
session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false);
|
session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
//Langauge Code (Client safe to send packets to now)
|
//Langauge Code (Client safe to send packets to now)
|
||||||
case 0x0006:
|
case 0x0006:
|
||||||
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data);
|
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data);
|
||||||
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
|
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
|
||||||
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1);
|
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1);
|
||||||
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onLogin", true);
|
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onLogin", true);
|
||||||
session.languageCode = langCode.languageCode;
|
session.languageCode = langCode.languageCode;
|
||||||
break;
|
break;
|
||||||
//Unknown - Happens a lot at login, then once every time player zones
|
//Unknown - Happens a lot at login, then once every time player zones
|
||||||
case 0x0007:
|
case 0x0007:
|
||||||
//subpacket.DebugPrintSubPacket();
|
//subpacket.DebugPrintSubPacket();
|
||||||
ZoneInCompletePacket zoneInCompletePacket = new ZoneInCompletePacket(subpacket.data);
|
ZoneInCompletePacket zoneInCompletePacket = new ZoneInCompletePacket(subpacket.data);
|
||||||
break;
|
break;
|
||||||
//Update Position
|
//Update Position
|
||||||
case 0x00CA:
|
case 0x00CA:
|
||||||
//Update Position
|
//Update Position
|
||||||
UpdatePlayerPositionPacket posUpdate = new UpdatePlayerPositionPacket(subpacket.data);
|
UpdatePlayerPositionPacket posUpdate = new UpdatePlayerPositionPacket(subpacket.data);
|
||||||
session.UpdatePlayerActorPosition(posUpdate.x, posUpdate.y, posUpdate.z, posUpdate.rot, posUpdate.moveState);
|
session.UpdatePlayerActorPosition(posUpdate.x, posUpdate.y, posUpdate.z, posUpdate.rot, posUpdate.moveState);
|
||||||
session.GetActor().SendInstanceUpdate();
|
session.GetActor().SendInstanceUpdate();
|
||||||
|
|
||||||
if (session.GetActor().IsInZoneChange())
|
if (session.GetActor().IsInZoneChange())
|
||||||
session.GetActor().SetZoneChanging(false);
|
session.GetActor().SetZoneChanging(false);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
//Set Target
|
//Set Target
|
||||||
case 0x00CD:
|
case 0x00CD:
|
||||||
//subpacket.DebugPrintSubPacket();
|
//subpacket.DebugPrintSubPacket();
|
||||||
|
|
||||||
SetTargetPacket setTarget = new SetTargetPacket(subpacket.data);
|
SetTargetPacket setTarget = new SetTargetPacket(subpacket.data);
|
||||||
session.GetActor().currentTarget = setTarget.actorID;
|
session.GetActor().currentTarget = setTarget.actorID;
|
||||||
session.GetActor().isAutoAttackEnabled = setTarget.attackTarget != 0xE0000000;
|
session.GetActor().isAutoAttackEnabled = setTarget.attackTarget != 0xE0000000;
|
||||||
session.GetActor().BroadcastPacket(SetActorTargetAnimatedPacket.BuildPacket(session.id, setTarget.actorID), true);
|
session.GetActor().BroadcastPacket(SetActorTargetAnimatedPacket.BuildPacket(session.id, setTarget.actorID), true);
|
||||||
break;
|
break;
|
||||||
//Lock Target
|
//Lock Target
|
||||||
case 0x00CC:
|
case 0x00CC:
|
||||||
LockTargetPacket lockTarget = new LockTargetPacket(subpacket.data);
|
LockTargetPacket lockTarget = new LockTargetPacket(subpacket.data);
|
||||||
session.GetActor().currentLockedTarget = lockTarget.actorID;
|
session.GetActor().currentLockedTarget = lockTarget.actorID;
|
||||||
break;
|
break;
|
||||||
//Start Event
|
//Start Event
|
||||||
case 0x012D:
|
case 0x012D:
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
EventStartPacket eventStart = new EventStartPacket(subpacket.data);
|
EventStartPacket eventStart = new EventStartPacket(subpacket.data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (eventStart.error != null)
|
if (eventStart.error != null)
|
||||||
{
|
{
|
||||||
player.errorMessage += eventStart.error;
|
player.errorMessage += eventStart.error;
|
||||||
|
|
||||||
if (eventStart.errorIndex == eventStart.errorNum - 1)
|
if (eventStart.errorIndex == eventStart.errorNum - 1)
|
||||||
Program.Log.Error("\n"+player.errorMessage);
|
Program.Log.Error("\n"+player.errorMessage);
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Actor ownerActor = Server.GetStaticActors(eventStart.scriptOwnerActorID);
|
Actor ownerActor = Server.GetStaticActors(eventStart.scriptOwnerActorID);
|
||||||
|
|
||||||
if (ownerActor == null)
|
if (ownerActor == null)
|
||||||
{
|
{
|
||||||
//Is it your retainer?
|
//Is it your retainer?
|
||||||
if (session.GetActor().currentSpawnedRetainer != null && session.GetActor().currentSpawnedRetainer.actorId == eventStart.scriptOwnerActorID)
|
if (session.GetActor().currentSpawnedRetainer != null && session.GetActor().currentSpawnedRetainer.actorId == eventStart.scriptOwnerActorID)
|
||||||
ownerActor = session.GetActor().currentSpawnedRetainer;
|
ownerActor = session.GetActor().currentSpawnedRetainer;
|
||||||
//Is it a instance actor?
|
//Is it a instance actor?
|
||||||
if (ownerActor == null)
|
if (ownerActor == null)
|
||||||
ownerActor = session.GetActor().zone.FindActorInArea(eventStart.scriptOwnerActorID);
|
ownerActor = session.GetActor().zone.FindActorInArea(eventStart.scriptOwnerActorID);
|
||||||
if (ownerActor == null)
|
if (ownerActor == null)
|
||||||
{
|
{
|
||||||
//Is it a Director?
|
//Is it a Director?
|
||||||
Director director = session.GetActor().GetDirector(eventStart.scriptOwnerActorID);
|
Director director = session.GetActor().GetDirector(eventStart.scriptOwnerActorID);
|
||||||
if (director != null)
|
if (director != null)
|
||||||
ownerActor = director;
|
ownerActor = director;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Program.Log.Debug("\n===Event START===\nCould not find actor 0x{0:X} for event started by caller: 0x{1:X}\nEvent Starter: {2}\nParams: {3}", eventStart.actorID, eventStart.scriptOwnerActorID, eventStart.triggerName, LuaUtils.DumpParams(eventStart.luaParams));
|
Program.Log.Debug("\n===Event START===\nCould not find actor 0x{0:X} for event started by caller: 0x{1:X}\nEvent Starter: {2}\nParams: {3}", eventStart.actorID, eventStart.scriptOwnerActorID, eventStart.triggerName, LuaUtils.DumpParams(eventStart.luaParams));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
session.GetActor().StartEvent(ownerActor, eventStart);
|
session.GetActor().StartEvent(ownerActor, eventStart);
|
||||||
|
|
||||||
Program.Log.Debug("\n===Event START===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nEvent Starter: {4}\nParams: {5}", eventStart.actorID, eventStart.scriptOwnerActorID, eventStart.val1, eventStart.val2, eventStart.triggerName, LuaUtils.DumpParams(eventStart.luaParams));
|
Program.Log.Debug("\n===Event START===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nEvent Starter: {4}\nParams: {5}", eventStart.actorID, eventStart.scriptOwnerActorID, eventStart.val1, eventStart.val2, eventStart.triggerName, LuaUtils.DumpParams(eventStart.luaParams));
|
||||||
break;
|
break;
|
||||||
//Unknown, happens at npc spawn and cutscene play????
|
//Unknown, happens at npc spawn and cutscene play????
|
||||||
case 0x00CE:
|
case 0x00CE:
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
break;
|
break;
|
||||||
//Countdown requested
|
//Countdown requested
|
||||||
case 0x00CF:
|
case 0x00CF:
|
||||||
CountdownRequestPacket countdownPacket = new CountdownRequestPacket(subpacket.data);
|
CountdownRequestPacket countdownPacket = new CountdownRequestPacket(subpacket.data);
|
||||||
session.GetActor().BroadcastCountdown(countdownPacket.countdownLength, countdownPacket.syncTime);
|
session.GetActor().BroadcastCountdown(countdownPacket.countdownLength, countdownPacket.syncTime);
|
||||||
break;
|
break;
|
||||||
//Event Result
|
//Event Result
|
||||||
case 0x012E:
|
case 0x012E:
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
EventUpdatePacket eventUpdate = new EventUpdatePacket(subpacket.data);
|
EventUpdatePacket eventUpdate = new EventUpdatePacket(subpacket.data);
|
||||||
Program.Log.Debug("\n===Event UPDATE===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nStep: 0x{4:X}\nParams: {5}", eventUpdate.actorID, eventUpdate.scriptOwnerActorID, eventUpdate.val1, eventUpdate.val2, eventUpdate.step, LuaUtils.DumpParams(eventUpdate.luaParams));
|
Program.Log.Debug("\n===Event UPDATE===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nStep: 0x{4:X}\nParams: {5}", eventUpdate.actorID, eventUpdate.scriptOwnerActorID, eventUpdate.val1, eventUpdate.val2, eventUpdate.step, LuaUtils.DumpParams(eventUpdate.luaParams));
|
||||||
/*
|
/*
|
||||||
//Is it a static actor? If not look in the player's instance
|
//Is it a static actor? If not look in the player's instance
|
||||||
Actor updateOwnerActor = Server.GetStaticActors(session.GetActor().currentEventOwner);
|
Actor updateOwnerActor = Server.GetStaticActors(session.GetActor().currentEventOwner);
|
||||||
if (updateOwnerActor == null)
|
if (updateOwnerActor == null)
|
||||||
{
|
{
|
||||||
updateOwnerActor = Server.GetWorldManager().GetActorInWorld(session.GetActor().currentEventOwner);
|
updateOwnerActor = Server.GetWorldManager().GetActorInWorld(session.GetActor().currentEventOwner);
|
||||||
|
|
||||||
if (session.GetActor().currentDirector != null && session.GetActor().currentEventOwner == session.GetActor().currentDirector.actorId)
|
if (session.GetActor().currentDirector != null && session.GetActor().currentEventOwner == session.GetActor().currentDirector.actorId)
|
||||||
updateOwnerActor = session.GetActor().currentDirector;
|
updateOwnerActor = session.GetActor().currentDirector;
|
||||||
|
|
||||||
if (updateOwnerActor == null)
|
if (updateOwnerActor == null)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
session.GetActor().UpdateEvent(eventUpdate);
|
session.GetActor().UpdateEvent(eventUpdate);
|
||||||
|
|
||||||
//LuaEngine.DoActorOnEventUpdated(session.GetActor(), updateOwnerActor, eventUpdate);
|
//LuaEngine.DoActorOnEventUpdated(session.GetActor(), updateOwnerActor, eventUpdate);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 0x012F:
|
case 0x012F:
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
ParameterDataRequestPacket paramRequest = new ParameterDataRequestPacket(subpacket.data);
|
ParameterDataRequestPacket paramRequest = new ParameterDataRequestPacket(subpacket.data);
|
||||||
if (paramRequest.paramName.Equals("charaWork/exp"))
|
if (paramRequest.paramName.Equals("charaWork/exp"))
|
||||||
session.GetActor().SendCharaExpInfo();
|
session.GetActor().SendCharaExpInfo();
|
||||||
break;
|
break;
|
||||||
//Item Package Request
|
//Item Package Request
|
||||||
case 0x0131:
|
case 0x0131:
|
||||||
UpdateItemPackagePacket packageRequest = new UpdateItemPackagePacket(subpacket.data);
|
UpdateItemPackagePacket packageRequest = new UpdateItemPackagePacket(subpacket.data);
|
||||||
if (Server.GetWorldManager().GetActorInWorld(packageRequest.actorID) != null)
|
if (Server.GetWorldManager().GetActorInWorld(packageRequest.actorID) != null)
|
||||||
{
|
{
|
||||||
((Character)Server.GetWorldManager().GetActorInWorld(packageRequest.actorID)).SendItemPackage(session.GetActor(), packageRequest.packageId);
|
((Character)Server.GetWorldManager().GetActorInWorld(packageRequest.actorID)).SendItemPackage(session.GetActor(), packageRequest.packageId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (session.GetActor().GetSpawnedRetainer() != null && session.GetActor().GetSpawnedRetainer().actorId == packageRequest.actorID)
|
if (session.GetActor().GetSpawnedRetainer() != null && session.GetActor().GetSpawnedRetainer().actorId == packageRequest.actorID)
|
||||||
session.GetActor().GetSpawnedRetainer().SendItemPackage(session.GetActor(), packageRequest.packageId);
|
session.GetActor().GetSpawnedRetainer().SendItemPackage(session.GetActor(), packageRequest.packageId);
|
||||||
break;
|
break;
|
||||||
//Group Created Confirm
|
//Group Created Confirm
|
||||||
case 0x0133:
|
case 0x0133:
|
||||||
GroupCreatedPacket groupCreated = new GroupCreatedPacket(subpacket.data);
|
GroupCreatedPacket groupCreated = new GroupCreatedPacket(subpacket.data);
|
||||||
Server.GetWorldManager().SendGroupInit(session, groupCreated.groupId);
|
Server.GetWorldManager().SendGroupInit(session, groupCreated.groupId);
|
||||||
break;
|
break;
|
||||||
//Achievement Progress Request
|
//Achievement Progress Request
|
||||||
case 0x0135:
|
case 0x0135:
|
||||||
AchievementProgressRequestPacket progressRequest = new AchievementProgressRequestPacket(subpacket.data);
|
AchievementProgressRequestPacket progressRequest = new AchievementProgressRequestPacket(subpacket.data);
|
||||||
session.QueuePacket(Database.GetAchievementProgress(session.GetActor(), progressRequest.achievementId));
|
session.QueuePacket(Database.GetAchievementProgress(session.GetActor(), progressRequest.achievementId));
|
||||||
break;
|
break;
|
||||||
/* RECRUITMENT */
|
/* RECRUITMENT */
|
||||||
//Start Recruiting
|
//Start Recruiting
|
||||||
case 0x01C3:
|
case 0x01C3:
|
||||||
StartRecruitingRequestPacket recruitRequestPacket = new StartRecruitingRequestPacket(subpacket.data);
|
StartRecruitingRequestPacket recruitRequestPacket = new StartRecruitingRequestPacket(subpacket.data);
|
||||||
session.QueuePacket(StartRecruitingResponse.BuildPacket(session.id, true));
|
session.QueuePacket(StartRecruitingResponse.BuildPacket(session.id, true));
|
||||||
break;
|
break;
|
||||||
//End Recruiting
|
//End Recruiting
|
||||||
case 0x01C4:
|
case 0x01C4:
|
||||||
session.QueuePacket(EndRecruitmentPacket.BuildPacket(session.id));
|
session.QueuePacket(EndRecruitmentPacket.BuildPacket(session.id));
|
||||||
break;
|
break;
|
||||||
//Party Window Opened, Request State
|
//Party Window Opened, Request State
|
||||||
case 0x01C5:
|
case 0x01C5:
|
||||||
session.QueuePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0));
|
session.QueuePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0));
|
||||||
break;
|
break;
|
||||||
//Search Recruiting
|
//Search Recruiting
|
||||||
case 0x01C7:
|
case 0x01C7:
|
||||||
RecruitmentSearchRequestPacket recruitSearchPacket = new RecruitmentSearchRequestPacket(subpacket.data);
|
RecruitmentSearchRequestPacket recruitSearchPacket = new RecruitmentSearchRequestPacket(subpacket.data);
|
||||||
break;
|
break;
|
||||||
//Get Recruitment Details
|
//Get Recruitment Details
|
||||||
case 0x01C8:
|
case 0x01C8:
|
||||||
RecruitmentDetailsRequestPacket currentRecruitDetailsPacket = new RecruitmentDetailsRequestPacket(subpacket.data);
|
RecruitmentDetailsRequestPacket currentRecruitDetailsPacket = new RecruitmentDetailsRequestPacket(subpacket.data);
|
||||||
RecruitmentDetails details = new RecruitmentDetails();
|
RecruitmentDetails details = new RecruitmentDetails();
|
||||||
details.recruiterName = "Localhost Character";
|
details.recruiterName = "Localhost Character";
|
||||||
details.purposeId = 2;
|
details.purposeId = 2;
|
||||||
details.locationId = 1;
|
details.locationId = 1;
|
||||||
details.subTaskId = 1;
|
details.subTaskId = 1;
|
||||||
details.comment = "This is a test details packet sent by the server. No implementation has been Created yet...";
|
details.comment = "This is a test details packet sent by the server. No implementation has been Created yet...";
|
||||||
details.num[0] = 1;
|
details.num[0] = 1;
|
||||||
session.QueuePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details));
|
session.QueuePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details));
|
||||||
break;
|
break;
|
||||||
//Accepted Recruiting
|
//Accepted Recruiting
|
||||||
case 0x01C6:
|
case 0x01C6:
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
break;
|
break;
|
||||||
/* SOCIAL STUFF */
|
/* SOCIAL STUFF */
|
||||||
case 0x01C9:
|
case 0x01C9:
|
||||||
AddRemoveSocialPacket addBlackList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket addBlackList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
session.QueuePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name));
|
session.QueuePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CA:
|
case 0x01CA:
|
||||||
AddRemoveSocialPacket RemoveBlackList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket RemoveBlackList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
session.QueuePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name));
|
session.QueuePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CB:
|
case 0x01CB:
|
||||||
int offset1 = 0;
|
int offset1 = 0;
|
||||||
session.QueuePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1));
|
session.QueuePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1));
|
||||||
break;
|
break;
|
||||||
case 0x01CC:
|
case 0x01CC:
|
||||||
AddRemoveSocialPacket addFriendList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket addFriendList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
session.QueuePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name));
|
session.QueuePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CD:
|
case 0x01CD:
|
||||||
AddRemoveSocialPacket RemoveFriendList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket RemoveFriendList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
session.QueuePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name));
|
session.QueuePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CE:
|
case 0x01CE:
|
||||||
int offset2 = 0;
|
int offset2 = 0;
|
||||||
session.QueuePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple<long, string>[] { new Tuple<long, string>(01, "Test2") }, ref offset2));
|
session.QueuePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple<long, string>[] { new Tuple<long, string>(01, "Test2") }, ref offset2));
|
||||||
break;
|
break;
|
||||||
case 0x01CF:
|
case 0x01CF:
|
||||||
session.QueuePacket(FriendStatusPacket.BuildPacket(session.id, null));
|
session.QueuePacket(FriendStatusPacket.BuildPacket(session.id, null));
|
||||||
break;
|
break;
|
||||||
/* SUPPORT DESK STUFF */
|
/* SUPPORT DESK STUFF */
|
||||||
//Request for FAQ/Info List
|
//Request for FAQ/Info List
|
||||||
case 0x01D0:
|
case 0x01D0:
|
||||||
FaqListRequestPacket faqRequest = new FaqListRequestPacket(subpacket.data);
|
FaqListRequestPacket faqRequest = new FaqListRequestPacket(subpacket.data);
|
||||||
session.QueuePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }));
|
session.QueuePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }));
|
||||||
break;
|
break;
|
||||||
//Request for body of a faq/info selection
|
//Request for body of a faq/info selection
|
||||||
case 0x01D1:
|
case 0x01D1:
|
||||||
FaqBodyRequestPacket faqBodyRequest = new FaqBodyRequestPacket(subpacket.data);
|
FaqBodyRequestPacket faqBodyRequest = new FaqBodyRequestPacket(subpacket.data);
|
||||||
session.QueuePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"));
|
session.QueuePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"));
|
||||||
break;
|
break;
|
||||||
//Request issue list
|
//Request issue list
|
||||||
case 0x01D2:
|
case 0x01D2:
|
||||||
GMTicketIssuesRequestPacket issuesRequest = new GMTicketIssuesRequestPacket(subpacket.data);
|
GMTicketIssuesRequestPacket issuesRequest = new GMTicketIssuesRequestPacket(subpacket.data);
|
||||||
session.QueuePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }));
|
session.QueuePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }));
|
||||||
break;
|
break;
|
||||||
//Request if GM ticket exists
|
//Request if GM ticket exists
|
||||||
case 0x01D3:
|
case 0x01D3:
|
||||||
session.QueuePacket(StartGMTicketPacket.BuildPacket(session.id, false));
|
session.QueuePacket(StartGMTicketPacket.BuildPacket(session.id, false));
|
||||||
break;
|
break;
|
||||||
//Request for GM response message
|
//Request for GM response message
|
||||||
case 0x01D4:
|
case 0x01D4:
|
||||||
session.QueuePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."));
|
session.QueuePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."));
|
||||||
break;
|
break;
|
||||||
//GM Ticket Sent
|
//GM Ticket Sent
|
||||||
case 0x01D5:
|
case 0x01D5:
|
||||||
GMSupportTicketPacket gmTicket = new GMSupportTicketPacket(subpacket.data);
|
GMSupportTicketPacket gmTicket = new GMSupportTicketPacket(subpacket.data);
|
||||||
Program.Log.Info("Got GM Ticket: \n" + gmTicket.ticketTitle + "\n" + gmTicket.ticketBody);
|
Program.Log.Info("Got GM Ticket: \n" + gmTicket.ticketTitle + "\n" + gmTicket.ticketBody);
|
||||||
session.QueuePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true));
|
session.QueuePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true));
|
||||||
break;
|
break;
|
||||||
//Request to end ticket
|
//Request to end ticket
|
||||||
case 0x01D6:
|
case 0x01D6:
|
||||||
session.QueuePacket(EndGMTicketPacket.BuildPacket(session.id));
|
session.QueuePacket(EndGMTicketPacket.BuildPacket(session.id));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Program.Log.Debug("Unknown command 0x{0:X} received.", subpacket.gameMessage.opcode);
|
Program.Log.Debug("Unknown command 0x{0:X} received.", subpacket.gameMessage.opcode);
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,270 +1,270 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.42000
|
// Runtime Version:4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.Properties {
|
namespace Meteor.Map.Properties {
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// 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.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
public class Resources {
|
public class Resources {
|
||||||
|
|
||||||
private static global::System.Resources.ResourceManager resourceMan;
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
internal Resources() {
|
internal Resources() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the cached ResourceManager instance used by this class.
|
/// Returns the cached ResourceManager instance used by this class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
public static global::System.Resources.ResourceManager ResourceManager {
|
public static global::System.Resources.ResourceManager ResourceManager {
|
||||||
get {
|
get {
|
||||||
if (object.ReferenceEquals(resourceMan, null)) {
|
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;
|
resourceMan = temp;
|
||||||
}
|
}
|
||||||
return resourceMan;
|
return resourceMan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Overrides the current thread's CurrentUICulture property for all
|
/// Overrides the current thread's CurrentUICulture property for all
|
||||||
/// resource lookups using this strongly typed resource class.
|
/// resource lookups using this strongly typed resource class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
public static global::System.Globalization.CultureInfo Culture {
|
public static global::System.Globalization.CultureInfo Culture {
|
||||||
get {
|
get {
|
||||||
return resourceCulture;
|
return resourceCulture;
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
resourceCulture = value;
|
resourceCulture = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Adds the specified currency to the current player's inventory
|
/// Looks up a localized string similar to Adds the specified currency to the current player's inventory
|
||||||
///
|
///
|
||||||
///*Syntax: givecurrency <quantity>
|
///*Syntax: givecurrency <quantity>
|
||||||
/// givecurrency <type> <quantity>
|
/// givecurrency <type> <quantity>
|
||||||
///<type> is the specific type of currency desired, defaults to gil if no type specified.
|
///<type> is the specific type of currency desired, defaults to gil if no type specified.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPgivecurrency {
|
public static string CPgivecurrency {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPgivecurrency", resourceCulture);
|
return ResourceManager.GetString("CPgivecurrency", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Adds the specified items to the current player's inventory
|
/// Looks up a localized string similar to Adds the specified items to the current player's inventory
|
||||||
///
|
///
|
||||||
///*Syntax: giveitem <item id>
|
///*Syntax: giveitem <item id>
|
||||||
/// giveitem <item id> <quantity>
|
/// giveitem <item id> <quantity>
|
||||||
/// giveitem <item id> <quantity> <type>
|
/// giveitem <item id> <quantity> <type>
|
||||||
///<item id> is the item's specific id as defined in the server database
|
///<item id> is the item's specific id as defined in the server database
|
||||||
///<type> is the type as defined in the server database (defaults to standard item if not specified).
|
///<type> is the type as defined in the server database (defaults to standard item if not specified).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPgiveitem {
|
public static string CPgiveitem {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPgiveitem", resourceCulture);
|
return ResourceManager.GetString("CPgiveitem", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Adds the specified key item to the current player's inventory
|
/// Looks up a localized string similar to Adds the specified key item to the current player's inventory
|
||||||
///
|
///
|
||||||
///*Syntax: givekeyitem <item id>
|
///*Syntax: givekeyitem <item id>
|
||||||
///<item id> is the key item's specific id as defined in the server database.
|
///<item id> is the key item's specific id as defined in the server database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPgivekeyitem {
|
public static string CPgivekeyitem {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPgivekeyitem", resourceCulture);
|
return ResourceManager.GetString("CPgivekeyitem", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Use !help(command) for details
|
/// Looks up a localized string similar to Use !help(command) for details
|
||||||
///
|
///
|
||||||
///Available commands:
|
///Available commands:
|
||||||
///Standard: mypos, music, warp
|
///Standard: mypos, music, warp
|
||||||
///Server Administration: givecurrency, giveitem, givekeyitem, removecurrency, removekeyitem, reloaditems, reloadzones
|
///Server Administration: givecurrency, giveitem, givekeyitem, removecurrency, removekeyitem, reloaditems, reloadzones
|
||||||
///Test: test weather.
|
///Test: test weather.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPhelp {
|
public static string CPhelp {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPhelp", resourceCulture);
|
return ResourceManager.GetString("CPhelp", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Changes the currently playing background music
|
/// Looks up a localized string similar to Changes the currently playing background music
|
||||||
///
|
///
|
||||||
///*Syntax: music <music id>
|
///*Syntax: music <music id>
|
||||||
///<music id> is the music's specific id as defined in the client.
|
///<music id> is the music's specific id as defined in the client.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPmusic {
|
public static string CPmusic {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPmusic", resourceCulture);
|
return ResourceManager.GetString("CPmusic", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Prints out your current location
|
/// Looks up a localized string similar to Prints out your current location
|
||||||
///
|
///
|
||||||
///*Note: The X/Y/Z coordinates Do not correspond to the coordinates listed in the in-game map, they are based on the underlying game data.
|
///*Note: The X/Y/Z coordinates Do not correspond to the coordinates listed in the in-game map, they are based on the underlying game data.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPmypos {
|
public static string CPmypos {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPmypos", resourceCulture);
|
return ResourceManager.GetString("CPmypos", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to *Syntax: property <value 1> <value 2> <value 3>.
|
/// Looks up a localized string similar to *Syntax: property <value 1> <value 2> <value 3>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPproperty {
|
public static string CPproperty {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPproperty", resourceCulture);
|
return ResourceManager.GetString("CPproperty", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to *Syntax: property2 <value 1> <value 2> <value 3>.
|
/// Looks up a localized string similar to *Syntax: property2 <value 1> <value 2> <value 3>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPproperty2 {
|
public static string CPproperty2 {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPproperty2", resourceCulture);
|
return ResourceManager.GetString("CPproperty2", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Reloads the current item data from the database.
|
/// Looks up a localized string similar to Reloads the current item data from the database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPreloaditems {
|
public static string CPreloaditems {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPreloaditems", resourceCulture);
|
return ResourceManager.GetString("CPreloaditems", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Reloads the current zone data from the database.
|
/// Looks up a localized string similar to Reloads the current zone data from the database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPreloadzones {
|
public static string CPreloadzones {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPreloadzones", resourceCulture);
|
return ResourceManager.GetString("CPreloadzones", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Removes the specified currency from the current player's inventory
|
/// Looks up a localized string similar to Removes the specified currency from the current player's inventory
|
||||||
///
|
///
|
||||||
///*Syntax: removecurrency <quantity>
|
///*Syntax: removecurrency <quantity>
|
||||||
/// removecurrency <type> <quantity>
|
/// removecurrency <type> <quantity>
|
||||||
///<type> is the specific type of currency desired, defaults to gil if no type specified.
|
///<type> is the specific type of currency desired, defaults to gil if no type specified.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPremovecurrency {
|
public static string CPremovecurrency {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPremovecurrency", resourceCulture);
|
return ResourceManager.GetString("CPremovecurrency", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Removes the specified items to the current player's inventory
|
/// Looks up a localized string similar to Removes the specified items to the current player's inventory
|
||||||
///
|
///
|
||||||
///*Syntax: removeitem <itemid>
|
///*Syntax: removeitem <itemid>
|
||||||
/// removeitem <itemid> <quantity>
|
/// removeitem <itemid> <quantity>
|
||||||
///<item id> is the item's specific id as defined in the server database.
|
///<item id> is the item's specific id as defined in the server database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPremoveitem {
|
public static string CPremoveitem {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPremoveitem", resourceCulture);
|
return ResourceManager.GetString("CPremoveitem", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Removes the specified key item to the current player's inventory
|
/// Looks up a localized string similar to Removes the specified key item to the current player's inventory
|
||||||
///
|
///
|
||||||
///*Syntax: removekeyitem <itemid>
|
///*Syntax: removekeyitem <itemid>
|
||||||
///<item id> is the key item's specific id as defined in the server database.
|
///<item id> is the key item's specific id as defined in the server database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPremovekeyitem {
|
public static string CPremovekeyitem {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPremovekeyitem", resourceCulture);
|
return ResourceManager.GetString("CPremovekeyitem", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Server sends a special packet to the client
|
/// Looks up a localized string similar to Server sends a special packet to the client
|
||||||
///
|
///
|
||||||
///*Syntax: sendpacket <path to packet>
|
///*Syntax: sendpacket <path to packet>
|
||||||
///<Path to packet> is the path to the packet, starting in <map server install location>\packet.
|
///<Path to packet> is the path to the packet, starting in <map server install location>\packet.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPsendpacket {
|
public static string CPsendpacket {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPsendpacket", resourceCulture);
|
return ResourceManager.GetString("CPsendpacket", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Overrides the currently displayed character equipment in a specific slot
|
/// Looks up a localized string similar to Overrides the currently displayed character equipment in a specific slot
|
||||||
///
|
///
|
||||||
///*Note: Similar to Glamours in FFXIV:ARR, the overridden graphics are purely cosmetic, they Do not affect the underlying stats of whatever is equipped on that slot
|
///*Note: Similar to Glamours in FFXIV:ARR, the overridden graphics are purely cosmetic, they Do not affect the underlying stats of whatever is equipped on that slot
|
||||||
///
|
///
|
||||||
///*Syntax: sendpacket <slot> <wid> <eid> <vid> <cid>
|
///*Syntax: sendpacket <slot> <wid> <eid> <vid> <cid>
|
||||||
///<w/e/v/c id> are as defined in the client game data.
|
///<w/e/v/c id> are as defined in the client game data.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPsetgraphic {
|
public static string CPsetgraphic {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPsetgraphic", resourceCulture);
|
return ResourceManager.GetString("CPsetgraphic", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Changes the current weather
|
/// Looks up a localized string similar to Changes the current weather
|
||||||
///
|
///
|
||||||
///*Syntax: test weather <weather id>
|
///*Syntax: test weather <weather id>
|
||||||
///<weather id> is the weather's specific id as defined in the client.
|
///<weather id> is the weather's specific id as defined in the client.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPtestweather {
|
public static string CPtestweather {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPtestweather", resourceCulture);
|
return ResourceManager.GetString("CPtestweather", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Teleports the player to the specified location
|
/// Looks up a localized string similar to Teleports the player to the specified location
|
||||||
///
|
///
|
||||||
///*Note: You can teleport relative to your current position by putting a @ in front of a value, cannot be combined with a zone id or instance name
|
///*Note: You can teleport relative to your current position by putting a @ in front of a value, cannot be combined with a zone id or instance name
|
||||||
///
|
///
|
||||||
///*Syntax: warp <location list>
|
///*Syntax: warp <location list>
|
||||||
/// warp <X coordinate> <Y coordinate> <Z coordinate>
|
/// warp <X coordinate> <Y coordinate> <Z coordinate>
|
||||||
/// warp <zone id> <X coordinate> <Y coordinate> <Z coordinate>
|
/// warp <zone id> <X coordinate> <Y coordinate> <Z coordinate>
|
||||||
/// warp <zone id> <instance> <X coordinate> <Y coordinate> <Z coordinate>
|
/// warp <zone id> <instance> <X coordinate> <Y coordinate> <Z coordinate>
|
||||||
///<location list> is a pre-defined list of locations from the server database
|
///<location list> is a pre-defined list of locations from the server database
|
||||||
///<zone id> is the [rest of string was truncated]";.
|
///<zone id> is the [rest of string was truncated]";.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CPwarp {
|
public static string CPwarp {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("CPwarp", resourceCulture);
|
return ResourceManager.GetString("CPwarp", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,226 +1,226 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
various data types are Done through the TypeConverter classes
|
various data types are Done through the TypeConverter classes
|
||||||
associated with the data types.
|
associated with the data types.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">2.0</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
<comment>This is a comment</comment>
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
name/value pairs.
|
name/value pairs.
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
Each data row contains a name, and value. The row also contains a
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
text/value conversion through the TypeConverter architecture.
|
text/value conversion through the TypeConverter architecture.
|
||||||
Classes that Don't support this are serialized and stored with the
|
Classes that Don't support this are serialized and stored with the
|
||||||
mimetype set.
|
mimetype set.
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
The mimetype is used for serialized objects, and tells the
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
read any of the formats listed below.
|
read any of the formats listed below.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
value : The object must be serialized into a byte array
|
value : The object must be serialized into a byte array
|
||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
<xsd:element name="metadata">
|
<xsd:element name="metadata">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
<xsd:attribute ref="xml:space" />
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="assembly">
|
<xsd:element name="assembly">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="data">
|
<xsd:element name="data">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
<xsd:attribute ref="xml:space" />
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="resheader">
|
<xsd:element name="resheader">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
</xsd:choice>
|
</xsd:choice>
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
<resheader name="resmimetype">
|
<resheader name="resmimetype">
|
||||||
<value>text/microsoft-resx</value>
|
<value>text/microsoft-resx</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="version">
|
<resheader name="version">
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="CPgivecurrency" xml:space="preserve">
|
<data name="CPgivecurrency" xml:space="preserve">
|
||||||
<value>Adds the specified currency to the current player's inventory
|
<value>Adds the specified currency to the current player's inventory
|
||||||
|
|
||||||
*Syntax: givecurrency <quantity>
|
*Syntax: givecurrency <quantity>
|
||||||
givecurrency <type> <quantity>
|
givecurrency <type> <quantity>
|
||||||
<type> is the specific type of currency desired, defaults to gil if no type specified</value>
|
<type> is the specific type of currency desired, defaults to gil if no type specified</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPgiveitem" xml:space="preserve">
|
<data name="CPgiveitem" xml:space="preserve">
|
||||||
<value>Adds the specified items to the current player's inventory
|
<value>Adds the specified items to the current player's inventory
|
||||||
|
|
||||||
*Syntax: giveitem <item id>
|
*Syntax: giveitem <item id>
|
||||||
giveitem <item id> <quantity>
|
giveitem <item id> <quantity>
|
||||||
giveitem <item id> <quantity> <type>
|
giveitem <item id> <quantity> <type>
|
||||||
<item id> is the item's specific id as defined in the server database
|
<item id> is the item's specific id as defined in the server database
|
||||||
<type> is the type as defined in the server database (defaults to standard item if not specified)</value>
|
<type> is the type as defined in the server database (defaults to standard item if not specified)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPgivekeyitem" xml:space="preserve">
|
<data name="CPgivekeyitem" xml:space="preserve">
|
||||||
<value>Adds the specified key item to the current player's inventory
|
<value>Adds the specified key item to the current player's inventory
|
||||||
|
|
||||||
*Syntax: givekeyitem <item id>
|
*Syntax: givekeyitem <item id>
|
||||||
<item id> is the key item's specific id as defined in the server database</value>
|
<item id> is the key item's specific id as defined in the server database</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPhelp" xml:space="preserve">
|
<data name="CPhelp" xml:space="preserve">
|
||||||
<value>Use !help(command) for details
|
<value>Use !help(command) for details
|
||||||
|
|
||||||
Available commands:
|
Available commands:
|
||||||
Standard: mypos, music, warp
|
Standard: mypos, music, warp
|
||||||
Server Administration: givecurrency, giveitem, givekeyitem, removecurrency, removekeyitem, reloaditems, reloadzones
|
Server Administration: givecurrency, giveitem, givekeyitem, removecurrency, removekeyitem, reloaditems, reloadzones
|
||||||
Test: test weather</value>
|
Test: test weather</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPmusic" xml:space="preserve">
|
<data name="CPmusic" xml:space="preserve">
|
||||||
<value>Changes the currently playing background music
|
<value>Changes the currently playing background music
|
||||||
|
|
||||||
*Syntax: music <music id>
|
*Syntax: music <music id>
|
||||||
<music id> is the music's specific id as defined in the client</value>
|
<music id> is the music's specific id as defined in the client</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPmypos" xml:space="preserve">
|
<data name="CPmypos" xml:space="preserve">
|
||||||
<value>Prints out your current location
|
<value>Prints out your current location
|
||||||
|
|
||||||
*Note: The X/Y/Z coordinates Do not correspond to the coordinates listed in the in-game map, they are based on the underlying game data</value>
|
*Note: The X/Y/Z coordinates Do not correspond to the coordinates listed in the in-game map, they are based on the underlying game data</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPproperty" xml:space="preserve">
|
<data name="CPproperty" xml:space="preserve">
|
||||||
<value>*Syntax: property <value 1> <value 2> <value 3></value>
|
<value>*Syntax: property <value 1> <value 2> <value 3></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPproperty2" xml:space="preserve">
|
<data name="CPproperty2" xml:space="preserve">
|
||||||
<value>*Syntax: property2 <value 1> <value 2> <value 3></value>
|
<value>*Syntax: property2 <value 1> <value 2> <value 3></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPreloaditems" xml:space="preserve">
|
<data name="CPreloaditems" xml:space="preserve">
|
||||||
<value>Reloads the current item data from the database</value>
|
<value>Reloads the current item data from the database</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPreloadzones" xml:space="preserve">
|
<data name="CPreloadzones" xml:space="preserve">
|
||||||
<value>Reloads the current zone data from the database</value>
|
<value>Reloads the current zone data from the database</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPremovecurrency" xml:space="preserve">
|
<data name="CPremovecurrency" xml:space="preserve">
|
||||||
<value>Removes the specified currency from the current player's inventory
|
<value>Removes the specified currency from the current player's inventory
|
||||||
|
|
||||||
*Syntax: removecurrency <quantity>
|
*Syntax: removecurrency <quantity>
|
||||||
removecurrency <type> <quantity>
|
removecurrency <type> <quantity>
|
||||||
<type> is the specific type of currency desired, defaults to gil if no type specified</value>
|
<type> is the specific type of currency desired, defaults to gil if no type specified</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPremoveitem" xml:space="preserve">
|
<data name="CPremoveitem" xml:space="preserve">
|
||||||
<value>Removes the specified items to the current player's inventory
|
<value>Removes the specified items to the current player's inventory
|
||||||
|
|
||||||
*Syntax: removeitem <itemid>
|
*Syntax: removeitem <itemid>
|
||||||
removeitem <itemid> <quantity>
|
removeitem <itemid> <quantity>
|
||||||
<item id> is the item's specific id as defined in the server database</value>
|
<item id> is the item's specific id as defined in the server database</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPremovekeyitem" xml:space="preserve">
|
<data name="CPremovekeyitem" xml:space="preserve">
|
||||||
<value>Removes the specified key item to the current player's inventory
|
<value>Removes the specified key item to the current player's inventory
|
||||||
|
|
||||||
*Syntax: removekeyitem <itemid>
|
*Syntax: removekeyitem <itemid>
|
||||||
<item id> is the key item's specific id as defined in the server database</value>
|
<item id> is the key item's specific id as defined in the server database</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPsendpacket" xml:space="preserve">
|
<data name="CPsendpacket" xml:space="preserve">
|
||||||
<value>Server sends a special packet to the client
|
<value>Server sends a special packet to the client
|
||||||
|
|
||||||
*Syntax: sendpacket <path to packet>
|
*Syntax: sendpacket <path to packet>
|
||||||
<Path to packet> is the path to the packet, starting in <map server install location>\packet</value>
|
<Path to packet> is the path to the packet, starting in <map server install location>\packet</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPsetgraphic" xml:space="preserve">
|
<data name="CPsetgraphic" xml:space="preserve">
|
||||||
<value>Overrides the currently displayed character equipment in a specific slot
|
<value>Overrides the currently displayed character equipment in a specific slot
|
||||||
|
|
||||||
*Note: Similar to Glamours in FFXIV:ARR, the overridden graphics are purely cosmetic, they Do not affect the underlying stats of whatever is equipped on that slot
|
*Note: Similar to Glamours in FFXIV:ARR, the overridden graphics are purely cosmetic, they Do not affect the underlying stats of whatever is equipped on that slot
|
||||||
|
|
||||||
*Syntax: sendpacket <slot> <wid> <eid> <vid> <cid>
|
*Syntax: sendpacket <slot> <wid> <eid> <vid> <cid>
|
||||||
<w/e/v/c id> are as defined in the client game data</value>
|
<w/e/v/c id> are as defined in the client game data</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPtestweather" xml:space="preserve">
|
<data name="CPtestweather" xml:space="preserve">
|
||||||
<value>Changes the current weather
|
<value>Changes the current weather
|
||||||
|
|
||||||
*Syntax: test weather <weather id>
|
*Syntax: test weather <weather id>
|
||||||
<weather id> is the weather's specific id as defined in the client</value>
|
<weather id> is the weather's specific id as defined in the client</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPwarp" xml:space="preserve">
|
<data name="CPwarp" xml:space="preserve">
|
||||||
<value>Teleports the player to the specified location
|
<value>Teleports the player to the specified location
|
||||||
|
|
||||||
*Note: You can teleport relative to your current position by putting a @ in front of a value, cannot be combined with a zone id or instance name
|
*Note: You can teleport relative to your current position by putting a @ in front of a value, cannot be combined with a zone id or instance name
|
||||||
|
|
||||||
*Syntax: warp <location list>
|
*Syntax: warp <location list>
|
||||||
warp <X coordinate> <Y coordinate> <Z coordinate>
|
warp <X coordinate> <Y coordinate> <Z coordinate>
|
||||||
warp <zone id> <X coordinate> <Y coordinate> <Z coordinate>
|
warp <zone id> <X coordinate> <Y coordinate> <Z coordinate>
|
||||||
warp <zone id> <instance> <X coordinate> <Y coordinate> <Z coordinate>
|
warp <zone id> <instance> <X coordinate> <Y coordinate> <Z coordinate>
|
||||||
<location list> is a pre-defined list of locations from the server database
|
<location list> is a pre-defined list of locations from the server database
|
||||||
<zone id> is the zone's id as defined in the server database
|
<zone id> is the zone's id as defined in the server database
|
||||||
<instance> is an instanced copy of the desired zone that's only visible to the current player</value>
|
<instance> is an instanced copy of the desired zone that's only visible to the current player</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -25,7 +25,7 @@ using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using FFXIVClassic_Map_Server.dataobjects;
|
using FFXIVClassic_Map_Server.dataobjects;
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server
|
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.area;
|
||||||
using FFXIVClassic_Map_Server.actors.chara.npc;
|
using FFXIVClassic_Map_Server.actors.chara.npc;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
File diff suppressed because it is too large
Load diff
|
@ -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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
File diff suppressed because it is too large
Load diff
|
@ -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.Actors;
|
||||||
using FFXIVClassic_Map_Server.lua;
|
using FFXIVClassic_Map_Server.lua;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
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.Actors;
|
||||||
using FFXIVClassic_Map_Server.lua;
|
using FFXIVClassic_Map_Server.lua;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
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.chara.player;
|
||||||
using FFXIVClassic_Map_Server.actors.group;
|
using FFXIVClassic_Map_Server.actors.group;
|
||||||
using FFXIVClassic_Map_Server.Actors.Chara;
|
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.chara.npc;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
||||||
using FFXIVClassic_Map_Server.dataobjects;
|
using FFXIVClassic_Map_Server.dataobjects;
|
|
@ -24,7 +24,7 @@ using FFXIVClassic_Map_Server.lua;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor.battle;
|
using FFXIVClassic_Map_Server.packets.send.actor.battle;
|
||||||
using System;
|
using System;
|
||||||
using MoonSharp.Interpreter;
|
using MoonSharp.Interpreter;
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.actors.chara.ai
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
||||||
using FFXIVClassic_Map_Server.lua;
|
using FFXIVClassic_Map_Server.lua;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using FFXIVClassic.Common;
|
using Meteor.Common;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
using FFXIVClassic_Map_Server.packets.send.actor;
|
||||||
using FFXIVClassic_Map_Server.actors.area;
|
using FFXIVClassic_Map_Server.actors.area;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue