虽然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分钟备份一次人物存档就设置好了。
相关截图:
个人习惯将单个服务器的文件都存放在一个大目录下,目录以Sxx为名,例如S20就代表第20个服。这样方便管理,而且使用相对目录的方式,开新服的时候可以直接拷贝脚本,而无需做而外的修改。
<!--more-->
反作弊
反作弊是通过导出玩家存档实现的,强制开荒的数据可以使用 Playerexport 插件进行导出下载地址:https://www.bbstr.net/r/playerexport-ts.42/。在游戏里或者控制台上输入/export all指令可以导出全部玩家的存档。如果你想导出某一个时刻的人物存档,建议将备份的数据库文件,拷贝到本机,本机搭个临时服务器将其导出。
访问这个地址可以快速查看单个玩家人物数据,地址:http://yal.cc/r/terrasavr/
熔炉 和 虚空袋里的物品亦可查看。服主只是不想查,要查还不是一查一个准。