欢迎光临散文网 会员登陆 & 注册

mc秒杀模组测试规则v1(Java版)

2023-07-19 10:48 作者:bili_wwagan  | 我要投稿

注意:本规则为自愿遵守,并非是一种对所有人的强制要求

可以在一次测试中自行选择遵守或不遵守本规则,但要求在同一次测试中,测试双方必须同时遵守本规则,或者同时不遵守本规则

---------------------------------------------------------------------------------------------------------------------------

在开始讨论规则之前,先对几个概念作出定义:

针对:是在所有规则中被禁止的行为。它意味着对某一个具体的测试方唯一的特征性部分进行特别的处理(若是测试方"针对"mc,或"针对"测试方自己,则除外),或者说,一方的源代码中涉及了另一方唯一的特征性部分,如"chaoswither.happymode = false;" "if (item.getClass().getName().startsWith("net.mcreator.supersword.")) {...}","if (mc.entityRenderer instanceof MxEntityRenderer) {...}"等都直接涉及其他具体的mod,是明显的针对,不应出现。

纯渲染:仅有单纯的直接渲染,而无实际事物支持导致渲染出现可能的破绽。一般用于指渲染的、不能点重生的死亡gui,/say @e无法探测的渲染的实体,死亡时血条不抖动的渲染的hud(hud指GuiIngame/IngameGui渲染出的事物,下同)等。

注意:渲染的不一定都是纯渲染的,只需要与其对应的真实事物的表现完全一致而毫无破绽,就可以被认为是"真实"的,而非纯渲染的。特别地,在游戏画面彻底静止或崩坏(包括暂时的和永久的)且没有未响应的情况下,一律归入纯渲染的范畴(包括防御)。

死亡gui:广义地,是形如原版死亡gui一样的gui。允许这些gui在背景颜色、字体颜色、显示的文本上与原版不同。可以添加额外特效,但不能挡完死亡gui的某一特征。更确切地,死亡gui是:满足"有填满mc窗口的渐变色或纯色的矩形作为背景"、"在正确位置出现"你死了"等被放大为正确大小的标题"、"在正确位置出现正常大小的死亡信息"、"在正确位置出现带有'重生'等正常大小文本的正常大小的按钮"、"在正确位置出现带有'标题画面'等正常大小文本的正常大小的按钮"、(此处"正确""正常"等词以mc原版正常死亡时的死亡gui为准)这些所有条件的、在mc窗口中出现的一种现象。若当前规则无特别规定,不强制要求死亡gui满足其他的条件。

mc窗口需要涉及此概念的测试必须在Windows 10系统上进行,并且测试中不得使用切换全屏(f11)。指启动mc后创建的最初始窗口。不得出现任何窗口闪烁现象,否则不被认为是mc窗口。

实体:广义地,指原版继承自Entity类的对象,以及一切形似某一生物的事物。

生物:为行文方便,此处泛指非玩家实体和不是由人操控的玩家实体。

/say @e不显示(或仍然显示)该生物存在:/say @e执行后,在玩家聊天栏中输出的世界中的所有实体里,或者在日志中输出的世界中的所有实体里,有(或无)该生物存在的迹象。要求/say @e必须输出成功。不允许测试方在/say @e的结果已定后,拦截/say @e的输出。不允许测试方用自己的/say @e覆盖原版的/say @e。

---------------------------------------------------------------------------------------------------------------------------

注意事项:

1. 测试双方(对,只能有两方)在同一次测试中,必须同意同一套对应的规则,否则测试结果没有意义,不可以根据测试现象得出任何结论。

2. 实践是检验真理的唯一标准,没有测试之前不可擅自下结论。

3. 最好不要对理论性原理只说不做,若没有测试结果支持,则理论是待定的而非成立的。

4. 若无特别声明,对于本文涉及的"血量"之类的概念,都以"在正确位置显示的心式血条"之类的mc原生的显示机制为准。

5. 规则间并不具有可逆关联性。比如,在同一次测试中,不满足其玩家死亡标准并不能说防住了,必须满足其玩家防住标准才能得出防住了的测试结果。如果既不满足其玩家死亡标准,也不满足其玩家防住标准,则测试结果没有意义,不可以根据测试现象得出任何结论。生物死亡标准和生物防住标准同理。碰到这种情况,可以换一种测试类型,或进行改进以满足当前规则的所有条件。

6. 同一规则中具有同时满足性。对于同一条规则(如"玩家死亡标准"),若无特别说明,则必须满足其中规定的所有条件,才算通过规则。

7. 不要歪曲本规则含义,不要断章取义。建议理解好关键词,不能确定规则本意的时候,可以问我规则的本意。

8. 不得出现剪辑、p图、修改视频等伪造测试的行为,否则测试结果没有意义,不可以根据测试现象得出任何结论。

9. 在规则没有特别声明时,若防御使得攻击的全部成分在防御的那方都没有执行,则测试结果没有意义,不可以根据测试现象得出任何结论。若在攻击前防御的部分(或全部)没有执行,则测试结果没有意义,不可以根据测试现象得出任何结论。本条不强制遵守全部,若不遵守的部分则需在自己的测试规则中声明)

10. 所有测试必须在未经修改的64位Windows 10(或更高版本)系统上的未经修改的、没有设置会影响测试的参数的HMCL/PCL2启动器上进行,Java环境要求:1.7.10~1.16.5使用未经修改的jdk8/jre8,1.18.2及以上使用未经修改的jdk17/jre17。一般地,在所有测试中,不得在启动器中利用指定启动参数去夺取最高优先级。不得手动修改LaunchWrapper/ModLauncher中的任何文件,不得手动修改minecraft jar中的MANIFEST.MF文件。(本条不强制遵守全部,若不遵守的部分则需在自己的测试规则中声明)

11. 在测试中,只允许测试者启动防御、启动攻击、生成生物,不允许进行其他任何操作,不得使用除测试双方外的其他mod或程序(mc自身除外),且测试者必须保证其他mod或程序不干涉测试。

12. 对于外部程序测试方,不得在mc启动前启动。

13. 凡是作用超出mc窗口的(要求测试时窗口不得一直处于全屏状态),测试结果一律没有意义,不可以根据测试现象得出任何结论。

14. 对于外部程序测试方,或者对于带有依赖某种特定操作系统的部分的测试方,要求测试必须在其对应的操作系统上进行。

---------------------------------------------------------------------------------------------------------------------------

接下来就是一些常见的测试类型与对应的规则。

一、常规测试:相对常用的测试类型。

玩家死亡标准:1. 玩家血量显示为0(即每一颗心都为纯黑色,下同),且血条随时间产生如mc原版一样的死亡式抖动;

2. 显示死亡gui(允许因为防御的作用而只被显示部分的)(不允许闪烁),且死亡gui不能是纯渲染的;

3. 键盘输入和鼠标滚轮在mc中失效,鼠标点击只允许响应在死亡gui的按钮上(如果按钮能被点击),鼠标移动不能再让玩家视角转动;

4. 光标弹出mc窗口,变得可见(允许光标处于闪烁状态);

5. 在第三人称中,玩家自身的实体消失(不得用渲染贴图文件达成)。

玩家防住标准:1. 玩家血量显示为满血(即每一颗心都为红色,下同),血条不产生死亡式抖动;

2. 没有死亡gui显示出来(只显示出部分死亡gui也算显示出来)(不允许闪烁);

3. 光标仍然在mc窗口中,不可见(允许光标处于闪烁状态);

4. 在第三人称中,玩家自身的实体仍然可见(不得用渲染贴图文件达成)。

生物死亡标准:玩家周围,该生物消失,且/say @e不显示该生物存在。要求世界渲染不能静止。

生物防住标准:玩家仍能看见该生物,或/say @e仍然显示该生物存在。要求世界渲染不能静止。

二、严判测试:标准较严格的测试,测试结果更接近真实。

玩家死亡标准:1. 玩家血量显示为0,且血条随时间产生如mc原版一样的抖动。若存在mod自己的hud,要求在血量渲染时,输出的客户端玩家实体.getHealth()小于等于0.0f,服务端世界刻后,输出的被攻击的服务端玩家实体.getHealth()小于等于0.0f;

2. 显示死亡gui(允许因为防御的作用而只被显示部分的)(不允许闪烁),且死亡gui不能是纯渲染的。若死亡gui存在渲染行为,要求在死亡gui绘制时,输出的mc.currentScreen(mc.screen)为死亡gui(mc为Minecraft类的对象,下同),

3. 要求死亡gui类必须继承mc原版死亡界面GuiGameOver(1.13以上版本为DeathScreen),重生按钮可被点击且能正常重生;

4. 键盘输入和鼠标滚轮在mc中失效,鼠标点击只允许响应在死亡gui的按钮上,鼠标移动不能再让玩家视角转动;

5. 光标弹出mc窗口,变得可见(不允许光标处于闪烁状态)且能自由移动;

6. 在自己的第三人称以及其他玩家视角中,被攻击的玩家的实体消失(不得用渲染贴图文件达成)。

7.玩家视角发生像mc原版玩家正常死亡时一样的倾斜(允许视角颤抖)。

玩家防住标准:1. 玩家血量显示为满血,血条不产生死亡式抖动。若存在mod自己的hud,要求在血量渲染时,输出的客户端玩家实体.getHealth()大于等于20.0f,服务端世界刻后,输出的被攻击的服务端玩家实体.getHealth()大于等于20.0f;

2. 没有死亡gui显示出来(只显示出部分死亡gui也算显示出来)(不允许闪烁),若显示有死亡gui但其存在渲染行为,则如果在死亡gui绘制时,输出的mc.currentScreen(mc.screen)不为死亡gui,就记为没有死亡gui显示出来;

3. 光标仍然在mc窗口中,不可见(不允许光标处于闪烁状态);

4. 键盘输入、鼠标滚轮、鼠标点击、鼠标移动仍然在mc中正常起效;

5. 在自己的第三人称以及其他玩家视角中,被攻击的玩家的实体仍然可见(不得用渲染贴图文件达成),且/say @e仍然显示被攻击玩家存在。

生物死亡标准:1. 玩家周围,该生物彻底消失,不再重生,且/say @e不显示该生物存在(不允许使用tp达成),测试方不得对/say @e的执行过程有任何干涉;

2. 对于可以测试碰撞箱的生物,要求玩家不再被该生物原应有的碰撞箱所排斥,玩家可以在生物原应有的碰撞箱的位置以正常方式放置方块;

3. 要求世界渲染不能静止;

4. 由于生物出现而带来的一切异象必须全部消失。

生物防住标准:1. 玩家仍能看见该生物,且/say @e仍然可能显示该生物存在,测试方不得对/say @e的执行过程有任何干涉; 

2. 对于可以测试碰撞箱的生物,要求玩家会被该生物应有的碰撞箱所排斥,玩家不能够在生物应有的碰撞箱的位置以正常方式放置方块;

3. 生物必须包含且在攻击后仍包含"继承自Entity类的对象"这一部分;

4. 要求世界渲染不能静止。

三、渲染测试:标准较为宽松,用于匹配纯渲染的要求。

玩家死亡标准:显示死亡gui(不允许因为防御的作用而只被显示部分的)(不允许闪烁)。

玩家防住标准:没有死亡gui显示出来(只显示出部分死亡gui算没有显示出来)(不允许闪烁)。

生物死亡标准:玩家无法看见该生物,碰撞箱不计。

生物防住标准:玩家可以看见该生物,碰撞箱不计。

4. 字节码测试:标准接近病毒打架的测试(?

所有标准与严判测试相同。但是允许不遵循注意事项9。

---------------------------------------------------------------------------------------------------------------------------

以上给出了几个测试定义示例,当双方有其他测试目的时,可以据此协商自己的测试规则,规则的表述要力求严谨,且至少有玩家死亡标准和玩家防住标准(或者有生物死亡标准和生物防住标准),并且不能违反上述的注意事项(除非注意事项不强制遵守)。

本规则以后还会完善,欢迎大家在评论区集思广益

最后祝测试愉快!


mc秒杀模组测试规则v1(Java版)的评论 (共 条)

分享到微博请遵守国家法律