GA好望角|魔力宝贝私服|魔力私服|魔力私服|GA反外挂

 找回密码
 立即注册
凤凰(QQ:715837)
售前咨询
GA白皮书(客户端)
GA白皮书(服务端)
cgdev.me开发者论坛
放映地(炫斗魔力公益PK服)
新服发布站
欢迎来到GA好望角~
价格公示表
回首页
关于妖城与某些恶意人士对我们恶意抹黑的回应
查看: 4917|回复: 1

GA封装的客户端服务端通讯函数

[复制链接]

135

主题

142

帖子

142

积分

管理员

Rank: 9Rank: 9Rank: 9

金钱
2297
号角币
474
发表于 2019-4-10 11:07:23 | 显示全部楼层 |阅读模式
依赖项:服务端:powersend.share.lua
        客户端:更新至20190410及以上版本登录器
二建端自带以上依赖项(请使用最新版)
服务端脚本请从二建端中找出拷贝至服务器,客户端请找GA客服更新


作用:该模块允许客户端与服务端以table的方式来传送数据数据
传输为异步操作(不堵塞) 并且自动裁包组包 操作者无需关心细节问题

服务端例子:(其中Event.Recv.XX中的 XX 可以是任意字符串
      
function Event.Recv.CS(player,packet)
      if packet == "发送数据1" then
            local ret_tbl = {
                ["age"] = 12,
                ["sex"] = 1,
            }
            Protocol.PowerSend(player,"发送数据1异步回传",ret_tbl)
      end
end


客户端例子:
      
Cli.Send("发送数据1").wait["发送数据1异步回传"] = function (tbl)
        Cli.MessageBox(tbl["age"])
end


如只要在客户端注册一个接受函数,而不发送任何数据时,可以使用以下写法:
      
Cli.Send().wait["发送数据1异步回传"] = function (tbl)
        Cli.MessageBox(tbl["age"])
end






实用例子:点击按钮,客户端的按钮图档从100000变成120000,由服务端gmsv回传数据控制
客户端:
      
saveobject = nil;
-- 注册一个窗口打开事件回调
function Event.ViewInit.Test(view)
        -- 如果是首次加载
        if view.IsInit then
                -- 设置以下控件为顶层
                view.settop();        
                -- 往窗口加入一个image控件
                view.add(new.image("Test_1"))
                return;
        end
        local object = view.find("Test_1")
        object.enable = 1
        object.xpos = 10
        object.ypos = 10
        object.imageID = 100000
        object.event = function(object,event)        
                if event == Cevent.click then
                        Cli.Send("GETR").wait["RET1"] = function (tbl)
                             saveobject.imageID = tonumber(tbl["result"])                        
                        end
                end
        
        end
        saveobject = object
end



服务端:
      
function Event.Recv.CS(player,packet)
      if packet == "GETR" then
            local ret_tbl = {
                ["result"] = 120000
            }
            Protocol.PowerSend(player,"RET1",ret_tbl)
      end
end








回复

使用道具 举报

0

主题

41

帖子

41

积分

新手上路

Rank: 1

金钱
253
号角币
9
发表于 2022-3-25 10:20:31 | 显示全部楼层
学习一下 路过看看啊
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|GA好望角

GMT+8, 2024-12-22 11:05 , Processed in 0.103849 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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