• 欢迎!在发帖前请阅读每个板块置顶的版块须知。论坛 QQ 群:931748551
    鼓励大家多多发帖,这里有问必答。论坛左下角可切换明亮 / 黑暗模式哦。
Watcher

服务端插件 Watcher 1.2.0.1

*此贴搬运自泰拉瑞亚中文论坛,已获原作者授权。

原帖地址:https://www.bbstr.net/r/121/

原作者:zhi


适用版本:1.4

前置Mod/插件:TShockAPI

API版本:tshock 5.1.3

开源地址:https://github.com/skywhale-zhi/Watcher

Watcher

一个泰拉瑞亚tshock插件,主要用于游戏管理检测物品作弊
每次更新插件时最好删掉WatcherConfig.json配置文件,不然会出错

功能介绍


  • 对游戏内玩家行为的详细信息进行记录
记录每个玩家手里拿着什么物品丢弃什么物品
生成什么射弹(在有人炸图或乱喷腐化溶液的时候可以快速找到嫌疑人)
均记录在Watcher文件夹内的logs里,玩家作弊信息记录在cheatlogs
  • 一定程度上检测作弊的插件
多杆钓鱼检测,检测到多线钓鱼进行惩罚
弹幕伤害过高检测(排除了冲击波和尖桩发射器)貌似新更新的永夜,断钢剑,真永夜等搭配狂战士手套会误触发高伤bug而被tshock的检测网住,建议关掉原版的检测
超游戏进度的物品检测(因泰拉更新导致这类可能会出现误判,若遇到误判物品建议手动添加到豁免物里并反馈),检测原理在最后一个部分 其他 处介绍
星璇机枪卡bug,手机端bug,如果你不使用跨版本插件让手机端进入服务器,这个功能没有任何作用(还是有bug,修不好了,你还是把他关了吧)
强制卸下肉前恶魔心饰品栏中的物品,公平开荒(不计入作弊次数),因为泰拉恶魔心效果记录在玩家端而不是服务器端,导致同一时间开荒有的玩家7饰品栏有的玩家6栏
可以设置惩罚方式,对有作弊行为的玩家施加惩罚,惩罚类型很多可以去配置文件讲解区查看,超过限定允许的次数时强制ban掉,可在WatcherConfig.json里改允许次数,或关闭作弊检测,再控制台里 /reload 即可生效。
作弊玩家信息记录在 cheatplayers.json 里,作弊记录都写在在 cheatLogs 里
  • 允许设置生物不可被玩家伤害
可以用这个功能保护boss,强制玩家不能快速推进度。管理员可以用 /clear npc 清除npc,或 者用插件指令解除npc保护。目前可以保护敌怪免受任何玩家伤害,但不能保护友方npc或中立生物免受敌怪秒杀级别伤害
  • 自动备份tshock.sqlite文件
原版tshock只备份了地图,sqlite文件没有备份,而又有极低的概率损坏玩家的存档,可设置备份时常间隔。不用担心日志过多,会自动清理,可改日志的备份时常,间隔,允许日志大小。

指令

  • 权限1: [无,任何人都能使用]
  • 指令1: /watcher help
  • 功能1: 查看这个插件的所有指令介绍,帮助快速上手

  • 权限2: watcher.locknpc
  • 指令2: /locknpc npc.id或boss名称或boss名称拼音缩写
  • 功能2: 保护这个npc不会被伤害和杀死,管理员可以使用/clear npc来清除npc

  • 权限3: watcher.unlocknpc
  • 指令3: /unlocknpc npc.id或boss名称或boss名称拼音缩写
  • 功能3: 移除受保护的npc

  • 权限4: watcher.listlocknpc
  • 指令4: /listlocknpc
  • 功能4: 列出所有受保护的npc

  • 权限5: watcher.adduncheckeditem
  • 指令5: /adduci item.id
  • 功能5: 该插件的物品作弊检查功能不会检查这个物品,添加到豁免名单里

  • 权限6: watcher.delunchecheditem
  • 指令6: /deluci item.id
  • 功能6: 移除这个物品不会被检查的效果,移除豁免名单

  • 权限7: watcher.listuncheckeditem
  • 指令7: /listuci
  • 功能7: 列出所有避免被检查的物品

  • 权限8: watcher.addmustcheckeditem
  • 指令8: /addmci item.id
  • 功能8: 设置该物品为必定检查(覆盖上面的免检查效果)

  • 权限9: watcher.delmustcheckeditem
  • 指令9: /delmci item.id
  • 功能9: 删除该物品为必定检查

  • 权限10: watcher.listmustcheckeditem
  • 指令10: /listmci
  • 功能10: 查看所有被强制检查检查的物品

  • 权限11:watcher.clearcheatdata
  • 指令11-1:/clearcd [玩家名字]
  • 功能11-1:输入name来清理该玩家的作弊次数记录
  • 指令11-2: /clearcdall
  • 功能11-2: 来清理所有玩家的作弊次数记录

  • 权限12:watcher.check
  • 指令12-1:/check [玩家名字]
  • 功能12-1:立刻检查这个玩家的所有物品是否符合规范
  • 指令12-2:/check all
  • 功能12-2:立刻检查所有人的物品是否规范

用法介绍

直接将插件放置于tshock插件文件夹里即可,默认修改控制台为中文,可改。

你可以在Watcher/logs文件夹里看到玩家日常信息搜集,在watcher/cheatlogs文件夹里看到作弊信息搜集,在Watcher/tshock_backups文件夹里看到备份的sqlite文件,在WatcherConfig.json里修改你需要的各种配置信息。在 cheatplayers.json 里查看哪些玩家作弊

输入 /locknpc kslzy 或 /locknpc 克苏鲁之眼或 /locknpc 4 或 /locknpc ky 或 /locknpc 克眼 那么克苏鲁之眼和克苏鲁之仆均不能被玩家杀死(对于boss,一次添加会同时保护boss和大多数boss的仆从,肢体等,这里 /locknpc 4 同时保护了克眼和仆从,对于机械骷髅王还会同时保护四个钳子,不需要用户一个一个输入指令来保护)

输入 /unlocknpc ky 将同时解除boss的仆从,肢体保护

输入/listlocknpc来查看哪些npc被保护

输入 /adduci 2624 来将海啸设置为不被检查的物品,因为Watcher插件有物品进度检测功能,在打败猪鲨之前获得海啸会被认定为作弊,使用此指令将该物品设置为豁免物,避免被检查

WatcherConfig.json配置文件介绍

一个可以详细修改功能的文件,修改后在控制台或游戏内使用 /reload 即可生效,下面对每个项进行了解释

JSON:
{
  "是否备份tshockSql": true,
  "tshockSql备份间隔分钟": 20,                                //每隔20分钟自动备份一次
  "tshockSql备份时常分钟": 2880,                       //备份时长超过2880的备份会被自动删除
  "启用物品作弊检测": true,                         //是否启用物品作弊检查
  "单人物品检测概率": 0.2,              //单人触发检查概率为20%,不建议调太高,小于0时关闭,大于1时概率恒等于100%,触发原理为拿起或丢掉一个物品
  "全员物品检测间隔时间秒": 361,                    //每隔361秒对服内所有在线玩家进行检查,不建议调过低,会增加服务器负担
  "不需要被作弊检查的物品ID": [],               //在这里添加你不想要被检查的物品,比如误判物品
  "必须被检查的物品_覆盖上面一条": [],    //顾名思义,必定检查物品,会强制检查豁免物
  "物品作弊警告方式": 3,          //警告方式,下同,范围 0 ~ 5 整数,0为私聊口头警告,1为公告广播警告但不惩罚,2为公告广播警告并网住玩家一段时间,3为公开警告,并直接杀死玩家,4为直接踢出 ,5 为直接封禁,不建议用 5
  "物品作弊是否计入总违规作弊次数": true,   //总违规次数相当于原谅额度,不计入就只有警告方式的惩罚,其他啥事没有,当然你可以直接警告方式设为4,更暴力,总违规次数反而没什么意义了
  "检测到违禁物时是否清空": true//顾名思义
  "启用射弹伤害检测": true,
  "射弹最大伤害": 3000,      //射弹超过这个伤害判定为作弊
  "伤害作弊警告方式": 3,     //见上
  "伤害作弊是否计入总违规作弊次数": true,  //都见上
  "启用浮标数目检测": true,
  "最大浮标数目": 1,    //最多允许一个浮标钓鱼
  "钓鱼作弊警告方式": 3,
  "钓鱼作弊是否计入总违规作弊次数": true,
  "是否启用pe版星璇机枪bug检测": true,
  "星璇机枪作弊警告方式": 3,
  "星璇作弊是否计入总违规作弊次数": true,
  "是否禁用肉前恶魔心饰品栏": true,  //此功能不会算做违规作弊,仅算作一种强制执行指令而已
  "最多违规作弊次数": 10,    //超过这个次数直接封禁 ban ,没什么好说的
  "需要被检测的玩家组": [  //只有在这些玩家组的用户才会被作弊检测检查
    "default",
    "vip"
  ],
  "被保护的NPC": [   //这里填入你要保护的npc,比如这里是所有的蓝色史莱姆
    1
  ],
  "怪物捡到钱时是否消失": false,     //一个鸡肋功能,原本打算防止玩家卡捡钱bug,默认关闭,该功能不会清理稀有精英怪和Boss
  "消失要求的钱币上限": 100000,     //当怪物捡到 0 ~ 上限  的钱数时会消失
  "是否把对话内容写入日志": true,   //都是写入watcher的日志,不是tshock日志,为了防止日志变得太对太难看而已。
  "是否把丢弃物写入日志": true,    //有时候因网络卡顿,某些丢弃物会反复写入多次,建议管理依照记录时间自行判断信息,下同
  "是否把手持物写入日志": true,
  "是否把生成射弹写入日志": true,
  "任何日志的备份时常分钟": 21600,   //超过这个时间的旧日志会被自动删除
  "日志和作弊日志文件的最大MB": 5,   //超过这个大小自动创建新日志
  "拿持日志中的豁免物品ID": [2, 3],    //为了防止日志记录一堆无效信息,会自动排除不写入相关物品的信息,这里的 2, 3 仅是例子,该插件已设定好默认的名单无需手动搜集
  "丢弃日志中的豁免物品ID": [0, 2 ],   //这里同上
  "射弹日志中需要记录的危险的射弹物ID": [10, 11,]  //这里是需要记录的危险射弹,如炸弹,腐化粉,黄沙溶液,血水等,该插件已设定好默认的名单无需手动搜集
}

CheatPlayers.json
一个用来保存作弊玩家信息的配置文件,防止在服务器关机后那些作弊玩家的数据丢失,不建议修改名称和UUID的数据,使用 /reload 指令依然有效

JSON:
{
  "Message": [
    {
      "名称": "熊孩子",             //捣乱者的名字
      "UUID": "xxxxxx12345678xxxx",    //UUID,方便管理直接ban掉他
      "是否钓鱼作弊": false,   //顾名思义,下同
      "是否伤害作弊": false,
      "是否物品作弊": true,
      "是否星璇作弊": false,
      "总违规次数": 5
    }
  ]
}

其他(几乎都在上面说过了但我还要说一遍)

- 射弹检测排除了特殊武器,新更新的永夜,断钢剑,真永夜等搭配狂战士手套会误触发高伤害bug让tshock的检测系统误判,建议关掉原版的检测再开插件检测

- 物品检测其实就是根据游戏进度,查询玩家库存是否携带超进度物品,新的加了三种检测算法,一是根据地图图鉴来鉴定该生物是否被击杀,管理可以通过图鉴验证该生物的掉落物是否合理,只要该生物解锁(被玩家击杀了一次),掉落物就合理,但要注意,完全由岩浆和陷阱杀死的敌人不会算作图鉴里,只要你击中这个怪物一次那么由岩浆陷阱杀死的怪就算到图鉴里了,所以完全偷懒的方式获得的掉落物依然会被检测到。二是检查所有物品的合成物配方和材料组成,检查其下级合成物,但不会检查下级合成物的下级合成物。三是检查插件设置的一些数据,用于补全上述两种方法漏下的物品和一些地图种子,奇怪的东西的误判的东西的判断和修正。由于泰拉物品太多,若有物品判断错误请将它加入豁免物里并及时反馈(东西真的太多了,难免有误判的物品)。若是用户使用特殊地图,地图里包含正常地图不应该存在的超进度物品,则需要用户注意,避免错误踢人,可以在豁免物里写入这些物品。

- 新增了惩罚方式的选择,使用处在配置文件区,警告方式,范围 0 ~ 5 整数,0为私聊口头警告,1为公开警告但不惩罚,2为公告广播警告并网住玩家一段时间,3为公开警告,并直接杀死玩家,4为直接踢出 ,5 为直接封禁,不建议用 5

- 该插件日后缓慢更新


已知BUG

这里主要记录目前该插件发现的bug,因为插件更新要审核,物品太多导致bug多,我又不能修正一个误判物品更新一个插件,这里做下统计,希望插件使用者注意一下,若发现问题欢迎反馈。

  • 微光分解泰拉刀可能会出现射弹伤害溢出的bug(我没触发过,但有人触发过,可能和配饰装备有关)
  • 星璇机枪检测不太准。。。。
  • 因微光分解大大混乱了一些物品的获得方法,我没有对所有的分解做出豁免,比如你未打败鹰身女妖却分解重力药水获得羽毛就会检测到作弊,建议管理员在询问爆出作弊的玩家时多问问那个人干了什么



代码很烂请大佬不要在意,欢迎大家使用(我太懒了,可能好久没更新github上的了)

开源地址:https://github.com/skywhale-zhi/Watcher
作者
zhi
下载量
92
查看
230
发布时间
上次更新时间
评分
0.00 星 0 星