heroFourFrames & 2.7.3
This commit is contained in:
parent
f48e8dcf17
commit
b062e86e79
@ -75,6 +75,12 @@ var plugins_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
|||||||
"_range": "typeof(thiseval)=='string' || thiseval==null",
|
"_range": "typeof(thiseval)=='string' || thiseval==null",
|
||||||
"_data": "物品分类插件"
|
"_data": "物品分类插件"
|
||||||
},
|
},
|
||||||
|
"heroFourFrames": {
|
||||||
|
"_leaf": true,
|
||||||
|
"_type": "textarea",
|
||||||
|
"_range": "typeof(thiseval)=='string' || thiseval==null",
|
||||||
|
"_data": "勇士四帧行走动画"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (obj[key]) return obj[key];
|
if (obj[key]) return obj[key];
|
||||||
return {
|
return {
|
||||||
|
|||||||
6
main.js
6
main.js
@ -2,7 +2,7 @@ function main() {
|
|||||||
|
|
||||||
//------------------------ 用户修改内容 ------------------------//
|
//------------------------ 用户修改内容 ------------------------//
|
||||||
|
|
||||||
this.version = "2.7.2"; // 游戏版本号;如果更改了游戏内容建议修改此version以免造成缓存问题。
|
this.version = "2.7.3"; // 游戏版本号;如果更改了游戏内容建议修改此version以免造成缓存问题。
|
||||||
|
|
||||||
this.useCompress = false; // 是否使用压缩文件
|
this.useCompress = false; // 是否使用压缩文件
|
||||||
// 当你即将发布你的塔时,请使用“JS代码压缩工具”将所有js代码进行压缩,然后将这里的useCompress改为true。
|
// 当你即将发布你的塔时,请使用“JS代码压缩工具”将所有js代码进行压缩,然后将这里的useCompress改为true。
|
||||||
@ -186,8 +186,8 @@ function main() {
|
|||||||
this.floors = {}
|
this.floors = {}
|
||||||
this.canvas = {};
|
this.canvas = {};
|
||||||
|
|
||||||
this.__VERSION__ = "2.7.2";
|
this.__VERSION__ = "2.7.3";
|
||||||
this.__VERSION_CODE__ = 233;
|
this.__VERSION_CODE__ = 258;
|
||||||
}
|
}
|
||||||
|
|
||||||
main.prototype.init = function (mode, callback) {
|
main.prototype.init = function (mode, callback) {
|
||||||
|
|||||||
@ -1,109 +0,0 @@
|
|||||||
√:已完成
|
|
||||||
x:现在或未来暂时没有做的打算
|
|
||||||
?:待定中
|
|
||||||
N:可能影响接档等,下一个版本再考虑
|
|
||||||
|
|
||||||
2.7.2改版和多语言版中做出的功能性改进:
|
|
||||||
(√)1. terrains.png中追加了14种薄墙图块(不可出入方向一致,画在非事件层可使勇士和阻击怪无法穿过)和仿rm柜台,但没有向下延伸绘制的效果。
|
|
||||||
(√)2. 怪物追加了批量战后事件(比照了道具的useItemEvent和其他图块的script),此事件对同种任何怪物生效,移动/跳跃后依然生效。
|
|
||||||
(x)2.1 炸弹只炸面前的情况增加了触发两种战后事件,以方便作者。
|
|
||||||
(x)3. 怪物追加了攻击勇士的动画,该动画存在时会作为勇士攻击怪物动画的回调,天降强制战斗时则覆盖勇士攻击怪物的动画。
|
|
||||||
(x)4. 插件编写init中追加了两个API用来将project\enemys.js转换成csv格式或转换回来,以方便作者读写(希望此思路也用于其他文件如project\maps.js来方便通行性等属性的读写)。其中批量战后事件的存储方式参考了自定义录像项的要求,即JSON.stringify再core.encodeBase64
|
|
||||||
(√)5. core.stairExists()改为了始终允许87到94号图块,毕竟“不想允许这些图块的作者只需要换别的素材”,而“想允许这些图块的作者则不得不魔改/复写函数或者开启平面模式,但该作者未必需求玩家飞回上次离开的位置”。
|
|
||||||
(√)6. 道具属性移除了equipCondition,与canUseItemEffect合并,null依然表示不可使用但可装备。装备属性的事件编辑器中提示作者修改cls和设置穿戴条件。
|
|
||||||
(x)7. 无参的入口方块全部统一,比如战后、开门后、两个arrive和公共事件,以方便复制粘贴,不然老提示入口方块类型不符。
|
|
||||||
(x)7.1 doorInfo的开关门时间分成了两个数,有些门开关速度作者可能需要不一致。
|
|
||||||
(√)7.2 无视地形移动/跳跃勇士挪到了地图处理类,因为经常和图块的移动跳跃一起用于演出且都没有碰撞效果。
|
|
||||||
(x)7.3 UI绘制的颜色改成了注释的浅紫色,各种子场合块的颜色改成了入口方块的深紫色,以和地图处理类的浅蓝色相区分。
|
|
||||||
(x)8. 修复了Math一元运算值块转换为json时的语法错误,追加了部分函数。
|
|
||||||
(x)8.1 drawTip事件追加了第几帧的参数。
|
|
||||||
(√)9. 玩家设置中追加了手模式,开启后wsad起方向键的作用,ijkl起原wsad的SL作用,以方便键鼠并用。
|
|
||||||
(√)10. 移除了部分引用极少的函数,如仇恨怪详情、claerTip和
|
|
||||||
(√)10.1 tryUseItem改成了直接inline,从道具栏使用道具失败时不再closePanel,以方便玩家继续选择其他道具(破炸冰这三个先斩后奏的就没办法了)。
|
|
||||||
(√)11. 快速追加npc48一键绑定朝向改为只绑定最后四个,以免影响前面可能的单朝向npc
|
|
||||||
(√)12. 事件层为自动元件或tileset且没有碰触脚本时,该点前景层不再虚化(272改版里若某点只有前景没有事件会出bug,多语言版里已修复),以保证观感的统一。
|
|
||||||
(√)13. 阻激夹域捕捉的显伤排除了不可通行点,以保证观感。
|
|
||||||
(√)13.1 修复了零伤阻击点无法阻拦瞬移的bug,并交换了阻击怪后退和捕捉怪移动的次序。
|
|
||||||
(√)13.2 相关的canMoveHero中勇士生命改为至少视为1,从而修复了canGoDeadZone为false时空血不能行走的bug。
|
|
||||||
(x)13.3 阻激夹域血网的伤害tip文案进行了优化,现在会读取实际的图块名称和怪物特殊属性名称并区分激光的横纵。
|
|
||||||
(x)14. drawChoices选择灰项增加了音效,此音效还用在了其他类似的场合。希望样板多一些这样的小细节并提供rm那样的映射表来修改音效而不是只能替换文件,毕竟替换文件有格式限制。样板的很多系统行为缺少音效,如开关菜单等系统UI时、闪烁光标和黄框位置变化时。建议能提供的都提供出来(胖老鼠和新新那么多音效有了解包出的文件还难以还原,不丢人么。样板3层和h5胖老鼠对话靠的还是无数手动播放音效),录像高倍速播放如果听感不好的话可以忽略。
|
|
||||||
(√)15. 放宽了音频文件的格式限制,如追加了m4a、m4r、flac等,毕竟作者可能会选择其他的渠道传播。
|
|
||||||
(x)16. animate这个后缀名修改为了json,以方便文本编辑器等程序去识别,另外某些h5游戏网站在发布时会限制上传的文件格式,使用标准后缀也有利于作者。
|
|
||||||
(√)17. flyTo中修改了楼层属性flyPoint的生效方式,改成了作为stair参数生效而不是覆盖heroLoc,两个相关事件的stair下拉框也提供了flyPoint项。
|
|
||||||
(√)18. 楼层属性canFlyTo拆成了两项,即canFlyTo和canFlyFrom,以方便作者个性化。
|
|
||||||
(√)19. getSpecials由yzm优化了配色,优化了固伤属性的描述(可被负伤抵消)。
|
|
||||||
(x)20. 难度单词为空字符串时显示“竖屏数字键”,以提示竖屏玩家。另外希望修复读档等场合红一下的bug
|
|
||||||
(√)21. getToolboxItems提供了一个修改排序方式的例子作为注释并说明了用法。
|
|
||||||
(x)22. project\icons.js中给勇士追加了midFoot表示第三帧并用于两种行走动画(暂不包括F7)的绘制(此功能建议要么merge要么作为系统开关让作者取舍,毕竟复写起来要改的函数还挺多而且需要厘清一些逻辑关系),其他图块移动时的帧切换频率改为了全局帧动画的三倍以优化观感。
|
|
||||||
(√)23. 事件编辑器中图块id自动补全追加了图标,感谢ad,更新了atkValue、defValue、range和n等的表格注释。
|
|
||||||
(√)24. 修改了formatBigNumber对±∞的处理方式,现在它们也会变成???了。
|
|
||||||
(x)24.1 另外建议把onMap参数细化为有效数字的位数,以供作者更灵活地使用。
|
|
||||||
(x)25. P键和通关url的&num=10改成了&num=1,以方便玩家翻阅到评论区。移除了equip.mp3,穿脱装备改为播放centerFly.mp3
|
|
||||||
(x)26. 追加了公共事件版全局商店“快捷换装”以方便手机端,该事件的对话框可以再更透明一点来方便玩家边换装边观察地图显伤。
|
|
||||||
|
|
||||||
其他issues:
|
|
||||||
(√)0.(1008)加入一个flag来控制当前是否允许存档,因为天气色调bgm进存档的情况下会屏蔽楼层切换,不进存档的话玩家原地SL又不保留。
|
|
||||||
(√)0.1. 录像播放中加一个百分比(二次录制长度/原录像长度)显示,
|
|
||||||
(x)0.2. 并且允许在已播放的任意节点之间快退快进。
|
|
||||||
(√)1. 希望尝试修复2.6.x的高清UI、
|
|
||||||
(x)1.2 自动元件通行性(勇士和阻击怪可在同种图块内部自由通行,但进出另一种图块则必须通过桥梁)、
|
|
||||||
(x)1.3 仿rm光照和负色调(含true-light.js)等插件并加入样板,
|
|
||||||
(x)1.4. 2.7.2发布以来插件库有了一些新插件,也希望加入(该修的bug要修,比如什么==NaN)。
|
|
||||||
(x)2. 部分rm功能:确定键触发(很多作者可能会摆一些挡路的可通行事件但又希望可以像绿点一样穿透,比如因为目标层/点有分歧而不能用绿点只能用红点的楼梯,那么就需要勇士站在此点按下轻按键7或其他什么数字键来触发该事件)、
|
|
||||||
(x)2.1 斜向移动(插件库的磁铁特效,但blockly中的步伐口诀语法需要调整,最简单的调整方法是1不许省略,这样连续两个汉字就一定表示一个斜向了,还不影响接档)
|
|
||||||
(x)2.2 三行二列的自动元件、流体(草木茂盛处)、梯子(勇士始终脸朝上)、柜台的绘制,视频播放,
|
|
||||||
(√)2.3 动画多音效(可先不修改动画编辑器和导出器,给animate/json文件约定好语法并被drawAnimate/drawHeroAnimate执行即可),
|
|
||||||
(x)2.4 音频的变调变速和声道偏移、bgs(目前只能由作者自行用插件实现)和me(播放时bgm暂时淡出),
|
|
||||||
(x)2.5 另外建议提供bgm播放进度读写、多个bgm独立调节音量的API和事件,
|
|
||||||
(x)2.6 以及一个bgm循环插件,思路是事先约定每个bgm的循环起止点,并行检查是否越过终点,越过则跳转至起点。
|
|
||||||
(N)3. 希望cannotMove(深蓝点)的高亮方式优化,显示出具体的禁行方向(如果嫌遮挡,可以提供一个按钮切换高亮方式)而不是只显示个深蓝点。
|
|
||||||
(N)3.1 另外cannotMove目前只控制out不控制in,建议追加in
|
|
||||||
(?)4. 拖文件快速追加功能建议实现对RMVA规格的完整支持,即遇到四行三列图片时,取两帧则取左右列、取四帧则按2123排布,
|
|
||||||
(√)4.1 items.png则支持任意宽高(如拖动一张480*480px的tileset图片到items.png则追加225个道具)。
|
|
||||||
(N)5.(插件开关)目前所有插件都以var enable = false;这一难看的句子开头,且从表格难以一眼看出哪些插件被启用了,建议提供集中的勾选框。
|
|
||||||
(x)6.(drawTip)V2.6.4的多重tip建议优化后重新加入样板,目前在事件中一次被npc给予多个道具还是很难看清楚的,比如样板1层给1破2炸3飞的老人。另外,drawTextContent下缘丢失的问题在iOS safari依然很明显。
|
|
||||||
(√)7.(表格优化)很多表格项的英文名本来能显示完,结果结尾多出三个点反而导致显示不完,如afterChangeFloor和updateCheckBlock,建议优化。顺便说一下,编辑器的右键菜单和快捷键仍然经常失灵,夜间模式在edge无法使用,ground层经常消失。
|
|
||||||
(√)8.(文件注册)动画预览时的音效名依然需要手打,不过可能也不方便做下拉框(文件太多)或二级大弹窗了。
|
|
||||||
(x)同理,nameMap建议拆散到各个文件注册的多选框中,每行提供一个额外的文本输入框“别名”即可(目前的实现好多人不知道怎么用)。
|
|
||||||
(√)另外,楼层属性bgm和标题画面bgm等本来是下拉框的场合建议改成弹窗选择。
|
|
||||||
(√)9.(完全信息)坚固怪和受光环影响的怪建议在详情框显示其原始能力,尤其是坚固和模仿,其实它们手册一级面板显示原值对玩家来说才是魔塔倡导的完全信息,变化后的值可以轻易口算。
|
|
||||||
(x)同理,楼传界面和浏览地图建议加一个按钮(可以是插件)来切换显示一些楼层属性,如上下楼点、楼传落点、本次楼传落点(这些点可以在地图或缩略图用不同颜色高亮显示)、ratio、ground的图标、几个勾选框、宽高、有无两个arrive事件、色调(尤其是是否为不透明的纯色)等。
|
|
||||||
(x)另外浏览地图界面的非缩略图建议像编辑器一样加上高亮刻度尺表示所在第几行第几列(此灵感来自秋橙的3D塔每走一步在状态栏实时显示xyz)。
|
|
||||||
(x)10. ui._drawCenterFly建议在大地图时也提供缩略图方式显示(可以做成可当时切换),以方便玩家。
|
|
||||||
(√)11.(显示文章)建议双击(或右击菜单中)同时预览所有立绘,现在一次预览一张图还是很不直观的。
|
|
||||||
(√)11.1 同理,其他一些被占用的功能也可以放进右击菜单,比如动画选坐标和跳跃选起点(已被z触完成)、
|
|
||||||
(√)11.2 UI多行文本绘制预览(现在必须塞进黄框)
|
|
||||||
(x)12. “接受用户输入非负整数”建议改为魔塔样板4401的楼传那种界面(五个按钮,分别负责切换数位,在当前位加减1,和确定),并由作者指定位数,以优化观感和安全性且方便玩家。或者改成十个数字键和一个退格键也不错?
|
|
||||||
(√)13. 建议新增大批一元和二元运算的Math和字符串等值块,一元如“typeof、formatBigNumber、en/decodeBase64(方便解谜元素防止玩家看答案)、getEquipTypeById、rand、rand2(对标rm)、length、strLen、calValue(用于循环遍历)、toLower/UpperCase、trim、isFinite/NaN/(Safe)Integer(建议配置表格里那一堆~~都改成这个规范的)”等,并把“非(!)”也放进下拉框。
|
|
||||||
(x)13.1 二元如“clone/subArray、matchWildcard、char(Code)At、(last)indexOf、replace(All)、starts/endsWith、includes、toFixed/Exponential/Precision(这个最好再进一步封装转换回数字,js这些函数返回是字符串)”等。g4文件结尾的FixedId_List建议增强到可以由作者更方便地在编辑器中追加(目前pc端只有开文件追加还算容易,但仅限对于高级用户),另外此List的量都是可读写的,但有些只读量也同样重要,如MAX_VALUE、MIN_VALUE、EPSILON、MIN_SAFE_INTEGER、MAX_SAFE_INTEGER等,建议提供为另一个下拉框。
|
|
||||||
(x)14.(后端)建议尽早适配服务器发塔前babel,如果一时做不到,建议在flag、global等冒号缩写量中检查是否使用了js保留字,以免压缩出问题。
|
|
||||||
(x)14.1. (1008)并采用闭包压缩方式(注意要处理window.flags等)以一定程度上防止控制台作弊。
|
|
||||||
(√)15.(循环增强)建议增强break和continue事件,使其能跳出指定的层数(js和java都可以带标号的)。
|
|
||||||
(x)16.(横屏)建议增加悬停和鼠标划过等action,意义很大,比如强化地图显伤和选择项提示。
|
|
||||||
(N)17.(事件栈帧)建议公共事件尽早加入调用栈迹和返回值系统,目前嵌套调用参数覆盖问题和递归调用返回值覆盖问题不是闹着玩的。
|
|
||||||
(x)18.(参照阻击)建议给推箱子增加推的动画,以优化观感且避免推到重生怪等隐藏但不删除的位置消失。
|
|
||||||
(N)19.(仿rmxp魔塔)夹击点(尤其是只有夹击的点,因为伤害可以由玩家口算)建议把显伤改为(或追加)rmxp魔塔的电光效果(此效果的变动频率比全局帧动画更为频繁,《盖伦排位记》也使用了此效果)。
|
|
||||||
(x)19.1. 同理,大范围领域/激光的大量相同数字也不好看(272改版中已经一定程度上优化),改为美术效果更好。
|
|
||||||
(x)20.(毒衰咒处理)V2.6.x的公共事件法的缺点在于打断寻路,而V2.7改成脚本编辑后也许矫枉过正。事实上毒和咒起的是个开关的作用,实际效果要到走路和战后才有效,真正麻烦的只有衰。
|
|
||||||
(√)21.(QTE功能增强)希望加强QTE功能,在玩家操作时将剩余时间计入flag和录像,以便作者根据玩家的操作区间做不同处理(如音游),而且知道剩余时间还有一个最基本的用法是再等待这么久,以使得总的等待时间不变来和其他演出效果同步。
|
|
||||||
(√)22. 希望type:"wait"事件的场合块增加一个break勾选框
|
|
||||||
(√)23. moveBlock和jumpBlock的keep参数建议默认为true(另外ad似乎实现了这两个函数的bgfg版本,只是有些许bug)
|
|
||||||
|
|
||||||
留到2.7.3才能做的issues:
|
|
||||||
0. sprite化!单图层!任意尺寸、帧数且能运行时动态修改色相和透明度的图块!动画内嵌全屏闪烁、多音效、图块闪烁,色调的其他叠加方式(普通、加法、乘法、屏幕)以适配rm导出的黑底动画,另外希望推出rm其他版本数据到mota-js的导出器。
|
|
||||||
1.(来自github)(编辑器和运行时的)缩略图任取一片正方形网格区绘制并配合wsad键滚动(浏览),而不是只能绘制全景并因为长宽不相等而留下黑边。此需求对长卷式横/纵版大地图(如13*128、128*13)很有意义。
|
|
||||||
2.(来自github)编辑器的地图区能任意放大,而不是写死的416*416或480*480,否则以120*120地图在15*15样板为例,每格只占4*4px,难以绘制和查看。
|
|
||||||
3.(来自github)对话框的淡入淡出:主要用于不可被ctrl跳过的“自动剧情文本、确认框、选择项、UI绘制”和系统UI(如esc菜单、手册、道具栏、装备栏、楼传页面、SL页面)即可。
|
|
||||||
(√)4.(来自github)高清UI:运行时横屏放大到2x后,UI尤其是文字的逻辑分辨率也应当相应地扩大为834*834,以免模糊。相应的windowSkin图片规格也可以一起扩大。
|
|
||||||
5.(长方形样板)建议样板尽早将core.__SIZE__等常量分为横竖两个量,并推出没有目前这种独立状态栏(不管dom还是自绘)的版本(不一定牺牲竖屏,但同时支持纵横两个方向的大地图可能需要额外的适配),以实现@幻灵 等人提出的更好的演出效果,如在地图上任意位置使用事件流完全自绘状态栏的同时还能享受天气色调动画wait事件。
|
|
||||||
6.(楼层属性、图块属性编辑和查看的增强)cannotIn/Out/Move、canPass/Break、hideInXxx的设定和显示建议提供像rm一样集中的UI,而不是要一个一个图块/点去看。同理,notBomb建议进special,同时special中没有额外value的属性本质上是个开关,也应当像上述一样提供集中的UI。楼层属性的五个勾选框和ratio等也同理,只不过没法像图块一样绘制出来而只能写个floorId. 这样我们就可以方便地查看“哪些怪物有先攻、魔攻、坚固、夹击、无敌、免炸,哪些楼层是地下层、不可浏览等”,并进行批量的修改。(怪物已经有了一定程度上的替代方案,即转换为csv)
|
|
||||||
7.(小工具)建议再次增强便捷ps工具,扩大窗口大小(目前只能显示5列,对tileset、多帧autotile很不友好)、实现任意单位宽高、框选一片网格批量复制粘贴(单个网格的复制粘贴建议直接简化成拖动)、任意纯色底转透明(具体色号可让作者输入),并增加“删除一列”操作(很多作者误点“增加一列”,但事实上增加列的功能一般只对新建的图片有意义),同时把复制粘贴的快捷键明确提示为C和V.
|
|
||||||
8.(接上,这条不一定是个需求,先讨论一下)rm的“观赏层面斜俯视视角”决定了在形如楼顶的位置时角色双脚紧贴图块下缘会不够好看,因此它们约定了“除以叹号开头的行走图文件名(如门)外,其余角色实际绘制时会偏上几像素”。反之,柜台属性的图块则会将其所在tileset图片中向下延伸几像素(也就是另一个图块)一起画出。但实际表现中,这个偏上的行为在形如沙发靠背(前景层)的位置处会带来角色头发被遮挡的后果,且也未必适合纯俯视视角的地牢风魔塔(野外风的RMMV魔塔《盖伦排位记》使用了传统素材如宝石、骷髅、史莱姆、卫兵、蝙蝠等,但依然没有使用叹号行走图),请参考。
|
|
||||||
9.(脚本编辑优化)建议合并win和lose及对应的事件(gameOver不就是根据有没有reason判断输赢么)。建议合并“开门后、道具后、推箱子后”,根据id判定具体是哪一种。getStatusLabel和drawStatistics这两个函数只有一条返回语句且返回的分别是常对象和常数组,建议不作为函数而作为firstData的常量,drawAbout建议公共事件化以方便脚本零基础作者编辑(进录像就进录像吧)或移出脚本编辑. getToolboxItems加入脚本编辑意味着hideInToolBox失去意义,因为个别不显示的道具(主要是因为无法主动使用或已有专门的使用按钮,也不需要玩家随时确认数量)完全可以在此函数中枚举其id,所以建议移除该勾选框。
|
|
||||||
10.(编辑器X键菜单的优化)noPass、是否初始启用、是否显伤,这些应当是一个点而不是一个普通事件的性质(事实上该点可能根本不需要普通事件),建议移出普通事件而作为X键菜单的项,同时注意到cannotMove只控制了out而没有控制in,建议追加(如前所述,这种多选框建议不要只显示个深蓝色点而应该显示具体的方向)。
|
|
||||||
11.(事件编辑器增强)希望研发出rmmz的“批量测试一段事件”功能(其实就是insertAction,但希望操作起来更方便),并且提供全部图文类事件(尤其是显示文章、选择项、确认框)和移动跳跃事件(路线)的预览。
|
|
||||||
12.(事件分类)setGlobalAttribute和setGlobalValue事件建议合并,不然事件菜单一页显示不完所有绿色事件块,useItem和loadEquip同理。“等待三姐妹”建议移出特效声音类,不然显示不完。“绘制Xx”和“绘制Xx边框”建议合并,加一个勾选框“是否空心”即可。“接受用户输入文本”建议除弹窗外也提供另一种界面,即rm的字母文字语言虚拟键盘界面,虽然只能用于英文、日文、希腊、俄语等语言。
|
|
||||||
13.(研究性内容)并行脚本在直到V2.6.x在内的很长一段时间内被称作“并行事件”,但它一直没能像Rpg Maker一样是个真正的“事件”,主要难点除了打断寻路以外在哪里?如果有办法把打断寻路的问题解决掉,样板很多东西值得事件化,包括但不限于getDamageInfo、drawStatusBar等。此需求和魔塔的时间无关性并不矛盾,rm魔塔和V2.6.3及其之前也有很多用并行的。
|
|
||||||
14.(研究性内容,但很严肃)thinerDAS在论坛晦涩地提出了一系列录像攻击问题,其核心就在于他认为“刷榜乃至拆h5塔的核心是‘拥有绿色录像’”。我这里暂且不评论这种思想是否正确,但这系列问题的根本原因就在于录像录制的内容依然不够纯粹,依然不是纯粹的操作(路线)。比如说使用楼传被录制为“fly:MT0”,但如果录制的是“G,up,up,space”这样的按键序列,还会有这种问题吗!因此我建议大幅重构录像系统,让其尽可能接近“由另一个完全不会拆塔的人照着视频操作”的程度。这样做也有助于最大程度上避免“一个塔更新以后路线其实没变但录像播放不过去(很多情况下是因为布局微调或者drawChoices顺序错位,其中后者记录选项名就可能比记录索引更安全)”的问题。
|
|
||||||
多说一点,我想录像验证系统的本意是营造一个“偏否”的蒙特卡罗算法,即绿榜一定可不作弊玩出,红榜小概率可不作弊玩出。但当下的实际情况是绿榜不一定可玩出(有的是因为rand尤其是rand2导致可玩出的概率太低,有的是因为global、QTE或其他原因导致原则上就不可玩出),红榜可不作弊玩出的概率又因塔而异而且上界可能很大,这个问题需要好好处理。
|
|
||||||
关于后端,这里附加两条issue,一是云造塔开放公测并且双向云同步(不能同步的话实用性很差),二是玩家在自己的个人中心的提交记录的“下载录像”按钮旁边加一个“公开此录像”按钮,公开后其他玩家查看该玩家的提交记录时也可以下载此录像,也就是一个小小的分享功能。
|
|
||||||
@ -105,7 +105,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"firstData": {
|
"firstData": {
|
||||||
"title": "魔塔样板",
|
"title": "魔塔样板",
|
||||||
"name": "template",
|
"name": "template",
|
||||||
"version": "Ver 2.7.2",
|
"version": "Ver 2.7.3",
|
||||||
"floorId": "sample0",
|
"floorId": "sample0",
|
||||||
"hero": {
|
"hero": {
|
||||||
"image": "hero.png",
|
"image": "hero.png",
|
||||||
|
|||||||
@ -1267,5 +1267,48 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
return true;
|
return true;
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
|
},
|
||||||
|
"heroFourFrames": function () {
|
||||||
|
// 样板的勇士/跟随者移动时只使用2、4两帧,观感较差。本插件可以将四帧全用上。
|
||||||
|
|
||||||
|
// 是否启用本插件
|
||||||
|
var __enable = true;
|
||||||
|
if (!__enable) return;
|
||||||
|
|
||||||
|
["up", "down", "left", "right"].forEach(function (one) {
|
||||||
|
// 指定中间帧动画
|
||||||
|
core.material.icons.hero[one].midFoot = 2;
|
||||||
|
});
|
||||||
|
|
||||||
|
var heroMoving = function (timestamp) {
|
||||||
|
if (core.status.heroMoving <= 0) return;
|
||||||
|
if (timestamp - core.animateFrame.moveTime > core.values.moveSpeed) {
|
||||||
|
core.animateFrame.leftLeg++;
|
||||||
|
core.animateFrame.moveTime = timestamp;
|
||||||
|
}
|
||||||
|
core.drawHero(['stop', 'leftFoot', 'midFoot', 'rightFoot'][core.animateFrame.leftLeg % 4], 4 * core.status.heroMoving);
|
||||||
|
}
|
||||||
|
core.registerAnimationFrame('heroMoving', true, heroMoving);
|
||||||
|
|
||||||
|
core.events._eventMoveHero_moving = function (step, moveSteps) {
|
||||||
|
var direction = moveSteps[0],
|
||||||
|
x = core.getHeroLoc('x'),
|
||||||
|
y = core.getHeroLoc('y'); // ------ 前进/后退
|
||||||
|
var o = direction == 'backward' ? -1 : 1;
|
||||||
|
if (direction == 'forward' || direction == 'backward') direction = core.getHeroLoc('direction');
|
||||||
|
core.setHeroLoc('direction', direction); // if (step <= 4) core.drawHero('leftFoot', 4 * o * step); else if (step <= 8) core.drawHero('rightFoot', 4 * o * step);
|
||||||
|
if (step <= 4) core.drawHero('stop', 4 * o * step);
|
||||||
|
else if (step <= 8) core.drawHero('leftFoot', 4 * o * step);
|
||||||
|
else if (step <= 12) core.drawHero('midFoot', 4 * o * (step - 8));
|
||||||
|
else if (step <= 16) core.drawHero('rightFoot', 4 * o * (step - 8)); // if (step == 8) {
|
||||||
|
if (step == 8 || step == 16) {
|
||||||
|
core.setHeroLoc('x', x + o * core.utils.scan[direction].x, true);
|
||||||
|
core.setHeroLoc('y', y + o * core.utils.scan[direction].y, true);
|
||||||
|
core.updateFollowers();
|
||||||
|
moveSteps.shift(); // return true;
|
||||||
|
return step == 16;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user