TShock插件:WorldModify V1.3版更新

WorldModify(下面简称“wm”)是我写的一个tshock插件,之前写过一篇文章,1.3版更新了不少东西,所以单独写一篇。
本文主要介绍下更新的部分,上篇文章是这篇。

/wm help
由于指令数量增加,于是做了分页处理。
有问题敲help总没错,从下面2张截图,你就能发现这次增加了哪些指令。


/wm info(世界信息)
这个指令现在能显示更详细的腐化信息、时间、怪物图鉴进度、出生点、地牢点、表层深度、洞穴深度、入侵 及 事件。
入侵包括 哥布林入侵、海盗入侵、南瓜月、雪人军团、霜月、火星暴乱、撒旦军团,有状态才显示。
事件包括 派对、灯笼夜、流星雨、血月、日食、雨、雷雨、大风天、沙尘暴、史莱姆雨,有状态才显示。
还能显示 陨石、圣诞节、万圣节、附魔日晷 信息,也是有状态才显示。
当开启ssc且是旅行模式时还能显示物品研究进度。
腐化情况,腐化百分比和树妖对话相同,肉后会显示祭坛摧毁数量,如果是醉酒世界,将会显示今天是腐化还是猩红。

/wi 指令是 /wm info 的青春版,适合开放给普通玩家查看世界信息。
输入 /group addperm default worldinfo 进行授权,wi是worldinfo的缩写,也可以使用 我写的FastDeploy插件来授权,输入 /fd add wi 就能完成授权了。

/wm mode(世界模式/难度)
这个指令在上个版本去掉了,因为tshock自带 /gamemode 可以设置。这次重新加回来。
由于指令比较多,当你直接输入指令,而不加参数的时候,指令会去查询对应的状态,并给予输入提示,其实很多指令都有类似的设计。

/wm ftw, /wm dst, /wm ntb(彩蛋特性开关)
这3个是彩蛋特性开关,dst是饥荒(dontstarvetogether)的意思,ntb是 not the bees。ntb和dst是1.4.3.2才加入的属性,所以1.4.0.5没有哦!
目前有5个彩蛋特性可以开关,5个都开就是5蛋图了~,不过这个不会改变地图图格~

/wm uuid
输入 /wm uuid new 可以随机改成别的uuid。

/wm sundial(附魔日晷)
输入 /wm sundial 可以查看当前日晷状态。
输入 /wm sundial <天数> 可修改修改附魔日晷冷却天数。
输入 /wm sundial <on/off> 可开关附魔日晷。

/wm spawn, /wm dungeon(出生点和地牢点)
输入 /wm spawn 查看出生点。
进入游戏后,输入 /setspawn 可以设置出生点,这个是tshock自带指令。
进入游戏后,输入 /spawn 传送至出生点,这个也是tshock自带指令。

出生点可以在小地图上看到。

输入 /wm dungeon 查看地牢点(老人生成点)。
进入游戏后,输入 /setdungeon 设置地牢点,这个是tshock自带指令。
进入游戏后,输入 /tpnpc "Old Man" 传送至地牢点,这个是tshock自带指令。

/wm surface, /wm cave(地表和洞穴深度)
输入 /wm surface 查看地表深度。
输入 /wm surface <深度> 可以修改地表深度。

输入 /wm cave 查看洞穴深度。
输入 /wm cave <深度> 可以修改洞穴深度。

/wm research(物品研究)
这个指令上个版本就有,不过这次不需要重启服务器,也不需要玩家退游戏。如果你打开复制菜单界面,将实时看到看到物品研究添加的过程,不过这个过程目前是单线程的,解锁需要几秒的时间,这期间无法执行其它指令。
原计划输入 /wm research reset 能够重置研究进度,由于一些原因暂时未实现。


/wm bestiary(怪物图鉴)
令我比较兴奋的一个功能,参考了TEdit,是的,几乎照搬了TEdit的部分源代码。
出处:https://github.com/TEdit/Terraria-Map-Editor/blob/d0cd544c2f08ca96b8723257b98d4ba120db81f8/src/TEdit/Terraria/World.FileV2.cs#L111
输入 /wm bestiary 可以100%解锁 怪物图鉴,解锁过程几乎在一瞬间完成,且不需要玩家退游戏。
输入 /wm bestiary reset 将情况 怪物图鉴,目前清空操作需要重启服务器才能生效。


/wm backup(备份地图)
输入 /wm backup 可以备份当前地图。

地图备份在 tshock\WorldModify\backups\ 目录下,文件名格式为 world.wld.2022-04-07_21.48.53.bak。

/boss info, /bi(boss进度)
上个版本的功能。
输入 /boss info 可以查看boss进度。
/bi 指令的功能和 /boss info 指令完全相同, bi是bossinfo的简写,适合开放给普通玩家查看boss进度。
为了不让游客看到boss进度,这次改成需要授权,输入 /group addperm default bossinfo 进行授权。

/boss sb(boss召唤指令备注)
旧版指令,这次稍加优化,支持分页显示。会额外展示简写,以及调晚上和脱战等小提示。

/boss <boss名>(标记boss击败状态)
上个版本的指令用法是 /boss toggle <boss名>,这次做了简化。
输入 /boss <boss名> 切换boss击败状态。boss名支持中文名,而且还支持 sb指令的简写,例如 史莱姆王=ks=king=king slime。

npc指令
这次还扩展了npc指令。

/npc info(城镇NPC信息)
旧版指令,以前的功能是显示 城镇NPC解救情况。这次做了扩展。会额外显示城镇NPC在场情况。
在指令后面加上npc名称,可以查询NPC数量和所在位置,并提示传送到npc位置的指令。

/npc <解救npc名 或 猫/狗/兔 >
上个版本的指令用法是 /npc toggle <boss名>,这次做了简化。
输入 /npc <解救npc名 或 猫/狗/兔> 切换城镇NPC解救状态。

/npc unique(城镇NPC去重)
输入 /npc unique 执行城镇NPC去重操作,注意只是城镇NPC,由于游戏将 老人、骷髅商人 和旅商 也视为城镇NPC,本指令也会对这3个NPC进行去重。

/npc relive(复活NPC)
输入 /npc relive 可以会根据怪物图鉴记录复活城镇NPC,注意不包括 老人、骷髅商人和旅商,NPC会在指令执行者身边复活,如果是命令行窗口执行则会复活在出生点。
由于是以怪物图鉴为依据,如果NPC来过,但是你没找他对话,怪物图鉴没记录,NPC消失了,复活指令就不会复活这个NPC。
/relive 指令 和 /npc relive 指令功能相同,适合开放给普通玩家使用,输入 /group addperm default relive 进行授权,由于复活指令没有设置cd,最近我个人不倾向将这个指令开放给普通玩家。

/npc tphere(将NPC传到你身边)
输入 /npc tphere <NPC名> 将指定NPC传到你身边。如果是在命令行上执行,则会传送至出生点。
输入 /npc tphere town 会将全部的城镇NPC传到你身边,注意不包含 老人、骷髅商人和旅商。
指令还可以简写成 /npc th,th是 tphere的简写。
由于泰拉里 城镇NPC、敌怪和boss都属于NPC,因此你可以将它们传到你身边,目前只做了城镇NPC的测试。


igen指令
这次在写 “大地动”插件时,发现可以重建世界和生成一些建筑,于是我照葫芦画瓢地加了一些功能。
这部分功能参考了 WorldRefill 插件,它的指令是 /gen,于是我的指令改成 /igen
参考:https://github.com/Illuminousity/WorldRefill/blob/master/WorldRefill/WorldRefill.cs#L997
/igen world(重建世界)
重建世界指令,创建世界前会自动备份地图。
输入 /igen world 05162021 腐化 小 2020,ftw 将创建一个种子为 051620201的地图,且加上2020(醉酒世界)属性 和 ftw属性。
指令的语法是:
/igen world <种子> [腐化] [大小] [彩蛋特性]
种子:输入任意种子名,0表示随机
腐化:腐化/猩红 或 1/2, 0表示随机
大小:小/中/大 或 1/2/3, 0表示忽略
彩蛋特性:支持开启一个或多个特性,要创建多个特性,种子名中间输入英文逗号,例如 2020,ftw,dst,ntb
5蛋图
之前我用 mod创建了一张5蛋图,包含5个彩蛋特性,同时也有5个彩蛋的图格,是真·5蛋图,不过开荒时发现宝箱里的战利品规则跟原版不一样,例如 肉前能在沙漠的宝箱里开出 血滴子(滴滴怪跛子),这个武器正常只有肉后击败血鳗鱼才能获得,使用TEdit查询发现,还不止一件。

/igen world 指令是调用泰拉自身的创建世界功能,原理是创建前先将世界的彩蛋属性打开。我打算使用这个指令来创建这样一个 真·5蛋图,不过不太理想。目前发现小地图能包含4种彩蛋地形,大地图可能会缺失,实际测试发现 ntb和dst冲突,2021和ftw有冲突,好吧~~
如果你对5蛋图感兴趣,可以试试这几个指令:
/igen world 5162020 0 0 2020,2021,ftw,ntb,dst
/igen world 0 0 0 2020,2021,ftw,ntb,dst
/igen world 0 0 0 superegg
由于泰拉限制,有5162020特性,地图种子一定是5162020。

/igen room(玻璃小房间)
输入 /igen room 会以玩家为中心生成3个玻璃小房间。
输入 /igen room 100 则会创建100个玻璃小房间,这个指令不要轻易尝试,执行前请确保区域内没有重要的东西,因为这个操作没法撤销~~血的教训~切记~或者操作前 执行下 /wm backup,出事了再回档。


/igen pond(玻璃鱼池框架)
输入 /igen pond 会以玩家为中心生成1个玻璃鱼池框架,目前只会创建一个框架,不会生成水。

/igen shieldmachine(盾构机)
输入 /igen sm 会清空前方100格宽10格高的区域,且会生成一条石平台。
sm 和 shieldmachine 的简写。

指令还支持定义宽高,例如 输入 /igen sm 10 10

实际上这个指令是专门为铺地狱跑道而设计的,小地图(宽4200格)的话在地狱的地图中心处,
输入 /igen gm 2000 10 就能实现如下效果:

/igen dig(钻井机)
输入 /igen dig 会清空脚下 3格宽100格高的区域,同时在脚下生成一条3格宽的石平台,以及一条100格高的丝绸绳索。

如果有装 WorldRefill插件,输入 /gen hellevator 可以创建一条直通地狱的 地狱直通车。

起初想用这个指令来挖地狱直通车的过程,测试发现这个指令不适合挖直通车,如果非要衔接上次的绳索,可以将人吊在绳索上,且让绳索遮住自己的脸,否则会歪掉~~~,效果如图:

这个指令同样支持设置宽高,例如 输入 /igen dig 20 10 就是下图这样:

也可以用这个指令来创建鱼池,例如 输入 /igen dig 11 30 就是下图这样:

/igen dirt(填土)
输入 /igen dirt 就是下图这样,一半被清空,另一半填上土方块,别担心,作用范围只是一个屏幕,一个宽122格高68格的区域。
实际上这个指令个人的测试指令,上面的创建操作把地图弄得支离破碎乱七八糟的,输入这个指令就可以正常操作了。

插件权限汇总
指令,权限名称,授权
/wm,worldmodify,建议只服主自己用
/moon,moonphase,建议只服主自己用
/moonstyle,moonstyle,建议只服主自己用
/boss,bossmanage,建议只服主自己用
/npc,npcmanage,建议只服主自己用
/igen,igen,建议只服主自己用
/relive,relive,/group addperm default relive
/bi,bossinfo,/group addperm default bossinfo
/wi,worldinfo,/group addperm default worldinfo
下载
插件下载地址:https://gitee.com/hufang360/TShockWorldModify/releases/v1.3
理论上也支持 1.4.0.5 下文件名带有 1.4.0.5 的那个文件就好。
文件名,适用版本
WorldModify-v1.3.dll,TShock4.5.17 - Terraria1.4.3.6
WorldModify-v1.3-1.4.0.5.dll,TShock4.4.0_Pre12_Terraria1.4.0.5(仅编译,未做测试)