传奇文章 发表于 2020-3-5 10:28:45

传奇Lua脚本之客户端,让lua代码跑起来

  传奇编写龙族引擎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 是不一样的!

页: [1]
查看完整版本: 传奇Lua脚本之客户端,让lua代码跑起来