X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmiscfunctions.qh;h=8dc3faa18ab26a68b6e63d75a84924ec4dff2e47;hb=a9b85b9d5c653920b20c00e4bcec2fdca34d4484;hp=a8304b0e3aff44fa74e91510d4c82b7f1e042332;hpb=3220cab5a7b69ced4a641504a6a5f4eccf2d3bfc;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/miscfunctions.qh b/qcsrc/server/miscfunctions.qh index a8304b0e3..8dc3faa18 100644 --- a/qcsrc/server/miscfunctions.qh +++ b/qcsrc/server/miscfunctions.qh @@ -1,5 +1,7 @@ #pragma once +#include + #include #include "mutators/events.qh" @@ -32,19 +34,17 @@ float cvar_normal(string n) entity eliminatedPlayers; void EliminatedPlayers_Init(float(entity) isEliminated_func); -string admin_name(); - void write_recordmarker(entity pl, float tstart, float dt); void play2all(string samp); void play2team(float t, string filename); -void GetCvars_handleFloat(entity this, string thisname, float f, .float field, string name); +void GetCvars_handleFloat(entity this, entity store, string thisname, float f, .float field, string name); -float spamsound(entity e, float chan, string samp, float vol, float _atten); +float spamsound(entity e, float chan, Sound samp, float vol, float _atten); -void GetCvars_handleString(entity this, string thisname, float f, .string field, string name); +void GetCvars_handleString(entity this, entity store, string thisname, float f, .string field, string name); void precache_all_playermodels(string pattern); @@ -75,7 +75,7 @@ void GameLogInit(); void GameLogClose(); -void GetCvars(entity this, float f); +void GetCvars(entity this, entity store, int f); string GetMapname(); @@ -93,7 +93,7 @@ string NearestLocation(vector p); void play2(entity e, string filename); -string playername(entity p); +string playername(entity p, bool team_colorize); void precache(); @@ -121,7 +121,7 @@ void WarpZone_traceline_antilag (entity source, vector v1, vector v2, float nomo #define ITEM_TOUCH_NEEDKILL() (((trace_dpstartcontents | trace_dphitcontents) & DPCONTENTS_NODROP) || (trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY)) #define ITEM_DAMAGE_NEEDKILL(dt) (((dt) == DEATH_HURTTRIGGER.m_id) || ((dt) == DEATH_SLIME.m_id) || ((dt) == DEATH_LAVA.m_id) || ((dt) == DEATH_SWAMP.m_id)) -#define PROJECTILE_TOUCH(this) MACRO_BEGIN if (WarpZone_Projectile_Touch(this)) return; MACRO_END +#define PROJECTILE_TOUCH(e,t) MACRO_BEGIN if (WarpZone_Projectile_Touch(e,t)) return; MACRO_END #define CENTER_OR_VIEWOFS(ent) (ent.origin + (IS_PLAYER(ent) ? ent.view_ofs : ((ent.mins + ent.maxs) * 0.5))) @@ -160,44 +160,12 @@ float nearest_length[NUM_NEAREST_ENTITIES]; //#NO AUTOCVARS START -float g_pickup_shells; float g_pickup_shells_max; -float g_pickup_nails; float g_pickup_nails_max; -float g_pickup_rockets; float g_pickup_rockets_max; -float g_pickup_cells; float g_pickup_cells_max; -float g_pickup_plasma; float g_pickup_plasma_max; -float g_pickup_fuel; -float g_pickup_fuel_jetpack; float g_pickup_fuel_max; -float g_pickup_armorsmall; -float g_pickup_armorsmall_max; -float g_pickup_armorsmall_anyway; -float g_pickup_armormedium; -float g_pickup_armormedium_max; -float g_pickup_armormedium_anyway; -float g_pickup_armorbig; -float g_pickup_armorbig_max; -float g_pickup_armorbig_anyway; -float g_pickup_armorlarge; -float g_pickup_armorlarge_max; -float g_pickup_armorlarge_anyway; -float g_pickup_healthsmall; -float g_pickup_healthsmall_max; -float g_pickup_healthsmall_anyway; -float g_pickup_healthmedium; -float g_pickup_healthmedium_max; -float g_pickup_healthmedium_anyway; -float g_pickup_healthlarge; -float g_pickup_healthlarge_max; -float g_pickup_healthlarge_anyway; -float g_pickup_healthmega; -float g_pickup_healthmega_max; -float g_pickup_healthmega_anyway; -float g_pickup_ammo_anyway; float g_pickup_weapons_anyway; float g_weaponarena; WepSet g_weaponarena_weapons; @@ -220,6 +188,18 @@ float start_ammo_rockets; float start_ammo_cells; float start_ammo_plasma; float start_ammo_fuel; +/// \brief Number of random start weapons to give to players. +int random_start_weapons_count; +/// \brief Amount of shells to give with a shell-based random start weapon. +float random_start_shells; +/// \brief Amount of bullets to give with a bullet-based random start weapon. +float random_start_bullets; +/// \brief Amount of rockets to give with a rocket-based random start weapon. +float random_start_rockets; +/// \brief Amount of cells to give with a cell-based random start weapon. +float random_start_cells; +/// \brief Amount of plasma to give with a plasma-based random start weapon. +float random_start_plasma; float start_health; float start_armorvalue; WepSet warmup_start_weapons; @@ -256,6 +236,8 @@ void readlevelcvars() g_jetpack = cvar("g_jetpack"); sv_maxidle = cvar("sv_maxidle"); sv_maxidle_spectatorsareidle = cvar("sv_maxidle_spectatorsareidle"); + sv_maxidle_slots = cvar("sv_maxidle_slots"); + sv_maxidle_slots_countbots = cvar("sv_maxidle_slots_countbots"); sv_autotaunt = cvar("sv_autotaunt"); sv_taunt = cvar("sv_taunt"); @@ -310,18 +292,18 @@ void readlevelcvars() g_pickup_armorbig = cvar("g_pickup_armorbig"); g_pickup_armorbig_max = cvar("g_pickup_armorbig_max"); g_pickup_armorbig_anyway = cvar("g_pickup_armorbig_anyway"); - g_pickup_armorlarge = cvar("g_pickup_armorlarge"); - g_pickup_armorlarge_max = cvar("g_pickup_armorlarge_max"); - g_pickup_armorlarge_anyway = cvar("g_pickup_armorlarge_anyway"); + g_pickup_armormega = cvar("g_pickup_armormega"); + g_pickup_armormega_max = cvar("g_pickup_armormega_max"); + g_pickup_armormega_anyway = cvar("g_pickup_armormega_anyway"); g_pickup_healthsmall = cvar("g_pickup_healthsmall"); g_pickup_healthsmall_max = cvar("g_pickup_healthsmall_max"); g_pickup_healthsmall_anyway = cvar("g_pickup_healthsmall_anyway"); g_pickup_healthmedium = cvar("g_pickup_healthmedium"); g_pickup_healthmedium_max = cvar("g_pickup_healthmedium_max"); g_pickup_healthmedium_anyway = cvar("g_pickup_healthmedium_anyway"); - g_pickup_healthlarge = cvar("g_pickup_healthlarge"); - g_pickup_healthlarge_max = cvar("g_pickup_healthlarge_max"); - g_pickup_healthlarge_anyway = cvar("g_pickup_healthlarge_anyway"); + g_pickup_healthbig = cvar("g_pickup_healthbig"); + g_pickup_healthbig_max = cvar("g_pickup_healthbig_max"); + g_pickup_healthbig_anyway = cvar("g_pickup_healthbig_anyway"); g_pickup_healthmega = cvar("g_pickup_healthmega"); g_pickup_healthmega_max = cvar("g_pickup_healthmega_max"); g_pickup_healthmega_anyway = cvar("g_pickup_healthmega_anyway"); @@ -338,7 +320,7 @@ void readlevelcvars() if (!warmup_stage) game_starttime = time + cvar("g_start_delay"); - FOREACH(Weapons, it != WEP_Null, LAMBDA(it.wr_init(it))); + FOREACH(Weapons, it != WEP_Null, { it.wr_init(it); }); readplayerstartcvars(); } @@ -365,3 +347,6 @@ entity initialize_entity_first; float sound_allowed(float dest, entity e); void InitializeEntity(entity e, void(entity this) func, float order); + +IntrusiveList g_ctrace_changed; +STATIC_INIT(g_ctrace_changed) { g_ctrace_changed = IL_NEW(); }