|
http://helllua.googlecode.com/files/luamudbot.zip
其实才开始写了一点。
但都是一些比较底层的部分
有 以#开头的通用alias序列的解析。最终目标是能LOOP,if-then,selectcase,dowhihe,define block,希望能比zmud的命令还强大,仅用一串字符串就能新建个机器人。把机器人从写一个代码文件转为写一串宏
命名空间。没有命名空间也是后期hellua难以维护的地方。lua的命名空间不是那么标准。
类的实现。lua是基于anasi c的,本身并不直接支持类,要靠修改meta表来实现。
其它还有什么?我都忘了。
不过现在的似乎是彻底放弃oop。
lua和mud的形式都不太适合oop,更接近于REST的风格。
参考:http://jarln.net/?p=659
现在的想法是。
定义一系列的资源。
新的mod就是挂在新的位置的资源。
然后通过put,get,post,del(这个是http的方法,个人认为new,get,edit,del更直观好用点)
通过操作资源的方式来更适合lua。
比如,以rest的思路,walk走下一步,不是call一个walk函数。而是访问这么个资源。
post(因为是编辑) "http://system/base/walking/stepnum" ' ?step="++"'
我希望能用这样的lua代码实现。
system.base.walking.stepnum._edit({step="++"})
rest的方式虽然和传统的编程方式格格不入,现在也只是用在服务器上。
但是作为框架的话。
我觉得提供一个中间层
所有的trigger直接 用正则把 需要的部分 剥离成 参数表 传递给rest的服务器 处理
把mud传回的信息统一化资源化。
然后通过一个 判断 状态的序列 来作为主函数,根据现在的mud状态来判断该干什么。
是最接近人玩mud的方式,理论上也是容错性最高的。
而且 rest方式的文档比较好些。
这个mod里有哪些资源,比如:
system.mod.pkuxkx.food
system.mod.pkuxkx.food.vendor
system.mod.pkuxkx.food.vendor.loc
system.mod.pkuxkx.food.order
............................
所有和食物有关的函数,就是对这些资源的new,edit,get,del操作。
可能更容易维护点。
这些仅是个人刚冒出来的想法 |
|