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:
parent
5c8c5b6ba1
commit
0f45ecec53
12 changed files with 116 additions and 61 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue