请选择 进入手机版 | 继续访问电脑版

龙族引擎

 立即注册
搜索
查看: 4818|回复: 7

编写龙族引擎Lua脚本之客户端(1) -- 让lua脚本跑起来

[复制链接]

5

主题

19

帖子

15

积分

新手

Rank: 1

积分
15
发表于 2018-10-19 17:48:04 | 显示全部楼层 |阅读模式
本帖最后由 mz-chemist 于 2018-10-19 17:50 编辑

龙族引擎支持在客户端和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 是不一样的!
执行效果截图如下.
呵呵, 真的可以输出文字了!

20181019174250.png
回复

使用道具 举报

0

主题

6

帖子

2

积分

新手

Rank: 1

积分
2
发表于 2018-10-20 18:10:03 | 显示全部楼层
好好学习,天天向上!
回复

使用道具 举报

0

主题

5

帖子

2

积分

新手

Rank: 1

积分
2
发表于 2019-11-1 16:52:22 | 显示全部楼层
为什么你有传奇战纪的补丁!
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手

Rank: 1

积分
2
发表于 2020-1-8 22:45:12 | 显示全部楼层
写的很好!
回复

使用道具 举报

0

主题

9

帖子

1

积分

新手

Rank: 1

积分
1
发表于 2020-11-22 13:40:46 | 显示全部楼层
整一个服务端的lua脚本编写啊!!!!
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手

Rank: 1

积分
0
发表于 2021-1-29 11:28:18 | 显示全部楼层
色粉的斯蒂芬是
回复

使用道具 举报

0

主题

9

帖子

1

积分

新手

Rank: 1

积分
1
发表于 2021-3-13 19:11:58 | 显示全部楼层
发一个服务器端的例子啊,大佬
回复

使用道具 举报

1

主题

17

帖子

2

积分

新手

Rank: 1

积分
2
发表于 2022-7-16 22:34:24 | 显示全部楼层
一直想完善一下老传奇收费的显示功能。想实现这样的功能,怀旧以前的感觉。1.76百分百仿盛大的版本已经有了,只差这一个功能,就完美了。但是依靠引擎基本不现实,没人会去在意这个功能。只能看看通过LUA脚本是否能实现。可惜自己不懂,需要学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|龙族引擎 ( 备案信息 )

GMT+8, 2024-4-18 18:54 , Processed in 0.050453 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表