diff --git a/docs/event.md b/docs/event.md index 3eb4023c..a1ccef79 100644 --- a/docs/event.md +++ b/docs/event.md @@ -591,7 +591,7 @@ direction为可选的,指定的话将使勇士的朝向变成该方向 time为可选的,指定的话将作为楼层切换动画的时间。 -**time也可以置为0,如果为0则没有楼层切换动画。** +**如果time指定为小于100,则视为没有楼层切换动画。** !> **changeFloor到达一个新的楼层,将不会执行firstArrive事件!如有需求请在到达点设置自定义事件,然后使用type: trigger立刻调用之。** diff --git a/libs/events.js b/libs/events.js index c60a3914..add5938c 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1001,7 +1001,7 @@ events.prototype.changeFloor = function (floorId, stair, heroLoc, time, callback else floorId=core.status.floorId; } - var displayAnimate=!(time==0) && !core.status.replay.replaying; + var displayAnimate=(!core.isset(time) || time>=100) && !core.status.replay.replaying; time = time || 800; time /= 20; @@ -1484,7 +1484,7 @@ events.prototype.afterLoadData = function (data) { } ////// 上传当前数据 ////// -events.prototype.uploadCurrent = function () { +events.prototype.uploadCurrent = function (username) { var formData = new FormData(); formData.append('type', 'score'); @@ -1492,8 +1492,9 @@ events.prototype.uploadCurrent = function () { formData.append('version', core.firstData.version); formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":""); formData.append('hard', core.encodeBase64(core.status.hard)); + formData.append('username', core.encodeBase64(username||"current")); formData.append('lv', core.status.hero.lv); - formData.append('hp', Math.min(hp, Math.pow(2, 63))); + formData.append('hp', Math.min(core.status.hero.hp, Math.pow(2, 63))); formData.append('atk', core.status.hero.atk); formData.append('def', core.status.hero.def); formData.append('mdef', core.status.hero.mdef); diff --git a/libs/utils.js b/libs/utils.js index 58c625a1..062772ac 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -76,7 +76,19 @@ utils.prototype.unshift = function (a,b) { ////// 设置本地存储 ////// utils.prototype.setLocalStorage = function(key, value) { try { - localStorage.setItem(core.firstData.name + "_" + key, LZString.compress(JSON.stringify(value))); + var str = JSON.stringify(value); + var compressed = LZString.compress(str); + + // test if we can save to localStorage + localStorage.setItem("__tmp__", compressed); + if (LZString.decompress(localStorage.getItem("__tmp__"))==str) { + localStorage.setItem(core.firstData.name + "_" + key, compressed); + } + else { + // We cannot compress the data + localStorage.setItem(core.firstData.name + "_" + key, str); + } + localStorage.removeItem("__tmp__"); return true; } catch (e) {