虽然TShock有强制开荒功能,一般情况下无法带物品进来。但刷物品的方法仍然层出不穷,有些人自以为高明,无视警告,仍然无休止的刷物品,还装得跟自己欧皇爆表一样,不仅大大影响游戏体验,还欺骗了大家伙感情。写这篇文章时我多少是有些气愤的。

最近的一次开荒中,明显感觉到有刷物品的情况,抽查发现大吃一惊,想起前段时间有个服主在泰拉论坛上求反作弊方法,唉,服主既要自己掏钱,又要花时间和精力来开服务器,还要时刻防着这些作弊的人来捣乱。。。

备份
开过一次中核玩法的服务器,就是那种死亡掉落所有物品的那种,那次翻车了,毁灭者屠了家,装备掉了有捡起来,你的我的傻傻分不清,最关键的是大部分物品居然消失了。也就是从那时开始,意识到备份的重要性。

强制开荒的人物数据保存在 tshock.sqlite 文件中,这是一个数据库文件,备份好它,就保住大家的人物存档。

于是写了这个shell脚本。

# 获得本sh所在目录
sh_path=$(cd `dirname $0`; pwd)
sh_name="${sh_path##*/}"
timeStr=$(date -d today +"%Y%m%d_%H%M_%S")

# 存档目录
sourceDir="$sh_path"/tshock
backDir="$sh_path"/tshock-Back
sourceFile="$sourceDir"/tshock.sqlite
backFile="$backDir"/tshock_"$timeStr".sqlite


# 如果文件夹不存在,则创建
if [ ! -d "$backDir" ]; then
    mkdir "$backDir"
fi

echo "正在备份:""$backFile"
cp "$sourceFile" "$backFile"

# 检查备份结果
if [ ! -f "$backFile" ]; then
    echo "备份失败,""$backFile"
fi

echo "操作完成!" 

将以上脚本内容保存为sh,并将其设置为可执行,然后运行脚本进行一次备份:

[root@aliyun S20]# chmod +x ./back_db.sh
[root@aliyun S20]# ./back_db.sh
正在备份:/root/S20/tshock-Back/tshock_20210522_2119_45.sqlite
操作完成! 

开启定时备份
使用crontab定时执行back_db.sh 即可实现备份。

查看和编辑定时任务

crontab -e
然后按下i键,进入编辑状态,输入下面内容

/10 * /root/S20/back_db.sh
输入完成后,按下esc键,然后输入“:wq”,保存并退出刚才设置的定时任务。

接下来让刚才的更改生效。

service crond restart
至此每隔10分钟备份一次人物存档就设置好了。

相关截图:

48358-qyb1klbo47_20221120075616.png

31890-teopz19mbm9_20221120075624.png

19459-hxocav05iv_20221120075631.png

个人习惯将单个服务器的文件都存放在一个大目录下,目录以Sxx为名,例如S20就代表第20个服。这样方便管理,而且使用相对目录的方式,开新服的时候可以直接拷贝脚本,而无需做而外的修改。

59255-111qkvp9w48e_20221120075649.png

<!--more-->

反作弊
反作弊是通过导出玩家存档实现的,强制开荒的数据可以使用 Playerexport 插件进行导出下载地址:https://www.bbstr.net/r/playerexport-ts.42/。在游戏里或者控制台上输入/export all指令可以导出全部玩家的存档。如果你想导出某一个时刻的人物存档,建议将备份的数据库文件,拷贝到本机,本机搭个临时服务器将其导出。

访问这个地址可以快速查看单个玩家人物数据,地址:http://yal.cc/r/terrasavr/

27830-9ilnj3hxins_20221120075736.png

72866-sawkvkcfgl_20221120075744.png

81090-yzy858pzcaj_20221120075752.png

85143-6u8bughx3sp_20221120075758.png

46224-de1wtcy3ztk_20221120075807.png

43238-c28ekzq94vc_20221120075814.png

熔炉 和 虚空袋里的物品亦可查看。服主只是不想查,要查还不是一查一个准。


扫描二维码,在手机上阅读!