本帖最后由 哦快快快 于 2020-8-5 20:38 编辑
来自搬运悬赏令
!使用前可以先留意一下楼下大佬们的提醒!
以下除了那游戏的截图和这里的几句话,其他基本都是原作者的简介翻译过来。以下的“我”均指原作者。
关于Tiquality
Tiquality 是 LagGoggles 的继任者
目前 Tiquality 是服务器专用的Mod,当然也可以在局域网联机中使用。
这个Mod的核心功能是以限制某些玩家拥有的游戏刻(tick)来平均分配的每个玩家的游戏内时间
技术支持
如果你有问题,最好可以在GitHub上提交issue。如果你觉得你的问题还不至于要提交issue,那么也可以在
Discord频道里用随意一点的方式和我交流。不过请清楚,最好是在GitHub上交流,因为这样其他人可以找到相同的问题,也不用翻阅几百条聊天记录。
下载
可以在
这里找到最新发布的版本。
THIN版本和
FAT版本唯一的区别就是
FAT版本带有 Tiquality 需要的库
Mixin,而
THIN版本没有。其他的Mod可能已经带有Mixin(比如说
SpongeForge)。一般地,Tiquality可以和大多数版本的Mixin一起工作,如果你已经安装了SpongeForge或者其他带有其他版本Mixin的Mod,那么请使用
THIN版本。
整合包
好了,你已经得到我的授权,可以将这个Mod加入整合包里。(大拇指)如果你做好了配置工作,那会节省服主们的很多时间(/tq setblock)
配置
感兴趣? 在
这里查看默认配置和配置文档
这个Mod是什么?它用来做什么?
这是一个“更新限制器”,不对服务器造成沉重负担的玩家可以得到20TPS的游戏体验,而那些不注意行为举止、影响服务器的玩家会只能玩到10TPS的游戏(玩家的TPS会随着玩家对服务器的影响增大而逐渐减少)。
这个Mod旨在提倡玩家不要做出影响服务器的行为,并尽量不破坏那些关心服务器的玩家的游戏体验。
总的来说,正常游玩的玩家不会也不需要感受到这个Mod的存在。在极少数情况下,可以用 /tq claim 来解决一些问题。
这不是用来惩罚玩家的Mod,而是让那些不干净的玩家尝到他们行为造成的后果。以此来维护其他玩家的游戏体验。
这个Mod不是
这不是像
ClearLagg(扫地大妈插件)的那种,Tiquality是要让玩家在不管其他人干什么的情况下都能获得平等的游戏体验。
这个Mod所做的事情
没有主人的方块将不会被更新,包括新产生的区域。要让叶子腐烂或让草保持生长的话,可以为这些方块配置白名单,在白名单里的方块即是没有主人也会被更新。
当一个玩家放置一个方块,Tiquality会为这个方块指派一个跟踪器——属于该玩家的跟踪器。这个跟踪器会执行该方块以后的更新并消耗该玩家的时间限度。
如果有更多玩家登入,时间会分配更多。如果一个玩家没有消耗完他的时间限度,那么其他玩家会得到剩下的那些。
不在线的玩家的时间限度比在线玩家少。(这是可以设置的)
当实体生成或在区块间移动时,他们会被指派到这个区块的“主要跟踪器”,这意味着该Mod也支持对实体的限制。“主要跟踪器”属于当前区块中拥有最多方块的玩家。当你在一个区块内建造时,你会自动成为这个区块的“控制者”。
和其他的Mod的相互作用
--SpongeForge
权限,命令,自定义游戏刻更新逻辑
--GriefPrevention
得到领地的同时会自动指派并锁定这个区域的跟踪器为属于这个区域主人的跟踪器,直到该玩家失去这块区域。
(对于和别人一起生活的有用)
--FTB Utilities
同上
--LagGoggles(尚未完工……)
提供一个给不那么懂技术的人使用的界面
上面这些Mod都不是必需的
这个Mod是如何运作的
所有对
Block.randomTickBlock() ,
Block.updateTickBlock() ,
Entity.onUpdate() 和
ITickable.tickTileEntity() 的调用都会被重定向到 Tiquality,然后通过特制的高性能操作找到这个方块或实体的主人。
这些方块或实体会被指派到一个跟踪器,跟踪器会记录这些方块或实体更新所花费的时间,并消耗“时间限度”直到 0。在此之后的更新会进入等待队列,而不被立刻执行。
到下一个游戏刻时,所有跟踪器会再得到“时间限度”,然后方块就接着更新,会先执行等待队列中的更新,如果未能完成等待队列中的所有更新,那么之后还未进入等待队列新的更新也会进入等待队列。
如果有玩家没有用完他的时间限度,那么剩下的会给那些已经耗尽时间的玩家。
可以使用
/tq share 来和其他人共享时间限度。
命令以及权限组
/tiquality
主命令
tiquality.use
/tq
上面那个命令的替代品
tiquality.use
/tq info [point]
输出当前所在方块和脚下那个方块的信息
输出这些方块的主人
输出这些方块是否在白名单内
在加上 point 参数使用后保持潜行可以查看当前指向方块的跟踪器所属。
tiquality.use
/tq share <玩家名字>
可以与你的基友(basemates)一起共享时间限度。这样你就即可以在他们不在线时继续游戏,在他们上线时还可以有双倍的时间限度。
tiquality.use
/tq track
将方块(自然生成的,已经存在的东西)指派给某玩家的跟踪器
tiquality.use
/tq claim [半径]
将一块区域指派给某玩家,最大半径可以由配置文件中的 MAX_CLAIM_RADIUS 项指定。如果没有输入半径参数,那么使用最大半径。
tiquality.claim
/tq acceptovertide <player>
允许其他玩家将你的区域指派给其他。该用这个命令时会有信息提示
tiquality.use
/tq denyiverride <player>
与上一条相反
tiquality.use
/tq unclaim
取消对一块区域的指派,给管理员使用的命令。
tiquality.admin
/tq profile <seconds>
对属于你的方块进行一次简短的分析(还有一个更好的方案在开发着)
tiquality.use
/tq profile <seconds> <uuid or playername>
对属于指定玩家的方块进行一次简短的分析
tiquality.admin
/tq setblock <feet|below> <DEFAULT|NATURAL|PRIORITY|ALWAYS_TICK|TICK_DENIED>
设置方块的状态
DEFAULT 在被指派有跟踪器且跟踪器还有时间限度是更新,可能会被限制
PRIORITY 和DEFAULT差不多,只是跟踪器会优先更新这个,可能会被限制
TICK_DENIED 不会被更新
NATURE 无论有没有被指派跟踪器都会被更新,可能被限制
ALWAYS_TICK 一直会更新,不被限制,当被指派有更踪器时,一样会消耗时间限度
tiquality.admin
/tq setentity <feet|below> <DEFAULT|NATURAL|PRIORITY|ALWAYS_TICK|TICK_DENIED>
设置方块状态
- DEFAULT:
- 在没有被指派跟踪器时会更新。若被指派有跟踪器,那么在消耗完时间限度后不再更新
- PRIORITY:
- 与DEFAULT相同,但优先更新
- TICK_DENIED:
- 不会更新
- NATURAL:
- 其实和DEFAULT是一样的
- ALWAYS_TICK:
- 一直会更新,不被限制,当被指派有更踪器时,一样会消耗时间限度
复制代码
tiquality.admin
/tq reload
重新加载配置文件
tiquality.admin
|
常见问题
你怎么还没转到sponge?!
我想要让尽可能多的人可以用上这个mod,而不必须要装sponge。
总之,现在 sponge 服务器还是可以用上这个mod的。
/tq info 是干什么的?
用来查看方块是否会被更新,或者是查看其名称(会在配置中用到)
你站在一个方块上面并使用这个命令,应该会输出信息如下所示
No entities are found in your chunk
Block below: minecraft:piston TickType: DEFAULT Status: Tracked by: Terminator_NL
我们分析一下这个
“minecraft:piston” 方块名称
"TickType: DEFAULT" 方块之更新状态
"Tracked by: XXX" 显示这个方块是否被指派有跟踪器,有的话,显示其所属
再来一个例子
Entities in chunk:
minecraft:item PRIORITY Not tracked
Block below: minecraft:grass TickType: NATURAL Status: Not tracked
"minecraft:item" 这个区块里某实体之名称——一个掉落的物品
"minecraft:grass" 方块名称
"TickType: NATURAL" 更新状态 (参见: /tq setblock)
"Not tracked" 这个方块未被指派有跟踪器
一些推荐的用法:
/tq info point 只需要保持潜行并将准信移向它,就可以轻易地获取方块的信息。
/tq info 用以查看配置文件是否生效。
我的方块不更新了!怎么办?
如果满足以下条件之一,方块应该是会更新的
# 方块被指派有跟踪器且跟踪器还有未用完的时间限度
# 方块在配置 (NATURAL_BLOCKS) 中且没有被指派有跟踪器
# 方块在配置 (NATURAL_BLOCKS)中且跟踪器有足够的时间限度
# 方块在配置(ALWAYS_TICKED_BLOCKS) 中,即使跟踪器用尽时间限度,这个方块也会更新,值得注意的是它一样会消耗时间限度
最快的解决方案:站在方块上面然后 /tq setblock below NATURAL ,这会把方块加进配置(NATURAL_BLOCKS)中。
提醒一下,最好先使用/tq info 确定你没有站错方块。
我的液体不会流了!?
和方块基本上是一样的。
最快的解决方案是站在液体里面然后/tq setblock feet NATURAL,这会把这个液体加进配置项(NATURAL_BLOCKS)中。
提醒一下,可以先用/tq info确定你所在的方块。
我安装了tiquality,可我的TPS还是很垃圾
首先搞清楚,有很多因素导致TPS不能到20。区块的加载(跑图、登入),还有世界更新之后的一些处理都是很关键的因素,Tiquality不会介入世界事件的处理,所以这些都是超出Tiquality控制之外的。您可以尝试提高配置项 TIME_BETWEEN_TICKS_IN_NS 的数值。注意:增加该值会使得一个游戏刻更快地停止,但实际上会使得世界更新地更慢。
数据储存在哪里?
储存在存档目录下的 TiqualityStorage 目录,这是使用 Minecraft 原本的代码创建的目录。 Tiquality 还会使用 bitshifting 来查找方块的正确标识符,而不用进行迭代,这意味着更好的性能。同时这种方式也是必须的,因为 Tiquality 需要截取每一个更新的东西并进行处理。
我有个想法!怎么才能帮上点什么?
在GitHub上发issue,然后我会回复你(说不定我已经考虑过你的想法了),再然后,fork 这个项目之后发 pull request ,就算你不会编程序也一样可以发 pull request ,只要这个想法是OK的,我就会实现这个你这个想法。 |