增加支持Lua脚本
与之前所有NPC的脚本文件所放文件位置一样,原本脚本文件“NPC名字-地图编号.TXT”,用LUA就是“NPC名字-地图编号.LUA”。
注意: 当前M2脚本读取的方式是优先读取原本TXT脚本,在TXT脚本不存在时候去读取LUA脚本,如两种类型脚本都不存在则跳过此NPC脚本加载
functionmain()
local role = server.getMyself()
NPCSAY(role.Name.."("..role.Level.."),<你好/AUTOCOLOR=253>\\<开始任务/@kai>
end
function kai()
CHANGEEXP("+ 100")
SENDMSG("0 你的经验增加了100点!")
SENDCENTERMSG(" 180 251 这是一个居中显示的公告. 0 3")
end
function chkdbg()
if CHECKBAGSIZE("36") then
NPCSAY("你的背包至少有 35 个空位!\\ \\<返回/@main>")
else
NPCSAY("你的背包已没有 35 个空位\\ \\<返回/@main>")
end;
end;
正如上文示例所示,新脚本的语法有需注意的地方,如下:
1)、每个新脚本文件(通用的库文件除外),都应有main入口函数; |
2)、新脚本系统预定义及处理了数个“变量”和函数,它们皆大写 |
3)、调用预定义的函数时(如CHANGEEXP),所有参数以字符串形式书写传递(如"+ 100"); … |
N)、待补充。 |
1)、GETOBJECT,获取某个变量,已支持获取当前角色及NPC对象(如上); |
2)、新脚本系统预定义及处理了数个“变量”和函数,它们皆大写 |
1)、每个新脚本文件(通用的库文件除外),都应有main入口函数; |
2)、NPCSAY |
3)、SENDMSG |
4)、所有HERO支持的老脚本指令 |
M2Server导出了一些可在脚本中以类似“role.XX”的形式引用的角色属性,以供方便快捷的读取角色信息,列表如下:
1)、Name |
c7)、DC |
13)、MaxWeight |
2)、Level |
8)、MC |
14)、WearWeight |
3)、HP |
9)、SC |
15)、MaxWearWeight |
4)、MaxHP |
10)、AC |
16)、HandWeight |
5)、MP |
11)、MAC |
17)、MaxHandWeight |
6)、MaxMP |
12)、Weight |
18)、CreditPoint …等等。 |
注意:应先“role = GETOBJECT("PLAYER")”获取role对象,才可引用role的诸属性。