| 1 |
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.qqgame=t():e.qqgame=t()}(window,function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=8)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o="1"==r("robot");function r(e){var t=location.href;e=e.replace(/[\[\]]/g,"\\$&");var n=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null}var i=function(){var e=navigator.userAgent.toLowerCase(),t=e.indexOf("iphone")>-1||e.indexOf("ipad")>-1;return function(){return t}}(),a=function(){var e=navigator.userAgent.toLowerCase().indexOf("android")>-1;return function(){return e}}(),s="localhost"===location.hostname||!!r("qqdebug"),c={},u=function(){var e="prod",t=navigator.userAgent.toLowerCase().match(/\senv\/([\d])\s/i);if(Array.isArray(t)&&t[1]){var n=parseInt(t[1]);"1"==n?e="test":"2"==n?e="prev":"3"==n&&(e="prod")}return function(){return s?"test":e}}();t.getParam=r,t.isIOS=i,t.isAndroid=a,t.isDebug=s,t.log=function(e){/**console.log("[QQGame SDK]:",e)**/},t.isQQGame=function(){return!(!s&&!o)||-1!=navigator.userAgent.toLowerCase().indexOf("qqgame")},t.getUserInfo=function(e){return c[e]?c[e]:null},t.setUserInfo=function e(t){if(Array.isArray(t))t.forEach(function(t){e(t)});else if(t&&t.qqgameid){var n=t.qqgameid;c[n]=t}},t.getDeviceInfo=function(){var e=window.devicePixelRatio||1,t={statusBarHeight:20},n=navigator.userAgent.toLowerCase().match(/StatusBarHeight\/([\d\.]+)/i);if(Array.isArray(n)&&n[1]){var o=parseInt(n[1]);isNaN(o)||(t.statusBarHeight=parseInt(o/e))}return t},t.getEnv=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.disableRobotRender=t.isRobotRender=t.robotLevel=t.isRobot=void 0;var o,r=n(0),i="1"==(0,r.getParam)("robot"),a="1"==(0,r.getParam)("render");i&&(t.robotLevel=o=(0,r.getParam)("level"),o&&(t.robotLevel=o=parseInt(o),t.robotLevel=o=isNaN(o)?1:o)),t.isRobot=i,t.robotLevel=o,t.isRobotRender=a,t.disableRobotRender=function(){if(window.cc)try{cc.director._visitScene=cc.renderer.clear=cc.renderer.rendering=function(){}}catch(e){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.invoke=void 0;var o=n(1),r=n(0);t.invoke=function(e,t){var n=JSON.stringify({eID:e,ePara:t});if(o.isRobot)try{window.pvpRequest(n)}catch(e){}else try{(0,r.isAndroid)()?window.qqgame&&window.qqgame.pvpRequest&&window.qqgame.pvpRequest(n):(0,r.isIOS)()&&window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.pvpRequest&&window.webkit.messageHandlers.pvpRequest.postMessage&&window.webkit.messageHandlers.pvpRequest.postMessage(n)}catch(e){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){c=e.uin,u=e.tableKey,e.frameSvrId,d=e.frameFps,a=e.frameURL,p=e.framePort,s=a+":"+p,l=e.cgiPath;var t=e.onMessage||function(){};return{wsPromise:w(t),send:S,stop:h,fetch:b}};var o=n(0),r=function(e){return e&&e.__esModule?e:{default:e}}(n(5)),i=n(2);var a,s,c,u,f,d,l,p,g=!1,m=0,v=!n(1).isRobot&&!o.isDebug,b=function(e){if(v){++m,(0,o.log)("frame fetch "+JSON.stringify(e))}},y=function(e){if(!g){var t="{domain="+a+";cgipath="+l+";cgiquery=uin="+c+";seq="+ ++m+";}",n=""+t.length+t+JSON.stringify(e);try{f.send(n)}catch(e){(0,o.log)("send frame msg error: "+JSON.stringify(e))}}},S=(Math.ceil(1e6*Math.random()),function(e){y({Cmd:"frame_transmit",BackString:"frame_transmit",MsgBody:{session:{tableKey:u},frameData:e}})}),h=function(){clearInterval(void 0),(0,o.log)("send frame stop"),y({Cmd:"frame_stop",BackString:"frame_stop",MsgBody:{session:{tableKey:u}}}),f&&f.close&&f.close(),v&&(0,i.invoke)("recycleUDP"),g=!0};var w=function(e){return new Promise(function(t,n){(f=new r.default(s)).onopen=function(){g=!1,(0,o.log)("frame ws open"),function(){(0,o.log)("send frame ready");var e={Cmd:"frame_ready",BackString:"frame_ready",MsgBody:{session:{tableKey:u},fps:d}};(0,o.log)(JSON.stringify(e)),y(e)}()},f.onmessage=function(n){var r=n.data,i=(r=JSON.parse(r)).Cmd;if("frame_start"==i)(0,o.log)("frame start"),t();else if("frame_transmit"==i){if(r.MsgBody&&r.MsgBody.frames&&r.MsgBody.frames[0]){var a=r.MsgBody.frames[0];e(a)}}else"frame_hello"==i||(0,o.log)(i)},f.onclose=function(){(0,o.log)("frame ws close")},f.onerror=function(e){(0,o.log)("frame ws error "+JSON.stringify(e))}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){i.isRobot&&(0,i.disableRobotRender)(),e.invoke=function(t,n){if(!S){if(n=n||{},(0,r.log)("invoke "+t+" "+JSON.stringify(n)),"frameData"==t){var o=n.testKey=v+"_"+b++;return y[o]=Date.now(),void c.send(n)}if("gameInit"==t&&n.openFraming&&(g=!0,m=n.fpsExpect||5,n.openFraming=void 0,n.fpsExpect=void 0),"showUser"==t&&(n.gameUin||n.qqgameid)){var i=n.gameUin||n.qqgameid,a=(0,r.getUserInfo)(i)||{};n=Object.assign(n,a)}if("gameResult"===t){if(S=!0,n)if(n.result)n.gameType||(n.gameType="COCOS");else if(n.resultDisplay){n.resultDisplay.result==e.RESULT_ESCAPE&&(n.resultDisplay.result=e.RESULT_LOSE);var u=n.resultData;if(n.version=1,Array.isArray(n.resultData)&&2==u.length){var f=[];u.forEach(function(e){var t=e.qqgameid;Object.assign({},e).qqgameid=void 0;var n={groupId:h[t],record:e.record,detail:[e]};f.push(n)}),n.resultData=f}}(0,r.log)("invoke "+t+" "+JSON.stringify(n)),g&&c.stop()}(0,s.invoke)(t,n)}},i.isRobot||setInterval(function(){(0,s.invoke)("watchDog")},3e3);var t=[];e.onMessage=function(e){t.push(e)};var n=-1,w={},E={},O={},R=parseInt(1e3/m/2),q=function e(t,o){var i=o.frameIndex;if("number"==typeof i&&!(i-n<1))if(i-n==1){n=i,console.log("valid",t,i,Date.now());var a=Date.now();Array.isArray(o.frameData)&&o.frameData.forEach(function(e){var t=e.testKey;t&&y[t]&&((0,r.log)("自发自收延迟: "+(a-y[t])),delete y[t])}),D("frameData",o);var s=n+1;w[s]&&(e(w[s].msgType,w[s].msgData),delete w[s])}else{if(console.log("future",t,i,Date.now()),w[i])return;w[i]={msgType:t,msgData:o},function(e,t){var n=Date.now();t=t-e<=100?t:e+100;for(var o=[],r=e;r<t;r++){if(void 0===E[r]&&(E[r]=0),E[r]>10)return;if(O[r]&&n-O[r]<R)return;o.push(r),E[r]++,O[r]=n}c.fetch(o)}(n+1,i)}};e.pvpResponse=function(e){"object"!==(void 0===e?"undefined":o(e))&&(e=JSON.parse(e));var t=e.eID,n=e.ePara;if("gameReset"===t&&(S=!1),!S)if("frameDataByUDP"!=t){if((0,r.log)("onMessage "+JSON.stringify(e)),"channelCreated"==t){var i=n.playerInfos;Array.isArray(i)&&2==i.length&&(i.forEach(function(e){e.qqgameid&&e.groupId&&(h[e.qqgameid]=e.groupId)}),(0,r.log)("qqgameIdToGroupId, "+JSON.stringify(h))),(0,r.setUserInfo)(i)}if("channelCreating"!=t)return"channelCreated"==t&&g?(u=n.playerInfos[0].qqgameid,v=1e3+n.playerInfos[0].seat,void(c=(0,a.default)({uin:u,frameFps:m,tableKey:p,cgiPath:l,frameURL:f,framePort:d,onMessage:function(e){D("frameData",e)}})).wsPromise.then(function(){D(t,n)})):void D(t,n);g&&(p=n.tableKey,l=n.url.transmitSvr.cgipath,f=n.url.transmitSvr.domain,d=n.url.transmitSvr.port)}else{var s=JSON.parse(n);"frame_transmit"==s.Cmd?Array.isArray(s.MsgBody.frames)&&s.MsgBody.frames.forEach(function(e){q("frameDataByUDP",e)}):(0,r.log)(JSON.stringify(e))}},e.setDebugAppid=function(){},e.setDebugGameType=function(){};var D=function(e,n){t.forEach(function(t){t(e,n)})}};var r=n(0),i=n(1),a=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),s=n(2);var c,u,f,d,l,p,g=!1,m=5,v=Math.ceil(1e4*Math.random()),b=0,y={},S=!1,h={}},function(e,t,n){"use strict";var o,r,i;r=[],void 0===(i="function"==typeof(o=function(){if("WebSocket"in window)return e.prototype.onopen=function(e){},e.prototype.onclose=function(e){},e.prototype.onconnecting=function(e){},e.prototype.onmessage=function(e){},e.prototype.onerror=function(e){},e.debugAll=!1,e.CONNECTING=WebSocket.CONNECTING,e.OPEN=WebSocket.OPEN,e.CLOSING=WebSocket.CLOSING,e.CLOSED=WebSocket.CLOSED,e;function e(t,n,o){var r={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:100,binaryType:"blob"};for(var i in o||(o={}),r)void 0!==o[i]?this[i]=o[i]:this[i]=r[i];this.url=t,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var a,s=this,c=!1,u=!1,f=document.createElement("div");function d(e,t){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!1,!1,t),n}f.addEventListener("open",function(e){s.onopen(e)}),f.addEventListener("close",function(e){s.onclose(e)}),f.addEventListener("connecting",function(e){s.onconnecting(e)}),f.addEventListener("message",function(e){s.onmessage(e)}),f.addEventListener("error",function(e){s.onerror(e)}),this.addEventListener=f.addEventListener.bind(f),this.removeEventListener=f.removeEventListener.bind(f),this.dispatchEvent=f.dispatchEvent.bind(f),this.open=function(t){if((a=new WebSocket(s.url,n||[])).binaryType=this.binaryType,t){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else f.dispatchEvent(d("connecting")),this.reconnectAttempts=0;(s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",s.url);var o=a,r=setTimeout(function(){(s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",s.url),u=!0,o.close(),u=!1},s.timeoutInterval);a.onopen=function(n){clearTimeout(r),(s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onopen",s.url),s.protocol=a.protocol,s.readyState=WebSocket.OPEN,s.reconnectAttempts=0;var o=d("open");o.isReconnect=t,t=!1,f.dispatchEvent(o)},a.onclose=function(n){if(clearTimeout(r),a=null,c)s.readyState=WebSocket.CLOSED,f.dispatchEvent(d("close"));else{s.readyState=WebSocket.CONNECTING;var o=d("connecting");o.code=n.code,o.reason=n.reason,o.wasClean=n.wasClean,f.dispatchEvent(o),t||u||((s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onclose",s.url),f.dispatchEvent(d("close")));var r=s.reconnectInterval*Math.pow(s.reconnectDecay,s.reconnectAttempts);setTimeout(function(){s.reconnectAttempts++,s.open(!0)},r>s.maxReconnectInterval?s.maxReconnectInterval:r)}},a.onmessage=function(t){(s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",s.url,t.data);var n=d("message");n.data=t.data,f.dispatchEvent(n)},a.onerror=function(t){(s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onerror",s.url,t),f.dispatchEvent(d("error"))}},1==this.automaticOpen&&this.open(!1),this.send=function(t){if(a)return(s.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","send",s.url,t),a.send(t);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(e,t){void 0===e&&(e=1e3),c=!0,a&&a.close(e,t)},this.refresh=function(){a&&a.close()}}})?o.apply(t,r):o)||(e.exports=i)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getGameType=t.setDebugGameType=t.setDebugAppid=t.getQQ=t.getAppid=void 0;var o,r=n(0),i=[8000343,8000369,8000370,8000371,8000372,8000379,8000381,8000382,8000383,8000384,8000385,8000386,8000387,8000486,8000489,8000497,8000498,8000499,8000500,8000510,8000513,8000514,8000515];var a="1v1";t.getAppid=function(){if(o)return o;var e=(0,r.getParam)("appid");return function(e){return e=parseInt(e),i.indexOf(e)>-1}(e)?e:i[0]},t.getQQ=function(){var e=Math.ceil(1e9*Math.random()+1e4);return(0,r.log)("qq "+e),e},t.setDebugAppid=function(e){o=e},t.setDebugGameType=function(e){a=e},t.getGameType=function(){return a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){var t,n,s,c,u,f=!1;e.setDebugAppid=i.setDebugAppid,e.setDebugGameType=i.setDebugGameType,e.invoke=function(e,o){f||(o=o||{},(0,r.log)("invoke "+e+" "+JSON.stringify(o)),"frameData"!=e?l.then(function(){var a={eID:e,ePara:o};"gameInit"==e&&(o.appid=(0,i.getAppid)(),(0,r.log)("appid "+o.appid),o.qq=n=(0,i.getQQ)(),o.gameType=(0,i.getGameType)(),o.openFraming&&(s=!0,c=o.fpsExpect,o.openFraming=void 0,o.fpsExpect=void 0)),"gameResult"!=e&&"gameExit"!=e||(f=!0,s&&t.stop()),u.send(JSON.stringify(a))}):t.send(o))};var d=[];e.onMessage=function(e){d.push(e)},e.pvpResponse=function(e){if(!f){"object"!==(void 0===e?"undefined":o(e))&&(e=JSON.parse(e));var t=e.eID,n=e.ePara;"frameData"!==t&&(0,r.log)("onMessage "+JSON.stringify(e)),d.forEach(function(e){e(t,n)})}};var l=new Promise(function(o,i){(u=new WebSocket("ws://test.go.minigame.qq.com/h5pvpservice/")).onopen=function(){o(),(0,r.log)("ws open")},u.onmessage=function(o){var r=o.data,i=(r=JSON.parse(r)).eID;if(s){if("session"==i){var u=r.ePara.tableKey,d=r.ePara.frameSvrId;return void(t=(0,a.default)({uin:n,tableKey:u,frameSvrId:d,frameFps:c,frameURL:"ws://test.trans.mobile.minigame.qq.com",framePort:9050,cgiPath:"",onMessage:function(t){e.pvpResponse({eID:"frameData",ePara:t})}}))}if("channelCreated"==i)return void t.wsPromise.then(function(){e.pvpResponse(r)})}"leave"==i&&(f=!0,s&&t.stop()),e.pvpResponse(r)},u.onerror=function(e){(0,r.log)("ws error "+JSON.stringify(e))}});window.addEventListener("beforeunload",function(){f||e.invoke("gameExit")})};var r=n(0),i=n(6),a=function(e){return e&&e.__esModule?e:{default:e}}(n(3))},function(e,t,n){"use strict";var o=n(0),r=s(n(7)),i=s(n(4)),a=n(1);function s(e){return e&&e.__esModule?e:{default:e}}var c=window.qqgame=window.qqgame||{};c.invoke||(c.version="0.3.6",c.isWebSDKOverloadRobotFunction=!0,(0,o.log)("version "+c.version),(0,o.log)("WiKi https://qqgame.qq.com/h5wiki/pvp-sdk"),c.isQQGame=o.isQQGame,c.getDeviceInfo=o.getDeviceInfo,c.isAndroid=o.isAndroid,c.isIOS=o.isIOS,c.getEnv=o.getEnv,c.isRobot=a.isRobot,c.robotLevel=a.robotLevel,c.RESULT_LOSE="lose",c.RESULT_EQUAL="equal",c.RESULT_WIN="win",c.RESULT_ESCAPE="escape",c.GAME_TYPE_1V1="1v1",c.GAME_TYPE_2V2="2v2",c.GAME_TYPE_4P="4p",o.isDebug?(0,r.default)(c):(0,i.default)(c)),e.exports=c}])});
|