X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_world.qc;h=053ed5124b134adc2d4d1837bef9b117bf1d4eb9;hp=07898df16817501ada15cc655255c3cec5cf9f0e;hb=cbf4da25107e5480eedbf4d3d67d103dd448ae83;hpb=28da13b2d80022464d46a2cf38ad2c86b65d6876 diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index 07898df16..053ed5124 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -236,6 +236,7 @@ void cvar_changes_init() BADCVAR("g_configversion"); BADCVAR("g_maplist_index"); BADCVAR("halflifebsp"); + BADPREFIX("sv_world"); // client BADPREFIX("cl_"); @@ -279,6 +280,8 @@ void cvar_changes_init() BADCVAR("sys_colortranslation"); BADCVAR("sys_specialcharactertranslation"); BADCVAR("timestamps"); + BADCVAR("net_address"); + BADCVAR("net_address_ipv6"); // mapinfo BADCVAR("timelimit"); @@ -637,6 +640,8 @@ void spawnfunc_worldspawn (void) addstat(STAT_LEADLIMIT, AS_FLOAT, stat_leadlimit); addstat(STAT_BULLETS_LOADED, AS_INT, campingrifle_bulletcounter); + addstat(STAT_NEX_CHARGE, AS_FLOAT, nex_charge); + // g_movementspeed hack addstat(STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW, AS_FLOAT, stat_sv_airspeedlimit_nonqw); addstat(STAT_MOVEVARS_AIRACCEL_QW, AS_FLOAT, stat_sv_airaccel_qw); @@ -692,6 +697,8 @@ void spawnfunc_worldspawn (void) { records_reply[i] = strzone(getrecords(i)); } + if(g_cts) + ladder_reply = strzone(getladder()); rankings_reply = strzone(getrankings()); @@ -703,6 +710,21 @@ void spawnfunc_worldspawn (void) localcmd("\n_sv_hook_gamestart ", GetGametype(), "\n"); + // fill sv_curl_serverpackages from .serverpackage files + if(cvar("sv_curl_serverpackages_auto")) + { + fd = search_begin("*.serverpackage", TRUE, FALSE); + s = ""; + if(fd >= 0) + { + j = search_getsize(fd); + for(i = 0; i < j; ++i) + s = strcat(s, " ", search_getfilename(fd, i)); + search_end(fd); + } + cvar_set("sv_curl_serverpackages", substring(s, 1, -1)); + } + world_initialized = 1; } @@ -1509,16 +1531,23 @@ void InitiateOvertime() // ONLY call this if InitiateSuddenDeath returned true float GetWinningCode(float fraglimitreached, float equality) { - if(equality) - if(fraglimitreached) - return WINNING_STARTSUDDENDEATHOVERTIME; - else - return WINNING_NEVER; - else + if(cvar("g_campaign") == 1) if(fraglimitreached) return WINNING_YES; else return WINNING_NO; + + else + if(equality) + if(fraglimitreached) + return WINNING_STARTSUDDENDEATHOVERTIME; + else + return WINNING_NEVER; + else + if(fraglimitreached) + return WINNING_YES; + else + return WINNING_NO; } // set the .winning flag for exactly those players with a given field value @@ -1637,7 +1666,7 @@ float WinningCondition_Assault() TeamScore_AddToTeam(assault_attacker_team, ST_ASSAULT_OBJECTIVES, 666 - TeamScore_AddToTeam(assault_attacker_team, ST_ASSAULT_OBJECTIVES, 0)); - if(ent.cnt == 1) // this was the second round + if(ent.cnt == 1 || cvar("g_campaign")) // this was the second round { status = WINNING_YES; }