level 4
原理:
QQ里两个关键的函数:
接收消息的函数 : mq.model.chat.addMessage(x,y)
发送消息的函数 : mq.model.chat.sendMsg(x)
通过hook接收消息的函数.判断接收到的消息内容是否是指令.如果是指令就执行相关的功能.忽略其他消息内容.
代码:
mq.model.chat.addMessage = function(j, k) { //替换掉接收消息的函数 实现hook
var Msg = ''; //显示功能
try {
var i = (k.content[1].replace(/\ $/g, '').match(/^-[0-9a-z]$/g))[0]; //获取指令
} catch (e) {
var i = '@'; //不是指令的时候 忽略
};
switch (i) //判断指令
{
case '-1': Msg = "我叫咪咪."; // 指令 -1 这里可以换成自己想要的功能.
break;
case '-2': Msg = "我是女性."; // 指令 -2
break;
case '-3': Msg = "我喜欢坑蒙拐骗."; //指令 -3
break;
case '-h': Msg = "指令:\n -1 : 我的名字.\n -2 : 我的性别.\n -3 : 我的爱好.\n -h : 帮助.";
break;
default: Msg = "你好,我是机器人.请输入 -h 查看帮助."; //其他内容
break;
}
var m = { //发送给用户的消息 json格式
"to": j, // 对方qq id 不是qq号码
"content": "[\"" + Msg + "\",[\"font\",{\"name\":\"宋体\",\"size\":10,\"style\":[0,0,0],\"color\":\"000000\"}]]", //消息内容和样式
"face": 555, //未知意义 按格式填充
"clientid": mq.clientid, //未知意义 按格式填充
"msg_id": 68020001, //未知意义 按格式填充
"psessionid": mq.psessionid //未知意义 按格式填充
}
mq.model.chat.sendMsg(m); //发送消息
}
2014年03月16日 06点03分


