w4454962 / maphelper Goto Github PK
View Code? Open in Web Editor NEW加速地图编辑器保存的项目
加速地图编辑器保存的项目
用vector会多次触发resize,当buffer很大时会对速度有较大影响。我们可以用deque避免这个问题。
简单来说我们可以用一个固定长度数组的列表来做buffer。这样在进行write<BinaryWriter>
这样的操作时,只需要O(1)来合并两个列表,避免大量的复制。
当第三方MPQ定义了自定义TriggerParams但未指定父类型时,目前不会完全正确判断相关类型,并进行字符串符号的转换。
出现错误的情况:
define.txt
[TriggerTypes]
footype=0,0,0,自定义类型
[TriggerParams]
footype1=0,footype,`foo1`,自定义类型1
考虑逻辑:判断字符符号时仅判断首尾是否均为“ ` ”,如果是,则替换为半角双引号。
清单:
[x] 转换TriggerParams中的反引号为双引号。 “ ` ” 转换为 “ " ”
相关逻辑:
TriggerEditor.cpp:TriggerEditor::convertParameter - switch - Parameter::Type::preset
状态:
已修改完成?:Y
已测试完成?:Y
已提交Pull Request?:Y #16
分配给裂魂去测试修复, 修复完之后还能快几秒时间
目前这个插件还依赖YDTrigger的几个hook,我建议将它移植过来,这样可以彻底去掉YDTrigger
如果有时间的话 重写jasshelper 对vjass/zinc 进行编译 原版的效率实在太低了。
计划 拦截ydwe 的创建进程接口 跟 运行commandline 的接口 拦截之后替换wave 跟 jasshelper 做进一步编译流程的优化加速。
wave 将尝试使用多线程版本
jasshelper 将采取分块编译的方式 将纯t生成的代码抽出 不参与vj编译 编译结束后再将纯t的jass代码插回 加速编译。
为了增加MapHelper的扩展能力 需要封装一套自定义节点的机制 让那些修改过ydtrigger.dll的用户也能轻易的将自己的改动 添加到MapHelper里。
有了新的设计思路, 原本的思路之下扩展越来越困难麻烦,早日重构。
现在MapHelper已经趋于稳定,是时候将其作为YDWE的插件发布了。
local ydl_localvar_step = LoadInteger(YDLOC, GetHandleId(GetTriggeringTrigger()), 0x12345678)
编译后提示的报错代码如上图,提示缺少 ydl_localvar_step 。
疑似 YDLOCAL_* 插入错误。
演示见压缩包:
单位组BUG演示.zip
1. 当前编辑器打开一张以上地图时。如果两张地图都存在改动。退出时选择保存会将编辑器非当前显示的地图保存为当前显示的地图。
2. 逆天类型检测在逆天计时器逆天触发器逆天运行触发器中允许重定义一次类型。【看了眼ydwe那边issues好像acb说是没判断属于bug这个不管了】
3. 编辑器地形编辑上设置单位,可破坏物掉落物品一堆bug,列如设置随机掉落物品,可破坏物代码中未选中导致未注册事件等。【这个过几天有空修了算了】
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.