[置顶] 《剑网3》茗伊插件集

鉴于《剑三》一些杂七杂八的插件功能没有人做或者曾经有人做但是没有维护导致不能使用,或者有些插件我觉得可以做得更好(比如聊天监控) 于是我写了这么一只插件_(:з」∠)_ 给朋友测试了一个月,现在正式发布。 关于版权_(:з」∠)_ 本插件完全开源 遵守GPLv3开源协议σ(⌒ー⌒) 关于功能,现在暂时只有聊天监控和喊话增强,正在写roll点监控,未来还会有附近的好友焦点列表以及副本队友驱散提示之类的功能 → 当然,如果你有一些好点子的话欢迎留言提供,我会尽我所能做出来(* ̄︶ ̄)y 关于版本控制,你可以随意搬运传播╮( ̄▽ ̄")╭ 反正有新版本会在插件加载的时候提示你~ 喊...

理解动态规划思想

前言 最近和朋友聊天,说起DP问题,想到大学时候学长上来一通“状态转移函数”把我们讲懵了,于是尝试写个入门笔记。 DP思想 通俗来说,动态规划解决问题的方法,就是当系统处于任何一个状态C,你去穷举所有状态A,然后把可能从A到达C的情况全部找出来,并从中获得最优解即可。所以,所谓的“状态转移方程”就是存在一条边从状态A到状态C,这条边的代价。简而言之,动态规划主要思想就是自底向上、局部最优到全局最优,通过计算每个子结构的最优解,求出总体结构的最优解。其目的是解决通过自顶向下的算法(如递归),带来的子结构重复计算,导致时间复杂度指数级上升的问题。 入门示例 桌上有 1kg、8kg、11kg...

记一次LUA逻辑查错:查看LUA函数闭包内变量状态

今天好不容易偶然重现了一个渲染队列总是跳过一个渲染元素的问题,这问题一直存在但是却一直无法稳定重现。 拿到环境后开始分析问题,首先要知道这个对象有没有进渲染队列,可是渲染队列在导出接口的闭包内外界无法访问。 立马想到debug库,利用多次调用debug.getupvalue层层进入闭包,最终成功拿到了队列数据,发现对象在队列中,从而定位问题出在分帧渲染逻辑,跳转到响应代码位置问题迎刃而解。 local function getupval(f, k) local i = 1 while true do local n, v = debug.getupvalu...

意外发现 Lua5.1 字符串解析有点问题

今天顺手写个汉字转拼音的脚本,意外发现有个字会导致产生语法错误: print("乗") 稍微多试了几次,发现这么写反而没有错误: print("乗"") 这个汉字实际上是导致 Lua loadstring 函数判断结束的引号出了问题,误以为字符串还没有结束,具体原因得有空追一下 Lua 的源码才知道。只是觉得如果谁使用 Lua 用作服务器脚本处理语言,用户可以利用这个字符,在读写用户数据的时候进行注入攻击。 后续 断点跟踪看了下, Lua 在处理字符串转义时的函数是按照 ASCII 值按位转义的。 static void addquoted (lua_State *L, luaL_Buf...

记一次 Typecho 插件的 XSS 攻击

发现 咸鱼好久没有更新内容,于是昨天想着来记录下最近的事情,结果上来发现网站页脚出现了奇怪的友链,于是登录进后台,元素审查一看,居然有人给我插了一条 XSS 进去了…… 再一看网络记录,可以,我的 cookie 已经被上传了…… 赶紧把 token 改了,然后临时把管理页删了…… 溯源 搞完在思考,为什么这里会有这么严重的问题。首先回到友链插件上,没想到这个作者居然显示文字的时候没有做任何安全性字符过滤,导致了 xss 的可能。 但是为何数据会出现在我的库里呢?想来想去没想通,于是顺手看了下友链插件的提交数据,然后把表单复制出来,去除 cookie 信息后从控制台直接 curl 提交...

使用Python制作繁体显示的简体字体文件

最近几天发生了一些事情,导致《剑网3免费版》(台服)关服,于是昨天突发奇想,是不是想办法修改字体文件,就可以在简体客户端里面显示出繁体呢。 思绪 得到这个想法后,我便顺手拿出一个字体文件,阅读起了TTF文件的数据结构,随手谷歌了一篇文章,大致了解到TTF文件由矢量图形表(Glyphs)、字符到矢量图的映射表 (cmap)、矩阵样式等信息表 (hmtx、hdmx、OS/2 等)构成,与想象中设计基本一致。那么我们要做的事情,就是通过一份繁简转换表,从一个繁体字体文件中读取每一个繁体字符的矢量图、矩阵样式信息、字符映射表,并修改其映射关系到对应的简体字符,然后替换或者追加到简体字体文件对...

通过 JavaScript 脚本解决移动端弹出层滚动穿透的问题

前端开发中经常会遇到一个麻烦的问题:在通过fixed或者absolute定位的弹出层上进行滚动操作的时候,滚动事件会穿透到底部导致body跟着滚动,及其影响交互体验。常规做法是在弹出层时候禁止body的滚动,将其设置为overflow: hidden,但是会导致滚动高度丢失从而造成视觉上一次弹动,所以我决定从弹出层本身考虑这个问题。 <body> Body content. <div id="popup" style="position: fixed; top: 0; right: 0; left: 0; bottom: 0"> Popup lay...

最新文章

最近回复