TShock插件:WorldModify V1.3版更新

WorldModify(下面簡(jiǎn)稱“wm”)是我寫的一個(gè)tshock插件,之前寫過(guò)一篇文章,1.3版更新了不少東西,所以單獨(dú)寫一篇。
本文主要介紹下更新的部分,上篇文章是這篇。

/wm help
由于指令數(shù)量增加,于是做了分頁(yè)處理。
有問(wèn)題敲help總沒(méi)錯(cuò),從下面2張截圖,你就能發(fā)現(xiàn)這次增加了哪些指令。


/wm info(世界信息)
這個(gè)指令現(xiàn)在能顯示更詳細(xì)的腐化信息、時(shí)間、怪物圖鑒進(jìn)度、出生點(diǎn)、地牢點(diǎn)、表層深度、洞穴深度、入侵 及 事件。
入侵包括 哥布林入侵、海盜入侵、南瓜月、雪人軍團(tuán)、霜月、火星暴亂、撒旦軍團(tuán),有狀態(tài)才顯示。
事件包括 派對(duì)、燈籠夜、流星雨、血月、日食、雨、雷雨、大風(fēng)天、沙塵暴、史萊姆雨,有狀態(tài)才顯示。
還能顯示 隕石、圣誕節(jié)、萬(wàn)圣節(jié)、附魔日晷 信息,也是有狀態(tài)才顯示。
當(dāng)開啟ssc且是旅行模式時(shí)還能顯示物品研究進(jìn)度。
腐化情況,腐化百分比和樹妖對(duì)話相同,肉后會(huì)顯示祭壇摧毀數(shù)量,如果是醉酒世界,將會(huì)顯示今天是腐化還是猩紅。

/wi 指令是 /wm info 的青春版,適合開放給普通玩家查看世界信息。
輸入 /group addperm default worldinfo 進(jìn)行授權(quán),wi是worldinfo的縮寫,也可以使用 我寫的FastDeploy插件來(lái)授權(quán),輸入 /fd add wi 就能完成授權(quán)了。

/wm mode(世界模式/難度)
這個(gè)指令在上個(gè)版本去掉了,因?yàn)閠shock自帶 /gamemode 可以設(shè)置。這次重新加回來(lái)。
由于指令比較多,當(dāng)你直接輸入指令,而不加參數(shù)的時(shí)候,指令會(huì)去查詢對(duì)應(yīng)的狀態(tài),并給予輸入提示,其實(shí)很多指令都有類似的設(shè)計(jì)。

/wm ftw, /wm dst, /wm ntb(彩蛋特性開關(guān))
這3個(gè)是彩蛋特性開關(guān),dst是饑荒(dontstarvetogether)的意思,ntb是 not the bees。ntb和dst是1.4.3.2才加入的屬性,所以1.4.0.5沒(méi)有哦!
目前有5個(gè)彩蛋特性可以開關(guān),5個(gè)都開就是5蛋圖了~,不過(guò)這個(gè)不會(huì)改變地圖圖格~

/wm uuid
輸入 /wm uuid new 可以隨機(jī)改成別的uuid。

/wm sundial(附魔日晷)
輸入 /wm sundial 可以查看當(dāng)前日晷狀態(tài)。
輸入 /wm sundial <天數(shù)> 可修改修改附魔日晷冷卻天數(shù)。
輸入 /wm sundial <on/off> 可開關(guān)附魔日晷。

/wm spawn, /wm dungeon(出生點(diǎn)和地牢點(diǎn))
輸入 /wm spawn 查看出生點(diǎn)。
進(jìn)入游戲后,輸入 /setspawn 可以設(shè)置出生點(diǎn),這個(gè)是tshock自帶指令。
進(jìn)入游戲后,輸入 /spawn 傳送至出生點(diǎn),這個(gè)也是tshock自帶指令。

出生點(diǎn)可以在小地圖上看到。

輸入 /wm dungeon 查看地牢點(diǎn)(老人生成點(diǎn))。
進(jìn)入游戲后,輸入 /setdungeon 設(shè)置地牢點(diǎn),這個(gè)是tshock自帶指令。
進(jìn)入游戲后,輸入 /tpnpc "Old Man" 傳送至地牢點(diǎn),這個(gè)是tshock自帶指令。

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

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

/wm research(物品研究)
這個(gè)指令上個(gè)版本就有,不過(guò)這次不需要重啟服務(wù)器,也不需要玩家退游戲。如果你打開復(fù)制菜單界面,將實(shí)時(shí)看到看到物品研究添加的過(guò)程,不過(guò)這個(gè)過(guò)程目前是單線程的,解鎖需要幾秒的時(shí)間,這期間無(wú)法執(zhí)行其它指令。
原計(jì)劃輸入 /wm research reset 能夠重置研究進(jìn)度,由于一些原因暫時(shí)未實(shí)現(xiàn)。


/wm bestiary(怪物圖鑒)
令我比較興奮的一個(gè)功能,參考了TEdit,是的,幾乎照搬了TEdit的部分源代碼。
出處:https://github.com/TEdit/Terraria-Map-Editor/blob/d0cd544c2f08ca96b8723257b98d4ba120db81f8/src/TEdit/Terraria/World.FileV2.cs#L111
輸入 /wm bestiary 可以100%解鎖 怪物圖鑒,解鎖過(guò)程幾乎在一瞬間完成,且不需要玩家退游戲。
輸入 /wm bestiary reset 將情況 怪物圖鑒,目前清空操作需要重啟服務(wù)器才能生效。


/wm backup(備份地圖)
輸入 /wm backup 可以備份當(dāng)前地圖。

地圖備份在 tshock\WorldModify\backups\ 目錄下,文件名格式為 world.wld.2022-04-07_21.48.53.bak。

/boss info, /bi(boss進(jìn)度)
上個(gè)版本的功能。
輸入 /boss info 可以查看boss進(jìn)度。
/bi 指令的功能和 /boss info 指令完全相同, bi是bossinfo的簡(jiǎn)寫,適合開放給普通玩家查看boss進(jìn)度。
為了不讓游客看到boss進(jìn)度,這次改成需要授權(quán),輸入 /group addperm default bossinfo 進(jìn)行授權(quán)。

/boss sb(boss召喚指令備注)
舊版指令,這次稍加優(yōu)化,支持分頁(yè)顯示。會(huì)額外展示簡(jiǎn)寫,以及調(diào)晚上和脫戰(zhàn)等小提示。

/boss <boss名>(標(biāo)記boss擊敗狀態(tài))
上個(gè)版本的指令用法是 /boss toggle <boss名>,這次做了簡(jiǎn)化。
輸入 /boss <boss名> 切換boss擊敗狀態(tài)。boss名支持中文名,而且還支持 sb指令的簡(jiǎn)寫,例如 史萊姆王=ks=king=king slime。

npc指令
這次還擴(kuò)展了npc指令。

/npc info(城鎮(zhèn)NPC信息)
舊版指令,以前的功能是顯示 城鎮(zhèn)NPC解救情況。這次做了擴(kuò)展。會(huì)額外顯示城鎮(zhèn)NPC在場(chǎng)情況。
在指令后面加上npc名稱,可以查詢NPC數(shù)量和所在位置,并提示傳送到npc位置的指令。

/npc <解救npc名 或 貓/狗/兔 >
上個(gè)版本的指令用法是 /npc toggle <boss名>,這次做了簡(jiǎn)化。
輸入 /npc <解救npc名 或 貓/狗/兔> 切換城鎮(zhèn)NPC解救狀態(tài)。

/npc unique(城鎮(zhèn)NPC去重)
輸入 /npc unique 執(zhí)行城鎮(zhèn)NPC去重操作,注意只是城鎮(zhèn)NPC,由于游戲?qū)?老人、骷髏商人 和旅商 也視為城鎮(zhèn)NPC,本指令也會(huì)對(duì)這3個(gè)NPC進(jìn)行去重。

/npc relive(復(fù)活NPC)
輸入 /npc relive 可以會(huì)根據(jù)怪物圖鑒記錄復(fù)活城鎮(zhèn)NPC,注意不包括 老人、骷髏商人和旅商,NPC會(huì)在指令執(zhí)行者身邊復(fù)活,如果是命令行窗口執(zhí)行則會(huì)復(fù)活在出生點(diǎn)。
由于是以怪物圖鑒為依據(jù),如果NPC來(lái)過(guò),但是你沒(méi)找他對(duì)話,怪物圖鑒沒(méi)記錄,NPC消失了,復(fù)活指令就不會(huì)復(fù)活這個(gè)NPC。
/relive 指令 和 /npc relive 指令功能相同,適合開放給普通玩家使用,輸入 /group addperm default relive 進(jìn)行授權(quán),由于復(fù)活指令沒(méi)有設(shè)置cd,最近我個(gè)人不傾向?qū)⑦@個(gè)指令開放給普通玩家。

/npc tphere(將NPC傳到你身邊)
輸入 /npc tphere <NPC名> 將指定NPC傳到你身邊。如果是在命令行上執(zhí)行,則會(huì)傳送至出生點(diǎn)。
輸入 /npc tphere town 會(huì)將全部的城鎮(zhèn)NPC傳到你身邊,注意不包含 老人、骷髏商人和旅商。
指令還可以簡(jiǎn)寫成 /npc th,th是 tphere的簡(jiǎn)寫。
由于泰拉里 城鎮(zhèn)NPC、敵怪和boss都屬于NPC,因此你可以將它們傳到你身邊,目前只做了城鎮(zhèn)NPC的測(cè)試。


igen指令
這次在寫 “大地動(dòng)”插件時(shí),發(fā)現(xiàn)可以重建世界和生成一些建筑,于是我照葫蘆畫瓢地加了一些功能。
這部分功能參考了 WorldRefill 插件,它的指令是 /gen,于是我的指令改成 /igen
參考:https://github.com/Illuminousity/WorldRefill/blob/master/WorldRefill/WorldRefill.cs#L997
/igen world(重建世界)
重建世界指令,創(chuàng)建世界前會(huì)自動(dòng)備份地圖。
輸入 /igen world 05162021 腐化 小 2020,ftw 將創(chuàng)建一個(gè)種子為 051620201的地圖,且加上2020(醉酒世界)屬性 和 ftw屬性。
指令的語(yǔ)法是:
/igen world <種子> [腐化] [大小] [彩蛋特性]
種子:輸入任意種子名,0表示隨機(jī)
腐化:腐化/猩紅 或 1/2, 0表示隨機(jī)
大小:小/中/大 或 1/2/3, 0表示忽略
彩蛋特性:支持開啟一個(gè)或多個(gè)特性,要?jiǎng)?chuàng)建多個(gè)特性,種子名中間輸入英文逗號(hào),例如 2020,ftw,dst,ntb
5蛋圖
之前我用 mod創(chuàng)建了一張5蛋圖,包含5個(gè)彩蛋特性,同時(shí)也有5個(gè)彩蛋的圖格,是真·5蛋圖,不過(guò)開荒時(shí)發(fā)現(xiàn)寶箱里的戰(zhàn)利品規(guī)則跟原版不一樣,例如 肉前能在沙漠的寶箱里開出 血滴子(滴滴怪跛子),這個(gè)武器正常只有肉后擊敗血鰻魚才能獲得,使用TEdit查詢發(fā)現(xiàn),還不止一件。

/igen world 指令是調(diào)用泰拉自身的創(chuàng)建世界功能,原理是創(chuàng)建前先將世界的彩蛋屬性打開。我打算使用這個(gè)指令來(lái)創(chuàng)建這樣一個(gè) 真·5蛋圖,不過(guò)不太理想。目前發(fā)現(xiàn)小地圖能包含4種彩蛋地形,大地圖可能會(huì)缺失,實(shí)際測(cè)試發(fā)現(xiàn) ntb和dst沖突,2021和ftw有沖突,好吧~~
如果你對(duì)5蛋圖感興趣,可以試試這幾個(gè)指令:
/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 會(huì)以玩家為中心生成3個(gè)玻璃小房間。
輸入 /igen room 100 則會(huì)創(chuàng)建100個(gè)玻璃小房間,這個(gè)指令不要輕易嘗試,執(zhí)行前請(qǐng)確保區(qū)域內(nèi)沒(méi)有重要的東西,因?yàn)檫@個(gè)操作沒(méi)法撤銷~~血的教訓(xùn)~切記~或者操作前 執(zhí)行下 /wm backup,出事了再回檔。


/igen pond(玻璃魚池框架)
輸入 /igen pond 會(huì)以玩家為中心生成1個(gè)玻璃魚池框架,目前只會(huì)創(chuàng)建一個(gè)框架,不會(huì)生成水。

/igen shieldmachine(盾構(gòu)機(jī))
輸入 /igen sm 會(huì)清空前方100格寬10格高的區(qū)域,且會(huì)生成一條石平臺(tái)。
sm 和 shieldmachine 的簡(jiǎn)寫。

指令還支持定義寬高,例如 輸入 /igen sm 10 10

實(shí)際上這個(gè)指令是專門為鋪地獄跑道而設(shè)計(jì)的,小地圖(寬4200格)的話在地獄的地圖中心處,
輸入 /igen gm 2000 10 就能實(shí)現(xiàn)如下效果:

/igen dig(鉆井機(jī))
輸入 /igen dig 會(huì)清空腳下 3格寬100格高的區(qū)域,同時(shí)在腳下生成一條3格寬的石平臺(tái),以及一條100格高的絲綢繩索。

如果有裝 WorldRefill插件,輸入 /gen hellevator 可以創(chuàng)建一條直通地獄的 地獄直通車。

起初想用這個(gè)指令來(lái)挖地獄直通車的過(guò)程,測(cè)試發(fā)現(xiàn)這個(gè)指令不適合挖直通車,如果非要銜接上次的繩索,可以將人吊在繩索上,且讓繩索遮住自己的臉,否則會(huì)歪掉~~~,效果如圖:

這個(gè)指令同樣支持設(shè)置寬高,例如 輸入 /igen dig 20 10 就是下圖這樣:

也可以用這個(gè)指令來(lái)創(chuàng)建魚池,例如 輸入 /igen dig 11 30 就是下圖這樣:

/igen dirt(填土)
輸入 /igen dirt 就是下圖這樣,一半被清空,另一半填上土方塊,別擔(dān)心,作用范圍只是一個(gè)屏幕,一個(gè)寬122格高68格的區(qū)域。
實(shí)際上這個(gè)指令個(gè)人的測(cè)試指令,上面的創(chuàng)建操作把地圖弄得支離破碎亂七八糟的,輸入這個(gè)指令就可以正常操作了。

插件權(quán)限匯總
指令,權(quán)限名稱,授權(quán)
/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 的那個(gè)文件就好。
文件名,適用版本
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(僅編譯,未做測(cè)試)