服务端:服务器源文件
客户端:客户所操作的程序(既是游戏客户端)
接口:既是某项功能(例如:鼠标点击,文字发送,战斗,观战,人物动作等)返回的值
ABlua:在源代码中添加的整套引擎作为回调接口
--
lua所实现的功能是基于服务端源码添加的接口
由该接口与客户端发送封包实现功能
源码里是否有ABlua回调接口?
例如:源码里的gmsv/battle.c文件(既是战斗回调文件)
以下为简单描述C给予lua接口过程
BATTLE_WatchEntry ( ) 函数 (函数:利用括号里的值得出不同结果) --这里称它为函数A
即为客户端点击观战按钮所发送给服务器的封包 括号里的参数即为客户端封包发送的内容
charaindex=我自己 todindex=对方 (这两个参数是由玩家登陆服务器时所得到)
服务器要回调给客户端,必须由这个函数A的值所决定
利用客户端发送的两个参数进行判断(int为整数,所以二者都是整数)
而函数A 前面的int 意味着 这个函数最后的结果为 函数A == 整数
在这里不讲解过程 结果为如果 函数A == 0 则不允许观战,如果 函数A==1则 进入观战
可以看到下面 ifdef里 函数A 的结果 交给了 ABlua 的 BattleWatch() 函数 --在这里称它为函数B
函数A 的 charaindex和toindex 两个参数 也赋予了函数B 最后让ABlua去进行判断 让函数B的值去赋予函数A
实现函数B 即为ABlua回调接口,必须在\gmsv\mylua源码里添加
这样观战的接口既可用lua去实现
以上叙述是简单描述Ablua原理,并非添加接口的方法
评论(0)