开发教程 【完结】TShock从零开始的使用教学

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉

TShock教学组

  • 开放小组
  • 446
  • 7
  • 0
  • 0
编写各种TShock教学的技术小组
引语:
当你看到别人家的服务器,强制开荒,自带反作弊,甚至RPG系统时,你是否困扰与熊孩子的偷袭?
加入TShock服主的行列吧,无论是与一群好基友一起玩耍,还是对外开大型服务器,TShock都是值得掌握的技术
TShock,你,值得拥有!

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



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

注意事项:
· 本教学使用的部分教学资源将来自tshock.co
所以可能会大量出现英语内容(这也是为什么要强调有英语基础的会学得更轻松的原因)
· 本教学使用的TShock版本为v4.3.24.0,原因是这个版本有一个完美汉化, 方便玩家理解(汉化有可能导致一些别的结果,例如...乱码?)

※本教学主要以教授TShock的使用为主,想要学习开服技术的可以在网上搜索其他教学
本教学会走PC/PE通用路线,PE指令会用特殊字体加以说明
但是由于PE没有汉化,而且英文版目前处于不成熟阶段,所以短期内不会加入PE内容

Pt.0-1:解压安装说明
· 下载本贴附件中的汉化版TShock,直接解压至自己知道的目录即可
注:请务必保留安装包下的最外层目录,防止引起混乱
现在你安装完毕的TShock应该是这个样纸...
1572660256597.png
呐,里面就是TShock的主体部分了
tshock内部主要包含以下几个文件:
--TerrariaServer.exe 这是服务器程序的主体,TShock从这里运行
--OTAPI.dll 这为服务器提供了部分Terraria环境
专业解释:(来自Github)
The Open Terraria API, known as OTAPI, is a unique low-level API for Terraria that exposes events and provides performance optimisations while supporting both client and server executables on all official platforms.
You can use this modification as a NuGet package to power your own project with minimal update downtime*, or you can build plugins for NyxStudios' Orion which uses OTAPI under the hood
机翻:
Open Terraria API(称为OTAPI)是Terraria的唯一低级API,它公开事件并提供性能优化,同时支持所有正式平台上的客户端和服务器可执行文件。
您可以将此修改作为NuGet软件包使用,以最小的更新停机时间为您自己的项目提供动力*,也可以为NyxStudios的Orion构建插件,该插件在后台使用OTAPI

这大概是以后进行TShock插件开发必备的引用文件了

--GeoIP.dat 这个我也不知道是干啥用的
--sqlite3.dll 这个是用于操作sqlite数据库文件用的东西
--Newtonsoft.Json.dll 这个是用来读取json的东西
--ServerPlugins文件夹 这是安装服务器扩展用的文件夹
 

附件

最后编辑:

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
Pt.1-1.初次运行你的服务器
前置知识预习:
指令:在TShock中表现为由指令前缀符号(如:/和 .)引导的具有特殊效果的语句
- 例如/help会返回tshock的指令列表

一条指令的基本特征:
有一个名称(例如help),需要一个特定权限(有些也是不需要的)(后面会讲到),能够产生特定效果

超级管理员:TShock系统中象征最高权限的用户组(也是后面会讲到的内容)

用户:指TShock系统中为玩家创建的信息体
例如:玩家名称,密码,UUID等
说白了就是玩家在你服务器里的账号

组:指TShock系统中的用户组,一个用户组内有多个用户,且具有该组规定的特殊信息
打个通俗的比方,你学校里是不是有班干部班委之类的?
普通学生就像tshock里的default(默认)用户组,啥权限都没有,但是可以在班上生活
班委按照地位(课代表、副班长、班长)就像tshock里的admin(管理员)用户组,具有一定对其他学生的管理权力
老师很明显就是superadmin(超级管理员),掌握所有人的生杀大权

启动服务器:
现在,打开你的TShock文件夹,双击运行Terraria.exe
什么?你看不到.exe这个后缀?
请单击文件夹上方的查看,勾选“文件扩展名”(仅限Win10)
演示.gif
Win10以下版本请自行寻找教学,棱镜懒得跟你讲了
虽然要善用搜索引擎,但是这里棱镜还是手动帮你查到了教学,戳下面链接吧~
Win7开启文件后缀名显示
Win10的看上面Gif
运行之后你可以看到一个黑色窗口,这个窗口我们称之为TShock的服务器后台
看到下面的界面就说明能正常运行了(不能正常运行也不能怪我对吧)
@6`CV{`MS_3{XWSYIN6~$YP.png
看,这就是世界选择界面了,你可以通过输入序号来选择世界
输入“n”(话说这个汉化真是害人)可以创建新世界,不过这个建议在Terraria游戏内进行
输入“d”可以删除世界
现在不妨输入1选择第一个世界,然后出现这个
1572664963508.png
很通俗易懂吧,就是服务器最多允许多少名玩家加入,回车可以选择默认值8人
那么这里直接回车吧
1572664979249.png
端口选择,就是你的服务器侦听的端口
这个玩意影响到了你输入IP后的端口应该填什么
怎么说呢...这个不太好解释...直接回车就完了吧...
1572664996445.png
这个,一般都是默认回车就好了
1572665011450.png
表示进入你服务器需要的密码,具有一定防熊功能,一般在与自己的好基友玩耍时使用
很明显,到目前为止,你应该可以发现在启动服务器并选择世界之后可以一路回车按到底对吧...
好了,你现在应该会看见窗口里出现滚动文字
文字滚完了就说明成功开启服务器了
现在服务器运行成功的样子应该是这样:
1572665070610.png
注意:现在不要关闭窗口,请记住黄字中"/auth"后面的数字,最小化窗口
Terraria,启动!
(话说这个图片张数限制好讨厌啊...分帖发吧)
 
最后编辑:

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
[续上]
启动之后选择多人游戏,通过IP加入,选择游戏角色后来到这个界面
1572665236701.png
(下面打马赛克的是我去别的服务器的IP地址,就不暴露了好吧)
此处重点!
现在,在输入框内输入127.0.0.1,端口写7777,加入服务器
127.0.0.1是指向自己计算机的IP地址,所以在各种游戏平台上发现他人发127.0.0.1这种ip地址肯定都是错误的
好了,现在你成功进入了自己开启的服务器
1572665414060.png
呐,可以看到左下角的欢迎文本,后面我们还会学习如何修改这个欢迎文本‘
现在还记得之前的auth数字吗?
按下回车打开聊天框,输入/auth [你的auth码]
注意:每个服务器的auth码都是不同的,这里仅做示例
1572665548813.png
输入完了就是见证奇迹的时刻了1572665599760.png
(输入完了之后就会看到你死了)(wdnmd史莱姆)

可以看到黄字的说明信息
现在,你将接触到tshock的第一个重要指令
/user add <用户名> <密码> <用户组>
用途是将一个用户加入到指定的用户组
例如/user add 棱镜 1234567 superadmin
就可以获取永久超级管理员账户了
然后拥有了账户肯定要登录对吧?
现在你将接触到tshock的第二个重要指令
/login [用户名] <密码> -----通过指定的用户名登录
例如此处我们输入
/login 棱镜 1234567
1572665874098.png
1572665885566.png
出现了成功的绿色文字,说明你已经完成了TShock使用的第一步:获取永久超级管理员权限
再次输入/auth后,auth指令就失效了,同时弹出说明:
1572666027995.png
此时打开TShock目录下的TShock文件夹,可以看到多了很多东西
1572666081009.png
auth.lck的出现就说明auth被禁用了
获取了超级管理员之后可以做什么呢?
敬请期待下次更新
 
最后编辑:
  • 投币
反馈: 空流处

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
等..等等...有个重要的东西要补充上...
现在你回到后台界面
1572666219486.png
在这里输入off来保存地图并关服,直接点击X会导致地图数据丢失!
1572666267106.png
同样出现保存数据的文字,文字滚动完毕后黑色窗口会自动关闭
(如果没有关闭请在出现“服务器已关闭”字样后自行点击X)
 

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
指令说明规范:
0.关于指令非常重要的一点

记忆指令最好中文和英文一起记忆,且以英文为主
毕竟TShock是外国大佬搞出来的东西,要是哪天条件所限你必须用英文版
你就知道只会中文的绝望了
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

管理成员
版主
2019/10/25
494
109
100
武汉
Pt.1-2.【实用】强制开荒的基本实现
当你看着别人家的服务器进服石化,必须强行进行登录之后获取新的背包,你是否垂涎不已?
无论你是否垂涎不已,反正你现在就该看这个了

SSC,全拼Server Side Character,意为服务端角色存档模式
在此模式下,玩家的所有数据都将保存在服务端是tshock.sqlite中
SSC的第一个特征就是强制开荒,所谓强制开荒也只是SSC的一部分:初始化默认背包
SSC最强大的地方在于允许TShock服务端直接对玩家存档进行编辑,
这种编辑不仅包括背包数据,甚至包括位置、杀怪数、生命值等
一般来说,一个正常的开荒/生存服务器都会开启SSC模式
Step1.认识配置文件
现在,打开你的TShock目录,不要急着运行服务器,现在进入"tshock"文件夹,找到一个叫sscconfig.json的文件
这个就是强制开荒的基本配置文件了
通过对此文件的编辑,你可以实现几乎所有强制开荒的功能。
好了,现在你可以打开这个文件了
啥?不会打开Json?请自行上网寻找:Notepad++,这是一个很轻量级的代码编辑器,以后会经常用到
安装完成后右键文件你应该可以看到“Edit With Notepad++”选项了,点这个,你就会看到文件内容界面了
1572712912986.png
(我觉得除了登入后丢物间隔之外都挺好理解的)
如图,
启用状态是一个true/false值,当值为false,SSC禁用,当值为true,SSC启用
云存档保存间隔是服务端存档数据的保存间隔时间,以分钟为单位
初始生命值/魔法值:这个还需要我给你解释?只要不要填奇怪的数据就好了
初始物品这一项比较特别,可以看到一个与众不同的中括号对吧
这代表初始物品是“一组”物品,每个大括号内容又自成一个“物品”
之前在犹豫要不要写这个...想想还是写了吧...
有一定面向对象编程基础的可能会很容易理解这个东西,反正我讲一讲就完了对吧
一般来讲,大括号包裹的内容是一个完整的“对象”,什么是对象呢?
打个比方,你和我都是人,我们又拥有与众不同的特征与属性
比如我长得比你帅
比如我比你菜
对吧?那么在这个Json中你可以看到两种大括号
大括号中左侧由引号包裹的文本可以看做该对象的某个属性的特征
冒号左侧是属性,右侧为此属性的值

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

好了,说了这么多,总结一下
1572714137534.png
Step2.配置文件的编辑
编辑绝对注意事项,重要到了用四种突出方式来说明:不要删除任何英文逗号/引号/括号!!!!
不要到时候出错了又来让我背锅,我会喷人的
(另外:打稿子的时候要插入链接,然后莫名其妙自己追踪过去了,然后我码了2个小时一千多字的稿子丢了)
(这个故事告诉我们在电脑上工作一定要随时保存...
对了,棱镜自制的SSC配置编辑工具更新了
支持了本帖中提到的汉化版,详见本帖
解压编辑器,打开SSCMaker.exe,你可以看到粗陋的编辑界面
1572784660997.png
(真是简单而不失大气优雅的界面)
除了“登入后丢物间隔”,其他的输入框都与配置文件中的一一对应
那个东西我自己都不知道干啥用的
反正默认值就完了

一般来说,如果你不是制作留备以后使用,就勾选“是否启用”框
云存档保存间隔说白了就是备份存档间隔,以分钟为单位,必须为整数
初始生命、魔法不需要讲吧...只要不是那种1啊123之类的奇怪数值就行了
下面的添加物品界面很费了我一些心思
物品ID支持中文自动补齐
什么意思呢?大概效果就是这样
演示.gif
(完美解决了懒癌患者们不愿意查ID的问题)
(但是你连官方中文名也不记就不怪我了)
前缀ID也支持中文
注意,即使没有前缀也要手动选择为“无”

数量超过上限时,玩家在游戏内显示的物品也是超上限的
但是普通玩家拥有超过上限的物品会被TShock检测到并自动石化
所以还是不要太奇怪为好
选择完成后点击“将当前物品添加到背包”就会把这个物品放到右边的列表里了
但是点击按钮不会自动删除原有数据(也许下次更新会改?)
注意:现在已经更新了此功能,可以在上面的链接里找到1.0.0.2版本进行下载

所以记得自行清空
另外,你可以在右边的列表框里用鼠标拖动/Ctrl键/Shift键选定多个物品,按下右键即可删除
演示2.gif
输入完毕后,勾选“按照中文输出”,点击“生成json文件”即可
此时会出现提示框
演示3.gif
那么如何使用这个文件呢
然后回到SSCMaker.exe目录下的Saves文件夹,可以看到里面的文件了对吧?
你只需要把它重命名为sscconfig.json
然后复制到TShock安装目录的"tshock"文件夹下,覆盖原有sscconfig
copy.gif
Step3.运行服务器
现在,回到你的TShock目录,按照Pt.1-1方法运行服务器即可
复习:加入自己开的服务器应该怎么做?
多人游戏 -> 通过IP加入 -> 选择人物 -> IP输入127.0.0.1,端口和密码是你在服务端里设置好的
如果你发现以普通用户身份加入服务器时石化了,那么说明SSC成功开启了
1573055892132.png
(像个鲨雕,对吧)
(难道不像吗?)


要点来了:
注册指令:
/register <密码> ------允许一名普通玩家用<密码>中的密码注册用户
登录指令:
/login [用户名] [密码] --------以指定的密码与用户名登录,你登录超级管理员账号就是用的这个
注意,这个指令中的用户名和密码都是可以缺省的
如果缺省用户名,表示用玩家角色的名字当做用户名,再以指定密码登录
如果两个都缺省,就会视为“以UUID登录”,UUID是泰拉瑞亚每一个玩家角色随机的、唯一的全局识别代码
一般来讲,在不修改配置的情况下:
· 注册指令不能指定用户名
· 自动登录在没有更换玩家存档的情况下允许进服自动登录
· register创建的其实是user,后面会讲到
· login指令可以登录其他玩家或者超管添加的账户,只要你知道这些账户的密码...
演示5.gif
打指令要点:打字要快,姿势要帅
打字要准,回车要狠
什么?你到现在不知道在哪里打指令???
你玩过多人模式吗?没有??
好吧当我没问
进入服务器之后按下回车键就是了
1573055697445.png
登录完了之后就会看到自己的背包变成sscconfig里设置的背包了
确认完毕后,记得输入指令保存关服!

ok,截止至2019年11月7日,SSC基础设置基本讲解完毕
终于把之前丢的稿子补齐了,不容易啊

下期预告:用户、组与权限
是一些比较理论化不好实践
但是用好了会非常强大的东西


你还在等啥?等我给你留个彩蛋?
赶紧整理笔记完了复习实践啊!
没用的课后答疑QQ:718074968
 
最后编辑:

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
我只是个潜水自学N久至今才搞懂一点点东西的初中生
 
最后编辑:

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
然后添加权限的话别添加指令了,权限一般都是tshock.开头的,这个记住就行,命令和权限网上都有
tshock开头的是原版权限
插件权限(例如invsee等)的权限有些并不是tshock开头
 

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
Pt.1-3.用户、组与权限的管理
终于讲到了这个令圈内无数dalao头疼的问题,
一般tshock教程更新到这一章意味着就不会咕了
在这里我将尽我全力用最通俗易懂的比喻来讲解这个知识点
用好了,会非常,非常强大
用不好,会非常,非常绝望

那么就开始学习吧!
一、权限
什么叫权限?
我在第一章的时候粗略地提到过对吧...
打个比方,tshock有六个默认组,依次对应的中文和地位如下表
guestdefaultnewadminadmintrustedadminsuperadmin
游客​
默认​
新管理员​
管理员​
受信任管理员​
超级管理员(即超管)​
班外人士​
普通班级成员​
副课课代表​
主课课代表​
班长/副班长等​
老师​
(很真实的对吧......)


什么意思呢?
下面棱镜来给你讲故事
某一天你们班来了个新同学,但是他刚刚来,没有跟你们说,于是一脸惊慌地打量你们,瑟瑟发抖不敢说话,你们也一脸怀疑地看着他。
这意味着这个同学还是个“游客”,只是在班上(就是服务器里),但是没有作为一个班级成员(玩家)的基本权限

然后上课了,老师走进教师:
“同学们,我们班今天迎来了一位新同学,这位同学叫xxxxx,大家欢迎!”
然后你可能还要自我介绍
然后你会被承认为一个正式的班级成员
这个过程就叫“注册”,在班上(服务器里)留下你的信息并获得承认
(只是在服务器里这个过程是主动进行的)
注册之后你就可以过上正常的学生生活了对吧,这意味着你获得了一个“默认”用户组的“账号”,你可以把账号看成一个你作为学生的人设

混着混着,你和班上的同学混到了很好的关系,然后在班干部竞选中直接被老师指派为历史课代表
老师就相当于服务器中的“超管”角色,他有权管理所有学生(玩家)的权限
你现在是历史课代表了,于是就可以在历史课上掌管同学生杀大权了
但是一旦不是历史课你依然是个菜鸡

这就是newadmin,有一定管理权限,但是并不是很全面的管理
在这个岗位上你恪尽职守,坚守底线,老师很看好你,于是把你指派为数学课代表
看,你升官了
于是你在班上有了一定的人气和地位
班上的同学都很看好你
这个时候你是admin,尽职尽责地为同学们服务
于是有一天,老师突然把你任命为本班班长
完成了从插班生到本班第一大佬的逆袭
这个时候你就是trustedadmin了
这个时候你膨胀了,制霸全班,同学看你越来越不顺眼
有一天你到校外打架把别人打成重伤(不合理比喻...
然后老师听说此事很生气,直接上报学校把你转走了
(把你ban了)

这个故事太魔幻了吧...
其实服务器里的东西没这么复杂,权限这种东西都要看超管的心情来设置
有可能你跟超管混好了关系一夜之间飞黄腾达呢?
一个服务器是可以有多个超管的
所以你应该知道我们要干什么了吧(不是)
好啦,正经地从头说起
guest是游客,很菜
default是默认,很普通
newadmin是新管理员,有点地位
admin是管理员,很有地位
trustedadmin是受信任管理员,简直超管亲儿子啊
superadmin甭提了,掌管全服生杀大权
下附一张权限表,列出了各个组的代表性权限
※等级从上到下依次递增
※更高级的组拥有较低等级组的所有权限

组名拥有的权限(代表性的)
guest​
注册、登陆、发送服务器消息
default​
进行受限制的正常游戏(平民玩家)
vip
预留服务器位,重命名NPC,召唤boss/入侵,虫洞
newadmin​
kick玩家,查看玩家Index,设置重生点,调时间
admin​
ban玩家,管理传送点,生成boss/怪物,tp
trustedadmin​
刷/给予物品(/i和/g),无视各种限制,上传本地存档作为ssc存档
superadmin​
具有所有权限
下面进入指令环节
用户管理指令
指令:
/user ---用于用户的管理
子命令:
--add <用户名> <密码> <用户组>
这个指令很眼熟,对吧?
没错,这个指令是你当年初次启动服务器获得超管权限的指令!
用户组是上面列出的组中的一个
给普通用户的就是default,
创建备用超管账号就是superadmin
--del <用户名>
删号指令,删除指定用户
在SSC模式下会同时删除背包数据
--password <用户名> <新密码>
改变某用户的密码
可用于为忘记自己账号的密码的玩家重置密码
--group <用户名> <新组>
将指定用户移动到一个新组
例如:/user group 棱镜 superadmin //将“棱镜”这个账户移动到超管用户组
注意:这个操作是忽视目标用户原来所在组的!

user指令看起来很简单对吧...后面就会让你看不懂了
在TShock世界中,每个用户组都有对应的权限
执行特定的指令一般都需要对应权限
有时候执行特定操作也需要对应权限

权限:
权限,是以"."作为分隔符号的一串文本,通常情况下,tshock. 开头的权限是原版TShock
权限,权限的"."起到一个分组的作用,且支持“*”通配符
举几个栗子:
---tshock.tp.wormhole //只有拥有此权限的组内的玩家才能使用虫洞药水传送
---tshock.tp.* //该权限表示拥有此权限的组拥有tshock.tp权限组下的所有权限
※以后权限中用"."分出的组都叫权限组,区别于用户组
※注意:
在原版情况下,只有“用户组”能拥有“权限”,也就是说,不存在“某用户具有某权限”的说法
关于权限你需要牢记的只有这些:
· 权限意味着给予某用户组的全体用户执行某特定操作的权利
· 大多数原版TShock指令都具有对应的权限
· 权限中的通配符意味着“拥有此权限组下的所有权限”
※一般而言,权限组是顾名思义的,例如tshock.tp权限组表示关于传送的权限

休息一会儿,过一段时间讲花里胡哨的用户组
 
最后编辑:
  • 投币
反馈: GGBingo
2019/10/30
1
0
20
Pt.1-3.用户、组与权限的管理
终于讲到了这个令圈内无数dalao头疼的问题,
一般tshock教程更新到这一章意味着就不会咕了
在这里我将尽我全力用最通俗易懂的比喻来讲解这个知识点
用好了,会非常,非常强大
用不好,会非常,非常绝望

那么就开始学习吧!
一、权限
什么叫权限?
我在第一章的时候粗略地提到过对吧...
打个比方,tshock有六个默认组,依次对应的中文和地位如下表
guestdefaultnewadminadmintrustedadminsuperadmin
游客​
默认​
新管理员​
管理员​
受信任管理员​
超级管理员(即超管)​
班外人士​
普通班级成员​
副课课代表​
主课课代表​
班长/副班长等​
老师​
(很真实的对吧......)



什么意思呢?
下面棱镜来给你讲故事
某一天你们班来了个新同学,但是他刚刚来,没有跟你们说,于是一脸惊慌地打量你们,瑟瑟发抖不敢说话,你们也一脸怀疑地看着他。
这意味着这个同学还是个“游客”,只是在班上(就是服务器里),但是没有作为一个班级成员(玩家)的基本权限

然后上课了,老师走进教师:
“同学们,我们班今天迎来了一位新同学,这位同学叫xxxxx,大家欢迎!”
然后你可能还要自我介绍
然后你会被承认为一个正式的班级成员
这个过程就叫“注册”,在班上(服务器里)留下你的信息并获得承认
(只是在服务器里这个过程是主动进行的)
注册之后你就可以过上正常的学生生活了对吧,这意味着你获得了一个“默认”用户组的“账号”,你可以把账号看成一个你作为学生的人设

混着混着,你和班上的同学混到了很好的关系,然后在班干部竞选中直接被老师指派为历史课代表
老师就相当于服务器中的“超管”角色,他有权管理所有学生(玩家)的权限
你现在是历史课代表了,于是就可以在历史课上掌管同学生杀大权了
但是一旦不是历史课你依然是个菜鸡

这就是newadmin,有一定管理权限,但是并不是很全面的管理
在这个岗位上你恪尽职守,坚守底线,老师很看好你,于是把你指派为数学课代表
看,你升官了
于是你在班上有了一定的人气和地位
班上的同学都很看好你
这个时候你是admin,尽职尽责地为同学们服务
于是有一天,老师突然把你任命为本班班长
完成了从插班生到本班第一大佬的逆袭
这个时候你就是trustedadmin了
这个时候你膨胀了,制霸全班,同学看你越来越不顺眼
有一天你到校外打架把别人打成重伤(不合理比喻...
然后老师听说此事很生气,直接上报学校把你转走了
(把你ban了)

这个故事太魔幻了吧...
其实服务器里的东西没这么复杂,权限这种东西都要看超管的心情来设置
有可能你跟超管混好了关系一夜之间飞黄腾达呢?
一个服务器是可以有多个超管的
所以你应该知道我们要干什么了吧(不是)
好啦,正经地从头说起
guest是游客,很菜
default是默认,很普通
newadmin是新管理员,有点地位
admin是管理员,很有地位
trustedadmin是受信任管理员,简直超管亲儿子啊
superadmin甭提了,掌管全服生杀大权

下面进入指令环节
用户管理指令
指令:
/user ---用于用户的管理
子命令:
--add <用户名> <密码> <用户组>
这个指令很眼熟,对吧?
没错,这个指令是你当年初次启动服务器获得超管权限的指令!
用户组是上面列出的组中的一个
给普通用户的就是default,
创建备用超管账号就是superadmin
--del <用户名>
删号指令,删除指定用户
在SSC模式下会同时删除背包数据
--password <用户名> <新密码>
改变某用户的密码
可用于为忘记自己账号的密码的玩家重置密码
--group <用户名> <新组>
将指定用户移动到一个新组
例如:/user group 棱镜 superadmin //将“棱镜”这个账户移动到超管用户组
注意:这个操作是忽视目标用户原来所在组的!

user指令看起来很简单对吧...后面就会让你看不懂了
在TShock世界中,每个用户组都有对应的权限
执行特定的指令一般都需要对应权限
有时候执行特定操作也需要对应权限

权限:
权限,是以"."作为分隔符号的一串文本,通常情况下,tshock. 开头的权限是原版TShock
权限,权限的"."起到一个分组的作用,且支持“*”通配符
举几个栗子:
---tshock.tp.wormhole //只有拥有此权限的组内的玩家才能使用虫洞药水传送
---tshock.tp.* //该权限表示拥有此权限的组拥有tshock.tp权限组下的所有权限
※以后权限中用"."分出的组都叫权限组,区别于用户组
※注意:
在原版情况下,只有“用户组”能拥有“权限”,也就是说,不存在“某用户具有某权限”的说法
关于权限你需要牢记的只有这些:
· 权限意味着给予某用户组的全体用户执行某特定操作的权利
· 大多数原版TShock指令都具有对应的权限
· 权限中的通配符意味着“拥有此权限组下的所有权限”
※一般而言,权限组是顾名思义的,例如tshock.tp权限组表示关于传送的权限

休息一会儿,过一段时间讲花里胡哨的用户组
分组不是还有一个owner分组/滑稽
 

TheLastPrism

管理成员
版主
2019/10/25
494
109
100
武汉
用户组:
· 区别于“权限组”,你可以把这个看作“对服务器内玩家等级的划分”
基础指令:
/group <子命令> 参数列表
可用的子命令:
管理型
---add <组名> //新建一个用户组,组名是自定义的,不能与已存在的用户组同名
---del <组名> //删除一个用户组
---list //没有参数,显示所有存在的用户组组的名称,如果数量超过一页会自动分页显示
花里胡哨型
---color <组名> <rrr,ggg,bbb> //设置指定组的聊天颜色,颜色格式像这样:255,0,0
默认的颜色都是255,255,255(纯白)
这样的颜色表达法叫RGB,你可以通过百度进行深入了解
---prefix <组名> [一串文字] //若省略参数,显示指定组的当前聊天前缀,否则设置该组的聊天前缀为你设置的文字
注意:如果你要输入带空格的文字,你可以这样输入: "xxx xxx"
对,就是用英文引号把文字括起来
如果要清除前缀,你可以用/group prefix <组名> "" 来实现

---suffix <组名> [一串文字] //同上,不过设置的是聊天后缀
权限管理型:(非常重要)
· 这里就是对用户组的权限进行管理的指令了
玩家的权限就是使用下面的指令进行管理的!
---addperm <组名> <权限> //给指定用户组添加设定的权限
---delperm <组名> <权限> //删除指定用户组的指定
注意:权限这个东西非常特殊,无论加入/删除的权限是否存在/有效都会提示操作成功
所以建议打完之后手动检查一下,比如尝试一下权限对应的指令、操作是否可以执行等(先确认是添加权限的组的用户)
另外:其实权限这个东西是可以由任何字符串组成的,而且tshock内部的权限检查也有很多骚东西,后面会讲
再就是如果你要赋予某组玩家所有传送相关的权限,你可以使用/group addperm <组名> tshock.tp.*
没错,*表示该权限组下的所有权限

---listperm <组名> [页码] //显示某用户组的全部权限,如果较多会自动分页
---parent <子组名> [父组名] //查看/设置某个组的父组
你可能(一定)会问了:啥叫父组?
(这时棱镜陷入了沉思)
打个比方,你爸是个大官。
有很多钱和很大的权利
然后你作为他的儿子,肯定也是具备他的权利和财产的(可能?)
简单说,就是子组拥有父组的所有权限,
但是这个权限是归属于父组的,虽然你可以在子组可以看到他有的权限,但是只有你删掉了所有父组的权限才能使得子组也失去权限
那么你一定又要问了,这个技术,有啥用啊?
再举个栗子
假设你想要一个能够像平民玩家一样游戏的组,且具有一定管理权限
你会这么做吗?
/group add MyGroup ,然后慢慢/group addperm?
你是沙雕吧23333
你可以这样做来让你的这个组具有default(平民组)的所有权限
/group parent MyGroup(得先add) default
然后在这样的基础上,添加权限
/group addperm MyGroup tshock.admin.warp
不就很方便了嘛?
权限这个东西,在后面讲到的RPG中还会有更多的作用

好了,本期教学到此结束
虽然讲得比较抽象(真相是棱镜懒得截图)
但是如果你边看边做应该还是比较好理解的吧
如果有问题可以留言或者联系棱镜哦QwQ
 
最后编辑: