diff --git a/docs/detailref/README.md b/docs/detailref/README.md
index c088d48..3f88ed9 100644
--- a/docs/detailref/README.md
+++ b/docs/detailref/README.md
@@ -2506,6 +2506,17 @@ onebot事件json对应的RedLang对象。
返回与消息ID有关的当前包的脚本发送的消息的消息ID数组(因内存条很贵,所以最多得到 5分钟以内的数据)。
+### 脚本输出-增加ID
+
+【脚本输出-增加ID@消息ID】
+
+给当前消息添加相关的消息ID。
+
+专门用于【OB调用】之后手动添加消息ID。
+
+**注意**:这是一个实验性质的较底层的命令,用法很有可能会在之后的版本中发生变化(可能删除)
+
+
### 积分
【积分】
diff --git a/src/redlang/cqexfun.rs b/src/redlang/cqexfun.rs
index 5e53e98..914a78e 100644
--- a/src/redlang/cqexfun.rs
+++ b/src/redlang/cqexfun.rs
@@ -1021,6 +1021,30 @@ pub fn init_cq_ex_fun_map() {
return Ok(Some(self_t.build_arr(ret_vec)));
}
});
+
+ add_fun(vec!["脚本输出-增加ID"],|self_t,params|{
+ let src_msg_id = self_t.get_exmap("消息ID"); // self_t.get_param(params, 0)?;
+ let to_add_msg_id = self_t.get_param(params, 0)?;
+ let self_id = self_t.get_exmap("机器人ID");
+ let key = format!("{}|{}|{}",self_t.pkg_name,self_id,src_msg_id);
+ let mut lk = G_SCRIPT_RELATE_MSG.write()?;
+ let val_opt = lk.get_mut(&key);
+ if val_opt.is_none() {
+ let tm = SystemTime::now().duration_since(std::time::UNIX_EPOCH)?.as_secs();
+ lk.insert(key, ScriptRelatMsg{
+ self_id:(*self_id).to_owned(),
+ msg_id_vec:[to_add_msg_id].to_vec(),
+ create_time:tm
+ });
+ return Ok(Some("".to_owned()));
+ }else{
+ let val = val_opt.unwrap();
+ val.msg_id_vec.push(to_add_msg_id);
+ return Ok(Some("".to_owned()));
+ }
+ });
+
+
add_fun(vec!["积分-增加"],|self_t,params|{
let key1 = self_t.get_exmap("群ID");
let group_id = format!("{}",key1);