找回密码
 现在就去注册!
搜索
热搜: 活动 交友 discuz
查看: 973|回复: 1

TTKDAA(Tatako AI)使用

[复制链接]
  • TA的每日心情
    开心
    2025-3-29 16:34
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    69

    主题

    38

    回帖

    291万

    积分

    官方人员

    积分
    2915617
    发表于 2025-3-29 15:06:12 | 显示全部楼层 |阅读模式
    导言:
    Tatako的AI反自动瞄准检测(简称为TTKDAA)是由云驱动的检测。我们开设了官方的AI服务器(简称官推),也公开了服务端和一些技术细节,在此帖子。
    TTKDAA如何工作?


    客户端(反作弊程序) ——网络发送瞄准数据——> 服务端(使用AI模型评估外挂概率)——网络发回评估结果——> 客户端(反作弊程序)警报作弊者

    服务器需要算力支持,所以你需要:
    自行下载服务端部署AI推理服务器 / 购买官方或第三方开设的AI推理服务


    高版本(> 1.12)服务器请勿使用Tatako作为客户端,你应该使用 https://github.com/tjshtqwq/TTKDAAClient
    拥有攻击冷却的服务器不要使用Tatako AI。



    1、在Tatako插件中设置。

    注意:以下为由河众开发组自行开设的推理服务器(简称官推)进行的收费,如果您不想购买请跳过这里
    Tatako一直公益,由我进行开发。如果您可以购买或捐助我(和整个开发组),我(和整个开发组)将不胜感激
    令牌申请:[email protected] / [email protected]
    令牌价格:(单位:人民币,外币按照当天汇率兑换)
    令牌派发:0.1CNY,附赠1000请求配额。

    * 如何判断您的服务器需要多少配额?
        TTKDAA需要20游戏刻(正常为1秒)的瞄准数据进行检测。在持续攻击且玩家转头的时候,1秒会消耗一次请求。
        但是玩家不是每时每刻都在攻击,所以正常很难做到1秒一次请求。
        日活10人的竞技场服务器一天大约需要消耗几千到几万次请求。
    * 如果认为官推价格过贵(服务器玩家过多),如何才能使用低价的服务?
    1、如果您的服务器是公益服务器,那么价格会比商业服务器的价格低50%以上(没有额外打折的情况下)。
        2、如果您有服务器运行Windows 7或Windows Server 2008以上版本的系统,或拥有Windows兼容层,可自行下载服务端部署AI推理服务
        3、查看帖子查看免费获取官推的渠道(如果你没有Windows服务器或不会使用Windows兼容层

    官推 请求配额价格
    商业服务器:
    每10000请求 1CNY
    每30000请求 2.5CNY
    每50000请求 3.5CNY
    每100000请求 5CNY
    公益服务器(可联系我获得免费的令牌,根据您的服务器玩家数量附赠一些请求配额):
    每10000请求 0.5CNY
    每30000请求 1CNY
    每50000请求 1.5CNY
    每100000请求 2CNY
    接受的支付方式:微信支付,支付宝,银行卡转账
    公益服务器可额外获得获得最高80%的优惠。大量购买可继续降低价格。
    商业服定义:通过充值可以获取在游戏中的任何优势(包括间接的)。形式包括但不限于直接加成,额外套装等。
    服务器地址:http://ttkdaa.hezhongkj.top/predict
    请在config.yml文件中设置您的服务器地址和令牌。
    向我提供无污染的AI数据,帮助我改进模型,可1:0.5(商业服务器)或1:1(公益服务器)获得免费的请求配额。

    2、自行部署:
    前往https://bbs.hezhongkj.top/down/ttkdaa_server.zip下载服务端并解压缩,运行run_server.exe,等待启动后使用help命令查看命令用法
    你可以配置config.ini,包括启用cuda,配置端口和ip等。
    不会的可以找我寻求帮助。你可以使用服务端的WebUI Panel功能方便的管理。
    默认配置:

    1. [server]
    2. host = 0.0.0.0
    3. port = 55555
    4. index_info = Hezhong technology ttkdaa server
    5. # 启动面板?
    6. panel = True
    7. # panel_url指定面板地址,例如设置为114514,则访问地址为:地址:端口/114514
    8. panel_url = panel
    9. max_memory = 2048
    10. # 内存警告阈值。单位:MByte。默认2048M
    11. clean_memory = 1000
    12. # 每几次请求清理内存。默认1000
    13. [prediction]
    14. # True if you want to use GPU, ONLY NVIDIA GPU AND YOU MUST INSTALL CUDA AND CUDNN!!!
    15. # 如果要使用GPU,设置为True。只能用Nvidia的GPU!你要安装Cuda和Cudnn!
    16. # GPU的跑分可能不高,但并发可以
    17. cuda = False
    18. model = model.ttkdaa

    19. encrypted = True
    20. # 加密模型?
    21. key = 114514
    22. # 安全密钥,长度32字节
    23. [auth]
    24. user = admin
    25. password = admin
    复制代码

    注意:你可以使用GPU推理,但是目前只支持NVIDIA GPU。你需要安装CUDA和CUDNN才可以使用GPU。
    CUDA 下载:https://developer.nvidia.com/cuda-toolkit
    CUDNN 下载:https://developer.nvidia.com/cudnn
    下载需要NVIDIA账户,自行注册。

    注意:使用一台带有Windows 7及以上系统的计算机。不支持Windows XP等系统。
    原则上不支持Linux,如果你希望在Linux上使用推理服务器,请使用Wine。请在网络上自行查找Wine安装使用教程。不要通过除了Wine以外的方式在Linux上使用推理服务器。
    如果你使用MacOS,请你使用其他办法兼容(可以使用虚拟机)或购买一台云服务器。


    允许使用TTKDAA服务端向外开设推理服务并收费,但要求:
    禁止冒充TTKDAA开发者(我)进行收费,在进行收费前请告知你的用户此项目的所有者及官方论坛和群聊。
    最高收费不能超过25CNY每十万次请求

    广告:没有服务器部署服务端?立即注册雨云:[https://www.rainyun.com/tjshawa_](或优惠码tjshawa),首月5折,多地区云服务器/游戏云低价使用!
    无论是开网站,Minecraft服务器,部署推理服务(GPU打赢复活赛了),又或是加速ip,都可以来!(河众论坛和主站均托管于此,稳定运行1年未因服务器原因炸掉)
    (注册后绑定微信了私信发我可以免费送令牌,至少也给20000次)



















  • TA的每日心情
    开心
    2025-3-29 16:34
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    69

    主题

    38

    回帖

    291万

    积分

    官方人员

    积分
    2915617
     楼主| 发表于 2025-3-29 15:06:44 | 显示全部楼层
    请求方式:
    HTTP协议,不支持SSL,POST方式。
    地址:服务器地址/predict,注意最后没有斜杠。
    例如:http://ttkdaa.hezhongkj.top/predict
    提交data和token。
    data为提交的数据,为100维浮点数组。data为一个浮点数组,格式为:
    deltaPitch * 20 + joltPitch * 20 + angle * 20 + joltYaw * 20 + deltaYaw * 20
    (加号代表拼接数组,* 20代表这是一个20维浮点数组。相当于把五个包含20个浮点数据的数组拼接在一起。)
    (也就代表拼接后的数组的前20维是20gt的deltaPitch数据,21-40维为20gt的joltPitch数据)
    注意你不应该在玩家没有转头或移动的情况下收集数据。我们推荐在玩家战斗后的5gt内收集数据,5gt后不要再继续收集,直到下一次攻击。如果玩家在持续攻击,那么可以一直收集数据。

    下载Tatako的AimS代码参考使用: AimS.java (7.24 KB, 下载次数: 0)


    所有数据都是非负的,使用abs。
    deltaPitch:一个tick内pitch的变化。
    deltaYaw:一个tick内yaw的变化。
    joltPitch:一个tick内pitch的加速度。计算:
    1. Math.abs(deltaPitch - lastDeltaPitch)
    复制代码
    joltYaw:一个tick内yaw的加速度。计算与pitch相同。
    angle:玩家实现相对于目标判定箱中心的角度。
    1. Vector playerLookDir = data.getPlayer().getEyeLocation().getDirection();
    2. Vector playerEyeLoc = data.getPlayer().getEyeLocation().toVector();
    3. Vector entityLoc = target.getLocation().toVector();
    4. Vector playerEntityVec = entityLoc.subtract(playerEyeLoc);
    5. double angle = playerLookDir.angle(playerEntityVec);
    复制代码
    请求示范:
    1. package com.tjshawa.tatako.check.impl.combat.aim;

    2. import com.google.gson.Gson;
    3. import java.io.*;
    4. import java.net.HttpURLConnection;
    5. import java.net.URL;
    6. import java.util.List;

    7. public class AimbotDetector {
    8.     private static final Gson gson = new Gson();

    9.     private static class DetectionRequest {
    10.         List<Double> data;
    11.         String token; // 新增token字段

    12.         DetectionRequest(List<Double> data, String token) {
    13.             this.data = data;
    14.             this.token = token; // 初始化token
    15.         }
    16.     }


    17.     // 响应体数据结构
    18.     public static class DetectionResponse {
    19.         String message;
    20.         double predicted;
    21.     }

    22.     public static DetectionResponse predict(List<Double> data, String token, final String SERVER_URL) {
    23.         // 构建请求对象
    24.         DetectionRequest request = new DetectionRequest(data, token);
    25.         
    26.         // 创建HTTP连接
    27.         HttpURLConnection connection = null;
    28.         try {
    29.             URL url = new URL(SERVER_URL);
    30.             connection = (HttpURLConnection) url.openConnection();
    31.             connection.setRequestMethod("POST");
    32.             connection.setRequestProperty("Content-Type", "application/json");
    33.             connection.setRequestProperty("Accept", "application/json");
    34.             connection.setDoOutput(true);
    35.             connection.setConnectTimeout(5000);
    36.             connection.setReadTimeout(10000);

    37.             // 发送序列化请求
    38.             try (OutputStream os = connection.getOutputStream();
    39.                  OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8")) {
    40.                 gson.toJson(request, osw);
    41.             }

    42.             // 处理响应
    43.             int status = connection.getResponseCode();
    44.             if (status == 200) {
    45.                 try (InputStream is = connection.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "UTF-8")) {
    46.                     DetectionResponse response = gson.fromJson(isr, DetectionResponse.class);
    47.                     return response;
    48.                 }
    49.             }
    50.         } catch (Exception e) {
    51.             e.printStackTrace();
    52.         } finally {
    53.             if (connection != null) {
    54.                 connection.disconnect();
    55.             }
    56.         }
    57.         return null;
    58.     }
    59. }
    复制代码






    您需要登录后才可以回帖 登录 | 现在就去注册!

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Hezhong |网站地图

    GMT+8, 2025-8-30 13:41 , Processed in 0.103291 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表