个人项目
  1. 示例项目
个人项目
  • 如何创建赛尔手册工具
  • 一分钟 ,上手赛尔手册开发
  • 示例项目
    • 1.引入JS
    • 如何发包并处理
    • 如何对战和出招
  • API
    • 其他接口
    • int10to16
    • StringtoBuffer
    • BuffertoString
    • game_send
    • game_send_recv_text
    • petbag_getpetbag
    • petbag_getstorage
  1. 示例项目

如何发包并处理

在 seer.js 中 有 4个用于发包的函数
game_send_recv_text 发送文本包 ,返回 promise 类 resolve返回的数据 PackHeadInfo
game_send_recv 发送arraybuffer包 返回 promise 类 resolve返回的数据 PackHeadInfo
game_send_text 发送文本包
game_send 发送arraybuffer包
返回的 PackHeadInfo 包括一下内容
PackHeadInfo.len 字符长度
PackHeadInfo.VERSION 版本
PackHeadInfo.cmdid 包命令名ID
PackHeadInfo.userid 用户id
PackHeadInfo.result 包结果
PackHeadInfo.Data_De 空,由于通信限制,此为空,重新打包后为包体 arraybuffer 格式
PackHeadInfo.Data_En 空,由于通信限制,此为空,重新打包后为总包 arraybuffer 格式
PackHeadInfo.Data_text 文本包,字符串
如果需要Data_De,或 Data_En 可以使用 GetHeadInfo_text(PackHeadInfo.Data_text) 重新打包PackHeadInfo
同时使用 new ByteArray(arraybuffer); 可以把arraybuffer打包为ByteArray,方便处理字节流
例子 这里是发送一个文本包,并且获得返回包 获得用户的兑换钻石数量
这里是点击id为 postMessage  触发发包
document.getElementById('postMessage').addEventListener('click', function() {
        //这里是发包,发包完毕后返回 packheadinfo               
        game_send_recv_text('00000021310000B3DE00000000000001E90000000100000433').then(
                    (PackHeadInfo) => {
                    //返回的packheadinfo 需要重新用 GetHeadInfo_text 打包一下
                    //否则PackHeadInfo.Data_De  PackHeadInfo.Data_En均为空
                    PackHeadInfo= GetHeadInfo_text(PackHeadInfo.Data_text)
                    //提示
                    alert('收到了包:'+PackHeadInfo.Data_text)
                    //转 ByteArray
		    var param = new ByteArray(PackHeadInfo.Data_De);
		   //读取第一个参 无用
		   param.readUnsignedInt()
		   //读取第二参数 ,钻石数量
		   var num =param.readUnsignedInt()
		   //提示
		   alert('你兑换过:'+num+' 钻石')
		})
修改于 2022-12-15 16:02:02
上一页
1.引入JS
下一页
如何对战和出招
Built with