导航菜单
首页 » 石器私服教程 » 正文

石器时代ABLua的操作原理1



服务端:服务器源文件


客户端:客户所操作的程序(既是游戏客户端)


接口:既是某项功能(例如:鼠标点击,文字发送,战斗,观战,人物动作等)返回的值


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)