教程
  1. 插件播报教程
教程
  • 自挂教程
  • dulu框架NT自挂教程
  • 常见问题回答
  • 代挂网址登录教程
  • 命令上传福利教程
  • NT安装教程
    • LLOneBot-单服务器(非常稳定)
    • 萌QNT自挂方法(单服务器1 可选)部分号稳定
    • 萌QNT自挂方法(单服务器2 可选)目前测试非常稳定
    • 唯一NT自挂方法
  • 插件播报教程
    • 组合史诗首爆教程
    • 组合消息转发教程
    • 组合史诗播报教程
  1. 插件播报教程

组合消息转发教程

该功能新建表 主要是为了方便区分播报和玩家主动发送消息
自行根据下方教程 组合消息内容即可
Tips.此方法适合有一定基础的,至少要知道,什么代码放什么地方!!!!

1.新建user_message表#

在初始化数据库中 增加新建user_message表语句
//建表 frida.user_message
api_MySQL_exec(mysql_frida, `
        CREATE TABLE frida.user_message (
            id int(20) NOT NULL AUTO_INCREMENT,
            \`type\` int(5) NULL,
            chara_no int(20) NULL,
            message varchar(600) NULL,
            create_time datetime NULL,
            send_flag int(5) DEFAULT 0,
            PRIMARY KEY (id)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
    `);
注释:
api_MySQL_exec 意思是执行sql语句
mysql_frida 数据库连接句柄 这里要根据你的frida里实际情况修改
sql语句中的frida库和user_message表为固定值 机器人固定读取该表内容 无法修改

2.新增userRobot函数加载#

在你的frida脚本中任意位置 新增userRobot函数加载
//机器人组合消息传输到user_message表
function userRobot(type,user,msg){
  log(msg);
  if(type == 1){
    //获取用户
    var charNo = CUserCharacInfo_getCurCharacNo(user);
    api_MySQL_exec(mysql_frida, "insert into frida.user_message (type,chara_no,message,send_flag) values (" + type + "," + charNo + ",'" + msg + "',0);");
  }else{
    api_MySQL_exec(mysql_frida, "insert into frida.user_message (type,message,send_flag) values (" + type + ",'" + msg + "',0);");
  }
}
注释:
api_MySQL_exec 意思是执行sql语句
mysql_frida 数据库连接句柄 这里要根据你的frida里实际情况修改
后续的语句为在user_message表中新增数据 便于机器人读取
userRobot函数可以自行修改,前提条件是 这里修改了函数 那么下面的调用userRobot就也要同步的修改

3.组合消息内容#

Frida里搜索 hook_characterMessageLog
这个就是hook角色消息的函数
简单说 就是吧开始和结束的部分插入到查询角色id下方
如果不想要哪部分的消息 就注释掉即可
function hook_characterMessageLog() {
	Interceptor.attach(ptr(0x086C9638),
		{
			onEnter: function (args) {
				var user = args[1];
				var charac_name = api_CUserCharacInfo_getCurCharacName(user);
				var reason = args[2].toInt32();
				var msg = args[3].readUtf8String(-1);
				this.notice = null;
				this.notice2 = null;
				//查询当前角色id
				var UID = CUser_get_acc_id(user);
        //组装信息发送给机器人-----------开始
        if(reason == 2){
                var message = '玩家[' + charac_name + ']发送队伍消息:\n' + msg;
                userRobot(0,null,message);
            }
        if(reason == 3){
                var message = '玩家[' + charac_name + ']发送普通消息:\n' + msg;
                userRobot(0,null,message);
            }
        if(reason == 6){
                var message = '玩家[' + charac_name + ']发送公会消息:\n' + msg;
                userRobot(0,null,message);
            }
        if(reason == 8){
                var message = '玩家[' + charac_name + ']发送师徒消息:\n' + msg;
                userRobot(0,null,message);
            }
        if(reason == 11){
                var message = '玩家[' + charac_name + ']发送喇叭消息:\n' + msg;
                userRobot(0,null,message);
            }
        //组装信息发送给机器人-----------结束
注释:
可以根据你的实际情况 去组合消息内容
修改于 2025-07-19 05:21:32
上一页
组合史诗首爆教程
下一页
组合史诗播报教程
Built with