// golang amc框架自动化handler示例
struct module {
amc.handler
}
// 自动handler规则:普通消息
// onmsg_前缀
// 第1个参数是amc.msg_base的子类
func (module* this) onmsg_login(msg_login* msg) {
}
// 自动handler规则:Player消息
// onmsg_前缀
// 第1个参数是amc.msg_base的子类
// 第2个参数是amc.obj_base子类
func (module* this) onmsg_logout(msg_logout* msg,
player_t* player) {
}
// 反射自动获取消息处理函数名和参数
// 自动计算消息ID(名字哈希,碰撞则改名)
// 自动路由管理
// 自动派发消息到
amc.reg_handler(new module)
// C#框架自动化 Lua <--> C# 示例
//(当然如果策划懂c#可免lua)
// C# 端
class player
{
public:
["lua"]
int id;
["lua"]
string name;
["lua"]
int get_attr(...)
{
return 200;
}
}
// 开发期启动一次后自动在当前目录下生成
// LUA绑定源码文件: player.auto.cs
// 我们Delphi项目中自动生成了3万多行高质量代码
bind_to_lua(new player);
// lua 端
// 直接访问c#对象成员或方法
if player.get_attr() > 100 then
print(player.id, player.name)
end