MudEngine:

- Game now checks to see if there is a initial environment setup, if not an Abyss is created to store players in.
 - Game now compiles scripts prior to loading libary assemblies to ensure the latest assembly is loaded.
 - BaseCharacter now supports the Abyss room if no initial Game realm is set.
 - BaseCharacter will no longer load the player into a room that does not exist (was deleted or something), they are defaulted into the Abyss.
 - ScriptEngine checks for errors in the script prior to trying to reference the compiled assembly (was causing errors if scripts failed to compile; no assembly generated to reference)
 - Assembly libraries are now only loaded once.

MudServer:
 - Example MyGame.cs script now constructs a realm and sets default properties.
 - MyPlayer script added to show how to write your own player script.
 - Server loop restored and now working correctly.
 - Server now outputs additional info regarding startup.
 - Server now forces TCP protocol.
This commit is contained in:
Scionwest_cp 2010-08-05 19:07:12 -07:00
parent c3c2d22ec7
commit 88378584ac
11 changed files with 199 additions and 30 deletions

View file

@ -37,9 +37,12 @@ namespace MudServer
scriptEngine.Initialize();
GameObject obj = scriptEngine.GetObjectOf("Game");
Log.Write(Log.GetMessages());
Log.FlushMessages();
if (obj == null)
{
Log.Write("Setting up the Engine Game Manager...");
game = new Game();
obj = new GameObject(game, "Game");
scriptEngine = new ScriptEngine((Game)obj.Instance, ScriptEngine.ScriptTypes.Assembly);
@ -49,11 +52,23 @@ namespace MudServer
game = (Game)obj.Instance;
scriptEngine = new ScriptEngine(game, ScriptEngine.ScriptTypes.Assembly);
}
scriptEngine.ScriptPath = FileManager.GetDataPath(SaveDataTypes.Root);
//Force TCP
game.ServerType = ProtocolType.Tcp;
scriptEngine.Initialize();
//Setup the scripting engine and load our script library
//MUST be called before game.Start()
//scriptEngine.Initialize();
//game.scriptEngine = scriptEngine; //Pass this script engine off to the game to use now.
Console.WriteLine(game.GameTitle);
Console.ReadKey();
game.Start();
while (game.IsRunning)
{
Console.Write(Log.GetMessages());
Log.FlushMessages();
System.Threading.Thread.Sleep(1);
}
/*