X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmiscfunctions.qc;h=14457679f15c2ab98ba0319046b751d775eb1dd7;hb=df01ffb2ceeacdcffc7ed259ffb65fd53d455ed4;hp=220ebc3af1c800006a7c34efd9641b12e5f8b758;hpb=cd4892b9fcd32bd4887f0b3bc2503894520945c7;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index 220ebc3af..14457679f 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -33,7 +33,7 @@ void crosshair_trace(entity pl) { - traceline_antilag(pl, pl.cursor_trace_start, pl.cursor_trace_start + normalize(pl.cursor_trace_endpos - pl.cursor_trace_start) * MAX_SHOT_DISTANCE, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl)); + traceline_antilag(pl, pl.cursor_trace_start, pl.cursor_trace_start + normalize(pl.cursor_trace_endpos - pl.cursor_trace_start) * max_shot_distance, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl)); } .bool ctrace_solidchanged; void crosshair_trace_plusvisibletriggers(entity pl) @@ -57,7 +57,7 @@ void crosshair_trace_plusvisibletriggers(entity pl) } void WarpZone_crosshair_trace(entity pl) { - WarpZone_traceline_antilag(pl, pl.cursor_trace_start, pl.cursor_trace_start + normalize(pl.cursor_trace_endpos - pl.cursor_trace_start) * MAX_SHOT_DISTANCE, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl)); + WarpZone_traceline_antilag(pl, pl.cursor_trace_start, pl.cursor_trace_start + normalize(pl.cursor_trace_endpos - pl.cursor_trace_start) * max_shot_distance, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl)); } @@ -217,6 +217,21 @@ string NearestLocation(vector p) return ret; } +string AmmoNameFromWeaponentity(entity wpn) +{ + string ammoitems = "batteries"; + switch((wpn.m_weapon).ammo_field) + { + case ammo_shells: ammoitems = ITEM_Shells.m_name; break; + case ammo_nails: ammoitems = ITEM_Bullets.m_name; break; + case ammo_rockets: ammoitems = ITEM_Rockets.m_name; break; + case ammo_cells: ammoitems = ITEM_Cells.m_name; break; + case ammo_plasma: ammoitems = ITEM_Plasma.m_name; break; + case ammo_fuel: ammoitems = ITEM_JetpackFuel.m_name; break; + } + return ammoitems; +} + string formatmessage(entity this, string msg) { float p, p1, p2; @@ -225,20 +240,16 @@ string formatmessage(entity this, string msg) entity cursor_ent; string escape; string replacement; - string ammoitems; p = 0; n = 7; - ammoitems = "batteries"; - if(this.items & ITEM_Plasma.m_itemid) ammoitems = ITEM_Plasma.m_name; - if(this.items & ITEM_Cells.m_itemid) ammoitems = ITEM_Cells.m_name; - if(this.items & ITEM_Rockets.m_itemid) ammoitems = ITEM_Rockets.m_name; - if(this.items & ITEM_Shells.m_itemid) ammoitems = ITEM_Shells.m_name; - WarpZone_crosshair_trace(this); cursor = trace_endpos; cursor_ent = trace_ent; + MUTATOR_CALLHOOK(PreFormatMessage, this, msg); + msg = M_ARGV(1, string); + while (1) { if (n < 1) break; // too many replacements @@ -274,7 +285,7 @@ string formatmessage(entity this, string msg) case "y": replacement = NearestLocation(cursor); break; case "d": replacement = NearestLocation(this.death_origin); break; case "w": replacement = ((this.(weaponentity).m_weapon == WEP_Null) ? ((this.(weaponentity).m_switchweapon == WEP_Null) ? Weapons_from(this.(weaponentity).cnt) : this.(weaponentity).m_switchweapon) : this.(weaponentity).m_weapon).m_name; break; - case "W": replacement = ammoitems; break; + case "W": replacement = AmmoNameFromWeaponentity(this.(weaponentity)); break; case "x": replacement = ((cursor_ent.netname == "" || !cursor_ent) ? "nothing" : cursor_ent.netname); break; case "s": replacement = ftos(vlen(this.velocity - this.velocity_z * '0 0 1')); break; case "S": replacement = ftos(vlen(this.velocity)); break; @@ -465,16 +476,16 @@ void GetCvars(entity this, int f) } // decolorizes and team colors the player name when needed -string playername(entity p) +string playername(entity p, bool team_colorize) { string t; - if (teamplay && !intermission_running && IS_PLAYER(p)) + if (team_colorize && teamplay && !intermission_running && IS_PLAYER(p)) { t = Team_ColorCode(p.team); return strcat(t, strdecolorize(p.netname)); } else - return p.netname; + return ColorTranslateRGB(p.netname); } float want_weapon(entity weaponinfo, float allguns) // WEAPONTODO: what still needs done? @@ -563,6 +574,15 @@ void readplayerstartcvars() g_weaponarena_weapons |= (it.m_wepset); )); } + else if (s == "devall") + { + g_weaponarena = 1; + g_weaponarena_list = "All Weapons"; // TODO: report as more than just all weapons? + FOREACH(Weapons, it != WEP_Null, + { + g_weaponarena_weapons |= (it.m_wepset); + }); + } else if (s == "most") { g_weaponarena = 1;