void send_full_mudlist(string mud){ int interval = 0; mixed *package = ({}); mixed *names = ({}); if(!connected_muds[mud]) return; foreach(string mudname in keys(mudinfo)){ int mudstat; if(!connected_muds[mudname] && mudinfo[mudname]){ if(!mudinfo[mudname]["disconnect_time"]) mudstat = -1; else mudstat = 0; } else { mudstat = -1; } package += ({ ({ "mudlist", 5, router_name, 0, 0, 0, mudinfo_update_counter,([ mudname:({ mudstat, // -1=up, 0=down, n=down for n secs mudinfo[mudname]["ip"], // ip_addr mudinfo[mudname]["player_port"], // player_port mudinfo[mudname]["imud_tcp_port"], // imud_tcp_port mudinfo[mudname]["imud_udp_port"], // imud_udp_port mudinfo[mudname]["mudlib"], // mudlib mudinfo[mudname]["base_mudlib"], // base_mudlib mudinfo[mudname]["driver"], // driver mudinfo[mudname]["mud_type"], // mud_type mudinfo[mudname]["open_status"], // open_status mudinfo[mudname]["admin_email"], // admin_email mudinfo[mudname]["services"], // services mudinfo[mudname]["other_data"], // other_data }) ]) }) }); } while(sizeof(package)){ //trr("package: "+sizeof(package),"white"); interval++; foreach(mixed element in package[0..9]){ string name = identify(keys(element[7])); names += ({ name }); //trr("element: "+identify(element)); call_out( (: write_data :), interval, connected_muds[mud], element); //trr("sending info on "+name+" to "+mud+", interval: "+interval,"cyan"); } package -= package[0..9]; } //trr("number of muds: "+sizeof(mudinfo),"red"); //trr("number of muds sent: "+sizeof(names),"red"); //trr("muds: "+identify(names),"red"); }