最新消息

欢迎您,这里是向导的冒险者营地!

通过向我们注册,您将能够与我们营地的其他成员讨论、共享和私信.

立即加入!

教程相关 TShock从零开始的使用教学

这是一个教程相关的扫盲内容

TShock从零开始的使用教学

原作者:棱镜,搬运更新:肝帝熙恩

前言的前言:

突然发现棱镜的教程都已经有点过时了,不得不感叹时间过得真快
当年我也是仔细看过这篇教程,也受益良多
由于旧论坛即将关闭(2024年5月4日),我决定将棱镜的教程搬运过来并且更新
当然 ,大部分内容还是保留了棱镜的,我只改了有比较大改动的地方

前言:

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

需要准备些什么?

  • 一台可以联网的电脑(如果你愿意折腾,手机什么的也可以,但是本贴不示范其他设备开服)(可以是自己电脑,简幻欢,喵云等等)
  • 建议使用Win10以上系统(但是我是win2012R2),Linux或macos也可以,但是对新手强烈不推荐mac,适中推荐Linux,最推荐Win
  • 安装好的TShock(下方详细解释)
  • 有一定英语&编程基础的玩家在学习时会更加轻松
  • 一定得有的基础:计算机文件目录的基本认识、文件类型的基础了解(这个不懂的请赶紧去补补)

注意事项:


本教学使用的部分教学资源将来自tshock英文官网
所以可能会大量出现英语内容(这也是为什么要强调有英语基础的会学得更轻松的原因)(现在汉化很多对英语要求降低了)

※本教学主要以教授TShock的使用为主,想要学习实际开服技术的可以在网上搜索其他教学

Pt.0-1:下载解压安装说明

首先进入github,搜索tshock,或者点击本处链接(可能需要steam++)
点击Releases
1708241554177.png
根据自己的版本下载链接中的TShock,直接解压至自己知道的目录即可
1708241677177.png
我这里以win为例子(其他版本差别不会很大)
注:请务必保留安装包下的最外层目录,防止引起混乱
现在你安装完毕的TShock应该是这个样子...
1708244153321.png

Pt.1-1.初次运行你的服务器

前置知识预习:

指令:在TShock中表现为由指令前缀符号(如:/和 .)引导的具有特殊效果的语句
例如/help会返回tshock的指令列表
一条指令的基本特征:有一个名称(例如help),需要一个特定权限(有些也是不需要的),能够产生特定效果
超级管理员:TShock系统中象征最高权限的用户组(也是后面会讲到的内容)
用户:指TShock系统中为玩家创建的信息体

例如:玩家名称,密码,UUID等,在SSC模式下也包括玩家的角色数据
说白了就是玩家在服务器中的账号
组:指TShock系统中的用户组,用户组中的元素为用户,这些用户具有该组规定的特殊信息(权限以及花里胡哨的东西)

打个通俗的比方,你学校里是不是有班干部班委之类的?
所有人类都是一个用户(好吧,蟑螂也是
普通学生就像tshock里的default(默认)用户组,啥权限都没有,但是可以在班上生活
班委按照地位(课代表、副班长、班长)就像tshock里的admin(管理员)和owner(服主)用户组,具有一定对其他学生的管理权力
老师很明显就是superadmin(超级管理员),掌握所有人的生杀大权

启动服务器:

在启动服务器之前,我要先教你如何汉化tshock的基本功能(特别致谢各位出色的汉化组成员)
我推荐两种方法:
1.使用插件,我推荐yaaiomni,也就是俗称恋恋的乱七八糟的插件,它提供了非常多的功能,强烈推荐所有服主安装
什么,你还不会下载?我再教一遍,当前你能接触到的大部分内容都是如此下载,记好喽
1710305487451.png点Release1710305719553.png
下载最上面两个任意一个压缩包,下载后将压缩包里面两个dll文件复制进ServerPlugins,安装后自动汉化

2.使用启动参数,可以参考hufang大佬的教程,hufang也是一名出色的开发者,有关tshock的相关内容也可以多去他那里查看
现在,打开你的TShock文件夹
如果你的这台电脑从来没有运行过tshock,那么你运行TShock.Installer.exe
如果你电脑成功运行过tshock,哪怕只有一次,那么你运行TShock.Server.exe或你的启动文件
什么?你看不到.exe这个后缀?
请单击文件夹上方的查看,勾选“文件扩展名”(仅限Win10)
1708244475186.gif
Win10以下版本请自行寻找教学,棱镜懒得跟你讲了
虽然要善用搜索引擎,但是这里棱镜还是手动帮你查到了教学,戳下面链接吧~
Win7开启文件后缀名显示
Win10的看上面Gif
运行之后你可以看到一个黑色窗口,这个窗口我们称之为TShock的后台
在TShockAPI中,后台被定义为TSPlayer.Server这一个只读字段
该TSPlayer对象具有自己保留的名称"Server",用户组为superadmin,index始终为-1
看到下面的界面就说明能正常运行了(不能正常运行也不能怪我对吧)
1708244761410.png

看,这就是世界选择界面了,你可以通过输入序号来选择世界
输入“n”或“新”可以创建新世界,不过这个建议在Terraria游戏内进行
输入“d”或“删”可以删除世界
现在不妨输入1选择第一个世界,然后出现这个
这里是决定服务器中最多的玩家数,回车可以选择默认值8人
1708244960501.png
那么这里直接回车吧
1708244973501.png
端口选择,就是你的服务器侦听的端口,回车是7777(Terraria经典默认服务器端口)
这个玩意影响到了你输入IP后的端口应该填什么,如果你不是独立ip,请输入服务提供商给你的端口
1708245284902.png
是否自动转发端口,这个一般都是默认回车就好了
1708245295398.png
输入服务器密码,一般在私人/群服务器玩耍时使用,按回车表示不设置密码
很明显,到目前为止,你应该可以发现在启动服务器并选择世界之后可以一路回车按到底对吧...
好了,你现在应该会看见窗口里出现
1708245357083.png
注意:现在不要关闭窗口,请记住黄字中"/setup"后面的数字,最小化窗口
注意:有时候电脑防火墙会自动在此时提示某应用程序将允许通过防火墙,选择允许即可

Terraria,启动!
 

附件

  • 1708241440774.png
    1708241440774.png
    210 KB · 查看: 8
  • 1708241625899.png
    1708241625899.png
    209.6 KB · 查看: 5
  • 1708241828853.png
    1708241828853.png
    35.2 KB · 查看: 6
  • 1708245332209.png
    1708245332209.png
    80.9 KB · 查看: 4
  • 1710305433088.png
    1710305433088.png
    8.4 KB · 查看: 3
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

获取服主权限

启动Terraria之后选择多人游戏通过IP加入,选择游戏角色后来到这个界面
1708245874032.png

此处重点!
现在,在输入框内输入127.0.0.1,端口写7777(或者前面设置的端口),加入服务器
127.0.0.1是指向自己计算机的IP地址
也就是说,如果服务器不是在你自己的电脑上,你就要输入服务器商提供的ip地址和端口


服务器商会给你提供ip或者域名以及端口,例如:
我的ip是:49.235.218.30(虚构的) 端口7770
简幻欢举例:爱你羽学哥哥.simpfun.cn 端口xxxxx(虚构的,ip和端口都需要更根据实际情况)
喵云举例:我超迅猛龙.miaovps.com 端口xxxxx (虚构的,ip和端口都需要更根据实际情况)
(以上都可能需要调整安全组,详细请去服务器提供商处提问)

例如:114.114.14.51(ip)或者xnn.com(域名)
好了,如果操作没有错误,那么你将成功进入自己的TShock服务器
1708324076170.png

呐,可以看到左下角的欢迎文本,后面我们还会学习如何修改这个欢迎文本‘
现在还记得之前的setup数字吗?
打指令要点:打字要快,姿势要帅
打字要准,回车要狠
什么?你到现在不知道在哪里打指令???
你玩过多人模式吗?没有??
好吧当我没问
按回车键即可打开聊天栏
输入/setup <你的setup码>
注意:每个TShock生成的setup-code都是不同的,这里仅做示例,不要指望用这里的验证码熊服

输入完了就是见证奇迹的时刻了
1708246375815.png1708246242769.png
可以看到黄字的说明信息
现在,你将接触到tshock的第一个重要指令
/user add <用户名> <密码> <用户组>
用途是将一个用户加入到指定的用户组
例如/user add 肝帝熙恩 1234567 owner
1708246503445.png
owner组是tshock现在的服主组(参与游戏流程的服主不要再使用superadmin组了
owner组不具有tshock.ignore.bypassssc权限,因此可以在SSC模式下正常参与游戏流程
同时owner组具有tshock.su权限
该权限允许owner组的成员使用/su临时将自己提升为superadmin以便执行指令
以及/sudo指令来绕过单条指令的权限检测
对于已经添加至superadmin组的用户,可以通过下面的指令修改至owner组
/user group 用户名 owner
上面的用户名和密码自己改,指令规范参考下面指令规范楼#5
1708246518564.png
就可以获取永久服主权限
然后拥有了账户肯定要登录对吧?
现在你将接触到tshock的第二个重要指令
/login [用户名] <密码>
用途是通过指定的用户名进行登录
例如此处我们输入
/login 肝帝熙恩 1234567

1708246569931.png
1708246579574.png
出现了上面的绿色文字,说明你已经完成了TShock使用的第一步:获取永久服主权限
再次输入/setup后,setup指令就会显示失效了,同时弹出说明:
1708246610652.png
此时如果打开TShock目录,会发现多出了一个tshock文件夹,里面有很多东西
浏览附件76
如上,setup.lock文件的出现也说明认证系统已被禁用,其余文件的介绍将在猴戏教程中补充
现在进入游戏界面,Esc->设置->保存并退出

妥善地关闭服务器

现在回到后台界面
1708246762098.png
在这里输入off来保存地图并关服直接点击X会导致地图数据丢失!
Tips:

当你的服务器被恶意破坏后的短时间内你可以通过/off-nosave或直接点击×来回档
有时候可以将服务器状态恢复到被恶意破坏前
同样出现保存数据的文字,文字滚动完毕后黑色窗口会自动关闭


指令说明规范:

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”(不带引号)用作某指令的第一参数
这样会向指令使用者发送默认的(或作者填写的)指令帮助消息

此说明留作备忘,以后指令讲解也会按照这个来
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.1-2.【实用】强制开荒的基本实现

当你看着别人家的服务器进服石化,必须强行进行登录之后获取新的背包,你是否垂涎不已?
无论你是否垂涎不已,反正现在就更这个了
SSC,全拼Server Side Character,意为服务端角色存档模式
在此模式下,玩家的所有数据都将保存在服务端的tshock.sqlite
SSC的第一个特征就是强制开荒,所谓强制开荒也只是SSC的一部分:初始化默认背包
SSC最强大的地方在于允许TShock服务端直接对玩家存档进行编辑,
这种编辑不仅包括背包数据,甚至包括位置、杀怪数、生命值等
一般来说,一个正常的开荒/生存服务器都会开启SSC模式

Step1.认识配置文件

现在,打开你的TShock目录,不要急着运行服务器(如果你跳过了前面的教程,那么先运行服务器并获取管理员权限)
现在进入TShock目录下的"tshock"文件夹:
1708251951439.png

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

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

Step2.配置文件的编辑

编辑绝对注意事项:不要缺失任何英文逗号/引号/括号!!!
(另外:打稿子的时候要插入链接,然后莫名其妙自己追踪过去了,然后我码了2个小时一千多字的稿子丢了)
(这个故事告诉我们在电脑上工作一定要随时保存...
首先,如果我们要启用SSC,那么请小心翼翼地将Enabled改为true
1717045331170.png
然后让我们来尝试编辑玩家的初始生命值与魔法值,例子这里设为200、100
1717045351120.png
然后让我们来编辑玩家背包
针对背包物品这样的复杂对象,我们还会一个个手打?
开玩笑,当然是复制粘贴大法好啊
1717045471079.png
我们选中其中一个块,按下Ctrl+C,然后在最后一个物品后面多Ctrl+V几次...
1717045512589.png
这样就实现了向初始背包里添加更多物品,修改NetID可以更改物品类型,stack更改数量,prefix更改前缀
比如我们想将初始背包设定为传奇铁剑、传奇铁镐、传奇铁斧、木材*100,那么你的StartingInventory看起来是这样的:
1717045787965.png
完成编辑后,保存(Ctrl+S),关闭编辑器

Step3.运行服务器

现在,回到你的TShock目录,按照Pt.1-1方法运行服务器即可
复习:加入自己开的服务器应该怎么做?
多人游戏 -> 通过IP加入 -> 选择人物 -> IP输入127.0.0.1,端口和密码是你在服务端里设置好的
127.0.0.1是指向自己计算机的IP地址
也就是说,如果服务器不是在你自己的电脑上,你就要输入服务器商提供的ip地址
例如:114.114.14.51(ip)或者xnn.com(域名)
如果你发现以普通用户(不是超级管理员)身份加入服务器时弹出如图的提示,那么说明SSC成功开启了
1710307035661.png
要点来了:
注册指令:

/register <密码> 允许一名普通玩家用<密码>中的密码注册用户
登录指令:
/login [用户名] [密码] 以指定的密码与用户名登录,你登录超级管理员账号就是用的这个

注意,这个指令中的用户名和密码都是可以缺省的
如果缺省用户名,表示用玩家角色的名字当做用户名,再以指定密码登录

如果两个都缺省,就会视为“以UUID登录”,UUID是泰拉瑞亚每一个玩家角色随机的、唯一的全局识别代码,记录在一台设备上,也就是说,一台电脑的所有角色的UUID都是相同的(但是,实际上可以更改,此处不教)

千万记住,不要设置如:123456,114514这种极其简单的密码,宁可忘记密码然后找服主用/user password <用户名> <新密码> 重置也不要设置简单密码

一般来讲,在不修改配置的情况下:
  • 注册指令不能指定用户名
  • 自动登录在没有更换玩家存档的情况下允许进服自动登录
  • register创建的其实是User,后面会讲到
  • login指令可以登录任何服务器数据库中存在的账户,只要你知道这些账户的密码

1710307401318.gif
登录完了之后就会看到自己的背包变成sscconfig里设置的背包了
1717045871406.png
确认完毕后,记得输入指令保存关服!
ok,截止至2019年11月7日,SSC基础设置基本讲解完毕
终于把之前丢的稿子补齐了,不容易啊
(肝帝熙恩:很难想象发生了什么,但是我给你留下这段话了!截止2024年2月15日)

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

你还在等啥?等我给你留个彩蛋?
赶紧整理笔记完了复习实践啊!
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.1-3.用户、组与权限的管理

权限组管理是TShock插件的一大特色
通过权限组,你可以为玩家分配职能控制玩家的行为,以及为玩家赋予聊天前缀、颜色等

一、权限

什么叫权限?
我在第一章的时候粗略地提到过对吧...
一条权限可以被表示为一个字符串,例如tshock.world.modify
拥有这条权限的玩家才可以对世界进行编辑操作(建造、破坏等)
打个比方,tshock有六个默认用户组如下表
guestdefaultnewadminadmintrustedadminownersuperadmin
游客玩家新手管理员管理员受信任管理员服主超级管理员(即超管)
PS:owner为TShock4.4.0以上版本添加的默认用户组,适用于服主希望参加游戏进程的情况
owner组具有权限tshock.su,自身并不像superadmin一样具有所有权限
相反地,owner组的用户可以通过/su指令临时获得超级管理员权限,或是通过/sudo指令绕过权限检测
这允许在owner组用户正常进行游戏(指SSC模式下不会因tshock.ignore.bypassssc权限忽略背包)时管理服务器
superadmin现在更多用于Rest/后台/插件中的操作,建议不要在参与游戏流程时使用superadmin组
下附一张权限表,列出了各个组的代表性权限
※等级从上到下依次递增
※更高级的组拥有较低等级组的所有权限
组名拥有的权限(代表性的)
guest注册、登陆、发送服务器消息
default进行受限制的正常游戏(平民玩家)
vip预留服务器位,重命名NPC,召唤boss/入侵,虫洞
newadminkick玩家,查看玩家Index,设置重生点,调时间
adminban玩家,管理传送点,生成boss/怪物,tp
trustedadmin刷/给予物品(/i和/g),无视各种限制,上传本地存档作为SSC存档
ownertshock.su(使用指令绕过权限,基本等同于superadmin)
superadmin具有所有权限,注意,这个组是只读的,无法为这个用户组手动配置权限

相关的指令

/user
子命令列表
  • add <用户名> <密码> <用户组>
这个指令很眼熟,对吧?
没错,这个指令是你当年初次启动服务器创建owner账号的指令!
用户组是上面列出的组中的一个
给普通用户的就是default,
创建备用超管账号就是owner
如果要给已经存在的用户修改权限,请参考group子命令
屏幕截图 2024-05-30 132233.png
  • del <用户名>
删除指定用户
在SSC模式下会同时删除背包数据
屏幕截图 2024-05-30 132429.png
  • password <用户名> <新密码>
改变某用户的密码
可用于为忘记自己账号的密码的玩家重置密码
屏幕截图 2024-05-30 132318.png
  • group <用户名> <新组>
将指定用户移动到一个新组
例如:/user group 棱镜 owner ---将“棱镜”这个账户移动到owner用户组
屏幕截图 2024-05-30 132355.png
注意:这个操作是忽视目标用户原来所在组的!
user指令看起来很简单对吧
在TShock世界中,每个用户组都有对应的一组权限
执行特定的指令一般都需要对应权限
有时候执行特定操作(如使用日晷、召唤入侵和boss、使用晶塔等)也需要对应权限

权限:

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

※以后权限中用"."分出的组都叫权限组,区别于用户组
※注意:只有“用户组”能拥有“权限”,也就是说,用户拥有某权限是因为ta处于拥有该权限用户组,而非用户拥有权限本身

关于权限你需要牢记的:

  • 权限意味着给予某用户组的全体用户执行某特定操作的权利
  • 大多数原版TShock指令都具有对应的权限
  • 权限中的通配符意味着“拥有此权限组下的所有权限”

用户组:

区别于“权限组”,你可以把这个看作“对服务器内玩家的划分”

指令:

/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(现在别联系了,差不多退坑了)
    (肝帝熙恩:我擦,你好可爱,有问题可留言,不回答弱智问题)
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.1-4.开服实践环节【基于游侠联机平台】【2020-01-09更新】

但是游侠已经要付费使用了,所以我这里变成:

Pt.1-4.开服实践环节【基于云服务器】【2024-02-18更新】

这里首先推荐一个帖子TShock默认权限组缺失的权限(点我)
这边介绍了一下TShock自带的Default组所缺少的权限
所以你可以根据那个帖子自行先添加一下(插件安装后直接使用/inperms就好了,什么?你还不会安装插件?)

Step1.打开云服务器

云服务器哪来?这里我推荐:
喵云
腾讯云/阿里云的双11或者618,且你是新用户
或者你去用简幻欢/wemc之类,因为用他们教学效果比较局限,所以不用其进行演示
我这里使用的是腾讯云的机子,独立ip(不知道独立ip的去网上查)

Step2.在云服务器上安装tshock

我的云服务使用的winserver2012r2,不建议大家使用,此处仅做示范
不会安装?请回到最上方,重新开始
然后正常启动tshock,这里有一点需要注意,如果你购买的是nat云,如果服务器商只提供部分端口,例如15555-15565
那你开服时候端口只能选择这里面的其中一个
我这里以端口7770做示范
1708258448753.png

Step3.将IP端口发送给朋友(和你自己)

服务器商会给你提供ip或者域名以及端口,例如:
我的ip是:49.235.218.30(虚构的) 端口7770
简幻欢举例:play.simpfun.cn 端口xxxxx(ip和端口都需要更根据实际情况)
喵云举例:xnnxml.miaovps.com 端口xxxxx (ip和端口都需要更根据实际情况)
(以上都可能需要调整安全组,详细请去服务器提供商处提问)
1708258143237.png

1708258181624.png
然后你和你的朋友就能在一起玩耍啦
服务器商会给你提供ip或者域名以及端口,例如:
我的ip是:49.235.218.30(虚构的) 端口7770
简幻欢举例:爱你羽学哥哥.simpfun.cn 端口xxxxx(虚构的,ip和端口都需要更根据实际情况)
喵云举例:我超迅猛龙.miaovps.com 端口xxxxx (虚构的,ip和端口都需要更根据实际情况)
(以上都可能需要调整安全组,详细请去服务器提供商处提问)
1708258382386.png
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

【内容追加中】Pt.2-1.游戏内功能指令


介绍格式:主指令+含义
第二行起为子命令,输入子命令不需要带“-”,关于子命令请参考前面的指令标准章节​

指令:warp含义:传送点管理
不带参数显示warp指令的默认帮助
---add <传送点名>将你当前的位置记录为名为<传送点名>的传送点
---del <传送点名>删除指定名称的传送点
---<传送点名>传送至指定的传送点
---hide <传送点名> <true/false>true:隐藏传送点 false:取消隐藏
---list [页码]显示所有传送点(数量较大时分页显示)
  • hide为true(真)的传送点不会在/warp list 中显示,但可以被正常使用,用于隐藏私人传送点时非常好用
  • 普通玩家(不具有tshock.admin.warp权限的玩家)只能使用/warp <传送点名>,输入其他指令会显示“不存在名为<子命令>的传送点”
  • 不能添加重名传送点
指令:region含义:领地管理
---[页码]查看可用的指令说明(不带help,注意)
---set <1/2>记录第一个/第二个临时点
---define <领地名>以记录的两个临时点为左上/右下角建立新领地
---delete <领地名>删除指定领地
---name敲击一个物块,获取其所在的领地的名字
---rename <领地名> <新名字>给指定领地重命名
---list [页码]列出所有领地
---resize <领地名> <u/d/l/r> <数量>重设领地大小,u/d/l/r表示向上/下/左/右增加<数量>格
---allow/remove <用户名> <领地名>将指令共享/取消共享给指定用户
---allowg/removeg <组名> <领地名>同上,把用户换成用户组
---info <领地名>显示一个领地的相关信息
---protect <领地名> <true/false>启用/关闭领地保护
---z <领地名> <数值>设置重合领地优先级(?)
---tp <领地名>传送到指定领地
 
主题 作者
Moderator
管理成员
01
21
3

Pt.2-2.TShock基础配置文件的修(魔)改


引言:
当你在TShock相关目录下看到各种Json文件时,你是否感到迷茫困惑(蠢蠢欲改)
不要着急,本章将为你详细介绍TShock的各种魔法配置文件!
还记得这些吗!
题外话(但是很重要):你还记得json的修改规范吗?
另:附来自我自己,但是参考@Jonesn的TShock文件表一份
1708259315689.png
1708259746170.png
其中tshock.pid是在未使用off指令关服的时候被自动创建的文件
在下次启动时会提醒你用指令关服...


正文:
首先,举个最简单(最重要)的栗子:

1.config.json:服务器配置文件

用记事本或者vsc或者notepad++打开
我这里直接提供我们亲爱的羽学哥哥编写的带注释的config,请对照着改写你自己的config
请去附件下载查看

2.motd.txt:入服欢迎文本


看上去很简单,其实骚操作还是很多的!
1708260165982.png
(上面是默认内容)
motd内容是当玩家加入服务器时发送给玩家的欢迎信息
其中用%%标记的是“变量符号”,表示“将此处的值替换为特定内容”

最新版本可用的变量:
1. %map% ---这个变量会被替换为服务器当前运行的世界名称。
2. %onlineplayers% ---这个变量会被替换为当前在线的玩家数量。
3. %serverslots% ---这个变量会被替换为服务器的总玩家槽位数,即服务器能容纳的最大玩家数。
4. %players% ---这个变量会被替换为当前登录到服务器的所有玩家的名称列表。
5. %specifier% ---这个变量通常用于指定TShock中的命令前缀。
6. %xxx,xxx,xxx% ---按照RGB颜色给本行文字添加颜色(PE不可用)
 

附件

  • Tshock 5.2 config翻译.txt
    12.3 KB · 查看: 14
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.2-3.TShock与REST

引言:
emmm...为什么今天会突然发一篇这样的帖子呢?
因为最近我的好基友在论坛发布了点神奇的东西(非常大佬的东西),有用到REST,为了防止玩家们一头雾水
于是就有了我今天这篇帖子
(这里棱镜应该说的是bot?我也不知道)
什么是Rest:
众所周知,REST就是休息的意思
咳咳,今天这个REST和英语的REST没啥关系
来看一段很官方的解释:
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。
它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

(我棱镜早已料到你们看不懂这样的解释了)(棱镜自己搞不清楚的东西就不讲了)
TShock的REST:
首先,你想要使用TShock的RestAPI,你需要在config.json中把这一项改为true
1708260503342.png
RestApiPort是rest的端口,和服务器端口一样,使用服务器商提供的端口

然后改这个
1708260982987.png
并且可以有多个rest用户,如:
"ApplicationRestTokens": { "114514": { "Username": "阿伟", "UserGroupName": "superadmin" }, "19199810": { // 新增的用户令牌标识符 "Username": "杰哥, // 新用户的用户名 "UserGroupName": "new_user_group" // 新用户所属的用户组 } }

这下面的一般服主用不到,仅参考

然后启动你的服务器,你可以发现什么事情也没有发生
不!你错了!接下来就是见证奇迹的时刻!
打开你的浏览器,输入如下的url
127.0.0.1:7878/tokentest?token=token
比如我这里就是127.0.0.1:7878/tokentest?token=yuansheng
你会发现你的服务器给了你回应!(别想了,这是我演示用的token)
1717048751201.png
仔细一看,这个回应的格式不是JSON么?
TShock的RestAPI内有许多"节点"(其实你可以把这个理解为"指令"),具体如链接,通过http的请求可以产生对应的返回数据与效果

官方:
我翻译的中文版:
https://niaoluo.top/docs/tshock帮助文档中文版/字段定义/rest-字段

正如刚刚的EndPoint执行 测试令牌,然后返回值中包含3个属性
status表示返回的状态,response是状态的文本形式,associateduser是执行这个"命令"返回的结果
(status一般在TShock的RestAPI中自动生成)
status值的含义:
Status代码的值表示的含义
200命令成功执行并且可能还包含一个"response"文本
400命令执行失败并且会有一个error属性来告诉你更多信息
401没有提供执行指令所需的密钥(大多数EndPoint都是需要密钥的)
403仅由获取密钥的EndPoint返回,表示账户权限不足
404没有指定的EndPoint
Token在Rest中发挥与superadmin用户相同的作用!所以不要泄露!不要泄露!
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.2-4.TShock插件的使用

没啥用的前言:

原本以为装插件这种事情应该是个TShock服主都会,
但是现在发现还是有很多玩家不会的。
而且我这个帖是要推广出去,必须完善
所以今天简明地讲解一下安装插件的方法

首先是简洁的步骤

  1. 下载插件
  2. 塞进文件夹
  3. 启动服务器
  4. 检查是否能正常使用

Step1.获取插件

目前棱镜/肝帝熙恩已知的靠谱的插件获取途径
  • 新论坛,群友yuqing的,特点:全是中文介绍():https://trhub.cn/
  • 另一个新论坛,维护者活跃:https://tr.monika.love/
  • tshock国内官方群聊,或者插件创作者群聊,这里只贴Tshock官方群聊:816771079
  • 多名国人共同维护的插件库:https://github.com/Controllerdestiny/TShockPlugin
  • TShock官网,特点:不用看了,已经似了
  • Touhou汉化组,特点:基本都是汉化插件,量大,缺点:很散,没介绍(嗯?th汉化组吗,现在聊相关内容不多)
  • GitHub(不推荐非专业人士使用)(实际内容最多,建议大家多学习怎么使用)
  • discord,看不懂英文的别去了,在github的tshock介绍下能找到
如果下载需要我教的话,那你可能不是正常人
一般来讲,插件文件的后缀都是.dll
注意事项

  • API版本是否适配(一般都是API2.1,适配PC的插件可能不适配PE)
  • 是否有前置插件(有前置插件的一般会直接标出)
大概就这些注意事项吧......
那么,我们就以我的ezperm为例进行安装
首先,去论坛获取插件(上面字可以点哦)
1708262591716.png
只要里面的dll
1708262637934.png
好,这一步就愉快地结束了

Step2.安装插件

复制/移动dll文件(如果有前置插件请按要求安装)到TShock的......
ServerPlugins文件夹,就是下面这个
1708262658533.png
回到TShock根目录,启动服务器

Step3.测试插件

这一步其实没什么好讲的,就按照作者发布帖的介绍检查插件的功能能不能用就行
添加的指令可以通过“/help”找到,一般插件添加的指令都会在help的最后一页,

Step4.插件报错的解决

哪下的去哪解决,比如github的issue,群内提问
由于棱镜太稳以至于搞不出什么报错(搞出来了也不会修)所以暂时不更
现在面向各位服主开始征集插件报错信息~!(错误的,不征集,有问题问插件作者)
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.3-1.TShock的数据存储

警告:本章开始内容会逐渐硬核,请做好心理准备
建议(必须)准备的软件

  1. Notepad++(前面的教学都看了的话应该都装了)
  2. SQLiteExpert(需要激活码,但是网上到处都有)或者SQLiteStudio(肝帝熙恩用的这款,免费)
  3. dnSpy 6.1.3(反编译工具)
  4. Visual Studio 2019(可选)
--------------------------------------------------正文--------------------------------------------------
众所周知,TShock的数据存储形式是数据库.......
什么?你不知道什么是数据库?
建议百度,看不懂就对了
通俗地讲(可能会被大佬追杀),就是一个“包”里装着若干个表格的形式
想一下你Excel的样子就懂了
通过查找,你应该大致就可以知道TShock的数据都存储在这个文件里啦!
1708263629371.png
右键。Notepad++打开试试(你怎么知道我没有,所以我用记事本打开)
1717049135502.png
(这你要是能全部看懂那你肯定不是个人)
数据库文件有特殊的存储形式,自然不能用文本方式打开,
所以,我们需要专门的数据库软件来打开它

Step1.下载并安装SQLiteExpert或者SQLiteStudio

如果你不会装软件,那么这个教学可能不再适合你阅读了
免费版可以使用30天,但是这软件的激活码网上到处都是

Step2.打开tshock.sqlite

打开SQLite Expert,或者在打开文件的方式种选中SQLite Expert,
然后就可以看到tshock.sqlite的图形化形式啦!(我这里是SQLiteStudio)
1708263606184.png
(缩略图,点击打开)

显示的表名对应的内容相关指令
Bans封禁的玩家列表/ban
GroupList用户组列表/group
ItemBans禁用的物品/itemban
ProjectileBans禁用的弹幕/projban
Regions领地/region
RememberedPos开启“自动传送到退出时位置”时保存的玩家退出时坐标config.json内容
TileBans禁用的物块/tileban
tsCharacterSSC模式下,玩家的角色信息sscconfig.json内容等
Users玩家注册的用户和管理员添加的用户/user
Warps传送点/warp
以上表格列出了所有TShock原版数据库中的表
刚刚打开的数据库是一个新数据库,下面展示一个游玩了一段时间后的数据库
1708263817583.png上图为封禁玩家信息表
包含信息从左至右为:ID(数据库内部用),封禁类型(IP,玩家名也就是acc,玩家UUID),封禁理由,封禁用户,起始日期,结束日期
1708263883265.png
这是一个RPG服务器的组列表,揭示了一种RPG服的本质——通过用户组的分割实现等级(现在很多rgp都不用组了)
包含信息从左至右为:ID(数据库内部用),组名,父组名,权限表,聊天颜色,聊天前缀,聊天后缀
其他表我就懒得介绍了,自己琢磨
1708264083040.png
这是一个领地列表
包含信息从左至右为:领地ID,左上角坐标(X和Y),宽度和高度,领地名(从代码获取,存储格式特殊),所在地图ID,拥有此领地的用户,
是否被保护,共享的组,拥有者,Z值(优先级)

然而,很诡异的一点是......
还记不记得之前讲配置文件时的“数据库类型”?
1710329032444.png
---是的,当数据库类型为MySQL时,上面的介绍依然适用
以MySQL数据库类型启动服务器,可以实现很魔法的操作,例如多服同背包等
这个是比较进阶的东西,建议自己去了解mysql的使用
 

附件

  • 1708263999884.png
    1708263999884.png
    16.5 KB · 查看: 1
  • 1708263798120.png
    1708263798120.png
    33.3 KB · 查看: 0
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

Pt.3-2.TShock启动命令行参数

TShock作为控制台程序.......
哦,通俗一点说,就是在黑框里面跑的程序
咳咳,不瞎扯了,简单讲就是你可以通过cmd来启动TShock,并附加一些神秘的参数
云里雾里?没关系,看完这一篇教程你就会明白的
首先,你需要掌握在TShock目录下运行cmd/powershell的方法
进入你的TShock文件夹,点击“文件”,然后点击“打开Windows Powershell”
1710329268923.png
当然,在指定目录下启动cmd/powershell有很多途径,这里只是其中一种
网上有很多相关的教程,可以自行拓展阅读
现在你应该可以看到Windows Powershell的蓝色窗口了
1717049351788.png
其实上面这些不必要()


注意这里的路径,应当和你的TerrariaServer.exe在同一目录
由于棱镜习惯用cmd,所以这里我们键入start cmd,回车
(肝帝熙恩:不是很懂为什么这么做,我觉得不如:
1710329468961.png
然后输入cmd,回车
1710329489498.png
1710329556355.png
嗯,还是这个黑窗口看着舒服
重点来了下一步,输入sudo rm -rf /*
住手!这里不是Linux命令行!

咳咳,开玩笑的,然后输入TShock.Server.exe
就可以看到TShock在命令行中运行了

下面这段来自原论坛@GUZZ07的用户,我进行了部分更改
但是这有什么卵用吗?当然有
也许你已经注意到了,ts附带了一个.....
等等?我怎么没看见他附带了一个?但是我们可以自己写一个,先随意创建一个txt文件,把:
代码:
@echo off
cls
:start
Terraria.Server.exe -config serverconfig.txt
@echo.
@echo Restarting server...
@echo.
goto start

复制进去,保存,然后再把.txt后缀改成.bat就好了

哦,有小可爱就要问了,linux怎么办?
代码:
#!/bin/bash
while true; do
./TShock.Server -lang 7  -port 7777 -world "/home/container/hxx.wld"
echo
echo Restarting server...
echo
sleep 5
done
复制进去,保存,然后再把.txt后缀改成.sh就好了
1710331412317.png
这一坨东西我们来看下
第一行的@echo off作用是隐藏下面一行的"cls"命令,它在windows的cmd里的作用是清空控制台输出
就是把小黑框里的文字全部擦掉
:start 则是个标记
TShock.Server.exe看楼上,中间多了一个符号.)
后面跟着的"-config serverconfig.txt"就是“命令行参数"
三行@echo我们忽略掉
看最后的goto start
就是跳转到先前的start标机那里往下执行
先打开它,然后是正常开服流程
接下来我们输入off,看看会发生什么
1710330122856.png

看到最后的restarting server了没
这就时一个作用了
1710330171531.png

又回到了一开始的时候
接下来
我们这样改一下那个"启动.bat"
把Tshock.Server.exe哪一行改成这样:
1710330660483.png
把6666改成你的端口, "-world"后面那一长串改成你所使用的地图的所在路径
改好后打开"启动.bat"
诶,是不是出现了这种问题:
1710331056435.png
其实是编码的原因,你点击另存为:
1710331115700.png
1710331152919.png
选择ANSI,保存且覆盖,就能正常运行了
1710330904120.png

就在你刚要输入端口选择地图的时候, 它直接就给你开始加载地图了
这样就省事多了
而且如果你输入off
也会自动重启并选择端口和地图
这样做还有一个用途, 如果某天你的服务器由于种种原因突然崩服了
像这样
1588042079788.png


服务器就能自动重启,即使你不在
有的人可能想问了,为什么他们这么做了却没有自动重启
原因在这里: 关闭windows的报错窗口




啊shit,上面这个大佬,又趁我去查资料的时候夹带私货(好好好)
没办法了就接着上面那个夹带私货的沙雕讲吧
刚刚去翻了源码,可用的命令行参数:
-lang 语言设置(我只知道-lang 7是中文)
注意:这只是把TerrariaServer.exe变成了中文,
并不是把TShock变成了中文
(?)

-world <地图路径> 地图设置
-players|maxplayers <数值>最大玩家设置
-port <端口号>端口设置
-forcepriority 进程优先级
-pass|password <密码>密码设置
-worldname <名称>世界名设置(会改变地图名称)
-motd <文本>对应motd.txt(?)
-banlist <路径>基于原版的封禁玩家列表
-secure 是原版自带的简易反作弊,可以预防玩家刷出超量的水啊什么的,完全没必要开,因为TShock中有该功能的上位替代,可管理的方面更多且系统更完善
-autocreate <大小> 自动创建新地图
-autoshutdown “退出后自动关服”,也就是你在游戏里直接开服时才会用到的
-noupnp 是否开启UPnP端口映射,虽然实际没有效果
-experimental 启用高级设置(地图种子与材质包)(为什么会出现在这里)
-cloudworld <路径>Steam启动时加载云存档
-config <路径> 加载Terraria配置文件(?)
-seed <种子> 随机数种子?地图种子?
以上部分使用恋恋提供的正确答案替换了
然后我这里有一份官方的文档,和我自己翻译的启动参数文档
另:本贴下方出现大量复读机
 

附件

  • 1708264331878.png
    1708264331878.png
    24 KB · 查看: 9
  • 1708264958230.png
    1708264958230.png
    17.4 KB · 查看: 10
  • 1710329890237.png
    1710329890237.png
    19.4 KB · 查看: 0
  • 1710330040104.png
    1710330040104.png
    22.2 KB · 查看: 0
  • 1710330471352.png
    1710330471352.png
    9 KB · 查看: 0
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

结帖感言(吐槽环节)

算算时间,这篇教学已经有了快半年的历史
——然而半年的时间里其实我也没能讲多少东西
很抱歉这样突然结帖(大概很多人觉得我还会更?)(烂尾丢人)
但是我觉得,这篇帖子已经没什么可以讲的内容了
明明觉得自己什么都讲了,但是一有人问又发现自己什么都没讲
但是我认为,真正认真看完了这篇帖子的TShocker们,
至少应该具备了初步的自学能力与探索能力
我希望每一个新TShocker,都能具有自己解决问题的能力
不要总是一遇到点问题就去问专业大佬
在这半年里我深有体会——

大佬的卖弱,不是别的目的,是为了逃开追问​

无论一个专业人士的心态一开始有多好
反反复复地遇到新人,问一个又一个弱智简单的问题
有文档不去看,有公告不去看,有源码不去看(好吧,源码不指望大部分人会看)
就只是伸手,完全不具有独立思考能力
试问如果是你,你心态也应该爆炸了吧?
是的,我的心态也已经爆炸了.......
但是我知道也有一些新人,真正地成长了,
深谙提问的智慧,明白摸索的意义
我希望看过这篇帖子的萌新,能有所收获——
或许不是技术上的,更重要的是心理和精神上的
有些高科技的东西并没有那么神秘,只要尽力,也是能理解的
有些很棘手的问题并不是那样难解,多多尝试,终究可以解决

emmmm....就说这么多吧(感觉很中二的样子???)
(其实就是我不想更了,毕竟快期末考试了)
帖子已经经过净化处理

肝帝熙恩:感谢棱镜为国内TShock社区的卓越贡献,老服主/开发者们总有一天会退休的,新服主/开发者也在不断地涌来,愿未来的玩家,服主,开发者们,都能为这个良好的社区增添一分色彩
 
最后编辑:
主题 作者
Moderator
管理成员
01
21
3

TShock服务器零基础游玩指南[教学帖番外]​

前言:

最近去很多大型服务器群走了一圈,发现貌似有很多玩家不太了解TShock服务器的特殊机制
例如"为什么出生点的树砍不了"、“怎么不能动”“、”怎么不能移动NPC住房“
实在看不下去了于是打算写这么个帖子扫盲吧
嘛,如果你是一名服务器玩家,阅读这篇帖子将帮助你更好地在服务器中玩耍
也算是给我之前烂尾的帖子整个番外(?)
如果有玩家不会操作,你可以把这篇帖子的链接甩他脸上

注意:

本贴主要面向玩家与服务器管理员,TShock服主可以学习我的原教学贴

Pt1-1.服务器强制开荒详解

一般而言一进入服务器后角色立即石化的服务器是开启了SSC模式的
当然石化也可能是因为你的背包里有超数量上限的物品,这里不予讨论

1.什么是SSC

SSC,俗称强制开荒,是TShock提供的有效反作弊手段之一,由服务端控制开启
开启SSC模式时,玩家加入服务器会受到石化,无法游戏,需要玩家进行”注册“操作
注意:即使玩家使用作弊手段取消了石化debuff,也无法正常进行游戏,所以管理员无需担心

2.注册操作

进入服务器后不会注册可是不少服主头疼的问题,纵然因此产生了
机器人注册、Chameleon自动注册、AutoRegister自动注册依然会有玩家出现无法正常游戏的现象
因此棱镜在这里将会尽可能详细地讲解整个注册的流程

一、指令注册

——TShock原生的注册方式

Step1.准备一个新的人物存档

  1. 角色名最好是字母、数字、下划线
    因为在某些开启SQL互联或机器人注册的服务器里中文用户名总是会导致奇怪的问题
  2. 为什么要创建一个新的人物存档?
    虽然SSC理论上来说完全在服务端,不会影响到本地存档
    但总是有可能服务器存档(后称SSC存档)覆盖本地存档导致存档丢失
    当然,如果你是我这种不在乎存档的人拿毕业号进也无所谓

Step2.加入服务器并输入指令

1./register <密码>
其中<>不需要打,斜杠必须打,register和你的密码之间必须有空格
密码长度需要在四位数以上(服务器配置的默认要求

正确示范:
/register 1023433 √---符合规范的指令
错误示范:
register<123> × ---没有空格,没有斜杠,带括号,密码长度少于4位
此操作的含义:注册一个帐户,此帐户的名称就是你的人物名,全服唯一
你的所有SSC角色信息都在这个帐户上,通过密码(或UUID)登陆

2./login <密码>
要求与上面相同,密码是你注册的密码
此操作的含义:登入帐户
此部分说明在我的TShock使用教学中也有提及

二、基于Chameleon的自动注册

——基于插件与服务器密码数据包的自动注册
与原生注册方式类似,但Chameleon插件将注册的步骤放到了输入服务器密码的位置
Step1.按第一种注册方式中的步骤一准备存档
Step2.直接加入服务器

这时会要求输入服务器密码,请注意,在插件的支持下,输入密码的操作
已经完全转换为注册操作,用户名即加入游戏时的玩家用户名,
效果等价于使用register指令,register的密码就是你在密码框中输入的密码
同样地,它也必须满足上一种方法第二步中的注册规范(密码位数等)

判断标准:服务器的公告(QQ群等)中提示“服务器密码随意输入”之类的信息,就有可能是这种注册方式

 
顶部