kktv滑块协议易语言源码
.版本 2
.支持库 spec
.支持库 BmpOperate
.支持库 commobj
.支持库 dp1
.程序集 窗口程序集_启动窗口
.程序集变量 hashValue, 文本型
.程序集变量 图片, 字节集, , "3"
.子程序 _按钮1_被单击
.计次循环首 (30, )
识别 ()
.计次循环尾 ()
.子程序 识别
.局部变量 str, 文本型
.局部变量 原始图片大小, 整数型
.局部变量 坐标, 文本型
.局部变量 X, 整数型
.局部变量 Y, 整数型
.局部变量 图片指纹, 文本型
.局部变量 i, 整数型
.局部变量 轨迹, 文本型
.局部变量 ym, 文本型
str = 到文本 (网页_GZIP解压 (网页_访问_对象 (“https://www.kktv8.com/ver_map_1_0/request_hash_image?callback=cbhihol1vronh&xfor=17&_=” + 时间_取现行时间戳 (), , , , , “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36”)))
hashValue = 文本_取出中间文本 (str, “hashValue” + #引号 + “:” + #引号, #引号)
图片_转换 (编码_BASE64解码A (到字节集 (文本_取出中间文本 (str, “src” + #引号 + “:” + #引号, #引号))), 1, , 图片 [1])
画板1.底图 = 图片 [1]
图片指纹 = getBmpMD5 (图片 [1])
图片 [2] = 编码_BASE64解码A (到字节集 (文本_取出中间文本 (str, “crop” + #引号 + “:” + #引号, #引号)))
' 画板2.底图 = 到位图 (图片 [1])
' X = 计算坐标 (到位图 (图片 [1]))
' 调试输出 (X)
.判断开始 (图片指纹 = #图片a)
图片 [3] = #图片1
.判断 (图片指纹 = #图片b)
图片 [3] = #图片2
.判断 (图片指纹 = #图片c)
图片 [3] = #图片3
.判断 (图片指纹 = #图片d)
图片 [3] = #图片4
.默认
.判断结束
坐标 = 计算坐标 (图片 [3], 图片 [1], 图片 [2])
调试输出 (坐标)
X = 到整数 (文本_取左边 (坐标, “|”))
Y = 到整数 (文本_取右边 (坐标, “|”))
滑块条1.位置 = X
外形框1.左边 = 64 + 滑块条1.位置
外形框2.顶边 = 16 + Y
轨迹 = 轨迹生成_ (X, Y, 100)
ym = WT_JS_Eval (#js, 到文本 (X), 到文本 (Y), 轨迹, hashValue)
str = 到文本 (网页_GZIP解压 (网页_访问_对象 (“https://www.kktv8.com/ver_map_1_0/check_hash?callback=cbd6jx2cp7gd4&ym=” + ym + “&hash=” + hashValue + “&xfor=17&_=” + 时间_取现行时间戳 ())))
调试输出 (str)
.子程序 计算坐标, 文本型
.参数 原图_图片, 字节集
.参数 阴影图_图片, 字节集
.参数 块_图片, 字节集
.局部变量 阴影图, 位图
.局部变量 块, 位图
.局部变量 原图, 位图
.局部变量 分割组, 整数型, , "0"
.局部变量 第二次分割组, 整数型, , "0"
.局部变量 分割组数量, 整数型
.局部变量 第二次分割组数量, 整数型
.局部变量 i, 整数型
.局部变量 差异次数, 整数型
.局部变量 差值, 整数型
.局部变量 上次差异次数, 整数型
.局部变量 最大差异次数, 整数型
.局部变量 X, 整数型
.局部变量 Y, 整数型
.局部变量 跳出, 逻辑型
.局部变量 边, 整数型
阴影图.载入数据 (阴影图_图片)
块.载入数据 (块_图片)
原图.载入数据 (原图_图片)
.计次循环首 (块.取宽度 (), X)
.计次循环首 (块.取高度 (), Y)
.如果真 (块.取某点颜色 (X - 1, Y - 1) ≠ #白色)
跳出 = 真
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真 (跳出)
边 = X - 1
跳出循环 ()
.如果真结束
.计次循环尾 ()
分割组数量 = 分割_差异次数 (原图, 阴影图, 分割组)
.计次循环首 (分割组数量, i)
差异次数 = 分割组 [i]
差值 = 差异次数 - 上次差异次数
.如果真 (差值 > 最大差异次数)
最大差异次数 = 差值
X = i
.如果真结束
上次差异次数 = 差异次数
.计次循环尾 ()
' 调试输出 (X)
X = X - 边
' 阴影图 = 取图片区域 (阴影图, X, 0, 块.取宽度 (), 140)
' 原图 = 取图片区域 (原图, X, 0, 块.取宽度 (), 145)
i = 1
第二次分割组数量 = 分割_差异次数2 (原图, 阴影图, 第二次分割组)
.计次循环首 (第二次分割组数量, i)
差异次数 = 第二次分割组 [i]
.如果真 (差异次数 ≠ 0)
Y = i
跳出循环 ()
.如果真结束
.计次循环尾 ()
返回 (到文本 (X) + “|” + 到文本 (Y))
.子程序 分割_差异次数2, 整数型
.参数 原图, 位图
.参数 阴影图, 位图
.参数 返回分割组, 整数型, 参考 数组
.局部变量 X, 整数型
.局部变量 Y, 整数型
.局部变量 差异次数, 整数型
.计次循环首 (原图.取高度 () - 1, Y)
.计次循环首 (原图.取宽度 (), X)
.如果真 (取差异度 (到字节集 (原图.取某点颜色 (X - 1, Y - 1)), 到字节集 (阴影图.取某点颜色 (X - 1, Y - 1))) > 5)
差异次数 = 差异次数 + 1
.如果真结束
.计次循环尾 ()
加入成员 (返回分割组, 差异次数)
差异次数 = 0
.计次循环尾 ()
返回 (取数组成员数 (返回分割组))
.子程序 分割_差异次数, 整数型
.参数 原图, 位图
.参数 阴影图, 位图
.参数 返回分割组, 整数型, 参考 数组
.局部变量 X, 整数型
.局部变量 Y, 整数型
.局部变量 差异次数, 整数型
.计次循环首 (原图.取宽度 (), X)
.计次循环首 (原图.取高度 (), Y)
.如果真 (取差异度 (到字节集 (原图.取某点颜色 (X - 1, Y - 1)), 到字节集 (阴影图.取某点颜色 (X - 1, Y - 1))) > 5)
差异次数 = 差异次数 + 1
.如果真结束
.计次循环尾 ()
加入成员 (返回分割组, 差异次数)
差异次数 = 0
.计次循环尾 ()
返回 (取数组成员数 (返回分割组))
.子程序 取图片区域, 位图
.参数 原位图, 位图
.参数 图片左边, 整数型
.参数 图片顶边, 整数型
.参数 图片宽度, 整数型
.参数 图片高度, 整数型
.局部变量 位图, 位图
.局部变量 X, 整数型
.局部变量 Y, 整数型
.局部变量 颜色, 整数型
位图.创建 (图片宽度, 图片高度, 原位图.取位深度 (), )
.计次循环首 (图片宽度, X)
.计次循环首 (图片高度, Y)
颜色 = 原位图.取某点颜色 (图片左边 + X - 1, 图片顶边 + Y - 1)
位图.置某点颜色 (X - 1, Y - 1, 颜色)
.计次循环尾 ()
.计次循环尾 ()
返回 (位图)
.子程序 到位图, 字节集, 公开
.参数 图片数据, 字节集, 参考
.局部变量 图片, 对象
.局部变量 图, 字节集
CoInitialize (0)
图 = 图片数据
.如果真 (取字节集左边 (图, 2) ≠ { 66, 77 } 或 取字节集数据 (图, #短整数型, 29) > 8)
图片.创建图片对象 (图)
图 = 图片.取回图片 ()
图片.清除 ()
.如果真结束
CoUninitialize ()
返回 (图)
.子程序 取差异度, 双精度小数型
.参数 颜色1, 字节集
.参数 颜色2, 字节集
.局部变量 y1, 双精度小数型
.局部变量 u1, 双精度小数型
.局部变量 v1, 双精度小数型
.局部变量 y2, 双精度小数型
.局部变量 u2, 双精度小数型
.局部变量 v2, 双精度小数型
y1 = 0.299 × 颜色1 [1] + 0.587 × 颜色1 [2] + 0.114 × 颜色1 [3]
u1 = -0.14713 × 颜色1 [1] - 0.28886 × 颜色1 [2] + 0.436 × 颜色1 [3]
v1 = 0.615 × 颜色1 [1] - 0.51498 × 颜色1 [2] - 0.10001 × 颜色1 [3]
y2 = 0.299 × 颜色2 [1] + 0.587 × 颜色2 [2] + 0.114 × 颜色2 [3]
u2 = -0.14713 × 颜色2 [1] - 0.28886 × 颜色2 [2] + 0.436 × 颜色2 [3]
v2 = 0.615 × 颜色2 [1] - 0.51498 × 颜色2 [2] - 0.10001 × 颜色2 [3]
返回 (求平方根 ((y1 - y2) × (y1 - y2) + (u1 - u2) × (u1 - u2) + (v1 - v2) × (v1 - v2)))
.子程序 _画板1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.子程序 WT_JS_Eval, 文本型, , WT-JS_DEBUG
.参数 script, 文本型, , 常量JS脚本
.参数 w, 文本型, , 参数1
.参数 b, 文本型, , 参数2
.参数 k, 文本型, , 参数3
.参数 X, 文本型, , 参数4
.局部变量 js, 对象
.局部变量 eval, 变体型
.局部变量 ret, 文本型
' CoInitialize (0)‘线程中使用 加载COM
js.创建 (“ScriptControl”, )
js.写属性 (“Language”, “JScript”)
' 如果调试结果与工具不符,有可能是编码问题,尝试加入: 【 编码_Utf8到Ansi (到字节集 (script)) 】
js.逻辑方法 (“AddCode”, script)
eval = js.通用方法 (“Eval”, “getEnv(” + #引号 + w + #引号 + “, ” + #引号 + b + #引号 + “, ” + #引号 + k + #引号 + “, ” + #引号 + X + #引号 + “)”)
ret = eval.取文本 ()
js.清除 ()
' CoUninitialize () ‘线程中使用 卸载COM
返回 (ret)
.子程序 轨迹生成_, 文本型
.参数 X_, 整数型
.参数 Y_, 整数型
.参数 time, 整数型, 参考
.局部变量 jb, 文本型
.局部变量 arr, 文本型, , "0"
.局部变量 m, 整数型
.局部变量 n, 整数型, 静态
.局部变量 p, 整数型
.局部变量 u, 整数型
.局部变量 l, 整数型
.局部变量 v_x, 整数型
.局部变量 v_y, 双精度小数型
.局部变量 y, 整数型
.局部变量 t, 整数型, 静态
.局部变量 次数, 整数型
.局部变量 x起点, 文本型
.局部变量 y起点, 文本型
.局部变量 b, 整数型
.局部变量 i, 整数型
.局部变量 str, 文本型
置随机数种子 (到整数 (时间_取现行时间戳 ()))
' p = 取随机数 (30, 60)
' y = 取随机数 (1, 10)
' n = 取随机数 (-10, 10)
m = 取随机数 (1, 68)
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
n = 取随机数 (1, 68)
b = n
y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.如果 (m < X_ 且 n < Y_)
v_x = 1
l = 到整数 (X_)
y = Y_ - n
.计次循环首 (l, 次数)
置随机数种子 (到整数 (时间_取现行时间戳 ()))
.判断开始 (m > l)
m = l
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.默认
.判断结束
.如果真 (m ≥ X_)
跳出循环 ()
.如果真结束
加入成员 (arr, x起点)
置随机数种子 ()
.如果 (几率事件 (5))
v_x = 1
.否则
v_x = 2
.如果结束
' n = b + 到整数 (y × 次数 ÷ l)
' 调试输出 (n)
m = m + v_x
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.计次循环尾 ()
加入成员 (arr, x起点)
.计次循环首 (取数组成员数 (arr), i)
arr [i] = arr [i] + 到文本 (b + 到整数 (i ÷ 取数组成员数 (arr) × y))
.计次循环尾 ()
' arr = 取文本左边 (arr, 取文本长度 (arr) - 1)
' 延迟 (time)
.否则
.如果结束
.如果 (m < X_ 且 n > Y_)
v_x = 1
l = 到整数 (X_)
y = n - Y_
.计次循环首 (l, 次数)
置随机数种子 (到整数 (时间_取现行时间戳 ()))
.判断开始 (m > l)
m = l
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.默认
.判断结束
.如果真 (m ≥ X_)
跳出循环 ()
.如果真结束
加入成员 (arr, x起点)
置随机数种子 ()
.如果 (几率事件 (5))
v_x = 1
.否则
v_x = 2
.如果结束
' n = b + 到整数 (y × 次数 ÷ l)
' 调试输出 (n)
m = m + v_x
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.计次循环尾 ()
加入成员 (arr, x起点)
.计次循环首 (取数组成员数 (arr), i)
arr [i] = arr [i] + 到文本 (b - 到整数 (i ÷ 取数组成员数 (arr) × y))
.计次循环尾 ()
' arr = 取文本左边 (arr, 取文本长度 (arr) - 1)
' 延迟 (time)
.否则
.如果结束
.如果 (m > X_ 且 n < Y_)
v_x = 1
l = 到整数 (m)
y = Y_ - n
.计次循环首 (l, 次数)
置随机数种子 (到整数 (时间_取现行时间戳 ()))
.判断开始断 (l > m)
' m = l
' x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' ' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.默认
.判断结束
.如果真 (m ≤ X_)
跳出循环 ()
.如果真结束
加入成员 (arr, x起点)
置随机数种子 ()
.如果 (几率事件 (5))
v_x = 1
.否则
v_x = 2
.如果结束
' n = b + 到整数 (y × 次数 ÷ l)
' 调试输出 (n)
m = m - v_x
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.计次循环尾 ()
加入成员 (arr, x起点)
.计次循环首 (取数组成员数 (arr), i)
arr [i] = arr [i] + 到文本 (b + 到整数 (i ÷ 取数组成员数 (arr) × y))
.计次循环尾 ()
' arr = 取文本左边 (arr, 取文本长度 (arr) - 1)
' 延迟 (time)
.否则
.如果结束
.如果 (m > X_ 且 n > Y_)
v_x = 1
l = 到整数 (m)
y = n - Y_
.计次循环首 (l, 次数)
置随机数种子 (到整数 (时间_取现行时间戳 ()))
.判断开始断 (l > m)
' m = l
' x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' ' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.默认
.判断结束
.如果真 (m ≤ X_)
跳出循环 ()
.如果真结束
加入成员 (arr, x起点)
置随机数种子 ()
.如果 (几率事件 (5))
v_x = 1
.否则
v_x = 2
.如果结束
' n = b + 到整数 (y × 次数 ÷ l)
' 调试输出 (n)
m = m - v_x
x起点 = WT_JS_EvalA (#js, 到文本 (m), “3”, “0”)
' y起点 = WT_JS_EvalA (#js, 到文本 (n), “2”, “0”)
.计次循环尾 ()
加入成员 (arr, x起点)
.计次循环首 (取数组成员数 (arr), i)
arr [i] = arr [i] + 到文本 (b - 到整数 (i ÷ 取数组成员数 (arr) × y))
.计次循环尾 ()
' arr = 取文本左边 (arr, 取文本长度 (arr) - 1)
' 延迟 (time)
.否则
.如果结束
.计次循环首 (取数组成员数 (arr), i)
str = str + arr [i]
处理事件 ()
.计次循环尾 ()
返回 (str)
.子程序 几率事件, 逻辑型, , 只支持整数
.参数 几率, 整数型, , 只支持整数 倒的 1指99%几率
置随机数种子 (到整数 (时间_取现行时间戳 ()))
返回 (取随机数 (1, 100) > 几率)
.子程序 WT_JS_EvalA, 文本型, , WT-JS_DEBUG
.参数 script, 文本型, , 常量JS脚本
.参数 e, 文本型, , 参数1
.参数 A, 文本型, , 参数2
.参数 t, 文本型, , 参数3
.局部变量 js, 对象
.局部变量 eval, 变体型
.局部变量 ret, 文本型
' CoInitialize (0)‘线程中使用 加载COM
js.创建 (“ScriptControl”, )
js.写属性 (“Language”, “JScript”)
' 如果调试结果与工具不符,有可能是编码问题,尝试加入: 【 编码_Utf8到Ansi (到字节集 (script)) 】
js.逻辑方法 (“AddCode”, script)
eval = js.通用方法 (“Eval”, “A(” + #引号 + e + #引号 + “, ” + #引号 + A + #引号 + “, ” + #引号 + t + #引号 + “)”)
ret = eval.取文本 ()
js.清除 ()
' CoUninitialize () ‘线程中使用 卸载COM
返回 (ret)
.子程序 __启动窗口_创建完毕
.子程序 getBmpMD5, 文本型
.参数 img, 字节集
.局部变量 bitmap, 位图
.局部变量 y, 整数型
.局部变量 t, 快速字节集对象
.局部变量 md5, 文本型
bitmap.载入数据 (到位图 (img))
.计次循环首 (bitmap.取高度 (), y)
t.添加 (bitmap.取某点颜色 (0, y - 1))
.计次循环尾 ()
md5 = 取数据摘要 (t.取字节集 (, ))
t.清除字节集 ()
返回 (md5)
.子程序 _图片框1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.子程序 _滑块条1_位置被改变