-
Notifications
You must be signed in to change notification settings - Fork 578
Script
ScutGame edited this page Jan 16, 2015
·
7 revisions
此章节介绍如何在服务端使用C#脚本
在如何搭建服务端项目工程章节介绍中,可以了解到Script目录下包括Model、CsScript、PyScript和LuaScript子级目录;其中Model目录是存Entity实体类,只能由C#脚本编写;其它目录分别对应相应的开发脚本;接下来我们来看看如何使用C#脚本开发。
- Script_IsDebug:True 表示可以调试代码,否则不能调试,发布时为了提高性能,需要将这个调试选项关闭设置为Flase;
- ScriptRelativePath:表示脚本引擎监控的根目录路径,默认为“Script”,相对当前项目的路径位置;
- CSharpRootPath:表示监控脚本根目录下的C#脚本子目录,名称为“CsScript”,开发时只能在此目录下增加子目录才有效;
- ScriptMainClass:表示C#脚本启动入口文件,默认为“MainClass.cs”,分别继承相应基类,配置启用的是Http服务,或者是Socket服务和WebSocket服务;
- ScriptMainTypeName:表示C#脚本启动入口的类型名(命名空间+类名),默认为“Game.Script.MainClass”,用于实例化对象;
- Game.Language.TypeName:表示配置本地化语言配置的类型名,用于实例化配置简、繁或英等语言,只能启用其中一种,放在CsScript/Locale目录下;
- Game.Action.Script.TypeName:表示协议接口分发配置表达式,格式:“Action命名空间+Action{0}”,其中“{0}”表示ActionId变量,根据客户端请求的ActionId分发到具体的Action类中处理,脚本放在CsScript/Action目录下;
- Game.Remote.Script.TypeName:表示服务器间通讯入口的配置表达式,格式:“Remote命名空间+{0}”,其中“{0}”表示Route变量(string类型),根据客户端请求的Route参数找到相应的脚本类处理,脚本放在CsScript/Remote目录下;
- ScriptAsmReferences:表示C#脚本需要引用其它DLL组件的配置,多个以‘;’分隔;
- ScriptSysAsmReferences:表示C#脚本需要引用.NET FRAMEWORK的程序集组件的配置,多个以‘;’分隔;
脚本使用:
- Scut引擎使用C#编写,目前脚本入口只能使用C#脚本的MainClass。
- 脚本执行顺序,先Python脚本执行,再Lua脚本,再执行C#脚本。
- C#脚本不能禁用,Python和Lua脚本可以配置是否禁用,默认禁用。
打开GameServer.exe.config配置如下:
<appSettings>
<add key="Script_IsDebug" value="True" />
<add key="ScriptRelativePath" value="Script" />
<add key="CSharpRootPath" value="CsScript" />
<add key="ScriptMainClass" value="MainClass.cs" />
<add key="ScriptMainTypeName" value="Game.Script.MainClass" />
<add key="Game.Language.TypeName" value="GameServer.CsScript.Locale.SimplifiedLanguage" />
<add key="Game.Action.Script.TypeName" value="GameServer.CsScript.Action.Action{0}" />
<add key="Game.Remote.Script.TypeName" value="Game.Script.Remote.{0}" />
</appSettings>