📄 auto_team.c
字号:
// Written by BBX workgroup
// Release: 2004/6/2
// 功能:练功时自动组队
// 说明:组队的队长设置 leader_name 为 0 或自己的名字即可
// 另外程序中所有人的姓名均保存在 peer_names 数组中
string leader_name = "队长名字";
string team_names = ({ "队长名字", "队员1", "队员2" });
// 上次查询时间
int last_invite_time = 0;
// 战斗时定期扫描
void on_scan_all()
{
if (! leader_name || leader_name == me()["name"])
// 忽略,队长不进行主动判断
return;
if (! sizeof(members) && time() - last_invite_time > 30)
{
// 现在不在队伍中,向队长提出组队申请
last_invite_time = time();
enable_team();
tell(leader_name, "join");
}
}
// 加入了队伍
int on_join_team(string leader, mapping m)
{
if (leader != leader_name && leader != me()["name"])
{
// 不是队长要求我组队,离开队伍
leave();
disable_team();
}
// 返回 1 表示核查完毕,不在执行缺省的流程
printf("加入了以 %s 为首的队伍。\n", leader);
return 1;
}
// 接收到了用户的密语选择
void on_receive_message(string org, string msg)
{
string peer_name, pure_msg;
if (org == MSG_LISTEN)
{
sscanf(msg, "%s=> %s", &peer_name, &pure_msg);
if (member_array(peer_name, team_names) == -1)
// 对方不在预定的列表中,不理会
return;
}
if (pure_msg == "join")
{
// 对方要求加入
printf("%s 要求加入队伍。\n", peer_name);
create_thread(0, "invite", peer_name);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -