体验新版

开发教程 【长期可用】【完贴】TShock从零开始的使用教学

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
2021-07-04:开始重置至最新版本
2021-08-23:基础部分全部重置完成

TShock从零开始的使用教学
作者:棱镜
前言:
鉴于目前TR圈内大多数TShock教学都已经过气(包括本贴)(确信)
而且目前网上存在的各类教学质量良莠不齐
所以棱镜打算抽出点时间来制作重制一个从零开始的TShock使用教学
本帖主要以技术普及为主,语言可能会比较沙雕通俗,如果有错误请dalao及时指出


需要准备些什么?
  • 一台可以联网的电脑
  • 建议使用Win10系统
  • 安装好的TShock(版本集合链接在本楼下方)
  • 有一定英语&编程基础的玩家在学习时会更加轻松
  • 一定得有的基础:计算机文件目录的基本认识、文件类型的基础了解(这个不懂的请赶紧去补补)

注意事项:
本教学使用的部分教学资源将来自tshock英文官网​
所以可能会大量出现英语内容(这也是为什么要强调有英语基础的会学得更轻松的原因)​
本教学正在重置至1.4版本

※本教学主要以教授TShock的使用为主,想要学习实际开服技术的可以在网上搜索其他教学
Pt.0-1:解压安装说明
根据自己的版本下载链接中的TShock,直接解压至自己知道的目录即可
注:请务必保留安装包下的最外层目录,防止引起混乱
现在你安装完毕的TShock应该是这个样子...
1625463495530.png
呐,这就是TShock核心文件的目录了
tshock内部主要包含以下几个文件:
--TerrariaServer.exe 这是服务器程序的主体,TShock从这里运行
--OTAPI.dll 这个为服务器提供了开发接口,公开了很多事件与实用函数
这是以后进行TShock插件开发必备的引用文件
--GeoIP.dat 用于分析IP来源的数据库文件
--sqlite3.dll 这个是用于操作sqlite数据库文件用的东西
--Newtonsoft.Json.dll 这个是用来操作json的东西
--ServerLog.txt 服务器总日志
--ServerPlugins文件夹 这是安装服务器插件用的文件夹
各种pdb、XML、config文件:用于方便开发时进行调试,并无实际作用
注意:帖子内TShock压缩包已过期,请跟随下面链接下载来自Github的最新版本
(新版本暂无汉化)
本教学使用的TShock版本为4.5.4

 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
2021-07-06:本部分已重置至最新版本
Pt.1-1.初次运行你的服务器
前置知识预习:
指令:在TShock中表现为由指令前缀符号(如:/和 .)引导的具有特殊效果的语句
例如/help会返回tshock的指令列表​
一条指令的基本特征:有一个名称(例如help),需要一个特定权限(有些也是不需要的),能够产生特定效果​
超级管理员:TShock系统中象征最高权限的用户组(也是后面会讲到的内容)
用户:指TShock系统中为玩家创建的信息体
例如:玩家名称,密码,UUID等,在SSC模式下也包括玩家的角色数据​
说白了就是玩家在服务器中的账号
组:指TShock系统中的用户组,用户组中的元素为用户,这些用户具有该组规定的特殊信息(权限以及花里胡哨的东西)
打个通俗的比方,你学校里是不是有班干部班委之类的?​
普通学生就像tshock里的default(默认)用户组,啥权限都没有,但是可以在班上生活​
班委按照地位(课代表、副班长、班长)就像tshock里的admin(管理员)用户组,具有一定对其他学生的管理权力​
老师很明显就是superadmin(超级管理员),掌握所有人的生杀大权​
启动服务器:
现在,打开你的TShock文件夹,双击运行Terraria.exe​
什么?你看不到.exe这个后缀?​
请单击文件夹上方的查看,勾选“文件扩展名”(仅限Win10)​
演示.gif
Win10以下版本请自行寻找教学,棱镜懒得跟你讲了
虽然要善用搜索引擎,但是这里棱镜还是手动帮你查到了教学,戳下面链接吧~​
Win10的看上面Gif​
运行之后你可以看到一个黑色窗口,这个窗口我们称之为TShock的后台
在TShockAPI中,后台被定义为TSPlayer.Server这一个只读字段
该TSPlayer对象具有自己保留的名称"Server",用户组为superadmin,index始终为-1
看到下面的界面就说明能正常运行了(不能正常运行也不能怪我对吧)
1625463719757.png
看,这就是世界选择界面了,你可以通过输入序号来选择世界
输入“n”可以创建新世界,不过这个建议在Terraria游戏内进行
输入“d”可以删除世界
现在不妨输入1选择第一个世界,然后出现这个
1625464431810.png
很容易理解正确使用翻译软件进行翻译,可以知道这里是决定服务器中最多的玩家数,回车可以选择默认值8人
那么这里直接回车吧
1625464493088.png
端口选择,就是你的服务器侦听的端口,回车是7777(Terraria经典默认服务器端口)
这个玩意影响到了你输入IP后的端口应该填什么
1625464525094.png
是否自动转发端口,这个一般都是默认回车就好了
1625464547574.png
输入服务器密码,一般在私人/群服务器玩耍时使用,按回车表示不设置密码
很明显,到目前为止,你应该可以发现在启动服务器并选择世界之后可以一路回车按到底对吧...
好了,你现在应该会看见窗口里出现滚动文字
1625464635857.png
文字滚完了就说明成功开启服务器了
现在服务器运行成功的样子应该是这样:
1625464655667.png
注意:现在不要关闭窗口,请记住黄字中"/setup"后面的数字,最小化窗口
注意:有时候电脑防火墙会自动在此时提示某应用程序将允许通过防火墙,选择允许即可
Terraria,启动!
已启用加入服务器前登录,玩家可能被要求在加入服务器前以服务器密码的形式输入自己账户的密码(等价于/login)而不是设定的服务器密码。
已启用UUID登录,符合UUID记录的玩家将自动登录,一些恶意的服务器可以轻易地窃取玩家的UUID信息,如果你正在运行一个公共服务器,你应该考虑在config.json中关闭此功能。
TShock Notice这一条是因为我第二次启动TShock而没有输入setup,第一次启动应该是没有的
翻译:tshock/setup-code.txt文件仍然存在,其中记录的setup-code将被继续使用。
为了设置(初始化)服务器,在Terraria中加入游戏并输入/setup 5046595
这个密钥将一直在后台中显示,直到使用/setup指令禁用了认证系统​
 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
获取服主权限
启动Terraria之后选择多人游戏通过IP加入,选择游戏角色后来到这个界面
1625557175027.png
此处重点!
现在,在输入框内输入127.0.0.1,端口写7777(或者前面设置的端口),加入服务器
127.0.0.1是指向自己计算机的IP地址
好了,如果操作没有错误,那么你将成功进入自己的TShock服务器
1625557283440.png
呐,可以看到左下角的欢迎文本,后面我们还会学习如何修改这个欢迎文本‘
现在还记得之前的setup数字吗?
打指令要点:打字要快,姿势要帅
打字要准,回车要狠
什么?你到现在不知道在哪里打指令???
你玩过多人模式吗?没有??
好吧当我没问
按回车键即可打开聊天栏
输入/setup <你的setup码>
注意:每个TShock生成的setup-code都是不同的,这里仅做示例,不要指望用这里的验证码熊服
1625557517151.png
输入完了就是见证奇迹的时刻了1625557555278.png
(输入完了之后就会看到你死了)(wdnmd史莱姆)
可以看到黄字的说明信息,这里加上翻译
请使用下面的指令来创建属于您的永久账户:
/user add <用户名> <密码> owner
创建的账户将以<用户名>作为用户名,<密码>作为密码,属于owner用户组
请在完成上述操作后使用/login <用户名> <密码>
现在,你将接触到tshock的第一个重要指令
/user add <用户名> <密码> <用户组>
用途是将一个用户加入到指定的用户组
例如/user add TheLastPrism 1234567 owner
owner组是tshock现在的服主组(参与流程的服主不要再使用superadmin组了
owner组不具有tshock.ignore.bypassssc权限,因此可以在SSC模式下正常参与游戏流程
同时owner组具有tshock.su权限
该权限允许owner组的成员使用/su临时将自己提升为superadmin以便执行指令
以及/sudo指令来绕过单条指令的权限检测
对于已经添加至superadmin组的用户,可以通过下面的指令修改至owner组​
/user group 用户名 owner
上面的用户名和密码自己改,指令规范参考下面指令规范楼#5​
1625558406801.png
1625558436911.png
就可以获取永久服主权限
然后拥有了账户肯定要登录对吧?
现在你将接触到tshock的第二个重要指令
/login [用户名] <密码>
用途是通过指定的用户名进行登录
例如此处我们输入
/login TheLastPrism 1234567
1625558460348.png
1625558479463.png
出现了上面的绿色文字,说明你已经完成了TShock使用的第一步:获取永久服主权限
再次输入/setup后,setup指令就会显示失效了,同时弹出说明:​
1625558526913.png
此时如果打开TShock目录,会发现多出了一个tshock文件夹,里面有很多东西​
1625558685814.png
如上,setup.lock文件的出现也说明认证系统已被禁用,其余文件的介绍将在猴戏教程中补充​
现在进入游戏界面,Esc->设置->保存并退出​
 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
妥善地关闭服务器
现在回到后台界面
1625559001756.png
在这里输入off来保存地图并关服直接点击X会导致地图数据丢失!
Tips:
当你的服务器被恶意破坏后的短时间内你可以通过/off-nosave或直接点击×来回档
有时候可以将服务器状态恢复到被恶意破坏前
同样出现保存数据的文字,文字滚动完毕后黑色窗口会自动关闭​
 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
指令说明规范:
0.关于指令非常重要的一点

记忆指令最好记英文,一时半会儿想不起来用法的时候看第三条​
1.指令的标准形式:
"指令前缀符号"指令 <参数1/子命令> <参数2> <参数3> ……​
例如:​
/user add 棱镜 1234567 superadmin​
"/" 就是指令前缀符号​
user 就是指令​
add可以称为“user指令的第一参数”或“user指令的一个子命令”​
棱镜、1234567、superadmin都是参数​
参数就是指令后第一个空格起的所有以空格为分割符号的一组数据​
参数与参数(包括子命令)、参数与指令之间都要有空格分割,否则会视为一个参数​
参数写在不同的位置会有不同的含义,例如“棱镜”是用户名,1234567是密码​
如果写反了就会导致1234567是用户名,“棱镜”是密码
这一点是非常重要的
2.指令介绍的标准形式
参数前后的括号表示了该参数是否可省略,且括号都无需输入
例如:​
/user add <账户名> <密码> <用户组>​
这样的括号表示参数不可省略​
一般来说,省略参数会使tshock用默认值来代替参数​
也可能是同一个指令的不同含义,这个后面会介绍到​
例如这样的指令​
/login [用户名] <密码>​
其中打方括号的部分是可省略的,而省略用户名参数表示用当前玩家的名称​
作为密码登录,如果以当前玩家名为用户名的账号不存在,那么会导致错误​
并向指令使用者发出提示​
3.获取指令的默认帮助
一般来讲,指令都可以用/help <指令名称>来获取帮助​
或者将“help”(不带引号)用作某指令的第一参数​
这样会向指令使用者发送默认的(或作者填写的)指令帮助消息​

此说明留作备忘,以后指令讲解也会按照这个来
 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
2021-08-13:本部分已重置至最新版本
Pt.1-2.【实用】强制开荒的基本实现
当你看着别人家的服务器进服石化,必须强行进行登录之后获取新的背包,你是否垂涎不已?
无论你是否垂涎不已,反正现在就更这个了
SSC,全拼Server Side Character,意为服务端角色存档模式
在此模式下,玩家的所有数据都将保存在服务端的tshock.sqlite
SSC的第一个特征就是强制开荒,所谓强制开荒也只是SSC的一部分:初始化默认背包
SSC最强大的地方在于允许TShock服务端直接对玩家存档进行编辑,
这种编辑不仅包括背包数据,甚至包括位置、杀怪数、生命值等

一般来说,一个正常的开荒/生存服务器都会开启SSC模式
Step1.认识配置文件
现在,打开你的TShock目录,不要急着运行服务器(如果你跳过了前面的教程,那么先运行服务器并获取管理员权限)
现在进入TShock目录下的"tshock"文件夹
1626949362084.png
找到一个叫sscconfig.json的文件:
1627017882992.png
这个就是SSC的基本配置文件了
通过对此文件的编辑,你可以实现几乎所有强制开荒的功能。
好了,现在你可以打开这个文件了
啥?不会打开Json?请自行上网寻找:Notepad++,这是一个轻量级的代码编辑器,以后会经常用到
安装完成后右键文件你应该可以看到“Edit With Notepad++”选项了,点这个,你就会看到文件内容界面了
1612255176038.png
如图:
  • Enabled(启用状态)是一个true/false(后称bool)值,当值为false,SSC禁用;当值为true;SSC启用
  • ServerSideCharacterSave(云存档保存间隔)是服务端存档数据的保存间隔时间,以分钟为单位
  • StartingHealth/StartingMana(初始生命值/魔法值):只要不要填奇怪的数据就好了
  • StartingInventory(初始背包)这一项比较特别,后面会单独说明
之前在犹豫要不要写这个...想想还是写了吧...
有一定面向对象编程基础的可能会很容易理解这个东西,反正我讲一讲就完了对吧
一般来讲,大括号包裹的内容是一个完整的“对象”,什么是对象呢?
打个比方,你和我都是人,我们又拥有与众不同的属性
比如我长得比你帅
比如我比你菜
对吧?那么在这个Json中你可以看到两种大括号
大括号中左侧由引号包裹的文本可以看做该对象的某个属性的“值”
冒号左侧是属性,右侧为此属性的值

那么在这个json中有几种对象呢?
我们不妨认为拥有同种“属性列表”的对象是同一种对象,那么这里有几种对象?
没错,两种,一个是最外层的"配置文件"对象,这个对象在TShock程序中提供了SSC的基础信息
另一个是在中括号中的对象,等等,那个中括号是什么鬼?
中括号可以表示为“一组东西”,这个“东西”可以是值,也可以是对象之类的任何东西
学过编程的很快会联想到数组对吧?
这个中括号不如看做一列房子,每当有“对象”要住进来就给他留个位置
然后下面的每个物品的中括号代表的就是“物品”对象
中间的逗号就是房间与房间之间的空地,必须得有!
但是最后一个房子肯定就不需要隔断了对吧?
所以中括号中的最后一个对象后面不需要隔断

任何JSON文件的格式规范都是统一的,可以使用在线工具来校验格式
Step2.配置文件的编辑
编辑绝对注意事项:不要缺失任何英文逗号/引号/括号!!!
(另外:打稿子的时候要插入链接,然后莫名其妙自己追踪过去了,然后我码了2个小时一千多字的稿子丢了)
(这个故事告诉我们在电脑上工作一定要随时保存...
首先,如果我们要启用SSC,那么请小心翼翼地将Enabled改为true
1628242868591.png
然后让我们来尝试编辑玩家的初始生命值与魔法值,例子这里设为200、100​
1628242985141.png
然后让我们来编辑玩家背包​
针对背包物品这样的复杂对象,我们还会一个个手打?​
开玩笑,当然是复制粘贴大法好啊​
1628243276047.png
我们选中其中一个块,按下Ctrl+C,然后在最后一个物品后面多Ctrl+V几次...​
1628243338692.png
这样就实现了向初始背包里添加更多物品,修改NetID可以更改物品类型,stack更改数量,prefix更改前缀​
比如我们想将初始背包设定为传奇铁剑、传奇铁镐、传奇铁斧、木材*100,那么你的StartingInventory看起来是这样的:​
1628243679797.png
完成编辑后,保存(Ctrl+S),关闭编辑器​
Step3.运行服务器
现在,回到你的TShock目录,按照Pt.1-1方法运行服务器即可
复习:加入自己开的服务器应该怎么做?
多人游戏 -> 通过IP加入 -> 选择人物 -> IP输入127.0.0.1,端口和密码是你在服务端里设置好的
如果你发现以普通用户(不是超级管理员)身份加入服务器时弹出如图的提示,那么说明SSC成功开启了​
1628824865282.png
要点来了:
注册指令:
/register <密码> 允许一名普通玩家用<密码>中的密码注册用户
登录指令:
/login [用户名] [密码] 以指定的密码与用户名登录,你登录超级管理员账号就是用的这个
注意,这个指令中的用户名和密码都是可以缺省的
如果缺省用户名,表示用玩家角色的名字当做用户名,再以指定密码登录
如果两个都缺省,就会视为“以UUID登录”,UUID是泰拉瑞亚每一个玩家角色随机的、唯一的全局识别代码
一般来讲,在不修改配置的情况下:​
  • 注册指令不能指定用户名
  • 自动登录在没有更换玩家存档的情况下允许进服自动登录
  • register创建的其实是User,后面会讲到
  • login指令可以登录任何服务器数据库中存在的账户,只要你知道这些账户的密码
1628825031309.gif
登录完了之后就会看到自己的背包变成sscconfig里设置的背包了​
1628825057640.png
确认完毕后,记得输入指令保存关服!
ok,截止至2019年11月7日,SSC基础设置基本讲解完毕​
终于把之前丢的稿子补齐了,不容易啊​
下期预告:用户、组与权限
是一些比较理论化不好实践
但是用好了会非常强大的东西
你还在等啥?等我给你留个彩蛋?​
赶紧整理笔记完了复习实践啊!
 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
原本想把教程发在b站的,不过发现b站没这里方便
 
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
然后添加权限的话别添加指令了,权限一般都是tshock.开头的,这个记住就行,命令和权限网上都有
tshock开头的是原版权限
插件权限(例如invsee等)的权限有些并不是tshock开头
 

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
Pt.1-3.用户、组与权限的管理
权限组管理是TShock插件的一大特色​
通过权限组,你可以为玩家分配职能控制玩家的行为,以及为玩家赋予聊天前缀、颜色等​
一、权限
什么叫权限?​
我在第一章的时候粗略地提到过对吧...​
一条权限可以被表示为一个字符串,例如tshock.world.modify​
拥有这条权限的玩家才可以对世界进行编辑操作(建造、破坏等)​
打个比方,tshock有六个默认用户组如下表​
guest​
default​
newadmin​
admin​
trustedadmin​
owner​
superadmin​
游客​
玩家​
新手管理员​
管理员​
受信任管理员​
服主
超级管理员(即超管)​
PS:owner为TShock4.4.0以上版本添加的默认用户组,适用于服主希望参加游戏进程的情况
owner组具有权限tshock.su,自身并不像superadmin一样具有所有权限
相反地,owner组的用户可以通过/su指令临时获得超级管理员权限,或是通过/sudo指令绕过权限检测
这允许在owner组用户正常进行游戏(指SSC模式下不会因tshock.ignore.bypassssc权限忽略背包)时管理服务器
superadmin现在更多用于Rest/后台/插件中的操作,建议不要在参与游戏流程时使用superadmin组
下附一张权限表,列出了各个组的代表性权限
※等级从上到下依次递增
※更高级的组拥有较低等级组的所有权限

组名拥有的权限(代表性的)
guest​
注册、登陆、发送服务器消息,在TShock4.5.5以上的版本中不可被删除
default​
进行受限制的正常游戏(平民玩家)
vip
预留服务器位,重命名NPC,召唤boss/入侵,虫洞
newadmin​
kick玩家,查看玩家Index,设置重生点,调时间
admin​
ban玩家,管理传送点,生成boss/怪物,tp
trustedadmin​
刷/给予物品(/i和/g),无视各种限制,上传本地存档作为SSC存档
owner
tshock.su(使用指令绕过权限,基本等同于superadmin)
superadmin​
具有所有权限,注意,这个组是只读的,无法为这个用户组手动配置权限
相关的指令
/user​
子命令列表​
  • add <用户名> <密码> <用户组>
这个指令很眼熟,对吧?​
没错,这个指令是你当年初次启动服务器创建owner账号的指令!​
用户组是上面列出的组中的一个​
给普通用户的就是default,​
创建备用超管账号就是owner​
如果要给已经存在的用户修改权限,请参考group子命令​
1629688656791.png
  • del <用户名>
删除指定用户​
在SSC模式下会同时删除背包数据
1629688677886.png
  • password <用户名> <新密码>
改变某用户的密码​
可用于为忘记自己账号的密码的玩家重置密码
1629688701116.png
  • group <用户名> <新组>
将指定用户移动到一个新组​
例如:/user group 棱镜 owner ---将“棱镜”这个账户移动到owner用户组​
1629688739868.png
注意:这个操作是忽视目标用户原来所在组的!
user指令看起来很简单对吧
在TShock世界中,每个用户组都有对应的一组权限
执行特定的指令一般都需要对应权限
有时候执行特定操作(如使用日晷、召唤入侵和boss、使用晶塔等)也需要对应权限

权限:
权限,是以"."作为分隔符号的一串文本​
通常情况下,tshock.开头的权限是原版TShock权限​
权限的"."起到一个分组的作用,且支持“*”通配符​
举几个栗子:
tshock.tp.wormhole --只有拥有此权限的组内的玩家才能使用虫洞药水传送​
tshock.tp.* --该权限表示拥有此权限的组拥有tshock.tp权限组下的所有权限,可以使用与/tp有关的各种子命令​
1629688945044.gif
一个没有tp权限的玩家试图使用tp指令,这是他聊天框发生的变化

※以后权限中用"."分出的组都叫权限组,区别于用户组
※注意:只有“用户组”能拥有“权限”,也就是说,用户拥有某权限是因为ta处于拥有该权限用户组,而非用户拥有权限本身
关于权限你需要牢记的:
  • 权限意味着给予某用户组的全体用户执行某特定操作的权利
  • 大多数原版TShock指令都具有对应的权限
  • 权限中的通配符意味着“拥有此权限组下的所有权限”
下一章将为你讲解如何使用指令来管理用户组的权限
 

附件

  • 1629688697055.png
    1629688697055.png
    10.8 KB · 查看: 0
最后编辑:

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
学业真是太繁忙了QAQ
今天忙里偷闲看看能不能更一点
 

TheLastPrism

Lv5
管理成员
版主
创意家
LV
0
 
2019/10/25
1,012
339
勋章
5
IP属地
用户组:
区别于“权限组”,你可以把这个看作“对服务器内玩家的划分”
指令:
/group
下面为子命令列表​
  • 基础子命令
    • add <组名>
      新建一个用户组,组名是自定义的,不能与已存在的用户组同名
    • del <组名>
      删除一个用户组
    • list
      没有参数,显示所有存在的用户组组的名称,如果数量超过一页会自动分页显示
  • 聊天子命令
    • color <组名> <rrr,ggg,bbb>
      设置指定组的聊天颜色,颜色格式像这样:255,0,0
      例如/group color default 0,255,0 ---将default组用户的聊天颜色设为绿色
      默认的颜色都是255,255,255(纯白)
      这样的颜色表达法叫RGB,你可以通过百度进行深入了解
    • prefix <组名> [一串文字]
      若省略参数,显示指定组的当前聊天前缀,否则设置该组的聊天前缀为你设置的文字
      注意:如果你要输入带空格的文字,你可以这样输入: "xxx xxx",用英文引号把文字括起来
      如果要清除前缀,你可以用/group prefix <组名> "" 来实现
    • suffix <组名> [一串文字] //与前缀相同,不过设定的是聊天后缀
  • 权限子命令
    玩家的权限就是使用下面的子命令进行管理的!
    • addperm <组名> <权限> //给指定用户组添加设定的权限
    • delperm <组名> <权限> //删除指定用户组的指定
    • listperm <组名> [页码] //显示某用户组的全部权限,如果较多会自动分页
    • parent <子组名> [父组名] //查看/设置某个组的父组
      你可能(一定)会问了:啥叫父组?
      简单说,就是子组拥有父组的所有权限,但是这个权限是归属于父组的
      虽然你可以在子组可以看到他有的权限,但是只有你删掉了所有父组的权限才能使得子组也失去权限

      这个技术有什么用处呢?
      假设你想要一个能够像平民玩家一样游戏的组,且具有一定管理权限
      你可以这样做来让你的这个组具有default(平民组)的所有权限
      /group add MyGroup
      /group parent MyGroup default
      然后在这样的基础上,添加权限
      /group addperm MyGroup tshock.admin.kick
      不就很方便了嘛?
Tips
权限这个东西非常特殊,无论加入/删除的权限是否存在/有效都会提示操作成功
所以建议打完之后手动检查一下,比如尝试一下权限对应的指令、操作是否可以执行等(先确认是添加权限的组的用户)
另外,其实权限这个东西是可以由任何字符(没错,中文权限是存在的)组成的,而且tshock内部的权限检查也有很多骚东西,后面会讲
再就是如果你要赋予某组玩家所有传送相关的权限,你可以使用/group addperm <组名> tshock.tp.*
正如前面权限组所说,*表示该权限组下的所有权限
好了,本期教学到此结束
虽然讲得比较抽象(真相是棱镜懒得截图)
但是如果你边看边做应该还是比较好理解的吧
如果有问题可以留言或者联系棱镜哦QwQ
 
最后编辑:
  • 标签
    tshock 从零开始的教学 开发者教学 萌新向
  • * 这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责

    顶部