传奇编写龙族引擎Lua脚本之客户端(1) -- 让lua脚本跑起来,族引擎支持在客户端和M2服务端都可以写lua脚本, 我们先从客户端开始.
1. 准备: 文本编辑工具 notepad++,用于编写lua脚本;
2. 客户端lua运行机制:
(a) 首先在初始化文件中绑定各种事件对应的lua处理函数:
初始化文件名固定为 游戏目录\lua\client.lua, 用于定义各种事件函数的绑定, 全集常量/变量等. 这些脚本只在游戏启动时加载一次,调试游戏时修改了里面的内容后需要重启游戏客户端才会生效.
其它的lua脚本文件必须存放于 游戏目录\lua及其子目录下.
(b) 类似于windows操作系统, lua脚本需要对应的事件触发执行的, 大致的事件有:
(1) 键盘/鼠标事件: 键盘按下/鼠标点击触发事件绑定的lua函数;
(2) 消息事件: 接收到M2服务端发送的消息, 触发对应的lua处理函数;
(3) UI控件触发事件: 点击控件触发绑定的click事件lua处理函数;
(4) 定时器事件: 定时器定时触发绑定的lua函数;
(5) 游戏事件: 游戏小退/大退, 自定义套装悬浮框显示,自定义装备内观/外观显示,地图特效显示等绑定等lua函数;
3. 调试脚本命令输出:
客户端有:
Client.chat(输出文字); -- 输出到聊天框中
UI.showMessage(输出文字); -- 弹窗显示输出文字
服务端有:
server.print(输出文字); -- 输出到主窗口显示框中
开始动手实作, 在玩家接入游戏后在聊天框显示问候语, 步骤如下:
(1) 在游戏目录lua\client.lua 中加入如下事件绑定语句, 增加登录后执行一下lua脚本:
Client.BINDGAMEEVENT(GE_LOGONGAME, "GameEvent", "logon");
说明:
Client.BINDGAMEEVENT 是客户端执行绑定游戏事件的命令;
三个参数中: 第1个参数 GE_LOGONGAME 表示是进入游戏事件; 第2个为lua文件名; 第3个参数为函数名;
(2) 在游戏目录lua\下添加lua脚本文件 GameEvent.lua, 并加入如下脚本:
function logon()
local myself = Client.GETGAMEOBJECT('actor', "myself"); -- 获取当前角色对象
Client.chat(myself.name..", 欢迎你!");
end
提示: Lua脚本中的变量名函数名是区分大小写的, myself 和 Myself 是不一样的!
|
|