Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ICOMMAND(loopservers, "rrrrrrre", (ident *s_host, ident *s_port, ident *s_mode, ident *s_map, ident *s_mastermode, ident *s_players, /* ident *maxplayers, */ ident *s_description, uint *body),
- {
- if(s_host->type!=ID_ALIAS || s_port->type!=ID_ALIAS || s_mode->type!=ID_ALIAS || s_map->type!=ID_ALIAS || s_mastermode->type!=ID_ALIAS || s_players->type!=ID_ALIAS || /* maxplayers->type!=ID_ALIAS || */ s_description->type!=ID_ALIAS) return;
- identstack stack;
- refreshservers();
- loopv(servers)
- {
- serverinfo &si = *servers[i];
- tagval t_host;
- tagval t_port;
- tagval t_mode;
- tagval t_map;
- tagval t_mastermode;
- tagval t_players;
- tagval t_description;
- t_host.setstr(si.name);
- t_port.setint(si.port);
- t_mode.setint(si.attr.length()>=2 ? si.attr[1] : 0); // attr[0] // attr.length()>=2 ? server::modename(attr[1], "") : ""
- t_map.setstr(si.map);
- t_mastermode.setint(si.attr.length()>=5 ? si.attr[4] : 0);
- t_players.setint(si.numplayers);
- if(si.address.host == ENET_HOST_ANY) t_description.setstr("[unknown host]");
- else if(si.ping == serverinfo::WAITING) t_description.setstr("[waiting for response]");
- else t_description.setstr((char*) escapestring(si.sdesc));
- pusharg(*s_host, t_host, stack);
- pusharg(*s_port, t_port, stack);
- pusharg(*s_mode, t_mode, stack);
- pusharg(*s_map, t_map, stack);
- pusharg(*s_mastermode, t_mastermode, stack);
- pusharg(*s_players, t_players, stack);
- pusharg(*s_description, t_description, stack);
- s_host->flags &= ~IDF_UNKNOWN;
- s_port->flags &= ~IDF_UNKNOWN;
- s_mode->flags &= ~IDF_UNKNOWN;
- s_map->flags &= ~IDF_UNKNOWN;
- s_mastermode->flags &= ~IDF_UNKNOWN;
- s_players->flags &= ~IDF_UNKNOWN;
- s_description->flags &= ~IDF_UNKNOWN;
- execute(body);
- }
- /*
- if (servers.length()) {
- poparg(*s_host);
- poparg(*s_port);
- poparg(*s_mode);
- poparg(*s_map);
- poparg(*s_mastermode);
- poparg(*s_players);
- poparg(*s_description);
- }
- */
- });
Add Comment
Please, Sign In to add comment