- 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.
28 lines
No EOL
874 B
C#
28 lines
No EOL
874 B
C#
public class MyPlayer : BaseCharacter
|
|
{
|
|
//Example use of custom properties
|
|
public string GuildName { get; set; }
|
|
|
|
//Player constructor. Passes the game parameter off to the parent class BaseCharacter.
|
|
public MyPlayer(Game game) : base(game)
|
|
{
|
|
GuildName = "MUD Guild";
|
|
}
|
|
|
|
|
|
public override void Save(string filename)
|
|
{
|
|
Log.Write("Saving custom player...");
|
|
//Don't save if the file name doesn't exist!
|
|
if (String.IsNullOrEmpty(filename))
|
|
return;
|
|
|
|
Log.Write("Saving base player...");
|
|
//Save all of the parent properties such as character name first.
|
|
base.Save(filename);
|
|
|
|
Log.Write("Saving custom content...");
|
|
//Write our GuildName out to the player save file.
|
|
FileManager.WriteLine(filename, GuildName, "GuildName");
|
|
}
|
|
} |