mirror of
https://git.code.sf.net/p/quake/prozac-qfcc
synced 2024-11-30 16:01:49 +00:00
bf8e4e1b33
- some of my "stuck in field" experiments, because they're in the same file and I didn't feel like reverting them. - add an item to TODO
2929 lines
93 KiB
C++
2929 lines
93 KiB
C++
#include "defs.qh"
|
|
|
|
/*
|
|
===========
|
|
ClientObituary
|
|
|
|
called when a player dies
|
|
============
|
|
*/
|
|
void(entity targ, entity attacker) ClientObituary =
|
|
{
|
|
local float rnum;
|
|
local string deathstring, deathstring2;
|
|
|
|
// FIXME:
|
|
|
|
//- OfN - Unidentified kill ---------//
|
|
deathstring=" is killed by ";
|
|
deathstring2="\n";
|
|
// I still have no idea when this is used
|
|
//-----------------------------------//
|
|
|
|
if (prematch >= time)
|
|
return;
|
|
|
|
rnum = random();
|
|
|
|
if (targ.classname == "player")
|
|
{
|
|
//WK No Obituary for the cursed!
|
|
if (targ.penance_time > time - 1)
|
|
{
|
|
Give_Frags_Out(targ, targ, -1, 0, 1, 1, 0);
|
|
/* targ.real_frags = targ.real_frags - 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
targ.frags = targ.real_frags;
|
|
*/ return;
|
|
}
|
|
|
|
if (targ.martyr_enemy != targ)
|
|
deathmsg = targ.stored_deathmsg;
|
|
|
|
if (deathmsg==DMSG_CYBERNET)
|
|
{
|
|
//local string tst;
|
|
//tst=GetBuildingName(attacker);
|
|
|
|
//if (rnum < 0.5)
|
|
//{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " will abort the hack next time\n");
|
|
//bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
//bprint (PRINT_MEDIUM, "'s hack-protected");
|
|
//bprint (PRINT_MEDIUM, tst);
|
|
//bprint (PRINT_MEDIUM, "\n");
|
|
//}
|
|
/*else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " has been lost in the cybernet!\n");*/
|
|
//bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
//bprint (PRINT_MEDIUM, "'s ");
|
|
//bprint (PRINT_MEDIUM, tst);
|
|
//bprint (PRINT_MEDIUM, "\n");
|
|
//}
|
|
/*else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " dies hacking a \n");
|
|
//bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
//bprint (PRINT_MEDIUM, "'s ");
|
|
bprint (PRINT_MEDIUM, tst);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}*/
|
|
|
|
Give_Frags_Out(targ, targ, -1, 0, 1, 1, 0);
|
|
|
|
return;
|
|
}
|
|
|
|
if (deathmsg==DMSG_ANTIHACK)
|
|
{
|
|
local string tst;
|
|
tst=GetBuildingName(attacker);
|
|
|
|
if (rnum < 0.5)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is electrocuted trying to hack ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
bprint (PRINT_MEDIUM, tst);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " should never tried to hack ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
bprint (PRINT_MEDIUM, tst);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
|
|
Give_Frags_Out(targ, targ, -1, 0, 1, 1, 0);
|
|
|
|
return;
|
|
}
|
|
|
|
if (deathmsg==DMSG_ANTIDISM)
|
|
{
|
|
local string tst;
|
|
tst=GetBuildingName(attacker);
|
|
|
|
|
|
if (rnum < 0.5)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " tries to dismantle ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
bprint (PRINT_MEDIUM, tst);
|
|
bprint (PRINT_MEDIUM, " with the wrong tool\n");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is electrocuted trying to dismantle ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
bprint (PRINT_MEDIUM, tst);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
|
|
Give_Frags_Out(targ, targ, -1, 0, 1, 1, 0);
|
|
|
|
return;
|
|
}
|
|
|
|
//- OfN - Wizard death stuff
|
|
if (attacker.classname == "monster_wizard")
|
|
{
|
|
custom_demon_name(attacker); //CH
|
|
//If our own demon killed us, kill demon and cost 2 frags
|
|
if (attacker.real_owner == targ) {
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, -2, 0, 1, 1, 0);
|
|
|
|
bprint (PRINT_MEDIUM, "The scrag ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " kills his owner, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
|
|
//kill_my_demon(); //Demon dies too
|
|
return;
|
|
|
|
}
|
|
else if ((!Teammate(targ.team_no,attacker.real_owner.team_no)) || attacker.real_owner.team_no < 1)
|
|
{
|
|
if ( rnum > 0.6)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " was nullified by the scrag ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (rnum > 0.3)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " didn't survive ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") acid\n");
|
|
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, ", removes ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, 1, 0, 1, 1, 0);
|
|
|
|
return;
|
|
}
|
|
else if (Teammate(targ.team_no,attacker.real_owner.team_no))
|
|
{
|
|
if (rnum < 0.5)
|
|
{
|
|
bprint (PRINT_MEDIUM, "The supposed friendly scrag ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")");
|
|
bprint (PRINT_MEDIUM, " killed ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
else
|
|
{
|
|
//bprint (PRINT_MEDIUM, "");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") proves that scrags are able to teamkill with ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "'s help\n");
|
|
}
|
|
//Give_Frags_Out(attacker.real_owner, attacker.real_owner, -1, 0, 1, 1, 0);
|
|
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
//WK
|
|
if (attacker.classname == "monster_demon1")
|
|
{
|
|
custom_demon_name(attacker); //CH
|
|
//If our own demon killed us, kill demon and cost 2 frags
|
|
if (attacker.real_owner == targ) {
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, -2, 0, 1, 1, 0);
|
|
|
|
/* attacker.real_owner.real_frags = attacker.real_owner.real_frags - 2;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
if (deathmsg == DMSG_DEMON_FIRE)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " threw his rage to his owner ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
else
|
|
{
|
|
if (rnum < 0.5) {
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " exacts revenge on its summoner, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
else {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is dragged into the pit by his own demon, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
}
|
|
|
|
//kill_my_demon(); //Demon dies too
|
|
return;
|
|
}
|
|
if (deathmsg == DMSG_DEMON_FIRE)
|
|
{
|
|
if (rnum < 0.2) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " was burned alive by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (rnum < 0.5) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " thought he was safe from ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (rnum < 0.75) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " died from ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") fire balls\n");
|
|
}
|
|
else {
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, ", burned ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " to a crisp\n");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (rnum < 0.1) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " was eviscerated by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (rnum < 0.50) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " was ripped limb from limb by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else {
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
if (rnum < 0.75)
|
|
bprint (PRINT_MEDIUM, ", claws apart ");
|
|
else
|
|
bprint (PRINT_MEDIUM, ", rends apart ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
}
|
|
|
|
if (!Teammate(targ.team_no,attacker.real_owner.team_no) || attacker.real_owner.team_no < 1)
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
return;
|
|
}
|
|
|
|
// Grunt demon death stuff
|
|
|
|
if (attacker.classname == "monster_army") //SB-1 Tech - Share and Enjoy!
|
|
{
|
|
custom_demon_name(attacker); //CH
|
|
GetRank(attacker); // Sponsored by SB-1 Tech
|
|
//If our own demon killed us, kill demon and cost 2 frags
|
|
if (attacker.real_owner == targ)
|
|
{
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, -2, 0, 1, 1, 0);
|
|
|
|
/* attacker.real_owner.real_frags = attacker.real_owner.real_frags - 2;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
/*if (rnum < 0.5)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " greets his client ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " with a bullet in the back of the head\n");
|
|
}
|
|
else
|
|
{*/
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is killed by his own mercenary ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
//}
|
|
return;
|
|
}
|
|
|
|
if (Teammate(targ.team_no, attacker.real_owner.team_no))
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
if (rnum < 0.25)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " mows down a teammate\n");
|
|
}
|
|
else if (rnum < 0.50)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " checks his glasses\n");
|
|
}
|
|
else if (rnum < 0.75)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " gets a frag for the other team\n");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " loses another friend\n");
|
|
}
|
|
return;
|
|
}
|
|
if (deathmsg == DMSG_AXE)
|
|
{
|
|
if (attacker.cutf_items & CUTF_KNIFE)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is sliced and diced by ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") blade\n");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is split in two by a powerful axe blow from ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_BACKSTAB)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is filleted by ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (deathmsg == DMSG_SHOTGUN)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " practices being ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") clay pigeon\n");
|
|
}
|
|
else if (deathmsg == DMSG_NAILGUN)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is turned into ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") pincushion\n");
|
|
}
|
|
else if (deathmsg == DMSG_ROCKETL)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " declares that ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " IS the rocket man\n");
|
|
}
|
|
else if (deathmsg == DMSG_SSHOTGUN)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is turned into swiss cheese by ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") buckshot\n");
|
|
}
|
|
|
|
if (!Teammate(targ.team_no,attacker.real_owner.team_no) || attacker.real_owner.team_no < 1)
|
|
{
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, 1, 0, 1, 1, 0);
|
|
Give_Frags_Out(attacker, attacker, 1, 0, 1, 1, 0);
|
|
}
|
|
/* attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
return;
|
|
}
|
|
|
|
if (attacker.classname == "monster_shambler")
|
|
{
|
|
custom_demon_name(attacker); //CH
|
|
//If our own demon killed us, kill demon and cost 2 frags
|
|
if (attacker.real_owner == targ) {
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, -2, 0, 1, 1, 0);
|
|
|
|
/* attacker.real_owner.real_frags = attacker.real_owner.real_frags - 2;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
if (deathmsg == DMSG_LIGHTNING)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " annihilates its owner ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " with a bolt of lightning\n");
|
|
}
|
|
else if (deathmsg == DMSG_DEMON_FIRE)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " detonates its owner ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " with a fireball\n");
|
|
}
|
|
else
|
|
{
|
|
if (rnum < 0.5) {
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " gets sick of its owner ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
else {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " screams as ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " turns on his owner\n");
|
|
}
|
|
}
|
|
|
|
//kill_my_demon(); //Demon dies too - OfN nope!
|
|
return;
|
|
}
|
|
if (deathmsg == DMSG_LIGHTNING)
|
|
{
|
|
if (rnum < 0.2) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "'s body crackles with electricity as ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") claims another victim\n");
|
|
}
|
|
else if (rnum < 0.5) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " meets a bolt of lightning directed by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (rnum < 0.75) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "'s goose is cooked by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") lightning\n");
|
|
}
|
|
else {
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s shambler, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, ", teaches ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " to cook without gas\n");
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_DEMON_FIRE)
|
|
{
|
|
if (rnum < 0.5)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is obliterated by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")'s fireball\n");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is turned into little ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "s by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")'s fireball\n");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (rnum < 0.02)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " screams as ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")'s claws slash down\n");
|
|
}
|
|
else if (rnum < 0.1) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " was torn asunder by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else if (rnum < 0.50) {
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is smashed into next week by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else {
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s shambler, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
if (rnum < 0.75)
|
|
bprint (PRINT_MEDIUM, ", tears ");
|
|
else
|
|
bprint (PRINT_MEDIUM, ", rips ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " to shreds\n");
|
|
}
|
|
}
|
|
|
|
if (!Teammate(targ.team_no,attacker.real_owner.team_no) || attacker.real_owner.team_no < 1)
|
|
Give_Frags_Out(attacker.real_owner, attacker.real_owner, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
return;
|
|
}
|
|
|
|
if (attacker.classname == "teledeath")
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " was telefragged by ");
|
|
bprint (PRINT_MEDIUM, attacker.owner.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
|
|
if (!Teammate(targ.team_no,attacker.owner.team_no) || attacker.owner.team_no < 1)
|
|
Give_Frags_Out(attacker.owner, attacker.owner, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.owner.real_frags = attacker.owner.real_frags + 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.owner.frags = attacker.owner.real_frags;
|
|
*/
|
|
return;
|
|
}
|
|
|
|
if (attacker.classname == "teledeath2")
|
|
{
|
|
bprint (PRINT_MEDIUM, "Satan's power deflects ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "'s telefrag\n");
|
|
|
|
Give_Frags_Out(targ, targ, -1, 1, 1, 1, 0);
|
|
|
|
/* targ.real_frags = targ.real_frags - 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
targ.frags = targ.real_frags;
|
|
|
|
logfrag (targ, targ);
|
|
*/
|
|
return;
|
|
}
|
|
|
|
// Killed by a goal
|
|
if (attacker.classname == "info_tfgoal")
|
|
{
|
|
if (attacker.deathtype != "")
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, attacker.deathtype);
|
|
}
|
|
logfrag (targ, targ);
|
|
return;
|
|
}
|
|
|
|
if (attacker.classname == "player")
|
|
{
|
|
if (targ == attacker)
|
|
{
|
|
// killed self
|
|
Give_Frags_Out(attacker, attacker, -1, 0, 1, 1, 1);
|
|
|
|
/* attacker.real_frags = attacker.real_frags - 1;
|
|
if (teamplay & TEAMPLAY_VAMPIRE) //WK
|
|
attacker.real_frags = attacker.real_frags - 1;
|
|
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.frags = attacker.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
|
|
deathstring = " kills himself!\n";
|
|
|
|
if (deathmsg == DMSG_GREN_HAND)
|
|
deathstring = " grenades himself\n";
|
|
else if (deathmsg == DMSG_MARTYR)
|
|
{
|
|
|
|
//if (rnum <= 0.5)
|
|
deathstring = " dies for the cause\n";
|
|
//else
|
|
// deathstring = " is persecuted to death\n";
|
|
|
|
/*
|
|
//if (!(targ.job & JOB_MARTYR_ENEMY))
|
|
{
|
|
if (rnum <= 0.5)
|
|
deathstring = " dies for the heck of it\n";
|
|
else
|
|
deathstring = " dies with style\n";
|
|
}
|
|
else
|
|
{
|
|
//Give last person who attacked him a frag
|
|
if (targ.martyr_enemy.classname == "player" && targ.martyr_enemy.has_disconnected == FALSE) {
|
|
Give_Frags_Out(targ.martyr_enemy, targ, 1, 1, 1, 1, 0);
|
|
}
|
|
if (rnum <= 0.5)
|
|
deathstring = " dies for the cause\n";
|
|
else
|
|
deathstring = " is persecuted to death\n";
|
|
} */
|
|
}
|
|
/*else if (deathmsg == DMSG_EXPBODY) - OfN - No need!
|
|
{
|
|
deathstring = "'s body explodes!\n";
|
|
}*/
|
|
else if (deathmsg == DMSG_BERSERK)
|
|
{
|
|
if (rnum < 0.5)
|
|
deathstring = " collapses from exhaustion\n";
|
|
else
|
|
deathstring = " goes down fighting\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_NAIL)
|
|
deathstring = " hammers himself\n";
|
|
else if (deathmsg == DMSG_GREN_FRAG)
|
|
deathstring = " fragments himself\n";
|
|
else if (deathmsg == DMSG_LAND_MINE)
|
|
deathstring = " forgot where he put his minefield\n";
|
|
else if (deathmsg == DMSG_GREN_MIRV)
|
|
deathstring = " goes to pieces\n";
|
|
else if (deathmsg == DMSG_GREN_PIPE)
|
|
deathstring = " ambushes himself with his own pipebombs\n";
|
|
else if (deathmsg == DMSG_GREN_GAS)
|
|
deathstring = " chokes on his own gas\n";
|
|
else if (deathmsg == DMSG_GREN_EMP)
|
|
deathstring = " explodes his ammo and body\n";
|
|
else if (deathmsg == DMSG_GREN_FLASH)
|
|
deathstring = " is charred by his own flash grenade\n";
|
|
else if (deathmsg == DMSG_GREN_EMP_AMMO)
|
|
deathstring = " detonates an ammo box too close to him\n";
|
|
else if (deathmsg == DMSG_DETPACK)
|
|
deathstring = " set the detpack and forgot to run\n";
|
|
else if (deathmsg == DMSG_BIOWEAPON)
|
|
deathstring = " died by his own infection!\n";
|
|
|
|
else if (deathmsg == DMSG_FF_HACKED)
|
|
deathstring = " is fried in his own force field\n";
|
|
else if (deathmsg == DMSG_FF_STUCK_HACKED)
|
|
deathstring = " is caught and shocked to death in his own force field\n";
|
|
else if (deathmsg == DMSG_SPANNERFIELD)
|
|
deathstring = " learns something about spanners and force fields...\n";
|
|
|
|
else if (deathmsg == DMSG_MAUSER)
|
|
deathstring = " assassinated himself!\n";
|
|
else if (deathmsg == DMSG_DAEDALUS)
|
|
deathstring = " flew too close to the sun!\n";
|
|
else if (deathmsg == DMSG_AIRG || deathmsg == DMSG_AIRG_WATER)
|
|
deathstring = " Airfists his own ass!\n";
|
|
else if (deathmsg == DMSG_JUDOKA)
|
|
deathstring = " broke his own arms!\n";
|
|
else if (deathmsg == DMSG_AXE)
|
|
deathstring = " drove an axe through his own head!\n";
|
|
else if (deathmsg == DMSG_BACKSTAB)
|
|
deathstring = " drove a knife into his own heart!\n";
|
|
|
|
else if (deathmsg == DMSG_FGTRAP)
|
|
deathstring = " explodes with his own (trapped) field generator!\n";
|
|
|
|
else if (deathmsg == DMSG_CALTROP)
|
|
deathstring = " stepped on too many of his own caltrops\n";
|
|
else if (deathmsg == DMSG_FLYCALTROP)
|
|
deathstring = " was spiked by his own catlrop\n";
|
|
else if (deathmsg == DMSG_ROCKETL)
|
|
{
|
|
if (rnum < 0.5)
|
|
deathstring = " becomes bored with life\n";
|
|
else
|
|
deathstring = " checks if his weapon is loaded\n";
|
|
}
|
|
else if (deathmsg == DMSG_CLUSTER_ROCKET)
|
|
deathstring = " eats his clusters\n";
|
|
else if (deathmsg == DMSG_LASERCANNON)
|
|
deathstring = " blasts himself\n";
|
|
else if (deathmsg == DMSG_INCENDIARY)
|
|
deathstring = " chars himself with an incendiary rocket\n";
|
|
else if (deathmsg == DMSG_GRENADEL)
|
|
deathstring = " tries to put the pin back in\n";
|
|
else if (deathmsg == DMSG_FLAME)
|
|
deathstring = " torches himself\n";
|
|
else if (deathmsg == DMSG_HOVER) //WK
|
|
deathstring = " dies from uncomfortable boots\n";
|
|
else if (deathmsg == DMSG_LIGHTNING)
|
|
deathstring = " electrocutes himself\n";
|
|
else if (deathmsg == DMSG_LIGHTNING && targ.waterlevel > 1)
|
|
{
|
|
bprint (PRINT_MEDIUM, " discharges into the water.\n");
|
|
return;
|
|
}
|
|
|
|
bprint(PRINT_MEDIUM, deathstring);
|
|
return;
|
|
}
|
|
else if (teamplay && Teammate(targ.team_no,attacker.team_no))
|
|
{
|
|
// killed a team member
|
|
if (Teammate(targ.team_no,attacker.team_no) )
|
|
Give_Frags_Out(attacker, attacker, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team member
|
|
else
|
|
Give_Frags_Out(attacker, attacker, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
if (deathmsg == DMSG_MEDIKIT)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " didn't survive the operation.\n");
|
|
return;
|
|
}
|
|
|
|
if (deathmsg == DMSG_EXPBODY) //- OfN
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " has been killed as a side effect of ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "'s body explosion\n");
|
|
return;
|
|
}
|
|
|
|
if (rnum < 0.25)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " mows down teammate ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
}
|
|
else if (rnum < 0.50)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " checks his glasses after killing ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
}
|
|
else if (rnum < 0.75)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " gets a frag for the other team with ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, "'s death");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " doesn't wuv ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " any more! Wah!");
|
|
}
|
|
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 1, 1, 1, 1);
|
|
//CH
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
if (attacker.tfstate & TFSTATE_INSPIRED) {
|
|
attacker.inspirator.real_frags =
|
|
attacker.inspirator.real_frags + 0.5;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.inspirator.frags =
|
|
attacker.inspirator.real_frags;
|
|
}
|
|
|
|
if (attacker.aura && attacker.crusader_inspirator != world)
|
|
{
|
|
attacker.crusader_inspirator.real_frags = attacker.crusader_inspirator.real_frags + 0.5;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.crusader_inspirator.frags = attacker.crusader_inspirator.real_frags;
|
|
}
|
|
|
|
//WK
|
|
/* if (teamplay & TEAMPLAY_VAMPIRE) //Frag vamp
|
|
targ.real_frags = targ.real_frags - 1;
|
|
|
|
logfrag (attacker, targ);
|
|
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS)) {
|
|
attacker.frags = attacker.real_frags;
|
|
targ.frags = targ.real_frags; //In case of vampire
|
|
}
|
|
|
|
*/
|
|
if (deathmsg == DMSG_CLUSTER_ROCKET)
|
|
{
|
|
if (rnum < 0.5)
|
|
{
|
|
deathstring = " is put away by ";
|
|
deathstring2 = "'s cluster rockets\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " is destroyed by ";
|
|
deathstring2 = "'s cluster rockets\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_EXPBODY)
|
|
{
|
|
deathstring = " is killed by ";
|
|
deathstring2 = "'s body explosion\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_HAND)
|
|
{
|
|
deathstring = " surfs on a grenade from ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_NAIL)
|
|
{
|
|
deathstring = " gets flayed by ";
|
|
deathstring2 = "'s nail grenade\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_FRAG) //WK
|
|
{
|
|
if (rnum < 0.5) {
|
|
deathstring = " is slashed apart by ";
|
|
deathstring2 = "'s frag grenade\n";
|
|
}
|
|
else if (rnum < 0.75) {
|
|
deathstring = "'s jugular artery is severed by ";
|
|
deathstring2 = "'s frag grenade.\n";
|
|
}
|
|
else {
|
|
deathstring = "'s carotoid artery is severed by ";
|
|
deathstring2 = "'s frag grenade.\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_GREN_MIRV)
|
|
{
|
|
deathstring = " gets spammed by ";
|
|
deathstring2 = "'s Mirv grenade\n";
|
|
}
|
|
else if (deathmsg == DMSG_CALTROP)
|
|
{
|
|
deathstring = " collects one too many of ";
|
|
deathstring2 = "'s caltrops\n";
|
|
}
|
|
else if (deathmsg == DMSG_FLYCALTROP)
|
|
{
|
|
deathstring = " was spiked by ";
|
|
deathstring2 = "'s caltrops\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_PIPE)
|
|
{
|
|
deathstring = " is caught by ";
|
|
deathstring2 = "'s pipebomb trap\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_GAS)
|
|
{
|
|
deathstring = " gags on ";
|
|
deathstring2 = "'s noxious gasses\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_EMP)
|
|
{
|
|
deathstring = "'s ammo detonates him as ";
|
|
deathstring2 = "'s EMP fries it.\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_FLASH)
|
|
{
|
|
deathstring = " is charred by ";
|
|
deathstring2 = "'s flash grenade.\n";
|
|
}
|
|
else if (deathmsg == DMSG_GREN_EMP_AMMO)
|
|
{
|
|
deathstring = " stands near some ammo as ";
|
|
deathstring2 = "'s EMP nukes it\n";
|
|
}
|
|
else if (deathmsg == DMSG_DETPACK)
|
|
{
|
|
deathstring = " reaches orbit via ";
|
|
deathstring2 = "'s detpack\n";
|
|
}
|
|
else if (deathmsg == DMSG_DETPACK_DIS)
|
|
{
|
|
deathstring = " cut the red wire of ";
|
|
deathstring2 = "'s detpack\n";
|
|
}
|
|
else if (deathmsg == DMSG_BIOWEAPON)
|
|
{
|
|
deathstring = " dies from ";
|
|
deathstring2 = "'s mysterious tropical disease\n";
|
|
}
|
|
else if (deathmsg == DMSG_MAUSER)
|
|
{
|
|
/* deathstring = " is assassinated by ";
|
|
deathstring2 = "'s Mauser WK-77\n"; */
|
|
sprint(attacker, PRINT_HIGH, "You mercilessly slaughter ");
|
|
sprint(attacker, PRINT_HIGH, targ.netname);
|
|
sprint(attacker, PRINT_HIGH, "!\n");
|
|
return;
|
|
}
|
|
else if (deathmsg == DMSG_DAEDALUS)
|
|
{
|
|
deathstring = " is melted by ";
|
|
deathstring2 = "'s Daedalus impulse rifle\n";
|
|
}
|
|
else if (deathmsg == DMSG_BIOWEAPON_ATT)
|
|
{
|
|
deathstring = " escapes infection from ";
|
|
deathstring2 = " by dying first\n";
|
|
}
|
|
else if (deathmsg == DMSG_GRENADEL)
|
|
{
|
|
deathstring = " eats ";
|
|
deathstring2 = "'s pineapple\n";
|
|
if (targ.health < -40)
|
|
{
|
|
deathstring = " was gibbed by ";
|
|
deathstring2 = "'s grenade\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_STUCK_FORCEFIELD)
|
|
{
|
|
deathstring = " is fried in ";
|
|
deathstring2 = "'s force field\n";
|
|
}
|
|
else if (deathmsg == DMSG_FORCEFIELD)
|
|
{
|
|
deathstring = " had a shocking experience on ";
|
|
deathstring2 = "'s force field\n";
|
|
}
|
|
else if (deathmsg == DMSG_FGTRAP)
|
|
{
|
|
deathstring = " explodes with ";
|
|
deathstring2 = "'s trapped field generator\n";
|
|
}
|
|
else if (deathmsg == DMSG_ROCKETL)
|
|
{
|
|
deathstring = " rides ";
|
|
deathstring2 = "'s rocket\n";
|
|
if (targ.health < -40)
|
|
{
|
|
deathstring = " was gibbed by ";
|
|
deathstring2 = "'s rocket\n" ;
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_HOVER) //WK
|
|
{
|
|
deathstring = " choked on ";
|
|
deathstring2 = "'s hover exhaust\n";
|
|
}
|
|
else if (deathmsg == DMSG_LAND_MINE) //WK
|
|
{
|
|
deathstring2 = "'s land mine\n";
|
|
|
|
if (rnum < 0.8)
|
|
deathstring = " walked over ";
|
|
else
|
|
deathstring = " was launched 40 ft into the air by ";
|
|
|
|
if (targ.health < -40)
|
|
{
|
|
if (rnum < 0.8)
|
|
deathstring = " was turned into a shower of gibs by ";
|
|
else
|
|
deathstring = " was launched 80 ft into the air by ";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_FLAME)
|
|
{
|
|
if (rnum < 0.2)
|
|
{
|
|
deathstring = " is burnt up by ";
|
|
deathstring2 = "'s flame\n";
|
|
}
|
|
else if (rnum < 0.4)
|
|
{
|
|
deathstring = " is fried by ";
|
|
deathstring2 = "'s fire\n";
|
|
}
|
|
else if (rnum < 0.6)
|
|
{
|
|
deathstring = " feels ";
|
|
deathstring2 = "'s fire of wrath\n";
|
|
}
|
|
else if (rnum < 0.8)
|
|
{
|
|
deathstring = " is reduced to ashes by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " is grilled by ";
|
|
deathstring2 = "'s flame\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_AXE)
|
|
{
|
|
deathstring2 = "\n";
|
|
|
|
if (attacker.cutf_items & CUTF_KNIFE)
|
|
{
|
|
if (attacker.job & JOB_WARLOCK)
|
|
{
|
|
deathstring = " is forced to donate his blood by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " was knife-murdered by ";
|
|
}
|
|
}
|
|
else
|
|
deathstring = " was axe-murdered by ";
|
|
|
|
//if (attacker.demon_blood < 0) //WK Sanity Check
|
|
// attacker.demon_blood = 0;
|
|
// if the above ever happens you've got a serious bug that needs fixing
|
|
// don't get around it by cheap hacks - SB
|
|
|
|
if (attacker.demon_blood < MAX_KNIFE_BLOOD) //SB - OfN defined max now
|
|
attacker.demon_blood = attacker.demon_blood + 1;
|
|
}
|
|
else if (deathmsg == DMSG_SPANNER)
|
|
{
|
|
deathstring = " was spanner-murdered by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_SHOTGUN)
|
|
{
|
|
deathstring = " chewed on ";
|
|
deathstring2 = "'s boomstick\n";
|
|
}
|
|
else if (deathmsg == DMSG_SSHOTGUN)
|
|
{
|
|
deathstring = " ate 2 loads of ";
|
|
deathstring2 = "'s buckshot\n";
|
|
}
|
|
else if (deathmsg == DMSG_NAILGUN)
|
|
{
|
|
deathstring = " was nailed by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_SNG)
|
|
{
|
|
deathstring = " was spiked by ";
|
|
deathstring2 = "'s super nailgun\n";
|
|
}
|
|
else if (deathmsg == DMSG_LIGHT_ASSAULT)
|
|
{
|
|
if (rnum <= 0.1) {
|
|
deathstring = " wishes ";
|
|
deathstring2 = "'s gun was still an SNG\n";
|
|
}
|
|
else if (rnum <= 0.5) {
|
|
deathstring = " gets felled by ";
|
|
deathstring2 = "'s light assault cannon\n";
|
|
}
|
|
else {
|
|
deathstring = " gets sawn almost in half by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_LIGHTNING)
|
|
{
|
|
if (rnum <= 0.1) {
|
|
deathstring = " has never seen a lightning gun in TF before. (";
|
|
deathstring2 = " has.)\n";
|
|
}
|
|
else if (rnum <= 0.2) {
|
|
deathstring = " is thunderstruck by ";
|
|
deathstring2 = "'s gun\n";
|
|
}
|
|
else if (rnum <= 0.4) {
|
|
deathstring = " is electrocuted by ";
|
|
deathstring2 = "'s thunderbolt\n";
|
|
}
|
|
else if (rnum <= 0.7) {
|
|
deathstring = " is shocked to death by ";
|
|
deathstring2 = "'s lightning gun\n";
|
|
}
|
|
else {
|
|
deathstring = " accepts ";
|
|
if (attacker.waterlevel > 1)
|
|
deathstring2 = "'s discharge\n";
|
|
else
|
|
deathstring2 = "'s shaft\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_HOOK)
|
|
{
|
|
deathstring = " grappled with ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_JUDOKA)
|
|
{
|
|
deathstring = " had his arms broken by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_AIRG)
|
|
{
|
|
deathstring = " is ventilated by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_LASERCANNON)
|
|
{
|
|
deathstring = " was blasted by ";
|
|
deathstring2 = "'s laser cannon\n";
|
|
}
|
|
else if (deathmsg == DMSG_DISPEL)
|
|
{
|
|
deathstring = " is banished to the netherworld by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_AIRG_WATER)
|
|
{
|
|
if (rnum < 0.5)
|
|
{
|
|
deathstring = " learns to swim backwards with ";
|
|
deathstring2 = "'s help\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " is underwater-airfisted by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_SNIPERRIFLE)
|
|
{
|
|
if (rnum <= 0.5)
|
|
{
|
|
deathstring = " takes a bullet in the chest from ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " succumbs to sniperfire from ";
|
|
deathstring2 = "\n";
|
|
}
|
|
if (attacker.cutf_items & CUTF_OTR) //- OfN
|
|
{
|
|
/*local float rnum2;
|
|
rnum2 = random();
|
|
if (rnum2 <= 0.3)
|
|
{
|
|
deathstring = " will never be the same after ";
|
|
deathstring2 = "'s shot\n";
|
|
}
|
|
else if (rnum2 <= 0.4)
|
|
{*/
|
|
//deathstring = " gets a huge OTR implant from "; //organic torsion relay
|
|
deathstring = " learns from ";
|
|
deathstring2 = " what an OTR bullet is\n";
|
|
//}
|
|
/*else if (rnum2 <= 0.6)
|
|
{
|
|
deathstring = " gets a huge OTR implant from ";
|
|
deathstring = "\n";
|
|
}*/
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_SNIPERHEADSHOT)
|
|
{
|
|
if (rnum <= 0.5)
|
|
{
|
|
deathstring = " gets a third eye from ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " gets his head blown off by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
if (attacker.cutf_items & CUTF_OTR) //- OfN
|
|
{
|
|
if (random() <= 0.6)
|
|
{
|
|
deathstring = "'s head flies away due to ";
|
|
deathstring2 = " and his OTR bullets\n";
|
|
}
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_SNIPERLEGSHOT)
|
|
{
|
|
if (rnum <= 0.5)
|
|
{
|
|
deathstring = " is made legless by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " gets his legs blown off by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
if (attacker.cutf_items & CUTF_OTR) //- OfN
|
|
{
|
|
if (random() <= 0.25)
|
|
{
|
|
deathstring = " owns a metallic replacement for his legs from ";
|
|
deathstring2 = "\n";
|
|
}
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_AUTORIFLE)
|
|
{
|
|
deathstring = " collects ";
|
|
deathstring2 = "'s bullet spray.\n";
|
|
}
|
|
else if (deathmsg == DMSG_ASSAULTCANNON)
|
|
{
|
|
deathstring = " gets sawn in half by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_BACKSTAB)
|
|
{
|
|
if (rnum < 0.5)
|
|
{
|
|
deathstring = " gets assassinated by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " is knifed from behind by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
//if (attacker.demon_blood < 0) //WK Sanity Check
|
|
// attacker.demon_blood = 0;
|
|
// See previous comment - SB
|
|
if (attacker.demon_blood < MAX_KNIFE_BLOOD) //SB
|
|
attacker.demon_blood = attacker.demon_blood + 1;
|
|
}
|
|
else if (deathmsg == DMSG_TRANQ)
|
|
{
|
|
deathstring = " is put to sleep by ";
|
|
deathstring2 = "\n";
|
|
}
|
|
else if (deathmsg == DMSG_LASERBOLT)
|
|
{
|
|
deathstring = " gets a hole in his heart from ";
|
|
deathstring2 = "'s railgun\n";
|
|
}
|
|
else if (deathmsg == DMSG_INCENDIARY)
|
|
{
|
|
deathstring = " gets well done by ";
|
|
deathstring2 = "'s incendiary rocket\n";
|
|
}
|
|
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, deathstring);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, deathstring2);
|
|
}
|
|
return;
|
|
}
|
|
else if (attacker.classname == "building_dispenser")
|
|
{
|
|
if (!(attacker.is_malfunctioning & SCREWUP_TWO) && !(attacker.is_malfunctioning & SCREWUP_FOUR))
|
|
{
|
|
if (targ == attacker.real_owner)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " dispenses with himself\n");
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " didn't insert the correct change into ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s dispenser\n");
|
|
if (Teammate(targ.team_no,attacker.team_no))
|
|
Give_Frags_Out(attacker, attacker, -1, 0, 1, 1, 0);
|
|
else
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (targ == attacker.real_owner)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is blown apart by his trapped dispenser\n");
|
|
Give_Frags_Out(attacker.real_owner, attacker, -1, 0, 1, 1, 0);
|
|
}
|
|
else if (targ == attacker.martyr_enemy)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " should've stayed away from ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s dispenser\n");
|
|
Give_Frags_Out(attacker.martyr_enemy, attacker, -1, 0, 1, 1, 0);
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.martyr_enemy.netname);
|
|
bprint (PRINT_MEDIUM, " laughs as ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is blown to pieces by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s trapped dispenser\n");
|
|
Give_Frags_Out(attacker.martyr_enemy, targ, 1, 0, 1, 1, 0);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
else if (attacker.classname == "force_field")
|
|
{
|
|
if (targ == attacker.real_owner)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.martyr_enemy.netname);
|
|
bprint (PRINT_MEDIUM, " laughs as ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " fries in his own hacked force field\n");
|
|
Give_Frags_Out(attacker.real_owner, attacker, -1, 0, 1, 1, 0);
|
|
}
|
|
else if (targ == attacker.martyr_enemy)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " remembers that corrupting the output on ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s fieldgen doesn't protect him any\n");
|
|
Give_Frags_Out(attacker.martyr_enemy, attacker, -1, 0, 1, 1, 0);
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.martyr_enemy.netname);
|
|
bprint (PRINT_MEDIUM, " laughs as ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " is fried in ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s hacked force field\n");
|
|
Give_Frags_Out(attacker.martyr_enemy, targ, 1, 0, 1, 1, 0);
|
|
}
|
|
}
|
|
else if (attacker.classname == "building_sentrygun" || attacker.classname == "building_tesla")
|
|
{
|
|
if (targ == attacker.real_owner)
|
|
{
|
|
if (deathmsg == DMSG_SENTRYGUN_ROCKET)
|
|
deathstring = " intercepts his sentry gun's rocket\n";
|
|
else if (deathmsg == DMSG_SENTRYGUN_BULLET)
|
|
deathstring = " crossed his sentry gun's line of fire\n";
|
|
else if (deathmsg == DMSG_BUG_ZAPPER)
|
|
deathstring = " was electrocuted by his own sentry\n";
|
|
else
|
|
deathstring = " let his sentry turn against him\n"; //CH
|
|
|
|
bprint(PRINT_MEDIUM, targ.netname);
|
|
bprint(PRINT_MEDIUM, deathstring);
|
|
}
|
|
else
|
|
{
|
|
if (Teammate(targ.team_no, attacker.team_no)) {//remove frags if team member
|
|
//CH its not the sentry/tesla's fault so only take from owner
|
|
// Give_Frags_Out(attacker, targ, -1, 0, 2, 0, 0); //gun
|
|
Give_Frags_Out(attacker.real_owner, targ, -1, 1, 1, 1, 0);
|
|
} else {
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //gun
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 1, 1, 1, 0);
|
|
}
|
|
|
|
if (deathmsg == DMSG_SENTRYGUN_ROCKET)
|
|
{
|
|
deathstring = " hates ";
|
|
deathstring2 = "'s sentry gun\n";
|
|
}
|
|
else if (deathmsg == DMSG_SENTRYGUN_BULLET)
|
|
{
|
|
deathstring = " is mown down by ";
|
|
deathstring2 = "'s sentry gun\n";
|
|
}
|
|
else if (deathmsg == DMSG_TESLA)
|
|
{
|
|
if (rnum < 0.5) {
|
|
deathstring = " was electrocuted by ";
|
|
deathstring2 = "'s tesla coil\n";
|
|
}
|
|
else if (rnum < 0.75) {
|
|
deathstring = " was shocked to pieces by ";
|
|
deathstring2 = "'s tesla sentry\n";
|
|
}
|
|
else {
|
|
deathstring = " was annihilated by ";
|
|
deathstring2 = "'s tesla gun\n";
|
|
}
|
|
}
|
|
else if (deathmsg == DMSG_BUG_ZAPPER)
|
|
{
|
|
if (rnum < 0.25) {
|
|
deathstring = " made a frying sound after running into ";
|
|
deathstring2 = "'s Sentry Point Defense System\n";
|
|
}
|
|
else if (rnum < 0.5) {
|
|
deathstring = " is cooked at 400 degrees by ";
|
|
deathstring2 = "'s sentry gun\n";
|
|
}
|
|
else if (rnum < 0.75) {
|
|
deathstring = " is disentegrated by ";
|
|
deathstring2 = "'s Sentry Point Defense System\n";
|
|
}
|
|
else {
|
|
deathstring = " is obliterated by ";
|
|
deathstring2 = "'s sentry gun\n";
|
|
}
|
|
}
|
|
bprint(PRINT_MEDIUM, targ.netname);
|
|
bprint(PRINT_MEDIUM, deathstring);
|
|
bprint(PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint(PRINT_MEDIUM, deathstring2);
|
|
}
|
|
}
|
|
else if (attacker.classname == "building_teleporter")
|
|
{
|
|
sprint(attacker.martyr_enemy, PRINT_HIGH, targ.netname);
|
|
sprint(attacker.martyr_enemy, PRINT_HIGH, " disappears into the void.\n");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(targ, targ, -1, 1, 1, 1, 0);
|
|
/*
|
|
logfrag (targ, targ);
|
|
|
|
targ.real_frags = targ.real_frags - 1; // killed self
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
targ.frags = targ.real_frags;
|
|
*/
|
|
rnum = targ.watertype;
|
|
|
|
bprint (PRINT_HIGH, targ.netname);
|
|
|
|
if (rnum == -3)
|
|
{
|
|
if (random() < 0.5)
|
|
deathstring = " sleeps with the fishes\n";
|
|
else
|
|
deathstring = " ate before swimming\n"; //CH
|
|
}
|
|
else if (rnum == -4)
|
|
{
|
|
if (random() < 0.5)
|
|
deathstring = " gulped a load of slime\n";
|
|
else
|
|
deathstring = " can't exist on slime alone\n";
|
|
}
|
|
else if (rnum == -5)
|
|
{
|
|
if (targ.health < -15)
|
|
{
|
|
deathstring = " burst into flames\n";
|
|
}
|
|
else if (random() < 0.5)
|
|
deathstring = " turned into hot slag\n";
|
|
else
|
|
deathstring = " visits the Volcano God\n";
|
|
}
|
|
else if (attacker.classname == "explo_box")
|
|
{
|
|
deathstring = " blew up\n";
|
|
}
|
|
else if (attacker.solid == SOLID_BSP && attacker != world)
|
|
{
|
|
deathstring = " was squished\n";
|
|
}
|
|
else if (attacker.classname == "trap_shooter" || attacker.classname == "trap_spikeshooter" || attacker.classname == "trap_tf_spikeshooter" || attacker.classname == "trap_tf_shooter")
|
|
{
|
|
if (attacker.deathtype != string_null)
|
|
deathstring = attacker.deathtype;
|
|
else if (attacker.spawnflags == SPAWNFLAG_LASER)
|
|
deathstring = " had surgery from a laser\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_TFROCKET)
|
|
{
|
|
//if (rnum < 0.9)
|
|
deathstring = " took a ride on a rocket\n";
|
|
//else
|
|
// deathstring = " proves for once and for all that he IS the rocket man\n";
|
|
}
|
|
else if (attacker.spawnflags == SPAWNFLAG_TFGRENADE)
|
|
deathstring = " tried to eat a wild pineapple\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_TFFLAME)
|
|
deathstring = " was burned alive\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_SUPERSPIKE)
|
|
deathstring = " was nailed to the ground\n";
|
|
else
|
|
deathstring = " was spiked\n";
|
|
}
|
|
else if (attacker.classname == "fireball")
|
|
{
|
|
deathstring = " ate a lavaball\n";
|
|
}
|
|
else if (attacker.classname == "trigger_changelevel")
|
|
{
|
|
deathstring = " tried to leave\n";
|
|
}
|
|
else if (targ.deathtype == "falling" && attacker == world)
|
|
{
|
|
targ.deathtype = "";
|
|
deathstring = " fell to his death\n";
|
|
}
|
|
else //- OfN - unknown death by himself
|
|
{
|
|
rnum = random();
|
|
|
|
if (rnum < 0.20)
|
|
deathstring = " died happily\n";
|
|
else if (rnum < 0.40)
|
|
deathstring = " knows how to die with style\n";
|
|
else if (rnum < 0.60)
|
|
deathstring = " simply dies\n";
|
|
else if (rnum < 0.80)
|
|
deathstring = " had an original death\n";
|
|
else
|
|
deathstring = " wishes we had better death messages\n";
|
|
}
|
|
|
|
bprint(PRINT_MEDIUM, deathstring);
|
|
return; //- ofn
|
|
}
|
|
}
|
|
else if (IsMonster(targ) && attacker.classname == "building_sentrygun")
|
|
{
|
|
custom_demon_name(targ); //CH
|
|
|
|
if ((teamplay) && (attacker.real_owner.team_no > 0) && (targ.real_owner.team_no > 0))
|
|
{
|
|
if (!Teammate(targ.real_owner.team_no, attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 0, 1, 1, 0);
|
|
|
|
//bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
//bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") was killed by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s sentry gun\n");
|
|
return;
|
|
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, -1, 0, 1, 1, 0);
|
|
|
|
//bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
//bprint (PRINT_MEDIUM, " friendly demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") was killed by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s friendly sentry gun\n");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if (targ.classname == "monster_wizard") // OfN
|
|
{
|
|
custom_demon_name(targ);
|
|
if (attacker.classname == "building_tesla")
|
|
{
|
|
if ((teamplay) && (attacker.real_owner.team_no > 0) && (targ.real_owner.team_no > 0))
|
|
{
|
|
if (!Teammate(targ.real_owner.team_no, attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.frags = attacker.frags + 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was shocked to death by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, -1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.frags = attacker.frags - 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags - 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s friendly scrag, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was shocked to death by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if (attacker.classname == "player")
|
|
{
|
|
if ((teamplay) && (attacker.team_no > 0) && (self.real_owner.team_no > 0))
|
|
{
|
|
if (Teammate(targ.real_owner.team_no,attacker.team_no))
|
|
{
|
|
if (attacker == self.real_owner)
|
|
{
|
|
Give_Frags_Out(attacker, targ, -2, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 2; //Owner -2
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
|
|
if (deathmsg == DMSG_LASERCANNON)
|
|
bprint (PRINT_MEDIUM, " cuts his own scrag in half!\n");
|
|
else
|
|
bprint (PRINT_MEDIUM, " kills his own scrag!\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
|
|
if (deathmsg == DMSG_LASERCANNON)
|
|
bprint (PRINT_MEDIUM, " blasts the friendly scrag ");
|
|
else
|
|
bprint (PRINT_MEDIUM, " mows down the friendly scrag ");
|
|
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
|
|
if (deathmsg == DMSG_LASERCANNON)
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " cuts ");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag in several parts\n");
|
|
}
|
|
else
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was killed by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
|
|
MonsterKill(attacker); // adds knife kill to warlock if needed
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}
|
|
else if (attacker.classname == "monster_army")
|
|
{
|
|
custom_demon_name(attacker);
|
|
GetRank(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") mows down the friendly scrag ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is killed by ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_demon1")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") eviscerates the friendly scrag ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is returned to hell by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_shambler")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, "The shambler ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") annihilates the friendly scrag ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", learns a lesson from the shambler ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_wizard")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") annihilates the colleague ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s scrag, ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, ", shows to ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") who is the best\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}//- End scrag death stuff
|
|
else if (targ.classname == "monster_demon1") //CH
|
|
{
|
|
custom_demon_name(targ); //CH
|
|
if (attacker.classname == "building_tesla")
|
|
{
|
|
if ((teamplay) && (attacker.real_owner.team_no > 0) && (targ.real_owner.team_no > 0))
|
|
{
|
|
if (!Teammate(targ.real_owner.team_no, attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.frags = attacker.frags + 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was shocked to death by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, -1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.frags = attacker.frags - 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags - 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s friendly demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was shocked to death by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if (attacker.classname == "player")
|
|
{
|
|
if ((teamplay) && (attacker.team_no > 0) && (self.real_owner.team_no > 0))
|
|
{
|
|
if (Teammate(targ.real_owner.team_no,attacker.team_no))
|
|
{
|
|
if (attacker == self.real_owner)
|
|
{
|
|
Give_Frags_Out(attacker, targ, -2, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 2; //Owner -2
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " kills his own fiend!\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " mows down the friendly demon ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was killed by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
|
|
MonsterKill(attacker); // adds knife kills to warlock
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}
|
|
else if (attacker.classname == "monster_army")
|
|
{
|
|
custom_demon_name(attacker);
|
|
GetRank(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") mows down the friendly demon ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", didn't have a prayer against ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_demon1")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") eviscerates the friendly demon ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", realises too late that ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") wasn't just trying to be friendly\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_shambler")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") annihilates the friendly demon ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is given a firm farewell to the netherworld by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_wizard")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") kills the friendly demon ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s demon, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is killed by the scrag ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}
|
|
else if (targ.classname == "monster_army") //CH
|
|
{
|
|
custom_demon_name(targ); //CH
|
|
GetRank(targ);
|
|
if (attacker.classname == "building_tesla")
|
|
{
|
|
if ((teamplay) && (attacker.real_owner.team_no > 0) && (targ.real_owner.team_no > 0))
|
|
{
|
|
if (!Teammate(targ.real_owner.team_no, attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.frags = attacker.frags + 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s mercenary soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was shocked to death by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, -1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.frags = attacker.frags - 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags - 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s friendly soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was shocked to death by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
if (attacker.classname == "player")
|
|
{
|
|
if ((teamplay) && (attacker.team_no > 0) && (self.real_owner.team_no > 0))
|
|
{
|
|
if (Teammate(targ.real_owner.team_no,attacker.team_no))
|
|
{
|
|
if (attacker == self.real_owner)
|
|
{
|
|
Give_Frags_Out(attacker, targ, -2, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 2; //Owner -2
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " kills his own soldier!\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " mows down the friendly soldier ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s mercenary soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was killed by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}
|
|
else if (attacker.classname == "monster_shambler")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") slaps the friendly soldier ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") into oblivion\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is smacked down by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_demon1")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") disembowels the friendly soldier ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is now listed as KIA thanks to ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_army")
|
|
{
|
|
custom_demon_name(attacker);
|
|
GetRank(attacker);
|
|
|
|
if (targ==attacker) //- OfN - It *may* happen
|
|
{
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s soldier, ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, ", explodes with his own rockets!\n");
|
|
return;
|
|
}
|
|
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") mows down comrade-in-arms ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", takes a bullet in the chest from ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_wizard")
|
|
{
|
|
custom_demon_name(attacker);
|
|
//GetRank(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
//bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, "The scrag ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") kills the friendly soldier ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s soldier, ");
|
|
bprint (PRINT_MEDIUM, targ.undercover_name);
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is killed by the scrag ");
|
|
//bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}
|
|
else if (targ.classname == "monster_shambler") //CH
|
|
{
|
|
custom_demon_name(targ); //CH
|
|
if (attacker.classname == "building_tesla")
|
|
{
|
|
if ((teamplay) && (attacker.real_owner.team_no > 0) && (targ.real_owner.team_no > 0))
|
|
{
|
|
if (!Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 0, 1, 1, 0);
|
|
|
|
/* attacker.frags = attacker.frags + 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s shambler, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was given a shocking surprise by ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, -1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.frags = attacker.frags - 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags - 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s friendly shambler, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", shouldn't play so close to ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
if (attacker.classname == "player")
|
|
{
|
|
if ((teamplay) && (attacker.team_no > 0) && (self.real_owner.team_no > 0))
|
|
{
|
|
if (Teammate(targ.real_owner.team_no,attacker.team_no))
|
|
{
|
|
if (attacker == self.real_owner)
|
|
{
|
|
Give_Frags_Out(attacker, targ, -2, 0, 1, 1, 0);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " kills his own shambler!\n");
|
|
// attacker.real_frags = attacker.real_frags - 2; //Owner -2
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " mows down the friendly shambler ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s shambler, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", was felled by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
|
|
MonsterKill(attacker); // adds knife kills to warlock
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
}
|
|
else if (attacker.classname == "monster_demon1")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") checks its aura after killing ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s shambler, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", is torn apart by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_shambler")
|
|
{
|
|
custom_demon_name(attacker);
|
|
if (Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") electrifies the friendly shambler ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s shambler, ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, ", finds losing against shambler ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") to be a fatal experience\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_army")
|
|
{
|
|
custom_demon_name(attacker);
|
|
GetRank(attacker);
|
|
if ( Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") is caught in the crossfire from ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") proves to ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") that size doesn't matter\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_wizard")
|
|
{
|
|
custom_demon_name(attacker);
|
|
//GetRank(attacker);
|
|
|
|
// condition reversed forconvenience
|
|
if (!Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags - 1; // killed a team demon
|
|
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") had his army career truncated by the scrag ");
|
|
//bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
else
|
|
{
|
|
Give_Frags_Out(attacker, targ, -1, 0, 1, 1, 0);
|
|
// attacker.real_frags = attacker.real_frags + 1;
|
|
//bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, "The scrag ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ") kills the friendly soldier ");
|
|
bprint (PRINT_MEDIUM, targ.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
}
|
|
// if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
// attacker.frags = attacker.real_frags;
|
|
return;
|
|
}
|
|
|
|
}
|
|
else if (IsBuilding(targ) && targ.classname != "building_sentrygun_base" && attacker.classname == "building_tesla") //Evil Tesla!
|
|
{
|
|
if (!Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
if (targ.classname == "building_sentrygun" ||
|
|
targ.classname == "building_tesla")
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 2, 0, 0); //Tesla
|
|
Give_Frags_Out(attacker.real_owner, targ, 1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.frags = attacker.frags + 1; //Tesla
|
|
attacker.real_owner.real_frags = attacker.real_owner.real_frags + 1; //Player
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.real_owner.frags = attacker.real_owner.real_frags;
|
|
*/
|
|
}
|
|
}
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
if (targ.classname == "building_dispenser")
|
|
bprint (PRINT_MEDIUM, "dispenser was zapped by");
|
|
else if (targ.classname == "building_sentrygun")
|
|
bprint (PRINT_MEDIUM, "sentrygun was no match for");
|
|
else if (targ.classname == "building_camera")
|
|
bprint (PRINT_MEDIUM, "security camera was vaporized by");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor was obliterated by");
|
|
else if (targ.classname == "building_teleporter")
|
|
bprint (PRINT_MEDIUM, "teleporter pad was short circuted by");
|
|
else if (targ.classname == "building_tesla" && attacker == targ)
|
|
{
|
|
bprint (PRINT_MEDIUM, "tesla coil destroys itself.\n");
|
|
return;
|
|
}
|
|
else if (targ.classname == "building_tesla")
|
|
bprint (PRINT_MEDIUM, "tesla sentry lost the battle against");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor was fucked up by");
|
|
else if (targ.classname == "building_fieldgen")
|
|
bprint (PRINT_MEDIUM, "field generator was destroyed by");
|
|
else
|
|
bprint (PRINT_MEDIUM, "??Building??");
|
|
bprint (PRINT_MEDIUM, " ");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s tesla sentry\n");
|
|
return;
|
|
}
|
|
else if (IsBuilding(targ) && targ.classname != "building_sentrygun_base")
|
|
{
|
|
|
|
//- OfN - Weird but may happen.. like when a sentry is blown up by its own rocket
|
|
if (attacker == targ)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
|
|
if (targ.classname == "building_dispenser")
|
|
bprint (PRINT_MEDIUM, "dispenser");
|
|
else if (targ.classname == "building_sentrygun")
|
|
bprint (PRINT_MEDIUM, "sentrygun");
|
|
else if (targ.classname == "building_camera")
|
|
bprint (PRINT_MEDIUM, "security camera");
|
|
else if (targ.classname == "building_teleporter")
|
|
bprint (PRINT_MEDIUM, "teleporter pad");
|
|
else if (targ.classname == "building_tesla")
|
|
bprint (PRINT_MEDIUM, "tesla sentry");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor");
|
|
else if (targ.classname == "building_fieldgen")
|
|
bprint (PRINT_MEDIUM, "field generator");
|
|
else
|
|
bprint (PRINT_MEDIUM, "??Building??");
|
|
|
|
bprint (PRINT_MEDIUM, " destroys itself.\n");
|
|
return;
|
|
}
|
|
|
|
if (attacker.classname == "teledeath")
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
|
|
//bprint (PRINT_MEDIUM,GetBuildingName(targ));
|
|
if (targ.classname == "building_dispenser")
|
|
bprint (PRINT_MEDIUM, "dispenser");
|
|
else if (targ.classname == "building_sentrygun")
|
|
bprint (PRINT_MEDIUM, "sentrygun");
|
|
else if (targ.classname == "building_camera")
|
|
bprint (PRINT_MEDIUM, "security camera");
|
|
else if (targ.classname == "building_teleporter")
|
|
bprint (PRINT_MEDIUM, "teleporter pad");
|
|
else if (targ.classname == "building_tesla")
|
|
bprint (PRINT_MEDIUM, "tesla sentry");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor");
|
|
else if (targ.classname == "building_fieldgen")
|
|
bprint (PRINT_MEDIUM, "field generator");
|
|
else
|
|
bprint (PRINT_MEDIUM, "??Building??");
|
|
|
|
bprint (PRINT_MEDIUM, " was telefragged by ");
|
|
bprint (PRINT_MEDIUM, attacker.owner.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
return;
|
|
}
|
|
|
|
if (attacker.classname == "player")
|
|
{
|
|
if (attacker == targ.real_owner)
|
|
{
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, " destroys his ");
|
|
|
|
//bprint (PRINT_MEDIUM,GetBuildingName(targ));
|
|
if (targ.classname == "building_dispenser")
|
|
bprint (PRINT_MEDIUM, "dispenser");
|
|
else if (targ.classname == "building_sentrygun")
|
|
bprint (PRINT_MEDIUM, "sentrygun");
|
|
else if (targ.classname == "building_camera")
|
|
bprint (PRINT_MEDIUM, "security camera");
|
|
else if (targ.classname == "building_teleporter")
|
|
bprint (PRINT_MEDIUM, "teleporter pad");
|
|
else if (targ.classname == "building_tesla")
|
|
bprint (PRINT_MEDIUM, "tesla sentry");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor");
|
|
else if (targ.classname == "building_fieldgen")
|
|
bprint (PRINT_MEDIUM, "field generator");
|
|
else
|
|
bprint (PRINT_MEDIUM, "??Building??");
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
return;
|
|
}
|
|
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
|
|
//bprint (PRINT_MEDIUM,GetBuildingName(targ)); //- OfN - FIXED?
|
|
|
|
if (targ.classname == "building_dispenser")
|
|
bprint (PRINT_MEDIUM, "dispenser");
|
|
else if (targ.classname == "building_sentrygun")
|
|
bprint (PRINT_MEDIUM, "sentrygun");
|
|
else if (targ.classname == "building_camera")
|
|
bprint (PRINT_MEDIUM, "security camera");
|
|
else if (targ.classname == "building_teleporter")
|
|
bprint (PRINT_MEDIUM, "teleporter pad");
|
|
else if (targ.classname == "building_tesla")
|
|
bprint (PRINT_MEDIUM, "tesla sentry");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor");
|
|
else if (targ.classname == "building_fieldgen")
|
|
bprint (PRINT_MEDIUM, "field generator");
|
|
else
|
|
bprint (PRINT_MEDIUM, "??Building??");
|
|
|
|
bprint (PRINT_MEDIUM, " was destroyed by ");
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, "\n");
|
|
|
|
if (!Teammate(targ.real_owner.team_no,attacker.team_no))
|
|
{
|
|
if (targ.classname == "building_sentrygun" ||
|
|
targ.classname == "building_tesla")
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.real_frags = attacker.real_frags + 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.frags = attacker.real_frags;
|
|
*/
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
else if (attacker.classname == "monster_army") // SB grunty kills building
|
|
{
|
|
custom_demon_name(attacker);
|
|
GetRank(attacker);
|
|
|
|
bprint (PRINT_MEDIUM, targ.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, "'s ");
|
|
|
|
//bprint(PRINT_MEDIUM,GetBuildingName(targ));
|
|
if (targ.classname == "building_dispenser")
|
|
bprint (PRINT_MEDIUM, "dispenser");
|
|
else if (targ.classname == "building_sentrygun")
|
|
bprint (PRINT_MEDIUM, "sentrygun");
|
|
else if (targ.classname == "building_camera")
|
|
bprint (PRINT_MEDIUM, "security camera");
|
|
else if (targ.classname == "building_teleporter")
|
|
bprint (PRINT_MEDIUM, "teleporter pad");
|
|
else if (targ.classname == "building_tesla")
|
|
bprint (PRINT_MEDIUM, "tesla sentry");
|
|
else if (targ.classname == "building_sensor")
|
|
bprint (PRINT_MEDIUM, "motion sensor");
|
|
else if (targ.classname == "building_fieldgen")
|
|
bprint (PRINT_MEDIUM, "field generator");
|
|
else
|
|
bprint (PRINT_MEDIUM, "??Building??");
|
|
|
|
bprint (PRINT_MEDIUM, " was destroyed by ");
|
|
bprint (PRINT_MEDIUM, attacker.undercover_name);
|
|
bprint (PRINT_MEDIUM, attacker.netname);
|
|
bprint (PRINT_MEDIUM, " (");
|
|
bprint (PRINT_MEDIUM, attacker.real_owner.netname);
|
|
bprint (PRINT_MEDIUM, ")\n");
|
|
|
|
if (!Teammate(targ.real_owner.team_no,attacker.real_owner.team_no))
|
|
{
|
|
if (targ.classname == "building_sentrygun" ||
|
|
targ.classname == "building_tesla")
|
|
{
|
|
Give_Frags_Out(attacker, targ, 1, 0, 1, 1, 0);
|
|
/*
|
|
attacker.real_frags = attacker.real_frags + 1;
|
|
if (!(toggleflags & TFLAG_TEAMFRAGS))
|
|
attacker.frags = attacker.real_frags;
|
|
*/
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
//- Miscellaneous monster/army deaths
|
|
if (IsMonster(targ))
|
|
{
|
|
if (attacker.classname == "explo_box")
|
|
{
|
|
deathstring = " blew up\n";
|
|
}
|
|
else if (attacker.solid == SOLID_BSP && attacker != world)
|
|
{
|
|
deathstring = " was squished\n";
|
|
}
|
|
else if (attacker.classname == "trap_shooter" || attacker.classname == "trap_spikeshooter" || attacker.classname == "trap_tf_spikeshooter" || attacker.classname == "trap_tf_shooter")
|
|
{
|
|
if (attacker.deathtype != string_null)
|
|
deathstring = attacker.deathtype;
|
|
else if (attacker.spawnflags == SPAWNFLAG_LASER)
|
|
deathstring = " had surgery from a laser\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_TFROCKET)
|
|
deathstring = " took a ride on a rocket\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_TFGRENADE)
|
|
deathstring = " tried to eat a wild pineapple\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_TFFLAME)
|
|
deathstring = " was burned alive\n";
|
|
else if (attacker.spawnflags == SPAWNFLAG_SUPERSPIKE)
|
|
deathstring = " was nailed to the ground\n";
|
|
else
|
|
deathstring = " was spiked\n";
|
|
}
|
|
else if (attacker.classname == "fireball")
|
|
{
|
|
deathstring = " ate a lavaball\n";
|
|
}
|
|
else if (attacker.classname == "teledeath")
|
|
{
|
|
deathstring = " was telefragged by ";
|
|
}
|
|
else
|
|
{
|
|
deathstring = " dies\n";
|
|
}
|
|
|
|
deathstring2=GetMonsterName(targ);
|
|
|
|
bprint(PRINT_HIGH,"The ");
|
|
bprint(PRINT_HIGH, deathstring2);
|
|
bprint(PRINT_HIGH," ");
|
|
bprint(PRINT_HIGH, targ.netname);
|
|
bprint(PRINT_HIGH," (");
|
|
bprint(PRINT_HIGH, targ.real_owner.netname);
|
|
bprint(PRINT_HIGH,")");
|
|
bprint(PRINT_HIGH, deathstring);
|
|
if (attacker.classname == "teledeath")
|
|
{
|
|
bprint(PRINT_HIGH, attacker.owner.netname);
|
|
bprint(PRINT_HIGH,"\n");
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
};
|
|
|