X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=68be349714138d5f6f865ac5d53494fd820fc1b1;hp=69f5bfa2488620d9c93e23810f52b3ce1495b2e5;hb=1e80ce57f5d8f6f38ae19625d707db3b3c9db62a;hpb=0fb2edb6ae69233f04d66e3e9a32674b601e6963 diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 69f5bfa248..68be349714 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -120,14 +120,12 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype) { // 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); @@ -203,6 +201,8 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype) { if(!lms_next_place) lms_next_place = player_count; + else + lms_next_place = min(lms_next_place, player_count); PlayerScore_Add(targ, SP_LMS_RANK, lms_next_place); // won't ever spawn again --lms_next_place; } @@ -369,6 +369,8 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) // TODO: make these print a newline if they dont Send_CSQC_Centerprint(attacker, "", "", KILL_FIRST_BLOOD, MSG_KILL); Send_CSQC_Centerprint(targ, "", "", KILL_FIRST_VICTIM, MSG_KILL); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD, 1); + PlayerStats_Event(targ, PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM, 1); } if((autocvar_sv_fragmessage_information_typefrag) && (targ.BUTTON_CHAT)) { @@ -414,36 +416,43 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) { Send_KillNotification(a, "", "", KILL_SPREE_3, MSG_SPREE); AnnounceTo(attacker, "03kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3, 1); } else if (attacker.killcount == 5) { Send_KillNotification(a, "", "", KILL_SPREE_5, MSG_SPREE); AnnounceTo(attacker, "05kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5, 1); } else if (attacker.killcount == 10) { Send_KillNotification(a, "", "", KILL_SPREE_10, MSG_SPREE); AnnounceTo(attacker, "10kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10, 1); } else if (attacker.killcount == 15) { Send_KillNotification(a, "", "", KILL_SPREE_15, MSG_SPREE); AnnounceTo(attacker, "15kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_15, 1); } else if (attacker.killcount == 20) { Send_KillNotification(a, "", "", KILL_SPREE_20, MSG_SPREE); AnnounceTo(attacker, "20kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_20, 1); } else if (attacker.killcount == 25) { Send_KillNotification(a, "", "", KILL_SPREE_25, MSG_SPREE); AnnounceTo(attacker, "25kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_25, 1); } else if (attacker.killcount == 30) { Send_KillNotification(a, "", "", KILL_SPREE_30, MSG_SPREE); AnnounceTo(attacker, "30kills"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_30, 1); } LogDeath("frag", deathtype, attacker, targ); } @@ -461,6 +470,7 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) GiveFrags(targ, targ, -1, deathtype); if(PlayerScore_Add(targ, SP_SCORE, 0) == -5) { AnnounceTo(targ, "botlike"); + PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_BOTLIKE, 1); } Send_KillNotification(s, msg, "", deathtype, MSG_KILL_ACTION); @@ -779,9 +789,8 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float { if(damage > 0) { - if(attacker.weapon != WEP_LASER - && (attacker.weapon != WEP_ELECTRO || !autocvar_g_balance_electro_lightning) - && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time) + if(deathtype != DEATH_FIRE) + if(attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time) { if(targ.BUTTON_CHAT) attacker.typehitsound += 1; @@ -812,8 +821,8 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float } else { - if(deathtype != DEATH_FIRE - && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time) + if(deathtype != DEATH_FIRE) + if(attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time) { attacker.typehitsound += 1; attacker.prevhitsound = time;