X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=8998c6afbc16c9771c894a30f776e35e8a6bc3b9;hp=387514be45194dabb3d9337de29da5a30f45f295;hb=ac46eb66c927d1d4c0c61f1ada5efe7fc847ac63;hpb=c99856eaa4e6d46384a2eab5ab90be1dcc66c906 diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 387514be45..8998c6afbc 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -120,12 +120,14 @@ void GiveFrags (entity attacker, entity targ, float f) { // teamkill PlayerScore_Add(attacker, SP_KILLS, -1); // or maybe add a teamkills field? + PlayerStats_Event(attacker, PLAYERSTATS_KILLS, -1); } } else { // regular frag PlayerScore_Add(attacker, SP_KILLS, 1); + PlayerStats_Event(attacker, PLAYERSTATS_KILLS, 1); } PlayerScore_Add(targ, SP_DEATHS, 1); @@ -535,15 +537,15 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float damage = 0; force = '0 0 0'; } - else if(attacker.team == targ.team) + else if(teams_matter && attacker.team == targ.team) { - if(teamplay == 1) + if(autocvar_teamplay_mode == 1) damage = 0; else if(attacker != targ) { - if(teamplay == 3) + if(autocvar_teamplay_mode == 3) damage = 0; - else if(teamplay == 4) + else if(autocvar_teamplay_mode == 4) { if(targ.classname == "player" && targ.deadflag == DEAD_NO) { @@ -623,7 +625,17 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float force = force * g_weaponforcefactor; mirrorforce *= g_weaponforcefactor; } - + + // should this be changed at all? If so, in what way? + frag_attacker = attacker; + frag_target = targ; + frag_damage = damage; + frag_force = force; + frag_deathtype = deathtype; + MUTATOR_CALLHOOK(PlayerDamage_Calculate); + damage = frag_damage; + force = frag_force; + // apply strength multiplier if ((attacker.items & IT_STRENGTH) && !g_minstagib) { @@ -865,14 +877,7 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e if(RadiusDamage_running) { - string save; - print("RadiusDamage called recursively!\n"); - print("Expect stuff to go HORRIBLY wrong.\n"); - print("Causing a stack trace...\n"); - save = cvar_string("prvm_backtraceforwarnings"); - cvar_set("prvm_backtraceforwarnings", "1"); - fclose(-1); // calls VM_Warning - cvar_set("prvm_backtraceforwarnings", save); + backtrace("RadiusDamage called recursively! Expect stuff to go HORRIBLY wrong."); return 0; }