MudEngine:
- Changed Player[] array to a List<> Collection of PlayerBasics. This change is reflected across all Types. - Game now contains a Start() function. StartServer is now called from within here. - Game now has partial support for the Script Engine MudGame: - Game.StartServer has changed to Game.Start(). StartServer is called within Start().
This commit is contained in:
parent
0f87ac233a
commit
dbe1e693e5
5 changed files with 52 additions and 16 deletions
|
@ -59,13 +59,13 @@ namespace MUDGame
|
||||||
if (game.InitialRealm == null)
|
if (game.InitialRealm == null)
|
||||||
Console.WriteLine("Critical Error: No Initial Realm defined!");
|
Console.WriteLine("Critical Error: No Initial Realm defined!");
|
||||||
|
|
||||||
game.player = new MudEngine.GameObjects.Characters.Controlled.PlayerBasic[1000];
|
game.PlayerCollection = new List<MudEngine.GameObjects.Characters.Controlled.PlayerBasic>();
|
||||||
|
|
||||||
//Start the game.
|
//Start the game.
|
||||||
MudEngine.GameManagement.CommandEngine.LoadAllCommands();
|
MudEngine.GameManagement.CommandEngine.LoadAllCommands();
|
||||||
|
|
||||||
// Start the server thread.
|
// Start the server thread.
|
||||||
game.StartServer();
|
game.Start();
|
||||||
|
|
||||||
game.IsRunning = true;
|
game.IsRunning = true;
|
||||||
|
|
||||||
|
|
|
@ -26,13 +26,13 @@ namespace MudEngine.Commands
|
||||||
{
|
{
|
||||||
if (player is PlayerAdmin)
|
if (player is PlayerAdmin)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < project.player.Length; i++)
|
for (int i = 0; i < project.PlayerCollection.Count; i++)
|
||||||
project.player[i].Save(project.player[i].Name + ".dat");
|
project.PlayerCollection[i].Save(project.PlayerCollection[i].Name + ".dat");
|
||||||
project.server.EndServer();
|
project.server.EndServer();
|
||||||
if (project.ServerType == ProtocolType.Tcp)
|
if (project.ServerType == ProtocolType.Tcp)
|
||||||
project.server.InitializeTCP(555, ref project.player);
|
project.server.InitializeTCP(555, ref project.PlayerCollection);
|
||||||
else
|
else
|
||||||
project.server.InitializeUDP(555, ref project.player);
|
project.server.InitializeUDP(555, ref project.PlayerCollection);
|
||||||
return new CommandResults("Server Restarted.");
|
return new CommandResults("Server Restarted.");
|
||||||
}
|
}
|
||||||
return new CommandResults("Access Denied.");
|
return new CommandResults("Access Denied.");
|
||||||
|
|
|
@ -9,11 +9,13 @@ using System.Xml;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
//MUD Engine
|
//MUD Engine
|
||||||
using MudEngine.FileSystem;
|
using MudEngine.FileSystem;
|
||||||
using MudEngine.GameObjects;
|
using MudEngine.GameObjects;
|
||||||
using MudEngine.GameObjects.Environment;
|
using MudEngine.GameObjects.Environment;
|
||||||
|
using MudEngine.GameObjects.Characters.Controlled;
|
||||||
|
|
||||||
namespace MudEngine.GameManagement
|
namespace MudEngine.GameManagement
|
||||||
{
|
{
|
||||||
|
@ -172,6 +174,34 @@ namespace MudEngine.GameManagement
|
||||||
BaseCurrencyName = "Copper";
|
BaseCurrencyName = "Copper";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Starts the game.
|
||||||
|
/// </summary>
|
||||||
|
public void Start()
|
||||||
|
{
|
||||||
|
this.StartServer();
|
||||||
|
|
||||||
|
scriptEngine = new Scripting.ScriptEngine();
|
||||||
|
scriptEngine.Initialize();
|
||||||
|
scriptEngine.ScriptPath = "Scripts";
|
||||||
|
scriptEngine.ScriptExtension = ".mud";
|
||||||
|
|
||||||
|
if (System.IO.File.Exists("Scripts.dll"))
|
||||||
|
{
|
||||||
|
Assembly assem = Assembly.LoadFile("Scripts.dll");
|
||||||
|
|
||||||
|
foreach (Type t in assem.GetTypes())
|
||||||
|
{
|
||||||
|
if (t.BaseType.Name == "PlayerBasic")
|
||||||
|
{
|
||||||
|
Scripting.GameObject obj = new Scripting.GameObject();
|
||||||
|
obj = scriptEngine.GetObject(t.Name);
|
||||||
|
PlayerCollection.Add((PlayerBasic)obj.Instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Save(string filename)
|
public void Save(string filename)
|
||||||
{
|
{
|
||||||
string directory = Path.GetDirectoryName(filename);
|
string directory = Path.GetDirectoryName(filename);
|
||||||
|
@ -199,15 +229,18 @@ namespace MudEngine.GameManagement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public MudEngine.GameObjects.Characters.BaseCharacter[] player;
|
public List<PlayerBasic> PlayerCollection;
|
||||||
|
|
||||||
public MudEngine.Networking.Server server = new MudEngine.Networking.Server();
|
public MudEngine.Networking.Server server = new MudEngine.Networking.Server();
|
||||||
public ProtocolType ServerType = ProtocolType.Tcp;
|
public ProtocolType ServerType = ProtocolType.Tcp;
|
||||||
public int ServerPort = 555;
|
public int ServerPort = 555;
|
||||||
public int MaximumPlayers = 1000;
|
public int MaximumPlayers = 1000;
|
||||||
|
|
||||||
public void StartServer()
|
private Scripting.ScriptEngine scriptEngine;
|
||||||
|
|
||||||
|
private void StartServer()
|
||||||
{
|
{
|
||||||
server.InitializeTCP(ServerPort, ref player);
|
server.InitializeTCP(ServerPort, ref PlayerCollection);
|
||||||
server.Start();
|
server.Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,9 @@ using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
|
using MudEngine.GameObjects.Characters;
|
||||||
|
using MudEngine.GameObjects.Characters.Controlled;
|
||||||
|
|
||||||
/* Usage:
|
/* Usage:
|
||||||
* Server MUDServer = new Server();
|
* Server MUDServer = new Server();
|
||||||
* MUDServer.InitializeUDP(666); or MUDServer.InitializeTCP(666);
|
* MUDServer.InitializeUDP(666); or MUDServer.InitializeTCP(666);
|
||||||
|
@ -32,22 +35,22 @@ namespace MudEngine.Networking
|
||||||
}
|
}
|
||||||
server.CleanUp();
|
server.CleanUp();
|
||||||
}
|
}
|
||||||
public bool InitializeTCP(int port, ref MudEngine.GameObjects.Characters.BaseCharacter[] pbs)
|
public bool InitializeTCP(int port, ref List<PlayerBasic> pbs)
|
||||||
{
|
{
|
||||||
if (stage != 0)
|
if (stage != 0)
|
||||||
return false;
|
return false;
|
||||||
if (server.Initialize(port, ProtocolType.Tcp) < 0)
|
if (server.Initialize(port, ProtocolType.Tcp) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
numberOfClients = pbs.Length;
|
numberOfClients = pbs.Count;
|
||||||
clients = new ClientSocket[pbs.Length];
|
clients = new ClientSocket[pbs.Count];
|
||||||
clientThreads = new Thread[pbs.Length];
|
clientThreads = new Thread[pbs.Count];
|
||||||
players = pbs;
|
players = pbs;
|
||||||
|
|
||||||
stage++;
|
stage++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public bool InitializeUDP(int port, ref MudEngine.GameObjects.Characters.BaseCharacter[] pbs)
|
public bool InitializeUDP(int port, ref List<PlayerBasic> pbs)
|
||||||
{
|
{
|
||||||
if (stage != 0)
|
if (stage != 0)
|
||||||
return false;
|
return false;
|
||||||
|
@ -135,7 +138,7 @@ namespace MudEngine.Networking
|
||||||
private ServerSocket server;
|
private ServerSocket server;
|
||||||
private int stage;
|
private int stage;
|
||||||
|
|
||||||
MudEngine.GameObjects.Characters.BaseCharacter[] players;
|
List<PlayerBasic> players;
|
||||||
|
|
||||||
// TCP Stuff:
|
// TCP Stuff:
|
||||||
private ClientSocket[] clients;
|
private ClientSocket[] clients;
|
||||||
|
|
|
@ -97,7 +97,7 @@ namespace MudEngine.Scripting
|
||||||
Directory.Delete("temp", true);
|
Directory.Delete("temp", true);
|
||||||
|
|
||||||
Directory.CreateDirectory("temp");
|
Directory.CreateDirectory("temp");
|
||||||
string source = "namespace MUDScripts\n{\n}";
|
string source = "namespace MudScripts\n{\n}";
|
||||||
foreach (string script in scripts)
|
foreach (string script in scripts)
|
||||||
{
|
{
|
||||||
string tempPath = "temp";
|
string tempPath = "temp";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue