| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- import ConstMsgId from './ConstMsgId';
- import Packet from '../net/Packet';
- import Common from '../common/Common'
- import Define from '../common/Define';
- import DataModelManager from '../framework/DataModelManager';
- let MsgTransfer = (
- function () {
- let encodeLoginMsg = function () {
- var playerInfoModel = DataModelManager.getModel('PlayerInfoModel');
- var selfUserInfo = playerInfoModel.getSelfWXPlayerInfo();
- if (arguments.length <= 2) {
- return;
- }
- var main = arguments[0];
- var sub = arguments[1];
- var len = arguments[2];
- var index = 2;
- if (!(main === ConstMsgId.MDM_KN_COMMAND && sub === ConstMsgId.SUB_KN_DETECT_SOCKET)) {
- console.log("encodemsg main:" + main + " sub:" + sub + " len:" + len);
- }
- var cmd_data = new ArrayBuffer(len);
- var cmd_view = new DataView(cmd_data);
- cmd_view.setUint16(index, len, Common.littleEndian);
- index += 2;
- cmd_view.setUint16(index, main, Common.littleEndian);
- index += 2;
- cmd_view.setUint16(index, sub, Common.littleEndian);
- index += 2;
- if (ConstMsgId.MDM_MB_LOGON === main) {
- if (ConstMsgId.SUB_MB_LOGON_WX === sub) {//微信code换openid
- var code = arguments[3];
- index = Common.putString(index, cmd_view, code);
- } else if (ConstMsgId.SUB_MB_LOGON_OTHERPLATFORM === sub) {
- if(selfUserInfo == null)
- {
- console.log("selfUserInfo is null:" );
- return;
- }
- console.log("selfUserInfo Len:" + JSON.stringify(selfUserInfo).length + " " + JSON.stringify(selfUserInfo));
- cmd_view.setUint16(index, Define.INVALID_WORD, Common.littleEndian);
- index += 2;
- cmd_view.setUint32(index, Common.version(7, 2, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint8(index, Define.DEVICE_TYPE, Common.littleEndian);
- index += 1;
- if (CC_WECHATGAME) {
- cmd_view.setUint8(index, selfUserInfo.gender, Common.littleEndian);
- }
- else if(CC_JSB && cc.sys.OS_ANDROID === cc.sys.os)
- {
- cmd_view.setUint8(index, selfUserInfo.gender, Common.littleEndian);
- }
- else {
- cmd_view.setUint8(index, Define.MYGENDER, Common.littleEndian);
- }
- index += 1;
- cmd_view.setUint8(index, Define.LogonMode.WeChatGame, Common.littleEndian);
- index += 1;
- index = Common.putString(index, cmd_view, playerInfoModel.getSelfOpenId(), Define.LEN_USER_UIN);
- if (CC_WECHATGAME) {
- index = Common.putString(index, cmd_view, selfUserInfo.nickName, Define.LEN_NICKNAME);
- index = Common.putString(index, cmd_view, selfUserInfo.nickName, Define.LEN_COMPELLATION);
- } else if(CC_JSB && cc.sys.OS_ANDROID === cc.sys.os)
- {
- index = Common.putString(index, cmd_view, selfUserInfo.nickName, Define.LEN_NICKNAME);
- index = Common.putString(index, cmd_view, selfUserInfo.nickName, Define.LEN_COMPELLATION);
- } else {
- index = Common.putString(index, cmd_view, Define.NICKNAME, Define.LEN_NICKNAME);
- index = Common.putString(index, cmd_view, Define.NICKNAME, Define.LEN_COMPELLATION);
- }
- index = Common.putString(index, cmd_view, JSON.stringify(selfUserInfo), Define.LEN_WX_USERINFO);
- index = Common.putString(index, cmd_view, Define.MachineId, Define.LEN_MACHINE_ID);
- index = Common.putString(index, cmd_view, Define.PhoneNumber, Define.LEN_MOBILE_PHONE);
- } else if (ConstMsgId.SUB_MB_LOGON_ACCOUNTS === sub) {
- cmd_view.setUint16(index, Define.INVALID_WORD, Common.littleEndian);
- index += 2;
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint8(index, Define.DEVICE_TYPE, Common.littleEndian);
- index += 1;
- index = Common.putString(index, cmd_view, Define.MYPASSWORD, Define.LEN_MD5);
- index = Common.putString(index, cmd_view, Define.MYACCOUNT, Define.LEN_ACCOUNTS);
- index = Common.putString(index, cmd_view, Define.MachineId, Define.LEN_MACHINE_ID);
- index = Common.putString(index, cmd_view, Define.PhoneNumber, Define.LEN_MOBILE_PHONE);
- }
- }else if (ConstMsgId.MDM_GP_LOGON === main) { //封装新的登录结构体
- if (ConstMsgId.SUB_GR_LOGON_USERID === sub) {
- cc.log("封装新的登录消息结构体")
- var id=arguments[3];
- id = parseInt(id)
- var password=arguments[4];
- cc.log("id,password",id,password);
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint32(index, id, Common.littleEndian);
- index += 4;
- index = Common.putString(index, cmd_view,password,Define.LEN_MD5);
- index = Common.putString(index, cmd_view, Define.MYACCOUNT, Define.LEN_MACHINE_ID);
- index = Common.putString(index, cmd_view, Define.MachineId, Define.LEN_MACHINE_ID);
- cmd_view.setUint16(index,Define.GAMEID, Common.littleEndian);
- index += 2;
- }
- }
- else if (ConstMsgId.MDM_GP_USER_SERVICE === main) {
- if (ConstMsgId.SUB_GP_GROWLEVEL_QUERY === sub) {
- var playerInfo = playerInfoModel.getSelfPlayerInfo();
- cmd_view.setUint32(index, playerInfo.dwUserID, Common.littleEndian);
- index += 4;
- index = Common.putString(index, cmd_view, Define.MYPASSWORD, Define.LEN_MD5);
- index = Common.putString(index, cmd_view, Define.MachineId, Define.LEN_MACHINE_ID);
- }
- }
- return cmd_data;
- };
- let encodemsg = function () {
- var playerInfoModel = DataModelManager.getModel('PlayerInfoModel');
- var configData = DataModelManager.getModel('ConfigData');
- var gameList = configData.getGameList();
- var player = playerInfoModel.getSelfPlayerInfo()
- if (arguments.length <= 2) {
- return
- }
- var main = arguments[0]
- var sub = arguments[1]
- var len = arguments[2]
- var index = 2
- if (!(main === ConstMsgId.MDM_KN_COMMAND && sub === ConstMsgId.SUB_KN_DETECT_SOCKET)) {
- console.log("encodemsg main:" + main + " sub:" + sub + " len:" + len)
- }
- var cmd_data = new ArrayBuffer(len)
- var cmd_view = new DataView(cmd_data)
- cmd_view.setUint16(index, len, Common.littleEndian)
- index += 2
- cmd_view.setUint16(index, main, Common.littleEndian)
- index += 2
- cmd_view.setUint16(index, sub, Common.littleEndian)
- index += 2
- if (ConstMsgId.MDM_GR_LOGON === main) {
- if (ConstMsgId.SUB_GR_LOGON_MOBILE === sub) {
- cmd_view.setUint16(index, Define.GAMEID, Common.littleEndian)
- index += 2
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian)
- index += 4
- cmd_view.setUint8(index, Define.DEVICE_TYPE, Common.littleEndian)
- index += 1
- cmd_view.setUint16(index, 0x0011, Common.littleEndian)
- index += 2
- cmd_view.setUint16(index, 255, Common.littleEndian)
- index += 2
- cmd_view.setUint32(index, player.dwUserID, Common.littleEndian)
- index += 4
- index = Common.putString(index, cmd_view, player.szDynamicPass, 33)
- index = Common.putString(index, cmd_view, player.szRoomPasswd, 33)
- //index = Common.putString(index,cmd_view,"A501164B366ECFC9E249163873094D50",33)
- index = Common.putString(index, cmd_view, "", 33)
- }
- else if (ConstMsgId.SUB_GR_LOGON_USERID === sub) {
- cc.log("封装新的登录消息结构体")
- var id = arguments[3];
- id = parseInt(id)
- var password=arguments[4];
- cc.log("id,password",id,password);
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint32(index, Common.version(6, 7, 0, 1), Common.littleEndian);
- index += 4;
- cmd_view.setUint32(index, id, Common.littleEndian);
- index += 4;
- index = Common.putString(index, cmd_view,password,Define.LEN_MD5);
- index = Common.putString(index, cmd_view, Define.MYACCOUNT, Define.LEN_MACHINE_ID);
- index = Common.putString(index, cmd_view, Define.MachineId, Define.LEN_MACHINE_ID);
- cmd_view.setUint16(index,Define.GAMEID, Common.littleEndian);
- index += 2;
- }
-
- } else if (ConstMsgId.MDM_GR_USER === main) {
- if (ConstMsgId.SUB_GR_USER_SITDOWN === sub) {
- var table = arguments[3]
- var chair = arguments[4]
- var password = arguments[5]
- cmd_view.setUint16(index, table, Common.littleEndian)
- index += 2
- cmd_view.setUint16(index, chair, Common.littleEndian)
- index += 2
- if (password) {
- index = Common.putString(index, cmd_view, password, Define.LEN_PASSWORD)
- }
- } else if (ConstMsgId.SUB_GR_USER_STANDUP === sub) {
- var table = arguments[3]
- var chair = arguments[4]
- var bForce = arguments[5]
- cmd_view.setUint16(index, table, Common.littleEndian)
- index += 2
- cmd_view.setUint16(index, chair, Common.littleEndian)
- index += 2
- if (bForce === true) {
- cmd_view.setUint8(index, 1, Common.littleEndian)
- index += 1
- } else {
- cmd_view.setUint8(index, 0, Common.littleEndian)
- index += 1
- }
- } else if (ConstMsgId.SUB_GR_USER_CHAIR_INFO_REQ === sub) {
- var table = arguments[3]
- var chair = arguments[4]
- cmd_view.setUint16(index, table, Common.littleEndian)
- index += 2
- cmd_view.setUint16(index, chair, Common.littleEndian)
- index += 2
- }
- } else if (ConstMsgId.MDM_GF_FRAME === main) {
- //--场景规则
- if (ConstMsgId.SUB_GF_GAME_OPTION === sub) {
- cmd_view.setUint8(index, 0, Common.littleEndian)
- index += 1
- // dataBuffer:pushbyte(0)
- // dataBuffer:pushdword(appdf.VersionValue(6,7,0,1))
- // dataBuffer:pushdword(self._kindVersion)
- cmd_view.setUint32(index, Common.version(7, 2, 0, 1), Common.littleEndian)
- index += 4
- cmd_view.setUint32(index, Common.version(7, 2, 0, 1), Common.littleEndian)
- index += 4
- }
- } else if (ConstMsgId.MDM_GF_GAME === main) {// game
- if (ConstMsgId.SUB_C_CALL_SCORE === sub) {// call score
- var score = arguments[3]
- cmd_view.setUint8(index, score, Common.littleEndian)
- index += 1
- } else if (ConstMsgId.SUB_C_OUT_CARD === sub) {
- var cards = arguments[3]
- var cardcount = cards.length
- cmd_view.setUint8(index, cardcount, Common.littleEndian)
- index += 1
- for (var i = 0; i < cardcount; i++) {
- var card = cards[i]
- cmd_view.setUint8(index, card, Common.littleEndian)
- index += 1
- }
- }
- }
- return cmd_data;
- };
- let decodemsg = function (wMainCmdID, wSubCmdID, buf) {
- if (ConstMsgId.MDM_MB_LOGON === wMainCmdID) {
- if (ConstMsgId.SUB_MB_LOGON_WX === wSubCmdID) {
- }
- else if (ConstMsgId.SUB_MB_LOGON_SUCCESS === wSubCmdID) {
- }
- }
- else if (ConstMsgId.MDM_MB_LOGON === wMainCmdID) {
- }
- };
- return {
- encodeLoginMsg: encodeLoginMsg,
- encodemsg: encodemsg,
- decodemsg: decodemsg,
- };
- }
- )();
- export default MsgTransfer;
|