Public feed #893927

Mine

public text v1 · immutable
Raw Edit
·published 2008-02-06 15:36 UTC
rendered paste body
main( eVictim, eAttacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc, iDFlags, eInflictor )
{
	// Damage Cancellation: Spawn Protection
	if (eVictim.spawn_protected)
	{
		if ( iDamage > 0 && getDvarInt( "scr_enable_hiticon" ) == 1 )
				eAttacker thread Spawn_protect_Feedback();
			else if ( iDamage > 0 && getDvarInt( "scr_enable_hiticon" ) == 2 && !(iDFlags & level.iDFLAGS_PENETRATION) )
				eAttacker thread Spawn_protect_Feedback();

		iDamage = 0;
	}

	if (game["pam_knife_nerf"] && sMeansOfDeath == "MOD_MELEE")
	{
		dist = distance( eVictim.origin, eAttacker.origin );

		if (sHitLoc == "head" || sHitLoc == "torso_lower")
		{
			if (dist > 47)
				iDamage = iDamage * .6;
		}
		else
		{
			if (dist > 47)
				iDamage = iDamage * .4;
			else
				iDamage = iDamage * .6;
		}

		iDamage = int(iDamage);

		//iprintln("Knife: " + sHitLoc + " :: Damage: " + iDamage + " :: Distance: " + dist);

		//iDamage = 0;
	}

	// Damage Cancellation: Map Destructables
	/*
	if ( sWeapon == "none" && isDefined( eInflictor ) )
	{
		if ( game["pam_allow_barrel_damage"] && isDefined( eInflictor.targetname ) && eInflictor.targetname == "explodable_barrel" )
			sWeapon = "explodable_barrel";
		else if ( game["pam_allow_car_damage"] && isDefined( eInflictor.destructible_type ) && isSubStr( eInflictor.destructible_type, "vehicle_" ) )
			sWeapon = "destructible_car";
	}
	*/

	//iprintln("weap: " + sWeapon);

	if ( game["pam_deadly_boltaction_snipers"] )
	{
		if (sWeapon == "m40a3_acog_mp" || sWeapon == "m40a3_mp"
		|| sWeapon == "remington700_acog_mp" || sWeapon == "remington700_mp")
		{
			if (sHitLoc == "head" || sHitLoc == "helmet" || sHitLoc == "torso_upper" || sHitLoc == "torso_lower")
			{
				iDamage = iDamage * 3;
			}
		}
	}

	if ( game["pam_deadly_semiauto_snipers"] )
	{
		if (sWeapon == "m21_acog_mp" || sWeapon == "m21_mp"
		|| sWeapon == "barrett_acog_mp" || sWeapon == "barrett_mp"
		|| sWeapon == "dragunov_acog_mp" || sWeapon == "dragunov_mp")
		{
			if (sHitLoc == "head" || sHitLoc == "helmet" || sHitLoc == "torso_upper" || sHitLoc == "torso_lower")
			{
				iDamage = iDamage * 3;
			}
		}
	}


	if (game["pam_allow_weapon_damage_adjust"] && sWeapon != "none" && sMeansOfDeath != "MOD_MELEE")
	{
		weapdvar = "";
		if (isDefined(game["pam_weaps"][sWeapon]))
			weapdvar = game["pam_weaps"][sWeapon];
		
		if (weapdvar != "")
		{
			if (getdvar(weapdvar) != "" && getdvarfloat(weapdvar) > 0)
			{
				multiplier = getdvarfloat(weapdvar);
				iDamage = iDamage * multiplier;
			}
		}
		
	}

	if ( game["pamd_damage_modifiers"] && sWeapon != "none" )
	{
		dist = distance( eVictim.origin, eAttacker.origin );

		switch (sHitLoc)
		{
		case "right_arm_upper": iDamage = iDamage * 0.75; break;
		case "left_arm_upper": iDamage = iDamage * 0.75; break;
		case "right_arm_lower": iDamage = iDamage * 0.5; break;
		case "left_arm_lower": iDamage = iDamage * 0.5; break;
		case "right_hand": iDamage = iDamage * 0.5; break;
		case "left_hand": iDamage = iDamage * 0.5; break;
		case "right_leg_upper": iDamage = iDamage * 0.75; break;
		case "left_leg_upper": iDamage = iDamage * 0.75; break;
		case "right_leg_lower": iDamage = iDamage * 0.5; break;
		case "left_leg_lower": iDamage = iDamage * 0.5; break;
		case "right_foot": iDamage = iDamage * 0.5; break;
		case "left_foot": iDamage = iDamage * 0.5; break;
		
		default: break;
		}
		
		if (sHitLoc == "head" || sHitLoc == "helmet")
		{
			switch  (sWeapon)
			{
			case "ak47_acog_mp": iDamage = iDamage * 2.2; break;
			case "ak47_gl_mp": iDamage = iDamage * 2.2; break;
			case "ak47_mp": iDamage = iDamage * 2.2; break;
			case "ak47_reflex": iDamage = iDamage * 2.2; break;
			case "ak47_silencer": iDamage = iDamage * 2.2; break;
			case "aw50_acog_mp": iDamage = iDamage * 2.2; break;
			case "aw50_mp": iDamage = iDamage * 2.2; break;
			case "deserteaglegold_mp": iDamage = iDamage * 2.2; break;
			case "g3_acog_mp": iDamage = iDamage * 2.2; break;
			case "g3_gl_mp": iDamage = iDamage * 2.2; break;
			case "g3_mp": iDamage = iDamage * 2.2; break;
			case "g3_reflex_mp": iDamage = iDamage * 2.2; break;
			case "g3_silencer_mp": iDamage = iDamage * 2.2; break;
			case "g36c_acog_mp": iDamage = iDamage * 2.2; break;
			case "g36c_gl_mp": iDamage = iDamage * 2.2; break;
			case "g36c_mp": iDamage = iDamage * 2.2; break;
			case "g36c_reflex_mp": iDamage = iDamage * 2.2; break;
			case "g36c_silencer_mp": iDamage = iDamage * 2.2; break;
			case "m4_acog_mp": iDamage = iDamage * 2.2; break;
			case "m4_gl_mp": iDamage = iDamage * 2.2; break;
			case "m4_mp": iDamage = iDamage * 2.2; break;
			case "m4_reflex_mp": iDamage = iDamage * 2.2; break;
			case "m4_silencer_mp": iDamage = iDamage * 2.2; break;
			case "m14_acog_mp": iDamage = iDamage * 2.2; break;
			case "m14_gl_mp": iDamage = iDamage * 2.2; break;
			case "m14_mp": iDamage = iDamage * 2.2; break;
			case "m14_reflex_mp": iDamage = iDamage * 2.2; break;
			case "m14_silencer_mp": iDamage = iDamage * 2.2; break;
			case "m16_acog_mp": iDamage = iDamage * 2.2; break;
			case "m16_gl_mp": iDamage = iDamage * 2.2; break;
			case "m16_mp": iDamage = iDamage * 2.2; break;
			case "m16_reflex_mp": iDamage = iDamage * 2.2; break;
			case "m16_silencer_mp": iDamage = iDamage * 2.2; break;

			default: break;
			}
		
		}
	//iprintln("Weapon: ^5" + sWeapon + " ^7Location: ^6" + sHitLoc + "^7 :: Damage: ^1" + iDamage + " :: ^7Distance: ^2" + dist);
	}

	return iDamage;
}


Spawn_protect_Feedback()
{
	self.feedback_time = 0;

	if (isDefined(self.feedback_active))
		return;

	self.feedback_active = true;

	self.prot_hud = newClientHudElem(self);
	self.prot_hud.x = 0;
	self.prot_hud.y = 10;
	self.prot_hud.horzAlign = "center";
	self.prot_hud.vertAlign = "middle";
	self.prot_hud.alignX = "center";
	self.prot_hud.alignY = "middle";
	self.prot_hud.fontScale = 1.4;
	self.prot_hud.font = "objective";
	self.prot_hud.color = (1, 0, 0);
	self.prot_hud.hidewheninmenu = true;
	self.prot_hud setText("+");

	self.prot_hud_box = newClientHudElem( self );
	self.prot_hud_box.elemType = "icon";
	self.prot_hud_box.x = 0;
	self.prot_hud_box.y = 10;
	self.prot_hud_box.horzAlign = "center";
	self.prot_hud_box.vertAlign = "middle";
	self.prot_hud_box.alignX = "center";
	self.prot_hud_box.alignY = "middle";
	self.prot_hud_box.width = 30;
	self.prot_hud_box.height = 30;
	self.prot_hud_box.xOffset = 0;
	self.prot_hud_box.yOffset = 0;
	self.prot_hud_box.sort = -1;
	self.prot_hud_box.color = (1,1,1);
	self.prot_hud_box setShader( "progress_bar_fg", 15, 20 );
	self.prot_hud_box.hidden = false;

	while (self.feedback_time < .5)
	{
		wait .05;
		self.feedback_time = self.feedback_time + .05;
	}

	self.feedback_active = undefined;

	if (isDefined(self.prot_hud_box))
		self.prot_hud_box destroy();

	if (isDefined(self.prot_hud))
		self.prot_hud destroy();
}