Compare commits

...

16 Commits

Author SHA1 Message Date
052fd43f3a
_Parser_parse 2024-04-04 13:32:57 +08:00
2c601a0130 反混淆Plr部分ing 2024-04-04 13:30:15 +08:00
78e0f23be2
C.m -> UnknownJavaScriptObject 2024-04-04 13:29:31 +08:00
6efe883458
makeDispatchRecord and getNativeInterceptor 2024-04-04 13:27:51 +08:00
67a007d1bb
重写一遍 fake element 2024-04-04 13:25:13 +08:00
ab0f643254
plr init here 2024-04-04 13:16:23 +08:00
faf0c8b0ca
修改了一些似乎没啥用的东西 2024-04-04 13:11:29 +08:00
3a7a597c73 反混淆 2024-04-04 13:00:51 +08:00
07692fa856 捏人开发 2024-04-04 13:00:51 +08:00
035be07d8a
进行一些一眼丁真 2024-04-04 12:30:11 +08:00
b5939a005a
rua 2024-04-04 12:06:15 +08:00
fd47145c71
加一些debug 2024-04-04 12:01:47 +08:00
6a74b507b3 捏人开发 2024-04-04 11:55:34 +08:00
eb502d9167
emm 2024-04-04 11:48:47 +08:00
257f75200d
just here? 2024-04-04 11:43:24 +08:00
6db6f3bde6
加一些小修改,我感觉快了( 2024-04-04 11:36:34 +08:00
10 changed files with 34691 additions and 134 deletions

View File

@ -739,12 +739,9 @@
$.ii.ak(q)
p = X.kU(q)
window.sessionStorage.setItem("fSkN", p)
console.log("before eval", $.hD(), $.hD().a)
// $.hD().eval.apply(null, [$.ht])
$.hD().a.eval.apply(null, [$.ht])
// $.hD().aj("eval", [$.ht])
// window.eval($.ht)
// console.log($.hD().aj)
},
nL() {
if (!$.jT) {

View File

@ -6,7 +6,7 @@
// 兼容nodejs, 要不然 window = {}; 会崩
// 使用 global.window 修复了这个问题, 还是 strict 舒服
let name_input = "test\ntest2+aa";
let name_input = "!tadw est!\natest\ntest2+aa";
let assets_data = {
lang: null,
gAd: null,
@ -25,7 +25,9 @@ let logger = {
debug: function (...msg) {
if (run_env.from_code) {
// 上个色
console.log("\x1b[32mlogger: ", ...msg, "\x1b[0m")
// let last_stack = new Error().stack;
// console.log("\x1b[32mlogger<", last_stack, ">:", ...msg, "\x1b[0m")
console.log("\x1b[32mlogger:", ...msg, "\x1b[0m")
}
},
info: function (...msg) {
@ -47,40 +49,40 @@ if (run_env.from_code) {
localStorage: function () {},
};
let fake_element = {
childList: [],
tag: "",
width: 0,
height: 0,
style: {},
styleSheets: [
"something"
],
length: 0,
innerHTML: "",
querySelector: function (tag) {
class fake_element {
constructor(tag) {
this.childList = [];
this.tag = tag;
this.width = 0;
this.height = 0;
this.style = {};
this.styleSheets = [
"something"
];
this.length = 0;
this.innerHTML = "";
// 把自己加到列表里
stored_elements.push(this);
};
querySelector(tag) {
// 搜索一下有没有这个元素
for (let i = 0; i < this.childList.length; i++) {
if (this.childList[i].tag == tag) {
return this.childList[i];
}
}
},
addEventListener: function () {},
fake_init: function (tag) {
let _ = this;
_.tag = tag;
// 把自己加到列表里
stored_elements.push(_);
}
};
addEventListener() {};
}
global.document = {
createElement: function (tag) {
return fake_element.fake_init(tag);
// return fake_element.fake_init(tag);
return new fake_element(tag);
},
querySelector: function (tag) {
// 搜索一下有没有这个元素
logger.debug("querySelector", tag);
for (let i = 0; i < stored_elements.length; i++) {
if (stored_elements[i].tag == tag) {
return stored_elements[i];
@ -92,6 +94,10 @@ if (run_env.from_code) {
}],
};
let fake_plist = document.createElement(".plist");
let fake_pbody = document.createElement(".pbody");
logger.debug(stored_elements)
global.self = global.window;
// 读取文件
@ -1383,11 +1389,11 @@ var A = {
configurable: true
})
},
v2(a) {
var s, r, q, p, o, n = $.oB.$1(a),
lookupAndCacheInterceptor(obj) {
var s, r, q, p, o, n = $.oB.$1(obj),
m = $.lt[n]
if (m != null) {
Object.defineProperty(a, init.dispatchPropertyName, {
Object.defineProperty(obj, init.dispatchPropertyName, {
value: m,
enumerable: false,
writable: true,
@ -1399,11 +1405,11 @@ var A = {
if (s != null) return s
r = init.interceptorsByTag[n]
if (r == null) {
q = $.ov.$2(a, n)
q = $.ov.$2(obj, n)
if (q != null) {
m = $.lt[q]
if (m != null) {
Object.defineProperty(a, init.dispatchPropertyName, {
Object.defineProperty(obj, init.dispatchPropertyName, {
value: m,
enumerable: false,
writable: true,
@ -1423,7 +1429,7 @@ var A = {
if (p === "!") {
m = H.lB(s)
$.lt[n] = m
Object.defineProperty(a, init.dispatchPropertyName, {
Object.defineProperty(obj, init.dispatchPropertyName, {
value: m,
enumerable: false,
writable: true,
@ -1437,7 +1443,7 @@ var A = {
}
if (p === "-") {
o = H.lB(s)
Object.defineProperty(Object.getPrototypeOf(a), init.dispatchPropertyName, {
Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {
value: o,
enumerable: false,
writable: true,
@ -1445,23 +1451,23 @@ var A = {
})
return o.i
}
if (p === "+") return H.oK(a, s)
if (p === "+") return H.oK(obj, s)
if (p === "*") throw H.wrap_expression(P.hT(n))
if (init.leafTags[n] === true) {
o = H.lB(s)
Object.defineProperty(Object.getPrototypeOf(a), init.dispatchPropertyName, {
Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {
value: o,
enumerable: false,
writable: true,
configurable: true
})
return o.i
} else return H.oK(a, s)
} else return H.oK(obj, s)
},
oK(a, b) {
var s = Object.getPrototypeOf(a)
Object.defineProperty(s, init.dispatchPropertyName, {
value: J.mC(b, s, null, null),
value: J.makeDispatchRecord(b, s, null, null),
enumerable: false,
writable: true,
configurable: true
@ -1469,12 +1475,12 @@ var A = {
return b
},
lB(a) {
return J.mC(a, false, null, !!a.$iag)
return J.makeDispatchRecord(a, false, null, !!a.$iag)
},
v3(a, b, c) {
var s = b.prototype
if (init.leafTags[a] === true) return H.lB(s)
else return J.mC(s, c, null, null)
else return J.makeDispatchRecord(s, c, null, null)
},
uY() {
if (true === $.mA) return
@ -2038,28 +2044,43 @@ var A = {
return a.b(b)
},
uk(a) {
var s, r, q = this
if (!H.isStrongTopType(q))
if (!(q === t.c)) s = q === t.K
else s = true
else s = true
if (s) r = H.ue
else if (q === t.K) r = H.ud
else r = H.ui
q.a = r
return q.a(a)
var s, r, this_ = this
if (!H.isStrongTopType(this_)) {
if (!(this_ === t.c)) {
s = this_ === t.K
logger.debug("进入 H.uk")
} else {
s = true
}
} else {
s = true
}
logger.debug("进入 H.uk")
if (s) {
r = H.ue
} else {
if (this_ === t.K) {
r = H.ud
} else {
r = H.ui
}
}
logger.debug("进入 H.uk")
this_.a = r
// logger.debug("进入 H.uk", r, r(a))
return this_.a(a)
},
ln(a) {
var s, r = a.y
var t1, r = a.y
if (!H.isStrongTopType(a))
if (!(a === t.c))
if (!(a === t.aw))
if (r !== 7) s = r === 8 && H.ln(a.z) || a === t.P || a === t.T
else s = true
else s = true
else s = true
else s = true
return s
if (r !== 7) t1 = r === 8 && H.ln(a.z) || a === t.P || a === t.T
else t1 = true
else t1 = true
else t1 = true
else t1 = true
return t1
},
uh(a) {
var s = this
@ -2095,7 +2116,9 @@ var A = {
ui(a) {
var s = this
if (a == null) return a
// set run time info
else if (s.b(a)) return a
logger.debug("faild nullable as check", a)
H.oo(a, s)
},
oo(a, b) {
@ -2734,28 +2757,28 @@ var A = {
d.push(q)
return a
},
_Parser_handleIdentifier(a, b, c, d, e) {
var s, r, q, p, o, n, m = b + 1
for (s = c.length; m < s; ++m) {
r = c.charCodeAt(m)
_Parser_handleIdentifier(parser, start, source, stack, has_period) {
var s, r, q, p, o, n, m = start + 1
for (s = source.length; m < s; ++m) {
r = source.charCodeAt(m)
if (r === 46) {
if (e) break
e = true
if (has_period) break
has_period = true
} else {
if (!((((r | 32) >>> 0) - 97 & 65535) < 26 || r === 95 || r === 36)) q = r >= 48 && r <= 57
else q = true
if (!q) break
}
}
p = c.substring(b, m)
if (e) {
s = a.u
o = a.e
p = source.substring(start, m)
if (has_period) {
s = parser.u
o = parser.e
if (o.y === 10) o = o.z
n = H.ua(s, o.z)[p]
if (n == null) H.throw_expression('No "' + p + '" in "' + H.tq(o) + '"')
d.push(H._Universe_evalInEnvironment(s, o, n))
} else d.push(p)
stack.push(H._Universe_evalInEnvironment(s, o, n))
} else stack.push(p)
return m
},
_Parser_handleExtendedOperations(a, stack) {
@ -2966,8 +2989,9 @@ var A = {
return s
},
isStrongTopType(a) {
var s = a.y
return s === 2 || s === 3 || s === 4 || s === 5 || a === t.cK
var kind = a.y
// t.cK nullable_Object
return kind === 2 || kind === 3 || kind === 4 || kind === 5 || a === t.cK
},
ol(a, b) {
var s, r, q = Object.keys(b),
@ -3019,7 +3043,7 @@ var A = {
}
},
J = {
mC(a, b, c, d) {
makeDispatchRecord(a, b, c, d) {
return {
i: a,
p: b,
@ -3027,46 +3051,48 @@ var A = {
x: d
}
},
lu(a) {
var s, r, q, p, o, n = a[init.dispatchPropertyName]
getNativeInterceptor(a) {
var proto, r, q, interceptor, o, n = a[init.dispatchPropertyName]
if (n == null)
if ($.mA == null) {
H.uY()
n = a[init.dispatchPropertyName]
} if (n != null) {
s = n.p
if (false === s) return n.i
if (true === s) return a
proto = n.p
if (false === proto) return n.i
if (true === proto) return a
r = Object.getPrototypeOf(a)
if (s === r) return n.i
if (n.e === r) throw H.wrap_expression(P.hT("Return interceptor for " + H.as_string(s(a, n))))
if (proto === r) return n.i
if (n.e === r) throw H.wrap_expression(P.hT("Return interceptor for " + H.as_string(proto(a, n))))
}
q = a.constructor
if (q == null) p = null
if (q == null) interceptor = null
else {
o = $.kU
if (o == null) o = $.kU = init.getIsolateTag("_$dart_js")
p = q[o]
interceptor = q[o]
}
if (p != null) return p
p = H.v2(a)
if (p != null) return p
if (typeof a == "function") return C.K
s = Object.getPrototypeOf(a)
if (s == null) return C.t
if (s === Object.prototype) return C.t
if (interceptor != null) return interceptor
// interceptor = H.lookupAndCacheInterceptor(a)
// if (interceptor != null) return interceptor
if (typeof a == "function") return C.JavaScriptFunction
proto = Object.getPrototypeOf(a)
if (proto == null) return C.PlainJavaScriptObject
if (proto === Object.prototype) return C.PlainJavaScriptObject
if (typeof q == "function") {
o = $.kU
if (o == null) o = $.kU = init.getIsolateTag("_$dart_js")
Object.defineProperty(q, o, {
value: C.m,
value: C.UnknownJavaScriptObject,
enumerable: false,
writable: true,
configurable: true
})
return C.m
return C.UnknownJavaScriptObject
}
return C.m
return C.UnknownJavaScriptObject
},
rZ(a, b) {
if (!H.aP(a)) throw H.wrap_expression(P.da(a, "length", "is not an integer"))
@ -3157,7 +3183,7 @@ var A = {
return a
}
if (a instanceof P.Object) return a
return J.lu(a)
return J.getNativeInterceptor(a)
},
a3(a) {
if (typeof a == "string") return J.JsString.prototype
@ -3168,7 +3194,7 @@ var A = {
return a
}
if (a instanceof P.Object) return a
return J.lu(a)
return J.getNativeInterceptor(a)
},
cW(a) {
if (a == null) return a
@ -3178,7 +3204,7 @@ var A = {
return a
}
if (a instanceof P.Object) return a
return J.lu(a)
return J.getNativeInterceptor(a)
},
oA(a) {
if (typeof a == "number") return J.JsNumber.prototype
@ -3205,7 +3231,7 @@ var A = {
return a
}
if (a instanceof P.Object) return a
return J.lu(a)
return J.getNativeInterceptor(a)
},
uS(a) {
if (a == null) return a
@ -3236,10 +3262,10 @@ var A = {
return J.cW(a).a5(a, b)
},
rs(a, b, c, d) {
if (run_env.from_code) {
console.log("rs", a, "|", b, "|", c, "|", d)
return
}
// if (run_env.from_code) {
// console.log("rs", a, "|", b, "|", c, "|", d)
// return
// }
return J.bv(a).eF(a, b, c, d)
},
lU(a, b) {
@ -5689,11 +5715,9 @@ var A = {
l = $.lO()
m.toString
// if (l == null) H.throw_expression(H.R(l))
console.log("reaching weapon zone")
// if (H.iF(m, l, 0)) {
if (m.includes("+")) {
k = C.String.aT(m, $.lO())
console.log("reach inner weapon zone", )
// j = C.String.dF(C.String.ay(m, k + $.i()))
j = C.String.trim_name(C.String.ay(m, k + $.i()))
l = C.String.af(m, 0, k)
@ -8003,10 +8027,15 @@ var A = {
})
return P._asyncStartSync($async$jv, r)
},
jt(a) {
var s = document,
r = t.A
s = new HtmlRenderer.fq(r.a(s.querySelector(".plist")), r.a(s.querySelector(".pbody")), a, $.ro().ax(256))
outer_main(a) {
var s = document
// r = t.A
let plist = s.querySelector(".plist")
let pbody = s.querySelector(".pbody")
// logger.debug(plist, pbody)
// s = new HtmlRenderer.fq(r.a(plist), r.a(pbody), a, $.ro().ax(256))
s = new HtmlRenderer.fq(plist, pbody, a, $.ro().ax(256))
logger.debug("HtmlRenderer.jt")
s.e0(a)
return s
},
@ -12307,13 +12336,14 @@ L.iR.prototype = {
}
},
O() {
// 胜率评分
// 胜率评分 主循环
logger.debug("胜率主循环")
var async_goto = 0,
async_completer = P._makeAsyncAwaitCompleter(t.d),
some_q, this_ = this,
o, n, m, l, k, j, i, h, g, f, e, d
var $async$O = P._wrapJsFunctionForAsync(function (a, b) {
if (a === 1) return P.async_rethrow(b, async_completer)
var $async$O = P._wrapJsFunctionForAsync(function (async_error_code, async_result) {
if (async_error_code === 1) return P.async_rethrow(async_result, async_completer)
while (true) switch (async_goto) {
case 0:
d = this_.x
@ -12338,7 +12368,7 @@ L.iR.prototype = {
async_goto = 5
return P._asyncAwait(T.inner_main(h), $async$O)
case 5:
g = b
g = async_result
f = null
case 6:
// if (!true) {
@ -12348,7 +12378,7 @@ L.iR.prototype = {
async_goto = 9
return P._asyncAwait(g.O(), $async$O)
case 9:
e = b
e = async_result
if (e == null) {
async_goto = 8
break
@ -12511,6 +12541,8 @@ V.iV.prototype = {
if (q.length === 1) l.x = q[0]
},
O() {
// 实力评分 主循环
logger.debug("评分 主循环")
var async_goto = 0,
async_completer = P._makeAsyncAwaitCompleter(t.d),
q, this_ = this,
@ -12731,6 +12763,8 @@ X.iW.prototype = {
}
},
O() {
// 另一个评分主循环
logger.debug("评分2 主循环")
var async_goto = 0,
async_completer = P._makeAsyncAwaitCompleter(t.d),
q, this_ = this,
@ -12917,7 +12951,10 @@ S.fK.prototype = {
HtmlRenderer.fq.prototype = {
e0(a) {
var s, r, q, this_ = this
logger.debug("进入 HTML.fq.e0", this.a)
if (this_.a == null) return
A.vo(this_.gfd())
// this_.d = P.Timer_Timer(P.duration_milsec_sec(10, 0), this_.gbc(this_))
this_.d = P.Timer_Timer(P.duration_milsec_sec(0, 0), this_.gbc(this_))
@ -12938,7 +12975,7 @@ HtmlRenderer.fq.prototype = {
r.appendChild(document.createTextNode(q))
}
// 添加 event listener
// console.log("HtmlRenderer.fq adding event listener for message")
logger.debug("注册等待器: ", this_.gfb(this_), this_)
W.es(window, "message", this_.gfb(this_), false)
},
fc(func_self, event) {
@ -13081,6 +13118,8 @@ HtmlRenderer.fq.prototype = {
}
},
b4() {
// 实力评估 主循环?
logger.debug("评估 主循环")
var async_goto = 0,
async_complete = P._makeAsyncAwaitCompleter(t.z),
q, this_ = this,
@ -14930,6 +14969,7 @@ T.hB.prototype = {
aa(a, b, c) {
return H.b([], t.F)
},
v(a7, a8, a9, b0) {
var s, shadow_name, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a, a0, a1, a2, a3, a4, this_ = this,
a6 = null
@ -16246,9 +16286,7 @@ T.eg.prototype = {
}
T.fo.prototype = {
bD() {
if (run_env.from_code) {
console.log("run_env.from_code")
}
logger.debug("看起来到 main 了")
// 我盯上你了
var async_goto = 0,
async_completer = P._makeAsyncAwaitCompleter(t.z),
@ -16435,6 +16473,7 @@ T.fo.prototype = {
},
O() {
// 运行时?
logger.debug("运行 主循环")
var async_goto = 0,
async_completer = P._makeAsyncAwaitCompleter(t.d),
result_, p = [],
@ -16873,6 +16912,8 @@ T.Plr.prototype = {
return C.d.aI(a * ($.T() - this.x / b))
},
cA(a) {
//upgrade
/// upgrade leader from team member
var s, this_ = this
if (a.length === this_.t.length) {
for (s = $.ap(); s < this_.t.length; ++s)
@ -16889,7 +16930,7 @@ T.Plr.prototype = {
}
},
cg() {
// 这是干啥的
// buildAsync
var s = 0,
r = P._makeAsyncAwaitCompleter(t.z),
q = this
@ -16904,6 +16945,7 @@ T.Plr.prototype = {
return P._asyncStartSync($async$cg, r)
},
az() {
//initRawAttr
var s, r = this
r.bf()
s = r.r1
@ -16917,6 +16959,7 @@ T.Plr.prototype = {
r.cn()
},
aU() {
//getMiddle
var s, r, q, p, o = this
for (s = $.Z(); s < $.d1(); s += $.B()) {
r = o.q
@ -16933,6 +16976,7 @@ T.Plr.prototype = {
C.Array.j(r, C.Array.dz(C.Array.al(q, $.B(), $.ap()), new T.jX()) + $.mK())
},
bP() {
//initLists
var s = this
C.Array.sp(s.k4, 0)
s.r2.ah(0)
@ -16948,7 +16992,7 @@ T.Plr.prototype = {
},
ac() {
// create skills
// createSkills
// createSkills()
var s, r, q
this.k3 = T.cG(this)
s = this.k1
@ -17014,14 +17058,15 @@ T.Plr.prototype = {
s.push(new T.SkillVoid(0))
s.push(new T.SkillVoid(0))
},
dm(a, b) {
dm(list, original) {
//initSkills
var s, r, q, p, o = this,
n = 0,
m = n
while (true) {
if (!(n < $.aR() && n < o.k2.length)) break
s = o.k2[n]
r = C.Array.al(a, m, m + $.C())
r = C.Array.al(list, m, m + $.C())
if (!!r.immutable$list) H.throw_expression(P.UnsupportError("sort"))
q = r.length - 1
if (q - 0 <= 32) H.ej(r, 0, q, J.bO())
@ -17030,7 +17075,7 @@ T.Plr.prototype = {
s.ao(o, p)
r = 0
if (p > r) {
r = C.Array.al(b, m, m + $.C())
r = C.Array.al(original, m, m + $.C())
if (!!r.immutable$list) H.throw_expression(P.UnsupportError("sort"))
q = r.length - 1
if (q - 0 <= 32) H.ej(r, 0, q, J.bO())
@ -17043,6 +17088,7 @@ T.Plr.prototype = {
for (; r = o.k2, n < r.length; ++n) r[n].ao(o, 0)
},
bs() {
//boostPassive or addSkillsToProc??
var s, r, q, p, o, n, m, l = this
for (s = 0, r = l.k4; q = l.k2, s < q.length; ++s) {
p = q[s]
@ -17081,6 +17127,7 @@ T.Plr.prototype = {
s.go = C.JsInt.P(s.fr, $.t())
},
F() {
//updateStates
var s, r = this
r.ch = r.b0(r.q[0], $.cj())
r.cx = r.b0(r.q[$.i()], $.cj())
@ -17295,6 +17342,7 @@ T.Plr.prototype = {
return H.as_string(s.e) + "\t" + H.as_string(s.r) + "\t" + H.as_string(s.c) + "\t" + H.as_string(s.f) + "\t" + H.as_string(s.fy)
},
cE() {
// 1200 here
var s, r = this.Y,
q = $.p4()
if (r > q) {
@ -19074,13 +19122,13 @@ var t = (function rtii() {
C.JsInt = J.JsInt.prototype
C.d = J.JsNumber.prototype
C.String = J.JsString.prototype
C.K = J.JavaScriptFunction.prototype
C.JavaScriptFunction = J.JavaScriptFunction.prototype
C.Q = W.dQ.prototype
C.t = J.PlainJavaScriptObject.prototype
C.PlainJavaScriptObject = J.PlainJavaScriptObject.prototype
C.R = W.ek.prototype
C.j = W.ce.prototype
C.u = W.en.prototype
C.m = J.UnknownJavaScriptObject.prototype
C.UnknownJavaScriptObject = J.UnknownJavaScriptObject.prototype
C.U = W.eq.prototype
C.v = W.eH.prototype
C.V = new P.js()
@ -20032,7 +20080,8 @@ var t = (function rtii() {
return X.k("w~Ou?!0.eC", 27)
})
lazy_old($, "wZ", "mS", function () {
return X.k("dG|*}T{.AF", 29)
// return X.k("dG|*}T{.AF", 29)
return 32768
})
lazy_old($, "xy", "n_", function () {
return X.k("*,uU([GoYM", 71)
@ -20044,7 +20093,8 @@ var t = (function rtii() {
return X.k(">Lk@cu3H*Q", 97)
})
lazy_old($, "x6", "pF", function () {
return X.k("|@?Of-toCP", 87)
// return X.k("|@?Of-toCP", 87)
return 3517
})
lazy_old($, "wy", "pn", function () {
// return X.k("v8kF:K:=`H", 46)
@ -20111,7 +20161,8 @@ var t = (function rtii() {
return X.k("C<7,}Y`[?K", 63)
})
lazy_old($, "xx", "pR", function () {
return X.k("=mymvqAAAA", 0)
// return X.k("=mymvqAAAA", 0)
return 61
})
lazy_old($, "wF", "pr", function () {
return X.k("OsofdmW-bN", 77)
@ -20851,7 +20902,7 @@ function main() {
async_completer = P._makeAsyncAwaitCompleter(t.z),
q, switch_to = 2,
async_result_1, n = [],
m, l, k, j, raw_names, h, g, f, e, d, c, b, a, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, b0
m, l, k, j, raw_names, h, g, f, e, d, c, b, a, a0_getter, a1, a2, a3, a4, a5, a6, a7, a8, a9, b0
var $async$iE = P._wrapJsFunctionForAsync(function (error_code, async_result) {
if (error_code === 1) {
async_result_1 = async_result
@ -20870,7 +20921,6 @@ function main() {
if (run_env.from_code) {
console.log("initing from node")
$.ox = assets_data.gAd
// 后面填一下这玩意
} else {
// a2 = window.localStorage.getItem(LanData.j("T|a`4tFX30f3:o_Vx]na4ki/|ye&j=D", 15))
a2 = window.localStorage.getItem("google_experiment_mod1")
@ -20894,7 +20944,6 @@ function main() {
m = window.sessionStorage.getItem(LangData.eQ("k"))
l = X.f4(m, 0)
k = LangData.oC(false)
console.log("k:", k)
a8 = t.i
j = H.b([], a8)
J.rr(j, H.b([1, 3, 0, 9], a8))
@ -20907,6 +20956,7 @@ function main() {
// if (J.Y(J.J(J.J(h, 0)[0], 0), $.qc())) {
if ($.qc() === h[0][0][0]) {
logger.debug("进入测号 init")
$.vr = 6
// h.length
// if (J.aw(h) === 2)
@ -20919,7 +20969,7 @@ function main() {
d = new X.iW(a9, new Float64Array(1))
d.e_(a8)
g = d
f = HtmlRenderer.jt(g)
f = HtmlRenderer.outer_main(g)
f.r = 2000
async_goto = 1
break
@ -20940,7 +20990,7 @@ function main() {
g.dZ(a8, a9)
d = g
d.d = 1000
c = HtmlRenderer.jt(d)
c = HtmlRenderer.outer_main(d)
c.r = 2000
async_goto = 1
break
@ -20960,7 +21010,7 @@ function main() {
g.dY(a8, a9)
b = g
b.c = 1000
a = HtmlRenderer.jt(b)
a = HtmlRenderer.outer_main(b)
a.r = 2000
async_goto = 1
break
@ -20971,8 +21021,10 @@ function main() {
// c2 似乎是起始
return P._asyncAwait(T.inner_main(h), $async$iE)
case 8:
a0 = async_result
HtmlRenderer.jt(a0)
// a0_getter = async_result
// HtmlRenderer.jt(a0_getter)
logger.debug("main case 8")
HtmlRenderer.outer_main(async_result)
switch_to = 2
async_goto = 7
break
@ -20987,7 +21039,9 @@ function main() {
async_goto = 2
break
case 7:
logger.debug("so just here?", async_goto, error_code)
case 1:
logger.debug("返回中")
return P.async_return(q, async_completer)
case 2:
return P.async_rethrow(async_result_1, async_completer)
@ -20996,5 +21050,5 @@ function main() {
return P._asyncStartSync($async$iE, async_completer)
}
main() // 执行main函数
logger.debug(X.k("?`C3ou}R1L", 67))
logger.debug("running main:", main()) // 执行main函数
// logger.debug(X.k("?`C3ou}R1L", 67))

View File

@ -0,0 +1 @@
@@ABMECIGUB@OK@CHBAA@FCMFNBEABCICEG@DJDGBGHMDALBAHHEDIEFB@AACFLCFDC@ABIC@DBLIABFPCFDCTD@B@@ID@@EHDI@GDGFDAH@ABBAGBBF@PKALADHG@AAOC@EJ@@FCHC@MLKBAHBGDAKDGA\C@A@FHE@TTHWCGHJBBAFBSGCAAF@I@D@A@AC@AGIFXHBAEU@@@AMTGFF@AAIBJGAKAAAE@BJIMH@CAAHAABC@DD@L@AABEDFECBCT@BGED@GDF@CFDDGH@ACDBDH@DAFOBBIKD@ICJGCAH@GBADBDGDH@@DIY@BFDEOEAS@G@DIN@GABNHECOCBEAHPBC@AIBDAFBDWB@GCAB@EACD@DE@@FFDB@JBFAENJ@L@JMM@R@JD@@DBCFCDAB@@@EBABCEA@PAEBKB@@@DXBCACFABCDFBIAFDBAEAFCY@LB@EHH@B@BIIDFGDOCH@EB@LFCCCDCE@BF@DG@LNDQKKCC@FACDFCGBCSC@CLI@CHLBHELHA@BCA@AABSBBBNBFI@MBCMB@UB@PNA@DEJ_GOD@DKDBIMC@BMBBADFVEB@DCBA@AG@HE@FDCE@AC@EBBL]@AF@@A@FBHBECJAFDAMBA@EBEICGFDCEBADMC@LC@FH@D@@EEBAFPAHIAAACBBD@BBBCCDCB@GDHCMHAGAGA@HVBFCRCDHCJBERJBBEBEIGOAD@WBDCDKAACK@BAMAOADFE@@EUFAF@NKICDFBFWLAIICBABBKWBGLLZAGHBA@AB@A@DEBG@HER@CDAO@@FCDA@EOFB@DBOJRAAAABCAFFDBAAKDB@ACD@FC@I@@EB@HHCBGCCLCB@BDBA@BFBBHNIA@DDQA@@@EAO@EHIGBOAFSAZCGJRCN@CMJL@CACE@HCIDTBGSFAA@AA@DFBA@J@DJDGEBEFBBHIJ@GCFGDLBA@@DBBD@FA@TBCAIHAJ@CCLHDA@DHFF@HJCF@DEAJE@JGI@ABFJEDKD@DGEICHECPMDBIELA@D[F@HDGDABBND@CAKHBCCDOAJACEE@CIDFVALABQAC@P@HBBBKBA@AM@@RCAC@PKD@HC@@IABD@PCFFA@NQD@DBJFJCAAA@HACFFBAAJ@AM@GDBECBADD@D@@CNK@@FPEJGDATACFJQANKADFA@LKVGEAJQAAB@@KDA@C@DCAEBAADBNHCCE@@@AACGED@JBBFBHANAFMAASHDC@DBIJJHDECAD@FDAFECDGC@GHQB@@BBCEFEXABBA@@EIIJF@@DEC@AAQCA@A@CIBGNACK@CHLEFBCBD@BOIB@BJDEGFD@AL@INECCAUAXHBBEDWBBA@BBLDADD@BHB@D@HHFB@GGAKABAAEGCKFJHJC@@@HECDDVBL@BCLB@DEEE@BDFN[@DPA@DF@AAFF@B@EGEDG@ABBBFCAAA@FPAJBBACBBFGA@@@D@LOOBBQDGDOJRACGABCUCAHGBF@BBKDAA@FCCO[AAIALA@SKHKB@ABRLDDBC@CAEAFBGFCLA@DBFFB@A@EG]DEGEBQWKMB@NBBMEADKI^@@@KHED@P@CC@FACZNADAM@IADC@V@@@A@IO@CKEEKCBLIBCBG@AEBCANA@BJAFBAVCLDGHCKPDEDLIFHBL@@FF@DH@ABDGFDF@HLDIBAEBCF@@BLFBA@AAFBCDBBFA@FBL@AA@AABBCFEEAFCJUICDI@@@I@AA@FBBDFE@C@AKAEBBBC@EGAEKACA@@B@AGHMHHD@ACGABHBEFVCT@FGADC@DADGDADLPNGBAAAEACF@D@PAH@PELHAEJ@CCKEICAAG@DNDE@CDBF@AEJK@O@DEC@FCICLDNHHDBCANBCE@AGLCDGCHCBCCCA@PECE@K@AJJ@QBNBO@@DODCEBNLFBACBEBFABJCFBOBPKRBB@EAFACGGIC@CGG^DDAFVACFHBBACAJDP@GDM@ABB@GG@@@B@K@EBFFAFB@DGB@FANBH@BQDE@FEBBGJ@FBGBAOAI@DQEJA@KE@ATC@JUG@QADH@@HAB@DDA@JCFFB@AAOCL@MPBAC@@CAQCCAA@@DIUHG@EBUEAIHSERCJK@@GTAD@N@AHRCMEL@HCA@@AICAB@HI@AF@ABLAEW@GBZ@CFNKDCHN@@BDO@@CFL@NDBN@L@AUBHBAEFEEQGAKHQ@@@CAB@KIOCA@CF@P@MA@DLBABARQBA@KCAIDGIDG@JCCBBFBFKED@ABEFBBAHGDBDBBMBDFBDBDDABABD@DPCF\DB@G@DD@E@G@CV@EBF@O@@CA@BQFDBLAB@BDGHF@@@@BI@DADEBBCDEGCD@A_@EAKACCA@CICDEPKGCEADNABFDCG@DFCBPE@FEDECBAFGBAGCBH@JDAENADAF@CBHACBA@@BCCQCF@FNNBAD@GABKAEBFACGCBFKCGOEBG@DBI@B@GBAJADIOWA@KKLCGFAABAR@TH@BBDAF@DMDA@AHAABREIABAHCED@@EAFHHEBEDSEABNMBAOREEJ@A@ALACIGHFBNPIEDDFDF@@KBHCGBBBOBCAILBFHDMATBDAD@ADFBWHJ@@BACCRC@FJAB@DCFM@IBHCIAF@ED@HAG@@@ECDHBAAHBEKDC@@@BCENC@C@ACDEBDG@A@A@K@BBCNOK@FBCAFIAPFECBBIOEGHDACGBB@@J@ADEECBEG@AACEADD@@JEGACHJ@BDE@JE@IFAQGEBFDDDKUECEEHFD_@CDCG@BJALEB@B@@QEKE@LKBD@ABW@QBNNAL@B@KCADDADA@BD@QBEQ@DQUC@EC@BOGB@AM@DGBAANEIAGFNPEICA@CHEDGDCD@A@LEP@N@CEMFJ@@BIACB@NIBJG@NG^A@EAIMCDHH@BCFEPOJGC@CSNAAAJ@FCGT@FAAOKHXFVFACJHFMAADAA@LA@MHLKTGSZ@HAAJ@AABD@BCBEPDHCJJB@JAABKEBCCEH@D@DBHIAACABAGBBB@EGCACFUDFC@LB@AAFHDBC@G@E@DQD@DKD@CFEBHABANEQ@CCLDAGCAHBA@@@CKC@DAHCGEMJOBGZ@A@CB@AD@ECQ@DAZNN@ACC@@CECDCJAFNJRGBGG@NCBJ@@BI@DBIDCO@B@CCDAAMTGGGCAKDGG@A@ALBA@@FDQ@BA@AB@AVKDJED@@@CDLFC@@C@PCBMCDK@IEHCEAC@CRCOBCAFAGEFUK@@BADGAUFBFIA@H@AI@DDB@BGAAHLVC@KCKBDCBBACHC@A@NI@BEBDIFVF@AGBCIELDIZABAJAFD@AUKS@DJ@@DD@BMHABFBE@IBBDBADAM@GMDBHD@@EAD@BEADGPGGAAFEEABBECKIBAW@BEEQE@DD@FCCAEHJFB@C@E@BMJCB@ALGD@CBC@F@AFJDECAAA@BEO@EBNACDCUH@@K@A@DB@BFECFMAEHDBAEEADFB@EE@CI@ABDBDCAD@A@@B@JCB@FAGJCK@GG@ABFLQ@BHDEHOAB@DBIDSBDBIVA@FD@@ABCAAAA

View File

@ -0,0 +1,176 @@
{
"recover": "[1]回复体力[2]点",
"sklAbsorb": "[0]发起[吸血攻击]",
"sklAccumulate": "[0]开始[聚气]",
"sklAccumulated": "[1]攻击力上升",
"sklAccumulateCancel": "[1]的[聚气]被打消了",
"sklAssassinate1": "[0][潜行]到[1]身后",
"sklAssassinate2": "[0]发动[背刺]",
"dodge": "[0][回避]了攻击(通用)",
"sklAssassinateFailed": "[0]的[潜行]被识破",
"sklBerserkEnd": "[1]从[狂暴]中解除",
"sklBerserkAttack": "[0]发起[狂暴攻击]",
"sklBerserkHit": "[1]进入[狂暴]状态",
"sklBerserk": "[0]使用[狂暴术]",
"sklCharge": "[0]开始[蓄力]",
"sklChargeCancel": "[1]的[蓄力]被中止了",
"sklCharmEnd": "[1]从[魅惑]中解除",
"sklCharm": "[0]使用[魅惑]",
"sklCharmHit": "[1]被[魅惑]了",
"sklClone": "[0]使用[分身]",
"sklCloned": "出现一个新的[1]",
"sklCritical": "[0]发动[会心一击]",
"sklCurseDamage": "[诅咒]使伤害加倍",
"sklCurseEnd": "[1]从[诅咒]中解除",
"sklCurseHit": "[1]被[诅咒]了",
"sklCurse": "[0]使用[诅咒]",
"sklDisperse": "[0]使用[净化]",
"sklExchange": "[0]使用[生命之轮]",
"sklExchanged": "[1]的体力值与[0]互换",
"sklFire": "[0]使用[火球术]",
"sklHalf": "[0]使用[瘟疫]",
"sklHalfDamage": "[1]体力减少[2]%",
"sklHasteEnd": "[1]从[疾走]中解除",
"sklHaste": "[0]使用[加速术]",
"sklHasteHit": "[1]进入[疾走]状态",
"sklHeal": "[0]使用[治愈魔法]",
"sklIceEnd": "[1]从[冰冻]中解除",
"sklIceHit": "[1]被[冰冻]了",
"sklIce": "[0]使用[冰冻术]",
"sklIron": "[0]发动[铁壁]",
"sklIrond": "[0]防御力大幅上升",
"sklIronCancel": "[1]的[铁壁]被打消了",
"sklIronEnd": "[0]从[铁壁]中解除",
"sklPoisonDamage": "[1][毒性发作]",
"sklPoisonEnd": "[1]从[中毒]中解除",
"sklPoisonHit": "[1][中毒]",
"sklPoison": "[0][投毒]",
"sklQuake": "[0]使用[地裂术]",
"SklRapid": "[0]发起攻击",
"SklRapidNext": "[0][连击]",
"sklRevive": "[0]使用[苏生术]",
"sklRevived": "[1][复活]了",
"sklPossess": "[0]使用[附体]",
"sklShadow": "[0]使用[幻术]",
"sklShadowName": "幻影",
"sklShadowed": "召唤出[1]",
"sklSlowEnd": "[1]从[迟缓]中解除",
"sklSlow": "[0]使用[减速术]",
"sklSlowHit": "[1]进入[迟缓]状态",
"sklExplode": "[0]使用[自爆]",
"sklSummon": "[0]使用[血祭]",
"sklSummonName": "使魔",
"sklSummoned": "召唤出[1]",
"sklThunder": "[0]使用[雷击术]",
"sklThunderEnd": "[0][回避]了攻击(雷击)",
"benchmarking": "实力评估中...[2]%",
"benchmarkRatio": "》 胜率: [2]%",
"benchmarkScore": "》 实力评分: [2]",
"benchmarkSkill": "频率: [2]%",
"searchInvalid": "错误目前最多支持8000人搜索",
"searchStart": "搜索开始...",
"searchEnd": "搜索结束",
"searchFailed": "但是一无所获",
"bossName_aokiji": "青雉",
"sklAokijiDefend": "[0][吸收]所有冰冻伤害",
"sklAokijiIceAge": "[0]使用[冰河时代]",
"bossName_conan": "柯南",
"sklConanKillUnknown": "[0]在一间密室中发现了一具无名尸体",
"sklConanThinking": "[0]正在进行推理",
"sklConanThinkingFinish": "[0]推理完毕",
"sklConanThinkingFinish2": "真相只有一个",
"sklConanThinkingFinish3": "凶手就是你",
"sklConanKillLast": "[1]",
"sklConanKill": "[0]在一间密室中发现了[1]的尸体",
"bossName_covid": "新冠病毒",
"sklCovidDamage": "[1][肺炎]发作",
"sklCovidICU": "[1]在重症监护室无法行动",
"sklCovidStayHome": "[1]在家中自我隔离",
"sklCovidInfect": "[0]和[1]近距离接触",
"sklCovidPrevent": "但[1]没被感染",
"sklAttack": "[0]发起攻击",
"sklCovidMutate": "[1]所感染的病毒发生变异",
"sklCovidHit": "[1]感染了[新冠病毒]",
"bossName_ikaruga": "斑鸠",
"sklIkarugaDefend": "[0][吸收]所有奇数伤害",
"sklIkarugaAttack": "[0]使用[能量释放]",
"bossName_lazy": "懒癌",
"sklLazyDamage": "[1][懒癌]发作",
"sklLazySkipTurn1": "[0]打开了[Steam]",
"sklLazySkipTurn2": "[0]打开了[守望先锋]",
"sklLazySkipTurn3": "[0]打开了[文明6]",
"sklLazySkipTurn4": "[0]打开了[英雄联盟]",
"sklLazySkipTurn5": "[0]打开了[微博]",
"sklLazySkipTurn6": "[0]打开了[朋友圈]",
"sklLazySkipTurn0": "这回合什么也没做",
"sklLazyHit": "[1]感染了[懒癌]",
"bossName_mario": "马里奥",
"bossMarioGrow10": "[0]得到[蘑菇]",
"bossMarioGrow11": "[0]攻击力上升",
"bossMarioGrow20": "[0]得到[火焰花]",
"bossMarioGrow21": "[0]学会[火球术]",
"bossMarioGrow30": "[0]得到[奖命蘑菇]",
"bossMarioLife": "[0]还剩[2]条命",
"bossMarioRevive": "[0]满血复活",
"bossName_mosquito": "蚊",
"bossName_saitama": "一拳超人",
"saitamaHungry": "[0]觉得有点饿",
"saitamaLeave": "[0]离开了战场",
"bossName_slime": "史莱姆",
"sklSlimeSpawn": "[0][分裂]",
"sklSlimeSpawned": "分成了[0] 和 [1]",
"bossName_sonic": "索尼克",
"bossName_yuri": "尤里",
"sklYuriControl": "[0]使用[心灵控制]",
"endMessage": "你已经玩了[0]局了",
"continueGame": "继续游戏",
"navigationLink": "navigation.html",
"errorMaxPlayer": "错误目前最多支持1000人PK",
"errorMinPlayer": "错误,请至少输入两行名字",
"welcome": "名字竞技场",
"welcome2": "(MD5大作战10周年纪念)",
"winnerName": "胜者",
"score": "得分",
"killedCount": "击杀",
"killerName": "致命一击",
"loserName": "败者",
"returnTitle": "返回",
"shareTitle": "分享",
"helpTitle": "帮助",
"HP": "HP",
"detail": " 攻 [] 防 [] 速 [] 敏 [] 魔 [] 抗 [] 智 []",
"inputTitle": "名字竞技场",
"inputPlaceholder": "修改by shenjackyuanjie\n\n版本: latest\n可能会有一些问题, 稳定版请使用根目录下版本",
"startFight": "开 始",
"closeTitle": "关闭",
"fastTitle": "快进",
"challengeLabel": "挑战Boss",
"selectBossHint": "选择Boss",
"win": "[2]获得胜利",
"minionDie": "[1]消失了",
"damage": "[1]受到[2]点伤害",
"die": "[1]被击倒了",
"sklMagicAttack": "[0]发起攻击",
"sklCounter": "[0]发起[反击]",
"defend": "[0][防御]",
"sklHide": "[0]发动[隐匿]",
"sklMerge": "[0][吞噬]了[1]",
"sklMerged": "[0]属性上升",
"sklProtect": "[0][守护][1]",
"sklReflect": "[0]使用[伤害反弹]",
"sklReraise": "[0]使用[护身符]抵挡了一次死亡",
"sklUpgrade": "[0]做出[垂死]抗争",
"sklUpgraded": "[0]所有属性上升",
"sklUpgradeCancel": "[1]的[垂死]属性被打消",
"sklZombieName": "丧尸",
"sklZombie": "[0][召唤亡灵]",
"sklZombied": "[2]变成了[1]",
"weaponDeathNoteAtk": "[0]在[死亡笔记]写下[1]的名字",
"weaponRModifierUse": "[0]使用[属性修改器]",
"weaponS11_0": "[0]在促销日[购买]了武器",
"weaponS11_1": "但是并没有什么用",
"weaponS11_2": "增加了[2]点",
"weaponS11Done1": "[0]信用卡刷爆",
"weaponS11Done3": "[0]砍下了自己的左手",
"weaponS11Done2": "[0]砍下了自己的右手"
}

12180
branch/nieren/index.dart.js Normal file

File diff suppressed because it is too large Load Diff

709
branch/nieren/index.html Normal file
View File

@ -0,0 +1,709 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>名字竞技场-FTL by shenjackyuanjie</title>
<meta name="description"
content="名字竞技场是一款基于文本的对战游戏。在文本框中输入几个名字点击开始就可以进入战斗,之后不需要任何操作,战斗的过程和结果由输入的名字直接决定。每次输入相同的名字都会得到相同结果,即使改变名字的顺序结果也不会变。">
<meta name="keywords" content="竞技场,名字,姓名,打架,PK,MD5大作战,游戏,随机,预测,对战,Namerena,Game,Name,Predict,Battle,Random">
<style>
html {
width: 100%;
height: 100%;
}
body {
margin: 0;
font-size: 15px;
width: 100%;
height: 100%;
}
* {
font-family: "Microsoft YaHei", Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
}
.picon {
width: 28px;
height: 28px;
position: relative;
}
.micon {
width: 32px;
height: 32px;
position: relative;
}
.svgicon {
width: 24px;
height: 24px;
position: absolute;
left: 3px;
top: 3px;
}
.fastforward {
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z'/%3E%3C/svg%3E");
}
.share {
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z'/%3E%3C/svg%3E");
}
.refresh {
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z'/%3E%3C/svg%3E");
}
.add {
left: 1px;
top: 1px;
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E");
}
.rightarrow {
left: 1px;
top: 1px;
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z'/%3E%3C/svg%3E");
}
.close {
left: 1px;
top: 1px;
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
}
div {
display: inline-block;
box-sizing: border-box;
}
iframe {
border-width: 0;
}
.mdframe {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
#endFrame {
box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
width: 320px;
}
.panels {
position: absolute;
width: 100%;
height: 100%;
min-height: 380px;
pointer-events: none;
}
.panel {
position: absolute;
width: 320px;
min-height: 320px;
max-height: 480px;
margin: auto;
left: 0;
right: 0;
bottom: 0;
top: 0;
box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
background: #6cc4ec;
background: linear-gradient(100deg, #6cc4ec 0%, #2AA2D6 100%);
border-radius: 10px;
padding: 8px;
padding-top: 0;
pointer-events: auto;
}
.panel>* {
margin-top: 8px;
}
.horizontal {
display: -ms-flexbox;
-ms-flex-direction: row;
display: -webkit-flexbox;
-webkit-box-orient: horizontal;
display: -webkit-flex;
-webkit-flex-direction: row;
display: flex;
flex-direction: row;
align-items: center;
}
.vertical {
display: -ms-flexbox;
-ms-flex-direction: column;
display: -webkit-flexbox;
-webkit-box-orient: vertical;
display: -webkit-flex;
-webkit-flex-direction: column;
display: flex;
flex-direction: column;
flex-align: center;
-webkit-align-items: center;
align-items: center;
}
.vertical>* {
position: relative;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
}
.spacer {
flex: 1 1 auto;
}
.paneltitle {
color: #FFF;
white-space: pre;
text-align: center;
}
#textdiv {
width: 100%;
height: 320px;
-webkit-flex: 1 1 320px;
flex: 1 1 320px;
}
textarea {
position: absolute;
top: 0;
bottom: 0;
height: 100%;
width: 304px;
resize: none;
box-sizing: border-box;
box-shadow: inset 0px 0px 3px 0px rgba(50, 50, 50, 0.5);
border: none;
padding: 5px;
border-radius: 5px;
}
button,
.button {
background: #888;
border: solid white 1px;
border-radius: 20px;
font-style: normal;
font-size: 16px;
padding: 4px 8px;
color: #fff;
cursor: pointer;
box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.25);
outline: none;
}
button:hover,
.button:hover {
background: #999;
background: linear-gradient(0deg, #888 0%, #999 100%);
box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
}
.goBar {
width: 100%;
height: 30px;
}
.goBtn {
font-weight: bold;
font-size: 16px;
width: 100px;
position: absolute;
left: 0;
right: 0;
margin: auto;
}
.addPlayer {
position: absolute;
right: 4px;
}
.closeBtn {
position: absolute;
right: 4px;
top: 4px;
margin: 0;
}
div.checkBoss {
color: #fff;
padding-left: 24px;
line-height: 23px;
position: relative;
width: auto;
height: 24px;
cursor: pointer;
opacity: 0.6;
transition: transform 0.5s, opacity 0.2s;
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
}
.checkBoss:hover {
opacity: 1;
}
div.checkedBoss {
opacity: 1;
background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z'/%3E%3C/svg%3E");
transform: translate(0, -36px);
}
.inputoptions {
margin-top: 0;
width: 100%;
transition: height 0.5s, opacity 0.5s;
}
.inputoption {
padding: 4px;
border-radius: 5px;
background: rgba(255, 255, 255, 0.25);
width: 100%;
height: 32px;
margin-top: 8px;
justify-content: flex-end;
}
.weiboBtn {
font-style: normal;
font-size: 14px;
padding: 2px 8px 2px 30px;
margin: 2px;
position: relative;
}
.weiboBtn>.weiboIcon {
position: absolute;
left: 8px;
top: 1px;
}
.weiboIcon {
background-image: url(//weibo.com/favicon.ico);
background-size: 20px 20px;
width: 20px;
height: 20px;
margin: 0 4px 0 0;
}
.weiboPreview {
max-width: 100%;
max-height: calc(100% - 180px);
border-radius: 5px;
box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
}
.bossSgl {
width: 16px;
height: 16px;
margin: 4px;
}
.bossName {
color: #fff;
text-align: center;
}
.showBossBtn {
font-style: normal;
font-size: 14px;
width: auto;
height: 28px;
min-width: 115px;
max-width: 240px;
padding: 0 3px;
}
.showBossBtn>.rightarrow {
transform: rotate(90deg);
position: relative;
top: 0;
left: 0;
}
.bossList {
right: 0;
bottom: 0;
}
.weiboList {
right: 8px;
bottom: 32px;
align-items: flex-start;
}
.weiboList>* {
padding: 2px 6px;
width: 100%
}
.menu {
position: absolute;
padding: 4px;
z-index: 10;
border-radius: 8px;
background: #888;
border: solid white 1px;
color: #fff;
display: none;
}
div.menuopen {
display: block;
-webkit-animation: menu-show 0.2s ease-out 0s 1 both;
animation: menu-show 0.2s ease-out 0s 1 both;
}
@-webkit-keyframes menu-show {
0% {
opacity: 0;
transform: translate(0, 100%);
}
100% {
opacity: 1;
transform: translate(0, 0);
}
}
@keyframes menu-show {
0% {
opacity: 0;
transform: translate(0, 100%);
}
100% {
opacity: 1;
transform: translate(0, 0);
}
}
.menu>* {
border-radius: 12px;
cursor: pointer;
}
.menu>*:hover {
background: #999;
background: linear-gradient(0deg, #888 0%, #999 100%);
box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
}
.bossSelName {
margin: 0 4px;
}
#qrCanvas {
box-shadow: 0px 0px 10px 0px rgba(50, 50, 50, 0.75);
border: 4px solid #FFF;
border-radius: 5px;
image-rendering: pixelated;
}
.side_frame {
position: absolute;
top: 0;
bottom: 0;
width: 300px;
height: 800px;
border-width: 0;
overflow-y: hidden;
}
.ad_v {
right: 0;
width: 300px;
height: 100%;
position: absolute;
overflow: hidden;
background: #f8f8f8;
}
.ad_h {
bottom: 0;
width: 100%;
height: 100px;
position: absolute;
overflow: hidden;
background: #f8f8f8;
}
.ad_v>ins {
bottom: 0;
position: absolute;
}
.ad_h>* {
left: 0;
right: 0;
position: absolute;
margin-left: auto;
margin-right: auto;
}
.body {
left: 0;
right: 0;
top: 0;
bottom: 0;
position: absolute;
}
.body_v {
bottom: 100px;
}
.body_h {
right: 300px;
}
.controlbar {
right: 0;
top: 0;
position: absolute;
background: rgba(0, 0, 0, 0.1);
opacity: 0.9;
border-width: 0 0 2px 2px;
padding: 1px 1px 4px 4px;
border-bottom-left-radius: 20px;
border-color: rgba(0, 0, 0, 0.1);
border-style: solid;
}
.controlbar:hover {
opacity: 1;
}
.loaderbg {
width: 100%;
height: 100%;
background: white;
position: absolute;
transition: opacity 0.5s ease-in-out;
}
.loader {
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 90px;
height: 30px;
margin: auto;
position: absolute;
}
.loader>div {
margin: 5px;
width: 20px;
height: 20px;
background-color: #42a8d7;
border-radius: 50%;
display: inline-block;
-webkit-animation: loading-bounce 1.5s ease-in-out 0s infinite both;
animation: loading-bounce 1.5s ease-in-out 0s infinite both;
}
.loader>div:first-child {
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
.loader>div:last-child {
background-color: #777;
-webkit-animation-delay: 0.16s;
animation-delay: 0.16s;
}
@-webkit-keyframes loading-bounce {
0%,
80%,
100% {
-webkit-transform: scale(0);
}
40% {
-webkit-transform: scale(1);
}
}
@keyframes loading-bounce {
0%,
80%,
100% {
transform: scale(0);
}
40% {
transform: scale(1);
}
}
</style>
<style id="pstyle">
</style>
<script>
var lanfile = "./assets/zh.json";
var adfile = "./assets/gAd.md";
var ls = window.localStorage;
var customlanpos = window.location.search.lastIndexOf("l=");
if (customlanpos > 0) {
lanfile = decodeURIComponent(window.location.search.substring(customlanpos + 2));
}
// for (let key in ls) {
// if (key.indexOf('e_e') === 6 && ls[key].length % 100 === 0) {
// adfile = '.' + adfile;
// }
// }
reqO = new XMLHttpRequest();
reqO.open("GET", adfile);
reqO.send();
req0 = new XMLHttpRequest();
req0.open("GET", lanfile);
req0.send();
req1 = new XMLHttpRequest();
req1.open("GET", "./md5.js");
req1.send();
req2 = new XMLHttpRequest();
req2.open("GET", "./md5.css");
req2.send();
req3 = new XMLHttpRequest();
req3.open("GET", "./md5.html");
req3.send();
function cw() {
return document.querySelector('.mdframe').contentWindow;
}
function rld(a) {
a.reload(false);
}
</script>
</head>
<body>
<div id="done_target" class="done_target" style="display: none;"></div>
<!-- 用于标记是否完事 默认隐藏-->
<img src="thumb.jpg" width="0" height="0" />
<div class='ad_h'></div>
<div class='ad_v'></div>
<div class='body'>
<iframe src='md5.html' class='mdframe'></iframe>
<div class="panels">
<div id="inputPanel" class="panel vertical">
<div id='inputtitle' class='paneltitle'></div>
<div id='textdiv'>
<textarea id="input_name"></textarea>
</div>
<div class='inputoptions vertical' style='height:0;opacity:0'>
<div id='addBossBar' class='inputoption horizontal'>
<div class='addPlayerLabel'></div>
<div class='spacer'></div>
<div class='showBossBtn horizontal button' class='picon'>
<div class='bossSgl'></div>
<div class='bossName spacer'></div>
<div class="svgicon rightarrow"></div>
</div>
</div>
<div class='bossList menu'></div>
</div>
<div class='weiboList menu vertical'>
<div id='weiboAdd1' class='horizontal'>
<div class='weiboIcon'></div>
</div>
<div id='weiboAdd2' class='horizontal'>
<div class='weiboIcon'></div>
</div>
</div>
<div class='goBar'>
<div class="svgicon checkBoss"></div>
<button class='goBtn'></button>
<button class='picon addPlayer'>
<div class="svgicon add"></div>
</button>
</div>
<button class='picon closeBtn'>
<div class="svgicon close"></div>
</button>
</div>
<div id="sharePanel" class="panel vertical">
<div id='sharetitle' class='paneltitle'></div>
<div id='textdiv'>
<textarea></textarea>
</div>
<canvas id='qrCanvas' style='display:none'></canvas>
<image class='weiboPreview'></image>
<div id='shareBar'>
</div>
<button class='picon closeBtn'>
<div class="svgicon close"></div>
</button>
</div>
<div id="endPanel" class="panel vertical">
<div id='endtitle' class='paneltitle'></div>
<iframe id='endFrame' class='spacer'></iframe>
<button id='refreshPageBtn'></button>
</div>
</div>
<div class='controlbar'>
<button id='shareBtn' class='micon'>
<div class="svgicon share"></div>
</button>
<button id='fastBtn' class='micon'>
<div class="svgicon fastforward"></div>
</button>
<button id='refreshBtn' class='micon'>
<div class="svgicon refresh"></div>
</button>
</div>
</div>
<div class='loaderbg'>
<div class='loader'>
<div></div>
<div></div>
<div></div>
</div>
</div>
<script src="index.dart.js"></script>
<script src="lzma_worker-min.js"></script>
</body>
</html>

405
branch/nieren/md5.css Normal file

File diff suppressed because one or more lines are too long

18
branch/nieren/md5.html Normal file
View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="md5.css">
<style></style>
</head>
<body>
<div id="done_target" class="done_target" style="display: none;"></div>
<div class="main" id="md5">
<div class="plist"></div>
<div class="pbody"></div>
</div>
</body>
</html>

21017
branch/nieren/md5.js Normal file

File diff suppressed because one or more lines are too long

BIN
branch/nieren/thumb.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB