MudEngine:

- Updated all game commands to support the new Player.Send() method. Returning CommandResults is no longer supported.
 - Login command now executes the Look command upon completing login.
 - Look command now supports Rooms DetailDescription property. Use this for multi-line descriptions.
 - Several changes to the Restart command. Still not working fully however, it no longer calls duplicate methods.
 - Fixed Walk command not moving players around.
 - Loading engine commands no longer happens more than once.
 - Added additional Server Console log output
 - BaseCharacter.Send() now correctly displays content to the user and prints the "Command:" message to the player after every command completed.
 - The Server now sets Player.IsControlled to true when a player connects.
 - BaseCharacter.Send() checks if the game is multi-player or not. If it is, it prints to Console, if not then prints to telnet clients.

Mud Offline Example:
 - Updated Zeroth Realm creation to use Room.DetailDescription now that the Look command supports it.
 - Updated the Game loop. No longer needs to print to the console due to the player.Execute() command automatically printing content to the console.

Mud Server:
 - Removed player from server as it was not being used any longer.
This commit is contained in:
Scionwest_cp 2010-08-03 20:20:24 -07:00
parent 5c8c5b6ba1
commit 0f45ecec53
12 changed files with 116 additions and 61 deletions

View file

@ -194,6 +194,7 @@ namespace MudEngine.Scripting
{
if (_ScriptTypes == ScriptTypes.Assembly)
{
Log.Write("Loading Assembly based scripts...");
InitializeAssembly();
}
else
@ -203,6 +204,8 @@ namespace MudEngine.Scripting
foreach (Assembly assembly in _AssemblyCollection)
{
Log.Write("Checking " + Path.GetFileName(assembly.Location) + " for scripts...");
foreach (Type t in assembly.GetTypes())
{
if (t.BaseType == null)
@ -210,6 +213,7 @@ namespace MudEngine.Scripting
if (t.BaseType.Name == "BaseObject")
{
GameObjects.Add(new GameObject(Activator.CreateInstance(t, new object[] {_Game}), t.Name));
Log.Write(t.Name + " script loaded.");
continue;
}
else if (t.BaseType.Name == "BaseCharacter")
@ -217,6 +221,7 @@ namespace MudEngine.Scripting
GameObject obj = new GameObject(Activator.CreateInstance(t, new object[] {_Game}), t.Name);
GameObjects.Add(obj);
obj.GetProperty().CurrentRoom = _Game.InitialRealm.InitialZone.InitialRoom;
Log.Write(t.Name + " script loaded.");
continue;
}
}
@ -234,18 +239,21 @@ namespace MudEngine.Scripting
if (libraries.Length == 0)
{
Log.Write("Failed to load Script Assembly!");
Log.Write("No possible script libraries found.");
return;
}
foreach (string library in libraries)
{
Log.Write("Found possible script libary: " + Path.GetFileName(library));
_AssemblyCollection.Add(Assembly.LoadFile(library));
}
_AssemblyCollection.Add(Assembly.GetExecutingAssembly());
}
private void InitializeSourceFiles()
{
Log.Write("Source file scripts is not supported! Please change the script engine settings to load pre-compiled Assemblies!");
}
public GameObject GetObject(string objectName)