diff --git a/.gitignore b/.gitignore
index 9819ba0..cf7029a 100755
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@
HorseIsleServer/N00BS/obj/*
HorseIsleServer/N00BS/bin/*
+HorseIsleServer/N00BS/flash.dll.idb
HorseIsleServer/HISPCli/obj/*
HorseIsleServer/HISPCli/bin/*
diff --git a/HorseIsleServer/HISPCli/HISPCli.csproj.user b/HorseIsleServer/HISPCli/HISPCli.csproj.user
index 0f14913..c52fb3a 100644
--- a/HorseIsleServer/HISPCli/HISPCli.csproj.user
+++ b/HorseIsleServer/HISPCli/HISPCli.csproj.user
@@ -1,4 +1,6 @@
-
+
+ <_LastSelectedProfileId>C:\Users\User\Documents\git\HISP\HorseIsleServer\HISPCli\Properties\PublishProfiles\Linux64.pubxml
+
\ No newline at end of file
diff --git a/HorseIsleServer/HISPCli/Program.cs b/HorseIsleServer/HISPCli/Program.cs
index b0b3e0c..52d8687 100644
--- a/HorseIsleServer/HISPCli/Program.cs
+++ b/HorseIsleServer/HISPCli/Program.cs
@@ -21,7 +21,7 @@ namespace HISP.Cli
}
set
{
- logFile = value;
+ logFile = value;
if(sw != null)
{
sw.Flush();
diff --git a/HorseIsleServer/Installer/Installer.vdproj b/HorseIsleServer/Installer/Installer.vdproj
index ac54599..520811e 100644
--- a/HorseIsleServer/Installer/Installer.vdproj
+++ b/HorseIsleServer/Installer/Installer.vdproj
@@ -166,15 +166,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:HISP-N00BS"
- "ProductCode" = "8:{60BA2AF1-4913-4A37-9280-093E8E7DAADE}"
- "PackageCode" = "8:{B0F4D2AB-3056-4307-A948-5BE6C191220E}"
+ "ProductCode" = "8:{6415E694-470B-43CC-8D9A-5955EF0AD4B7}"
+ "PackageCode" = "8:{B37B11B8-2541-4D08-932B-C44869E4200B}"
"UpgradeCode" = "8:{FAD2FB5F-7B7C-4293-BF2D-09384146449E}"
"AspNetVersion" = "8:2.0.50727.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:FALSE"
"InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:1.3.0"
+ "ProductVersion" = "8:1.3.1"
"Manufacturer" = "8:IsleHorse"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
diff --git a/HorseIsleServer/LibHISP/LibHISP.csproj b/HorseIsleServer/LibHISP/LibHISP.csproj
index 177893d..f4e7070 100644
--- a/HorseIsleServer/LibHISP/LibHISP.csproj
+++ b/HorseIsleServer/LibHISP/LibHISP.csproj
@@ -26,7 +26,7 @@
-
+
@@ -52,6 +52,8 @@
https://islehorse.com
https://github.com/islehorse/HISP
git
+ 3
+ 1701;1702;2026
@@ -59,32 +61,24 @@
true
x86
OS_WINDOWS;ARCH_X86
- 3
- 1701;1702;2026
win-x64
true
x64
OS_WINDOWS;ARCH_X86_64
- 3
- 1701;1702;2026
win-arm
true
ARM
OS_WINDOWS;ARCH_ARM
- 3
- 1701;1702;2026
win-arm64
true
ARM64
OS_WINDOWS;ARCH_ARM64
- 3
- 1701;1702;2026
@@ -92,16 +86,12 @@
true
ARM
OS_ANDROID;ARCH_ARM
- 3
- 1701;1702;2026
android-arm64
true
ARM64
OS_ANDROID;ARCH_ARM64
- 3
- 1701;1702;2026
@@ -110,24 +100,18 @@
true
x64
OS_LINUX;ARCH_X86_64
- 3
- 1701;1702;2026
linux-arm
ARM
true
OS_LINUX;ARCH_ARM
- 3
- 1701;1702;2026
linux-arm64
ARM64
true
OS_LINUX;ARCH_ARM64
- 3
- 1701;1702;2026
@@ -135,15 +119,12 @@
true
x64
OS_MACOS;ARCH_X86_64
- 3
- 1701;1702;2026
+
osx-arm64
true
OS_MACOS;ARCH_ARM64
- 3
- 1701;1702;2026
@@ -159,8 +140,6 @@
ARM
False
DEBUG;TRACE;OS_DEBUG;ARCH_ARM
- 3
- 1701;1702;2026
@@ -168,78 +147,58 @@
ARM64
False
DEBUG;TRACE;OS_DEBUG;ARCH_ARM64
- 3
- 1701;1702;2026
False
DEBUG;TRACE;OS_DEBUG;ARCH_X86_64
- 3
- 1701;1702;2026
False
DEBUG;TRACE;OS_DEBUG;ARCH_X86
- 3
- 1701;1702;2026
True
OS_MACOS;ARCH_X86
- 3
- 1701;1702;2026
True
OS_LINUX;ARCH_X86
- 3
- 1701;1702;2026
False
OS_LINUX;ARCH_ANYCPU
- 3
- 1701;1702;2026
False
OS_WINDOWS;ARCH_ANYCPU
- 3
- 1701;1702;2026
False
OS_MACOS;ARCH_ANYCPU
- 3
- 1701;1702;2026
True
OS_MACOS;ARCH_ARM
- 3
- 1701;1702;2026
- 3
- 1701;1702;2026
False
diff --git a/HorseIsleServer/LibHISP/Server/GameServer.cs b/HorseIsleServer/LibHISP/Server/GameServer.cs
index 6cb45ee..52b23a4 100644
--- a/HorseIsleServer/LibHISP/Server/GameServer.cs
+++ b/HorseIsleServer/LibHISP/Server/GameServer.cs
@@ -18,7 +18,6 @@ using HISP.Game.SwfModules;
using HISP.Game.Horse;
using HISP.Game.Events;
using HISP.Game.Items;
-using System.Diagnostics;
namespace HISP.Server
{
@@ -8276,7 +8275,7 @@ namespace HISP.Server
gameTimer = new Timer(new TimerCallback(onGameTick), null, gameTickSpeed, gameTickSpeed);
minuteTimer = new Timer(new TimerCallback(onMinuteTick), null, oneMinute, oneMinute);
Logger.InfoPrint("Binding to ip: " + ConfigReader.BindIP + " On port: " + ConfigReader.Port.ToString());
-
+
SocketAsyncEventArgs e = new SocketAsyncEventArgs();
e.Completed += GameClient.CreateClient;
GameClient.CreateClient(null, e);
diff --git a/HorseIsleServer/N00BS/MpOrSp.Designer.cs b/HorseIsleServer/N00BS/MpOrSp.Designer.cs
new file mode 100644
index 0000000..def81cb
--- /dev/null
+++ b/HorseIsleServer/N00BS/MpOrSp.Designer.cs
@@ -0,0 +1,82 @@
+namespace HISP
+{
+ partial class MpOrSp
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MpOrSp));
+ this.Singleplayer = new System.Windows.Forms.Button();
+ this.Multiplayer = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // Singleplayer
+ //
+ this.Singleplayer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.Singleplayer.Location = new System.Drawing.Point(11, 12);
+ this.Singleplayer.Name = "Singleplayer";
+ this.Singleplayer.Size = new System.Drawing.Size(581, 32);
+ this.Singleplayer.TabIndex = 0;
+ this.Singleplayer.Text = "Play Singleplayer";
+ this.Singleplayer.UseVisualStyleBackColor = true;
+ this.Singleplayer.Click += new System.EventHandler(this.Singleplayer_Click);
+ //
+ // Multiplayer
+ //
+ this.Multiplayer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.Multiplayer.Location = new System.Drawing.Point(11, 50);
+ this.Multiplayer.Name = "Multiplayer";
+ this.Multiplayer.Size = new System.Drawing.Size(581, 32);
+ this.Multiplayer.TabIndex = 1;
+ this.Multiplayer.Text = "Play Multiplayer";
+ this.Multiplayer.UseVisualStyleBackColor = true;
+ this.Multiplayer.Click += new System.EventHandler(this.Multiplayer_Click);
+ //
+ // MpOrSp
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(604, 94);
+ this.Controls.Add(this.Multiplayer);
+ this.Controls.Add(this.Singleplayer);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(620, 133);
+ this.Name = "MpOrSp";
+ this.Text = "Select Mode";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button Singleplayer;
+ private System.Windows.Forms.Button Multiplayer;
+ }
+}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/MpOrSp.cs b/HorseIsleServer/N00BS/MpOrSp.cs
new file mode 100644
index 0000000..b825151
--- /dev/null
+++ b/HorseIsleServer/N00BS/MpOrSp.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HISP
+{
+ public partial class MpOrSp : Form
+ {
+ public bool Mutliplayer = false;
+
+ public MpOrSp()
+ {
+ InitializeComponent();
+ }
+
+ private void Singleplayer_Click(object sender, EventArgs e)
+ {
+ Mutliplayer = false;
+ DialogResult = DialogResult.OK;
+ }
+
+ private void Multiplayer_Click(object sender, EventArgs e)
+ {
+ Mutliplayer = true;
+ DialogResult = DialogResult.OK;
+ }
+
+ }
+}
diff --git a/HorseIsleServer/N00BS/MpOrSp.resx b/HorseIsleServer/N00BS/MpOrSp.resx
new file mode 100644
index 0000000..2fb02c8
--- /dev/null
+++ b/HorseIsleServer/N00BS/MpOrSp.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/N00BS.csproj b/HorseIsleServer/N00BS/N00BS.csproj
index 8b748a4..a07178b 100644
--- a/HorseIsleServer/N00BS/N00BS.csproj
+++ b/HorseIsleServer/N00BS/N00BS.csproj
@@ -1,7 +1,7 @@
WinExe
- HISP
+ HISP.Noobs
10.0
true
diff --git a/HorseIsleServer/N00BS/N00BS.csproj.user b/HorseIsleServer/N00BS/N00BS.csproj.user
index a02acd6..eaa0197 100644
--- a/HorseIsleServer/N00BS/N00BS.csproj.user
+++ b/HorseIsleServer/N00BS/N00BS.csproj.user
@@ -1,15 +1,21 @@
-
-
-
-
-
- Form
-
-
- Form
-
-
- Form
-
-
+
+
+
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/Program.cs b/HorseIsleServer/N00BS/Program.cs
index 64c5d95..d9bfa91 100644
--- a/HorseIsleServer/N00BS/Program.cs
+++ b/HorseIsleServer/N00BS/Program.cs
@@ -9,6 +9,7 @@ using HISP.Game.SwfModules;
using HISP.Security;
using HISP.Server;
using HTTP;
+
using System;
using System.Diagnostics;
using System.IO;
@@ -78,100 +79,118 @@ namespace HISP.Noobs
Directory.CreateDirectory(BaseDir);
IP = GenIP();
- lfrm = new LoadingForm();
- Task startForm = new Task(StartLRFrm);
- startForm.Start();
-
- ConfigReader.ConfigurationFileName = Path.Combine(BaseDir, "server.properties");
- ConfigReader.OpenConfig();
- ConfigReader.SqlLite = true;
- ConfigReader.LogLevel = 0;
- ConfigReader.BindIP = IP;
- ConfigReader.CrossDomainPolicyFile = Path.Combine(BaseDir, "CrossDomainPolicy.xml");
- ConfigReader.DatabaseName = Path.Combine(BaseDir, "game1.db");
-
- IncrementProgress();
- Database.OpenDatabase();
- IncrementProgress();
-
-
- if (Database.GetUsers().Length <= 0)
- {
- RegisterForm rfrm = new RegisterForm();
- if (rfrm.ShowDialog() == DialogResult.Cancel)
- GameServer.ShutdownServer();
-
- }
-
// Start Web Server
- try{
+ try
+ {
cs = new ContentServer(IP);
- string[] fileList = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(),"client"), "*", SearchOption.AllDirectories);
+ string[] fileList = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "client"), "*", SearchOption.AllDirectories);
foreach (string file in fileList)
addToList(file);
- }catch(Exception e){
- MessageBox.Show("Web server failed to start: "+e.Message, "Error starting web server", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Web server failed to start: " + e.Message, "Error starting web server", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
- IncrementProgress();
-
- // Start HI1 Server
- IncrementProgress();
-
- Entry.SetShutdownCallback(OnShutdown);
- IncrementProgress();
-
- CrossDomainPolicy.GetPolicy();
- IncrementProgress();
-
- GameDataJson.ReadGamedata();
- IncrementProgress();
-
- Map.OpenMap();
- IncrementProgress();
-
- World.ReadWorldData();
- IncrementProgress();
-
- Treasure.Init();
- IncrementProgress();
-
- DroppedItems.Init();
- IncrementProgress();
-
- WildHorse.Init();
- IncrementProgress();
-
- Drawingroom.LoadAllDrawingRooms();
- IncrementProgress();
-
- Brickpoet.LoadPoetryRooms();
- IncrementProgress();
-
- Multiroom.CreateMultirooms();
- IncrementProgress();
-
- Auction.LoadAllAuctionRooms();
- IncrementProgress();
-
- Item.DoSpecialCases();
- IncrementProgress();
- try{
- GameServer.StartServer();
- }catch(Exception e){
- MessageBox.Show("Horse Isle server failed to start: "+e.Message, "Error starting web server", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ MpOrSp mporsp = new MpOrSp();
+ if (mporsp.ShowDialog() != DialogResult.OK)
return;
+
+ if (mporsp.Mutliplayer)
+ {
+ ServerSelection ssel = new ServerSelection();
+ ssel.ShowDialog();
+ }
+ else
+ {
+ lfrm = new LoadingForm();
+ Task startForm = new Task(StartLRFrm);
+ startForm.Start();
+
+ ConfigReader.ConfigurationFileName = Path.Combine(BaseDir, "server.properties");
+ ConfigReader.OpenConfig();
+ ConfigReader.SqlLite = true;
+ ConfigReader.LogLevel = 0;
+ ConfigReader.BindIP = IP;
+ ConfigReader.CrossDomainPolicyFile = Path.Combine(BaseDir, "CrossDomainPolicy.xml");
+ ConfigReader.DatabaseName = Path.Combine(BaseDir, "game1.db");
+
+ IncrementProgress();
+ Database.OpenDatabase();
+ IncrementProgress();
+
+
+ if (Database.GetUsers().Length <= 0)
+ {
+ RegisterForm rfrm = new RegisterForm();
+ if (rfrm.ShowDialog() == DialogResult.Cancel)
+ GameServer.ShutdownServer();
+
+ }
+
+ // Start HI1 Server
+ IncrementProgress();
+
+ Entry.SetShutdownCallback(OnShutdown);
+ IncrementProgress();
+
+ CrossDomainPolicy.GetPolicy();
+ IncrementProgress();
+
+ GameDataJson.ReadGamedata();
+ IncrementProgress();
+
+ Map.OpenMap();
+ IncrementProgress();
+
+ World.ReadWorldData();
+ IncrementProgress();
+
+ Treasure.Init();
+ IncrementProgress();
+
+ DroppedItems.Init();
+ IncrementProgress();
+
+ WildHorse.Init();
+ IncrementProgress();
+
+ Drawingroom.LoadAllDrawingRooms();
+ IncrementProgress();
+
+ Brickpoet.LoadPoetryRooms();
+ IncrementProgress();
+
+ Multiroom.CreateMultirooms();
+ IncrementProgress();
+
+ Auction.LoadAllAuctionRooms();
+ IncrementProgress();
+
+ Item.DoSpecialCases();
+ IncrementProgress();
+ try
+ {
+ GameServer.StartServer();
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Horse Isle server failed to start: " + e.Message, "Error starting web server", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ IncrementProgress();
+
+ lfrm.DialogResult = DialogResult.OK;
+
+ SystemTrayIcon stry = new SystemTrayIcon();
+ stry.ShowDialog();
+
+ // Finally, shutdown server
+ GameServer.ShutdownServer();
}
- IncrementProgress();
- lfrm.DialogResult = DialogResult.OK;
-
- SystemTrayIcon stry = new SystemTrayIcon();
- stry.ShowDialog();
- // Finally, shutdown server
- GameServer.ShutdownServer();
}
}
}
diff --git a/HorseIsleServer/N00BS/ServerSelection.Designer.cs b/HorseIsleServer/N00BS/ServerSelection.Designer.cs
new file mode 100644
index 0000000..3e8e1ea
--- /dev/null
+++ b/HorseIsleServer/N00BS/ServerSelection.Designer.cs
@@ -0,0 +1,127 @@
+namespace HISP
+{
+ partial class ServerSelection
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerSelection));
+ this.joinServer = new System.Windows.Forms.Button();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.serverIp = new System.Windows.Forms.TextBox();
+ this.portNumber = new System.Windows.Forms.NumericUpDown();
+ ((System.ComponentModel.ISupportInitialize)(this.portNumber)).BeginInit();
+ this.SuspendLayout();
+ //
+ // joinServer
+ //
+ this.joinServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.joinServer.Location = new System.Drawing.Point(10, 34);
+ this.joinServer.Name = "joinServer";
+ this.joinServer.Size = new System.Drawing.Size(576, 31);
+ this.joinServer.TabIndex = 0;
+ this.joinServer.Text = "Join Server";
+ this.joinServer.UseVisualStyleBackColor = true;
+ this.joinServer.Click += new System.EventHandler(this.joinServer_Click);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(12, 9);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(55, 15);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Server IP:";
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(389, 9);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(73, 15);
+ this.label1.TabIndex = 4;
+ this.label1.Text = "Server PORT:";
+ //
+ // severIp
+ //
+ this.serverIp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.serverIp.Location = new System.Drawing.Point(73, 6);
+ this.serverIp.Name = "severIp";
+ this.serverIp.Size = new System.Drawing.Size(310, 23);
+ this.serverIp.TabIndex = 5;
+ this.serverIp.Text = "game.islehorse.com";
+ //
+ // portNumber
+ //
+ this.portNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.portNumber.Location = new System.Drawing.Point(468, 6);
+ this.portNumber.Maximum = new decimal(new int[] {
+ 65565,
+ 0,
+ 0,
+ 0});
+ this.portNumber.Name = "portNumber";
+ this.portNumber.Size = new System.Drawing.Size(120, 23);
+ this.portNumber.TabIndex = 6;
+ this.portNumber.Value = new decimal(new int[] {
+ 12321,
+ 0,
+ 0,
+ 0});
+ //
+ // ServerSelection
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(598, 77);
+ this.Controls.Add(this.portNumber);
+ this.Controls.Add(this.serverIp);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.joinServer);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MinimumSize = new System.Drawing.Size(614, 116);
+ this.Name = "ServerSelection";
+ this.Text = "Server Selection";
+ ((System.ComponentModel.ISupportInitialize)(this.portNumber)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button joinServer;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.TextBox serverIp;
+ private System.Windows.Forms.NumericUpDown portNumber;
+ }
+}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/ServerSelection.cs b/HorseIsleServer/N00BS/ServerSelection.cs
new file mode 100644
index 0000000..98dd23c
--- /dev/null
+++ b/HorseIsleServer/N00BS/ServerSelection.cs
@@ -0,0 +1,53 @@
+using HISP.Noobs;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HISP
+{
+ public partial class ServerSelection : Form
+ {
+ public ServerSelection()
+ {
+ InitializeComponent();
+ }
+
+
+ public void clientExited(object sender, EventArgs e)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(() =>
+ {
+ this.Close();
+ });
+ }
+ else
+ {
+ this.Close();
+ }
+ }
+ public void joinServer_Click(object sender, EventArgs e)
+ {
+ this.Hide();
+ Process clientProcess = new Process();
+ clientProcess.StartInfo.FileName = "flash.dll";
+ clientProcess.StartInfo.Arguments = "http://" + Program.IP + "/horseisle.swf?SERVER=" + serverIp.Text + "&PORT=" + portNumber.Value.ToString();
+
+ clientProcess.StartInfo.RedirectStandardOutput = true;
+ clientProcess.StartInfo.RedirectStandardError = true;
+
+ clientProcess.EnableRaisingEvents = true;
+ clientProcess.Exited += clientExited;
+ clientProcess.Start();
+ clientProcess.WaitForExit();
+ }
+ }
+}
diff --git a/HorseIsleServer/N00BS/ServerSelection.resx b/HorseIsleServer/N00BS/ServerSelection.resx
new file mode 100644
index 0000000..2fb02c8
--- /dev/null
+++ b/HorseIsleServer/N00BS/ServerSelection.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/flash.dll b/HorseIsleServer/N00BS/flash.dll
index ecbeaef..6e7210d 100644
Binary files a/HorseIsleServer/N00BS/flash.dll and b/HorseIsleServer/N00BS/flash.dll differ