Commit 133eec0e authored by zuqiu_rabbit's avatar zuqiu_rabbit

v1.0.8

parent af75175c
var md5 = require("md5");
var mta = require("mta");
var sdk_conf = require("sdk_conf");
var sdk = require("sdk");
var adSdk = {
bannerAd: null,
videoAd: null,
videoAd1: null,
videoAd2: null,
videoAd3: null,
//视频成功回调
videoSuccess: null,
//视频失败回调
videoFail: null,
videoError: null,
/**
* @param {int} index 视频id的数字编号 1 2 3
* @param {string} videoAdUnitId
*
*adSdk.videoSuccess = function(){
* //视频成功处理逻辑
* this.successFunction();
* };
* adSdk.videoFail = function(){
* //视频失败处理逻辑
* this.failFunction();`
* };
* adSdk.videoError = function(){
* //视频失败处理逻辑
* this.errorFunction();`
* };
* var videoAd = adSdk.createRewardedVideoAd(1,videoAdUnitId);
* videoAd.load().then(() => videoAd.show());
*
*/
createVideoAd(index, videoAdUnitId) {
if (index == 1) {
if (this.videoAd1) {
return this.videoAd1;
}
} else if (index == 2) {
if (this.videoAd2) {
return this.videoAd2;
}
} else if (index == 3) {
if (this.videoAd3) {
return this.videoAd3;
}
}
else {
if (this.videoAd) {
return this.videoAd;
}
}
return adSdk.createRewardedVideoAd(index, videoAdUnitId);
},
/**
*
* @param {json} obj
* @param {string} bannerAdUnitId
* 多个banner广告id调用如下:
* adSdk.createBannerAdByAdId({},bannerAdUnitId).destroy();
* adSdk.bannerAd =null;
* var bannerAd =adSdk.createBannerAdByAdId({},bannerAdUnitId2);
* bannerAd.show();
*
*/
createBannerAdByAdId(obj,bannerAdUnitId){
var self = this;
if (true) {
if(this.bannerAd){
return this.bannerAd;
}else{
if(!obj.style){
obj.style = {};
var phone = wx.getSystemInfoSync();
this.w = phone.screenWidth / 2;
this.h = phone.screenHeight;
obj.style.left = 0;
obj.style.top = 0;
obj.style.width = 300;
}
this.bannerAd = wx.createBannerAd({
adUnitId: bannerAdUnitId,
style: obj.style,
})
this.bannerAd.onResize(function(res){
console.log("sdk BannerAd广告缩放事件:", res)
self.bannerAd.style.left = self.w - self.bannerAd.style.realWidth/2+0.1;
self.bannerAd.style.top = self.h - self.bannerAd.style.realHeight+0.1;
});
this.bannerAd.onLoad(function(res){
console.log("sdk BannerAd广告加载事件:", res)
});
this.bannerAd.onError(function(res){
console.log("sdk BannerAd广告错误事件:", res)
});
return this.bannerAd;
}
}
},
/**
* 后期会慢慢弃用,因为该方法只适合一个banner广告的情况
* @param {json} obj
* var bannerAd =adSdk.createBannerAd({},bannerAdUnitId);
* bannerAd.show();
*
*/
createBannerAd(obj){
return sdk.createBannerAd(obj);
},
/**
* 该方法不直接对外提供调用
* @param {int} index
* @param {string} videoAdUnitId1
*
*/
createRewardedVideoAd(index, videoAdUnitId1) {
let self = this;
if (true) {
let videoAd = wx.createRewardedVideoAd({ adUnitId: videoAdUnitId1 })
videoAd.onLoad(function (res) {
console.log("sdk VideoAd广告加载事件:", res)
});
var closeFun1 = function (res) {
// 用户点击了【关闭广告】按钮
// 小于 2.1.0 的基础库版本,res 是一个 undefined
if (res && res.isEnded || res === undefined) {
console.log("sdk 看视频成功");
self.videoSuccess();
} else {
console.error("sdk 看视频失败");
self.videoFail();
}
};
videoAd.onClose(closeFun1);
videoAd.onError(function (res) {
if (self.videoError) {
self.videoError();
}
});
if (index == 1) {
this.videoAd1 = videoAd;
}
else if (index == 2) {
this.videoAd2 = videoAd;
}
else if (index == 3) {
this.videoAd3 = videoAd;
}
else {
this.videoAd = videoAd;
}
return videoAd;
}
}
};
window.adSdk = adSdk;
{
"ver": "1.0.5",
"uuid": "76a9ae71-a532-45e8-8a6e-d959fc353c11",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
exports.app_key = "778fe3a3df9f2fad46f85b885ed9ec7b"; //请在此行填写从阿拉丁后台获取的appkey
exports.getLocation = false; //默认不获取用户坐标位置
\ No newline at end of file
{
"ver": "1.0.5",
"uuid": "85f99ca3-1908-410d-b4c5-3fc10c72409e",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
{
"ver": "1.0.5",
"uuid": "9152f951-9a09-4139-b02b-022fdbbfc488",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
/*
* JavaScript MD5
* https://github.com/blueimp/JavaScript-MD5
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*
* Based on
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/* global define */
;(function ($) {
'use strict'
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safeAdd (x, y) {
var lsw = (x & 0xffff) + (y & 0xffff)
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
return (msw << 16) | (lsw & 0xffff)
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bitRotateLeft (num, cnt) {
return (num << cnt) | (num >>> (32 - cnt))
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5cmn (q, a, b, x, s, t) {
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
}
function md5ff (a, b, c, d, x, s, t) {
return md5cmn((b & c) | (~b & d), a, b, x, s, t)
}
function md5gg (a, b, c, d, x, s, t) {
return md5cmn((b & d) | (c & ~d), a, b, x, s, t)
}
function md5hh (a, b, c, d, x, s, t) {
return md5cmn(b ^ c ^ d, a, b, x, s, t)
}
function md5ii (a, b, c, d, x, s, t) {
return md5cmn(c ^ (b | ~d), a, b, x, s, t)
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length.
*/
function binlMD5 (x, len) {
/* append padding */
x[len >> 5] |= 0x80 << (len % 32)
x[((len + 64) >>> 9 << 4) + 14] = len
var i
var olda
var oldb
var oldc
var oldd
var a = 1732584193
var b = -271733879
var c = -1732584194
var d = 271733878
for (i = 0; i < x.length; i += 16) {
olda = a
oldb = b
oldc = c
oldd = d
a = md5ff(a, b, c, d, x[i], 7, -680876936)
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
b = md5gg(b, c, d, a, x[i], 20, -373897302)
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
d = md5hh(d, a, b, c, x[i], 11, -358537222)
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
a = md5ii(a, b, c, d, x[i], 6, -198630844)
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
a = safeAdd(a, olda)
b = safeAdd(b, oldb)
c = safeAdd(c, oldc)
d = safeAdd(d, oldd)
}
return [a, b, c, d]
}
/*
* Convert an array of little-endian words to a string
*/
function binl2rstr (input) {
var i
var output = ''
var length32 = input.length * 32
for (i = 0; i < length32; i += 8) {
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff)
}
return output
}
/*
* Convert a raw string to an array of little-endian words
* Characters >255 have their high-byte silently ignored.
*/
function rstr2binl (input) {
var i
var output = []
output[(input.length >> 2) - 1] = undefined
for (i = 0; i < output.length; i += 1) {
output[i] = 0
}
var length8 = input.length * 8
for (i = 0; i < length8; i += 8) {
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32)
}
return output
}
/*
* Calculate the MD5 of a raw string
*/
function rstrMD5 (s) {
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
}
/*
* Calculate the HMAC-MD5, of a key and some data (raw strings)
*/
function rstrHMACMD5 (key, data) {
var i
var bkey = rstr2binl(key)
var ipad = []
var opad = []
var hash
ipad[15] = opad[15] = undefined
if (bkey.length > 16) {
bkey = binlMD5(bkey, key.length * 8)
}
for (i = 0; i < 16; i += 1) {
ipad[i] = bkey[i] ^ 0x36363636
opad[i] = bkey[i] ^ 0x5c5c5c5c
}
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
}
/*
* Convert a raw string to a hex string
*/
function rstr2hex (input) {
var hexTab = '0123456789abcdef'
var output = ''
var x
var i
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i)
output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)
}
return output
}
/*
* Encode a string as utf-8
*/
function str2rstrUTF8 (input) {
return unescape(encodeURIComponent(input))
}
/*
* Take string arguments and return either raw or hex encoded strings
*/
function rawMD5 (s) {
return rstrMD5(str2rstrUTF8(s))
}
function hexMD5 (s) {
return rstr2hex(rawMD5(s))
}
function rawHMACMD5 (k, d) {
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
}
function hexHMACMD5 (k, d) {
return rstr2hex(rawHMACMD5(k, d))
}
function md5 (string, key, raw) {
if (!key) {
if (!raw) {
return hexMD5(string)
}
return rawMD5(string)
}
if (!raw) {
return hexHMACMD5(key, string)
}
return rawHMACMD5(key, string)
}
if (typeof define === 'function' && define.amd) {
define(function () {
return md5
})
} else if (typeof module === 'object' && module.exports) {
module.exports = md5
} else {
$.md5 = md5
}
})(this)
\ No newline at end of file
{
"ver": "1.0.5",
"uuid": "d74f5771-2091-4328-b08b-f287b53cd220",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
var MTA_CONFIG={app_id:"",event_id:"",api_base:"https://pingtas.qq.com/pingd",prefix:"_mta_",version:"1.3.5",stat_share_app:!1,stat_pull_down_fresh:!1,stat_reach_bottom:!1};function getNetworkType(a){wx.getNetworkType({success:function(b){a(b.networkType)}})}function getSystemInfo(){var a=wx.getSystemInfoSync();return{adt:encodeURIComponent(a.model),scl:a.pixelRatio,scr:a.windowWidth+"x"+a.windowHeight,lg:a.language,fl:a.version,jv:encodeURIComponent(a.system),tz:encodeURIComponent(a.platform)}}
function getUID(){try{return wx.getStorageSync(MTA_CONFIG.prefix+"auid")}catch(a){}}function setUID(){try{var a=getRandom();wx.setStorageSync(MTA_CONFIG.prefix+"auid",a);return a}catch(b){}}function getSID(){try{return wx.getStorageSync(MTA_CONFIG.prefix+"ssid")}catch(a){}}function setSID(){try{var a="s"+getRandom();wx.setStorageSync(MTA_CONFIG.prefix+"ssid",a);return a}catch(b){}}
function getRandom(a){for(var b=[0,1,2,3,4,5,6,7,8,9],c=10;1<c;c--){var d=Math.floor(10*Math.random()),e=b[d];b[d]=b[c-1];b[c-1]=e}for(c=d=0;5>c;c++)d=10*d+b[c];return(a||"")+(d+""+ +new Date)}function getPagePath(){try{var a=getCurrentPages(),b="/";0<a.length&&(b=a.pop().__route__);return b}catch(c){console.log("get current page path error:"+c)}}
function getMainInfo(){var a={dm:"wechat.apps.xx",url:getPagePath(),pvi:"",si:"",ty:0};a.pvi=function(){var b=getUID();b||(b=setUID(),a.ty=1);return b}();a.si=function(){var a=getSID();a||(a=setSID());return a}();return a}function getBasicInfo(){var a=getSystemInfo();getNetworkType(function(a){try{wx.setStorageSync(MTA_CONFIG.prefix+"ntdata",a)}catch(c){}});a.ct=wx.getStorageSync(MTA_CONFIG.prefix+"ntdata")||"4g";return a}
function getExtentInfo(){var a=MTA.Data.userInfo;var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push(c+"="+a[c]);a=b.join(";");return{r2:MTA_CONFIG.app_id,r4:"wx",ext:"v="+MTA_CONFIG.version+(null!==a&&""!==a?";ui="+encodeURIComponent(a):"")}}
var MTA={App:{init:function(a){"appID"in a&&(MTA_CONFIG.app_id=a.appID);"eventID"in a&&(MTA_CONFIG.event_id=a.eventID);"statShareApp"in a&&(MTA_CONFIG.stat_share_app=a.statShareApp);"statPullDownFresh"in a&&(MTA_CONFIG.stat_pull_down_fresh=a.statPullDownFresh);"statReachBottom"in a&&(MTA_CONFIG.stat_reach_bottom=a.statReachBottom);setSID();"lauchOpts"in a&&(MTA.Data.lanchInfo=a.lauchOpts,MTA.Data.lanchInfo.landing=1)}},Page:{init:function(){var a=getCurrentPages()[getCurrentPages().length-1];a.onShow&&
!function(){var b=a.onShow;a.onShow=function(){MTA.Page.stat();b.call(this,arguments)}}();MTA_CONFIG.stat_pull_down_fresh&&a.onPullDownRefresh&&!function(){var b=a.onPullDownRefresh;a.onPullDownRefresh=function(){MTA.Event.stat(MTA_CONFIG.prefix+"pulldownfresh",{url:a.__route__});b.call(this,arguments)}}();MTA_CONFIG.stat_reach_bottom&&a.onReachBottom&&!function(){var b=a.onReachBottom;a.onReachBottom=function(){MTA.Event.stat(MTA_CONFIG.prefix+"reachbottom",{url:a.__route__});b.call(this,arguments)}}();
MTA_CONFIG.stat_share_app&&a.onShareAppMessage&&!function(){var b=a.onShareAppMessage;a.onShareAppMessage=function(){MTA.Event.stat(MTA_CONFIG.prefix+"shareapp",{url:a.__route__});return b.call(this,arguments)}}()},stat:function(){if(""!=MTA_CONFIG.app_id){var a=[],b=getExtentInfo(),c=[getMainInfo(),b,getBasicInfo()];MTA.Data.lanchInfo&&(c.push({ht:MTA.Data.lanchInfo.scene,rdm:"/",rurl:MTA.Data.lanchInfo.path}),MTA.Data.lanchInfo.query&&MTA.Data.lanchInfo.query._mta_ref_id&&c.push({rarg:MTA.Data.lanchInfo.query._mta_ref_id}),
1==MTA.Data.lanchInfo.landing&&(b.ext+=";lp=1",MTA.Data.lanchInfo.landing=0));c.push({rand:+new Date});b=0;for(var d=c.length;b<d;b++)for(var e in c[b])c[b].hasOwnProperty(e)&&a.push(e+"="+("undefined"==typeof c[b][e]?"":c[b][e]));wx.request({url:MTA_CONFIG.api_base+"?"+a.join("&").toLowerCase()})}}},Event:{stat:function(a,b){if(""!=MTA_CONFIG.event_id){var c=[],d=getMainInfo(),e=getExtentInfo();d.dm="wxapps.click";d.url=a;e.r2=MTA_CONFIG.event_id;var f="undefined"===typeof b?{}:b;var k=[],g;for(g in f)f.hasOwnProperty(g)&&
k.push(encodeURIComponent(g)+"="+encodeURIComponent(f[g]));f=k.join(";");e.r5=f;f=0;d=[d,e,getBasicInfo(),{rand:+new Date}];for(e=d.length;f<e;f++)for(var h in d[f])d[f].hasOwnProperty(h)&&c.push(h+"="+("undefined"==typeof d[f][h]?"":d[f][h]));wx.request({url:MTA_CONFIG.api_base+"?"+c.join("&").toLowerCase()})}}},Data:{userInfo:null,lanchInfo:null}};module.exports=MTA;
\ No newline at end of file
{
"ver": "1.0.5",
"uuid": "bd4665a1-3060-42b8-9267-ffb43b8b839d",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
{
"ver": "1.0.5",
"uuid": "0599a0fa-1702-49cc-a866-f63749f89c28",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
var sdk_conf = {
//.开发调试环境:prod 或 test,env_apis配合使用,主要是将接口切换正式环境和测试环境,上线务必修改为:prod
env:'prod',
//.游戏唯一标识:由游戏技术修改
game: 'jinjibazuqiu-weixin',
//.当前游戏版本:由游戏技术修改
version: '1.0.8',
//以下广告ID获取已经废弃,改成从服务端配置config4中获取
//.banner广告单元id
//bannerAdUnitId: '',
//.video广告单元id
//videoAdUnitId: '',
//.开发平台:由sdk维护者确定,weixin 或 toutiao,接入游戏的技术不需要修改
dev_platform: 'weixin',
//.乐玩sdk的版本号:由sdk维护者确定,接入游戏的技术不需要修改
llewan_sdk_version:'1.107',
//.接口加密key,切勿修改
md5_key: '$5dfjr$%dsadsfdsii',
//相关api配置,由sdk维护者确定,接入游戏的技术不需要修改
env_apis:{
prod:{
ip1: "https://login.llewan.com:1799",
ip2: "https://game.llewan.com:1899",
ip3: "https://log.llewan.com:1999",
ip4: "https://res.llewan.com:2099",
},
test:{
ip1: "https://login.test.llewan.com",
ip2: "https://game.test.llewan.com",
ip3: "https://log.test.llewan.com",
ip4: "https://res.test.llewan.com",
}
},
default_upload_row_count:20,
default_upload_interval:120,
//游戏在线统计时长开启与关闭。true为开启,false为关闭
game_online:false,
//分享调起时间设置
share_time_limit:2,
};
module.exports = sdk_conf;
{
"ver": "1.0.5",
"uuid": "7c8ef11c-1c9e-45dc-ae6b-815921116c50",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
...@@ -65,9 +65,9 @@ P EB94C4DF balls37.png ...@@ -65,9 +65,9 @@ P EB94C4DF balls37.png
P 961AD3B2 balls38.png P 961AD3B2 balls38.png
P AB50EA82 balls39.png P AB50EA82 balls39.png
P 41D0CD09 balls40.png P 41D0CD09 balls40.png
P C1E58997 balls41.png R 5C051B92 balls41.png
P E4D6517E balls42.png R 0FA4A277 balls42.png
P D4A26646 balls43.png R B9086C14 balls43.png
D bone D bone
R 664A1D2F c003.atlas R 664A1D2F c003.atlas
R 38E3A3C0 c003.json R 38E3A3C0 c003.json
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment