AngelScript试用记

AS是什么时候发现的呢,很久很久以前,下VcAsm大侠的VProtector(怎么认识VcAsm的大名的呢,问SD的彩虹岛DynCode去。。),想知道他那内嵌的C编译器是怎么搞的,用Depends打开EXE,咦,怎么有几个导出函数,Google一下,得到AS脚本引擎~

这次是突然想卖挂生活技能软件,但想把程序和数据分立,也就是说不管是生活技能还是刷BUG还是强制组队隐身什么的都用同样的软件,而封包的逻辑不再硬编码到程序中,也就是要借助脚本语言。

出名的脚本就那么几个,Python、LUA、Ruby等。因为WOW的缘故,LUA依旧是目前世界上最流行的嵌入脚本(Python太大,可以单独开发了,加之python.org的纠结 – -),解释器体积也小,只有100K,但我怎么看怎么觉得不爽。。不支持面向对象是个原因,最烦的是那语法,C不像C、Basic不像Basic、Pascal不像Pascal的,而AS在这些方面要好的多,支持OO,C++语法,大小400K左右,只是中文文献——不是很少,是根本没有,连E文文献估计也就只有SDK了,看着累了点。

按照Your first script的步骤做了hello world。然后就急不迫待地打开许久前未完成的BUG工具MFC移植版乱搞一气。。(此处省略3000字)

最终成功写这样的脚本成功实现了隐身~还是OO版的脚本哦~

void main()
{
    Packet p;
    p.WriteInt(200000500);
    p.WriteInt(0x8000008);
    p.WriteInt(2);
    p.WriteInt(0);
    PutSend(p.GetText());
}

现在算是熟悉GlobalFunction还有值类型的class了。不过毕竟是托管的,许多东西和NativeC还是差别很大,比如数组和指针的概念。并且前人的测试看来AS的执行速度只有NativeC的1/160(同样的测试LUA是1/60)。不过总的来看还是很不错的,我个人觉得AS很有发展潜力,从文档看来预编译、JIT这些功能都有,只不过要用户自己来实现,而目前研究的人还很少而已。

Leave a Reply

Your email address will not be published. Required fields are marked *