diff --git a/.gitignore b/.gitignore index 350b17e..ec36fcc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. +.DS_Store + # User-specific files *.suo *.user diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..dacb06a --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Arrowgene Ez2Off CLI", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "${workspaceRoot}/Arrowgene.Ez2Off.CLI/bin/Debug/netcoreapp2.0/Arrowgene.Ez2Off.CLI.dll", + "args": [], + "cwd": "${workspaceRoot}", + "stopAtEntry": false, + "console": "internalConsole", + "justMyCode": false + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..33256db --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,17 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "0.1.0", + "command": "dotnet", + "isShellCommand": true, + "args": [], + "tasks": [ + { + "taskName": "build", + "args": [ ], + "isBuildCommand": true, + "showOutput": "silent", + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/Arrowgene.Ez2Off.sln b/Arrowgene.Ez2Off.sln index 7a87e48..ee8ec37 100644 --- a/Arrowgene.Ez2Off.sln +++ b/Arrowgene.Ez2Off.sln @@ -1,28 +1,48 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off", "Arrowgene.Ez2Off\Arrowgene.Ez2Off.csproj", "{292B623F-3664-4E84-B4B1-E2E0EFEE531E}" +# Visual Studio 15 +VisualStudioVersion = 15.0.26124.0 +MinimumVisualStudioVersion = 15.0.26124.0 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off", "Arrowgene.Ez2Off\Arrowgene.Ez2Off.csproj", "{8BA2A63C-24F0-4E18-B070-6DF232BB7E64}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off.CLI", "Arrowgene.Ez2Off.CLI\Arrowgene.Ez2Off.CLI.csproj", "{8D6B3C9D-1572-406A-B5D6-E8CCD411223A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off.CLI", "Arrowgene.Ez2Off.CLI\Arrowgene.Ez2Off.CLI.csproj", "{B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Release|Any CPU.Build.0 = Release|Any CPU - {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Release|Any CPU.Build.0 = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x64.ActiveCfg = Debug|x64 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x64.Build.0 = Debug|x64 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x86.ActiveCfg = Debug|x86 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x86.Build.0 = Debug|x86 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|Any CPU.Build.0 = Release|Any CPU + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x64.ActiveCfg = Release|x64 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x64.Build.0 = Release|x64 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x86.ActiveCfg = Release|x86 + {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x86.Build.0 = Release|x86 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x64.ActiveCfg = Debug|x64 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x64.Build.0 = Debug|x64 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x86.ActiveCfg = Debug|x86 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x86.Build.0 = Debug|x86 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|Any CPU.Build.0 = Release|Any CPU + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x64.ActiveCfg = Release|x64 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x64.Build.0 = Release|x64 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x86.ActiveCfg = Release|x86 + {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x86.Build.0 = Release|x86 + EndGlobalSection EndGlobal diff --git a/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj b/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj index 4b2cabe..f10350f 100644 --- a/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj +++ b/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj @@ -1,72 +1,17 @@ - - - + - Debug - AnyCPU - {292B623F-3664-4E84-B4B1-E2E0EFEE531E} - Library - Properties - Arrowgene.Ez2Off - Arrowgene.Ez2Off - v2.0 - 512 + netstandard2.0 + Arrowgene.Ez2Off + Arrowgene + + + Arrowgene.Ez2Off + 1.0.0.0 + 1.0.0.0 + Copyright © 2017 Arrowgene - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - False - ..\Solution Items\Arrowgene.Services.dll - - - - - - - - - - - - - - - - - - - - + - - - \ No newline at end of file + + diff --git a/Arrowgene.Ez2Off/Properties/AssemblyInfo.cs b/Arrowgene.Ez2Off/Properties/AssemblyInfo.cs deleted file mode 100644 index 0d79c33..0000000 --- a/Arrowgene.Ez2Off/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Arrowgene.Ez2Off")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Arrowgene.Ez2Off")] -[assembly: AssemblyCopyright("")] -[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("292b623f-3664-4e84-b4b1-e2e0efee531e")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/README.md b/README.md index edfe6aa..6b50d75 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,88 @@ -# Arrowgene.Ez2Off +IF YOU HAVE THE LATEST EZ2ON REBOOT CLIENT, PLEASE UPLOAD IT AND SEND THE LINK TO ME! THANK YOU ALOT! +=== +I want to make a server for the latest version of ez2on reboot, but I dont have the client, please help to find it! + +Arrowgene.Ez2Off +=== Server Emulator for the Online Game Ez2On. Client Download: https://mega.nz/#!AF4TQJ5L!sHoa76UNDys1ZBxzy3wrNVrgwRDS9eZtcXXULkbrPAI + +Running under OSX +=== + +### OSX - Server +1) Ensure you have .NET Core 2.0 Preview 1 or higher +- [Download Page](https://www.microsoft.com/net/core/preview#macos) +- [Direct Download .dmg](https://go.microsoft.com/fwlink/?linkid=848729) + +2) Clone the project: +``` +git clone https://github.com/Arrowgene/Arrowgene.Ez2Off.git +``` + +3) Change to the 'Command Line Interface'-Project: +``` +cd Arrowgene.Ez2Off/Arrowgene.Ez2Off.CLI +``` + +4) Restore the project dependencies: +``` +dotnet restore +``` + +5) Run the Server: +``` +dotnet run +``` + +### OSX - Game + +To Run the game on OSX you will need wine + +1) Follow the tutorial until you completed Part 4: +https://www.davidbaumgold.com/tutorials/wine-mac/ + +2) Copy the game directory to your wine 'C' drive. +The 'C'-drive can usually be found at your home directory +``` +cd ~/.wine/drive_c +``` + +3) Copy the 'start.sh'-file inside the game directory + +4) Start the game: +``` +~/.wine/drive_c/ez2on/start.sh +``` + +If the server is running the game should connect to the Server. + +### OSX - Development - VSCode + +1) Download VSCode [https://code.visualstudio.com/](https://code.visualstudio.com/) +2) Install the C# Extension [https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp](https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp) +3) Make changes :) + + +Running under Windows +=== + +### Windows - Server +1) Ensure you have .NET Core 2.0 Preview 1 or higher +[https://www.microsoft.com/net/core#windowsvs2017](https://www.microsoft.com/net/core#windowsvs2017) + +2) Clone the project: +``` +git clone https://github.com/Arrowgene/Arrowgene.Ez2Off.git +``` + +3) Open to the Project in Visual Studio and run the 'Command Line Interface'-Project. +I'm not sure about the exact steps as I havent tested this on a Windows box yet. +I Will update this tutorial once I know the exact steps + +### Windows - Game + +After downloadig the game execute the 'start.cmd'-file. +If the server is running the game should connect to the Server. \ No newline at end of file diff --git a/Solution Items/Arrowgene.Services.dll b/Solution Items/Arrowgene.Services.dll deleted file mode 100644 index 76aafa4..0000000 Binary files a/Solution Items/Arrowgene.Services.dll and /dev/null differ diff --git a/Solution Items/Arrowgene.Services.pdb b/Solution Items/Arrowgene.Services.pdb deleted file mode 100644 index 947e9b3..0000000 Binary files a/Solution Items/Arrowgene.Services.pdb and /dev/null differ diff --git a/Solution Items/Arrowgene.Services.xml b/Solution Items/Arrowgene.Services.xml deleted file mode 100644 index dded863..0000000 --- a/Solution Items/Arrowgene.Services.xml +++ /dev/null @@ -1,592 +0,0 @@ - - - - Arrowgene.Services - - - - - Dealing with OS - - - - UNKNOWN - - - WIN_3_1 - - - WIN_95 - - - WIN_98 - - - WIN_ME - - - WIN_NT_3_5 - - - WIN_NT_4 - - - WIN_2000 - - - WIN_XP - - - WIN_2003 - - - WIN_VISTA - - - WIN_2008 - - - WIN_7 - - - WIN_2008_R2 - - - WIN_8 - - - WIN_8_1 - - - WIN_10 - - - WIN_CE - - - UNIX - - - XBOX - - - MAX_OSX - - - - Returns version of OS. - - - Returns . - - - In order to detect cetain windows versions, - it is necessary to add a custom .manifest file to the project. - https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241%28v=vs.85%29.aspx - Otherwise win 8.1 will be reconized as win 8.0 for example. - - - - - Find subarray in the source array. - - Source array to search for needle. - Needle we are searching for. - Start index in source array. - Number of bytes in source array, where the needle is searched for. - Returns starting position of the needle if it was found or -1 otherwise. - - - - Helps with IPAddress - - - - - https://msdn.microsoft.com/en-us/library/system.net.sockets.socketoptionname.aspx - IPv6Only - Indicates if a socket created for the AF_INET6 address family is restricted to IPv6 communications only. - Sockets created for the AF_INET6 address family may be used for both IPv6 and IPv4 communications. - Some applications may want to restrict their use of a socket created for the AF_INET6 address family to IPv6 communications only. - When this value is non-zero (the default on Windows), a socket created for the AF_INET6 address family can be used to send and receive IPv6 packets only. - When this value is zero, a socket created for the AF_INET6 address family can be used to send and receive packets to and from an IPv6 address or an IPv4 address. - Note that the ability to interact with an IPv4 address requires the use of IPv4 mapped addresses. - This socket option is supported on Windows Vista or later. - - - - - Determines most possible local for connecting to the specified . - - - - - - - Determines the of the specified . - - - - - - - Try to get mac for ip, if not possible get the next best mac. - - - - - - - Try to get the next best mac - - - - - - Returns IP Address for given hostname. - If Supported, returns IPv6 IP, - if no IPv6 IP was found or IPv6 is not Supported, - it will try to return a IPv4 IP address. - - Name of host. - - Returns on success, - null on failure - - - - - Returns of localhost for a given - - - - - - - Returns IP Address for given hostname. - Tries to return the IP of specified IP version, - if a IPv6 IP can not be retrived, - it will be tried to return a IPv4 IP. - - Name of host. - Specific IP version. - - Returns on success, - null on failure. - - - - - Determines wether IPv6 may be supported. - - - Returns . - - - - - Connects the specified socket. - - The IP endpoint. - The timeout. - - - - Connects the specified socket. - - IP endpoint - Port - timeout - - - - Reads all Bytes - - - - - Reads all Bytes - - - - - Appends all Bytes from buffer - - - - - Create a New INI file to store or load data - - - - - INIFile Constructor. - - - - - - Write Data to the INI File - - - Section name - - Key Name - - Value Name - - - - Read Data Value From the Ini File - - - - - - - - - Logging Class - - Logs message combined with id and type as - Events for log writings, will only occur if its declared as safe - - - - Notifies when a write occured. - Don't block this Action by the UI thread, use Dispatcher.BeginInvoke. - - - - Write Logs to Debug output. - - - - - Clears all stored - - - - Writes a new - - - - - Writes a new - Message {0} - Argument - Log Category - - - - Writes a new - Message {0} - Argument - Argument - Log Category - - - - Writes a new - Message - Log Category - - - - Writes a new - Message - - - - Receive all - - Dictionary containing id associated by - - - - Http Server needs admin priveleges - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a with configureable default values. - - - - - Size of read buffer. - Bigger size results in fewer copy actions, - but increases memory allocation. - - - - - Timeout in ms to wait till a http response arrives. - - - - - Exception message of the last request. - - - - - URL of the last request. - Available after a request. - - - - - Headers of the last response. - Available after a request. - - - - - Server . - - - - - Server port. - - - - - Current logging instance where logs get written to. - - - - - Occures when a client disconnected. - - - - - Occures when a client connected. - - - - - Occures when a packet is received. - - - - - Occures when a packet is received. - - - - - Class to manage packet content - - - - - Id to identify the packet - - - - - Transfered Object - - - - - Returns concrete class or value - - - - - - - Creates a new instance with a specified serializer and . - - - - - - - - - Creates a new instance. - - - - - - - Enables measures to achieve an IPv4/IPv6 agnostic socket. - Binds always automatically to . - Sets the (27) "USE_IPV6_ONLY" to false. - - - - - Current logging instance where logs get written to. - - - - - Server status. - - - - - Servers . - - - - - Servers port. - - - - - Maximum number of active Clients - - - - - Occures when a client disconnected. - - - - - Occures when a client connected. - - - - - Occures when a packet is received. - - - - - Start accepting connections, - Creates a new instance if none is set. - - - - - Stops the server. - - - - - Class for handling udp sending and receiving of packets. - Call before sending any data, to be able to receive a response. - If you act as a server with , there is no need to call - - - - - Defines the maximum size to be received or send, - drops requests exceeding this limit. - - - - - Creates a new instance of - - - - - Occurs when data is received - - - - - Listen for incomming data and start receiving - - - - - - Send data to an destination - - - - - - - Send data as broadcast. - - - - - - - Starts receiving data - - - - - Stops receiving any data - - - - - Releases all ressources - - - - - Scan for open ports. - - - - - Initializes a new PortScan. - - Simultaneous connections - Time to wait for a response, before a port counts as closed - - - - Scan Completed - - - - - Simultaneous connections. - - - - - Scan a given for a port range. - - - - - - - - Scan a pool of for a port. - - - - - - diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..5cfc4d1 --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $DIR +wine "EZ2ON_EMU.exe" 127.0.0.1 crbtest999id 1234567890 1 \ No newline at end of file