// Range: -1 Access: 0 Flags: ( 0, 4, 255 ) public static dynamic Topic(string T = null, dynamic addr = null, dynamic master = null, dynamic key = null) { int x = 0; dynamic C = null; int n = 0; dynamic M = null; ByTable s = null; int admins = 0; dynamic C2 = null; ByTable input = null; dynamic C3 = null; ((dynamic)GlobalVars.diary).write("TOPIC: \"" + T + "\", from:" + addr + ", master:" + master + ", key:" + key); if (T == "ping") { x = 1; C = null; foreach (dynamic _a in GlobalVars.clients) { C = _a; if (!Lang13.Bool(((dynamic)typeof(Client)).IsInstanceOfType(C))) { continue; } x++; } ; return(x); } else if (T == "players") { n = 0; M = null; foreach (dynamic _b in GlobalVars.player_list) { M = _b; if (Lang13.Bool(M.client)) { n++; } } ; return(n); } else if (T == "status") { s = new ByTable(); s["version"] = GlobalVars.game_version; s["mode"] = GlobalVars.master_mode; s["respawn"] = (GlobalVars.config != null ? GlobalVars.abandon_allowed : false); s["enter"] = GlobalVars.enter_allowed; s["vote"] = GlobalVars.config.allow_vote_mode; s["ai"] = GlobalVars.config.allow_ai; s["host"] = (Lang13.Bool(Game13.host) ? Game13.host : null); admins = 0; C2 = null; foreach (dynamic _c in GlobalVars.clients) { C2 = _c; if (!Lang13.Bool(((dynamic)typeof(Client)).IsInstanceOfType(C2))) { continue; } if (Lang13.Bool(C2.holder)) { if (Lang13.Bool(C2.holder.fakekey)) { continue; } admins++; } } ; s["active_players"] = GlobalFuncs.get_active_player_count(); s["players"] = GlobalVars.clients.len; s["revision"] = GlobalVars.revdata.revision; s["revision_date"] = GlobalVars.revdata.date; s["admins"] = admins; s["gamestate"] = 1; if (GlobalVars.ticker != null) { s["gamestate"] = GlobalVars.ticker.current_state; } s["map_name"] = (Lang13.Bool(GlobalVars.map_name) ? GlobalVars.map_name : "Unknown"); return(String13.conv_list2urlParams(s)); } else if (String13.substr(T, 1, 9) == "announce") { input = String13.conv_urlParams2list(T); if (GlobalVars.comms_allowed) { if (input["key"] != GlobalVars.comms_key) { return("Bad Key"); } else { C3 = null; foreach (dynamic _d in GlobalVars.clients) { C3 = _d; if (!Lang13.Bool(((dynamic)typeof(Client)).IsInstanceOfType(C3))) { continue; } if (Lang13.Bool(C3.prefs) && Lang13.Bool(C3.prefs.chat_toggles & 64)) { C3.write("<span class='announce'>PR: " + input["announce"] + "</span>"); } } ; } } } return(null); }