From: Lyberta Date: Sun, 8 Apr 2018 22:18:20 +0000 (+0300) Subject: Merge branch 'master' into Lyberta/TeamplayOverhaul X-Git-Tag: xonotic-v0.8.5~1953^2~19 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=ff169c9d675521c4e05efe123024cf9703fd4984 Merge branch 'master' into Lyberta/TeamplayOverhaul --- ff169c9d675521c4e05efe123024cf9703fd4984 diff --cc qcsrc/server/client.qc index 93072e264e,663d16ed71..30c721468f --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@@ -1161,80 -1161,6 +1161,76 @@@ void ClientPreConnect(entity this } #endif +string GetClientVersionMessage(entity this) +{ + if (CS(this).version_mismatch) { + if(CS(this).version < autocvar_gameversion) { + return strcat("This is Xonotic ", autocvar_g_xonoticversion, + "\n^3Your client version is outdated.\n\n\n### YOU WON'T BE ABLE TO PLAY ON THIS SERVER ###\n\n\nPlease update!!!^8"); + } else { + return strcat("This is Xonotic ", autocvar_g_xonoticversion, + "\n^3This server is using an outdated Xonotic version.\n\n\n ### THIS SERVER IS INCOMPATIBLE AND THUS YOU CANNOT JOIN ###.^8"); + } + } else { + return strcat("Welcome to Xonotic ", autocvar_g_xonoticversion); + } +} + +string getwelcomemessage(entity this) +{ + MUTATOR_CALLHOOK(BuildMutatorsPrettyString, ""); + string modifications = M_ARGV(0, string); + + if(g_weaponarena) + { + if(g_weaponarena_random) + modifications = strcat(modifications, ", ", ftos(g_weaponarena_random), " of ", g_weaponarena_list, " Arena"); + else + modifications = strcat(modifications, ", ", g_weaponarena_list, " Arena"); + } + else if(cvar("g_balance_blaster_weaponstartoverride") == 0) + modifications = strcat(modifications, ", No start weapons"); + if(cvar("sv_gravity") < stof(cvar_defstring("sv_gravity"))) + modifications = strcat(modifications, ", Low gravity"); + if(g_weapon_stay && !g_cts) + modifications = strcat(modifications, ", Weapons stay"); + if(g_jetpack) + modifications = strcat(modifications, ", Jet pack"); + if(autocvar_g_powerups == 0) + modifications = strcat(modifications, ", No powerups"); + if(autocvar_g_powerups > 0) + modifications = strcat(modifications, ", Powerups"); + modifications = substring(modifications, 2, strlen(modifications) - 2); + + string versionmessage = GetClientVersionMessage(this); + string s = strcat(versionmessage, "^8\n^8\nmatch type is ^1", gamemode_name, "^8\n"); + + if(modifications != "") + s = strcat(s, "^8\nactive modifications: ^3", modifications, "^8\n"); + + if(cache_lastmutatormsg != autocvar_g_mutatormsg) + { - if(cache_lastmutatormsg) - strunzone(cache_lastmutatormsg); - if(cache_mutatormsg) - strunzone(cache_mutatormsg); - cache_lastmutatormsg = strzone(autocvar_g_mutatormsg); - cache_mutatormsg = strzone(cache_lastmutatormsg); ++ strcpy(cache_lastmutatormsg, autocvar_g_mutatormsg); ++ strcpy(cache_mutatormsg, cache_lastmutatormsg); + } + + if (cache_mutatormsg != "") { + s = strcat(s, "\n\n^8special gameplay tips: ^7", cache_mutatormsg); + } + + string mutator_msg = ""; + MUTATOR_CALLHOOK(BuildGameplayTipsString, mutator_msg); + mutator_msg = M_ARGV(0, string); + + s = strcat(s, mutator_msg); // trust that the mutator will do proper formatting + + string motd = autocvar_sv_motd; + if (motd != "") { + s = strcat(s, "\n\n^8MOTD: ^7", strreplace("\\n", "\n", motd)); + } + return s; +} + /** ============= ClientConnect