Results 1 to 10 of 73

Thread: GAS Grenade For COD2 MP

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Private First Class G-Stuff002's Avatar
    Join Date
    Jan 2018
    Posts
    212
    Thanks
    42
    Thanked 109 Times in 107 Posts
    now, what i do. Look all script in _mc2_mcFX.gsc and change

    in script
    alliedgas_mp to smoke_grenade_german_mp, beacouse i will be use usual/original smoke grenade for change

    In weapons/mp
    alliedgas_mp file rename to smoke_grenade_german_mp and cut/past to new.iwd

    and will see if _mc2_mcFX Redirect to loading other GSCs
    Last edited by G-Stuff002; 21st February 2018 at 13:08.

  2. #2
    Brigadier General
    Join Date
    Oct 2012
    Posts
    994
    Thanks
    20
    Thanked 588 Times in 388 Posts
    Quote Originally Posted by G-Stuff002 View Post
    now, what i do. Look all script in _mc2_mcFX.gsc and change

    in script
    alliedgas_mp to smoke_grenade_german_mp, beacouse i will be use usual/original smoke grenade for change

    In weapons/mp
    alliedgas_mp file rename to smoke_grenade_german_mp and cut/past to new.iwd

    and will see if _mc2_mcFX Redirect to loading other GSCs
    To start everything off, you need to edit each gametype file, and modify the callback_playerdamage() function:

    Code:
    Callback_PlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime)
    {
    	if(self.sessionteam == "spectator")
    		return;
    		
    	if( isDefined(sWeapon) && sWeapon == "axisgas_mp"|| sWeapon == "alliedgas_mp" )
    	{
    			if(sWeapon == "alliedgas_mp" && sMeansOfDeath != "MOD_MELEE")
    			{
    				if (!isDefined(vPoint))
    					vPoint = self.origin + (0,0,11);
    				if(isDefined(level.mustardgas) && level.mustardgas == vPoint)
    					return;
    				level.mustardgas = vPoint;
    				level thread _mc2\_mc2_mcFX::AlliedMonitorMustardGas(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, level.mustardgas, vDir, sHitLoc, psOffsetTime);
    				return;
    			}
    			else if(sWeapon == "axisgas_mp" && sMeansOfDeath != "MOD_MELEE")
    			{
    				if (!isDefined(vPoint))
    				vPoint = self.origin + (0,0,11);
    				if(isDefined(level.mustardgas) && level.mustardgas == vPoint)
    				return;
    				level.mustardgas = vPoint;
    				level thread _mc2\_mc2_mcFX::AlliedMonitorMustardGas(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, level.mustardgas, vDir, sHitLoc, psOffsetTime);
    				return;
    
    			}
    	}
    
    	// Don't do knockback if the damage direction was not specified
    	if(!isDefined(vDir))
    		iDFlags |= level.iDFLAGS_NO_KNOCKBACK;
    
    	friendly = undefined;
    
    	// check for completely getting out of the damage
    	if(!(iDFlags & level.iDFLAGS_NO_PROTECTION))
    	{
    		if(isPlayer(eAttacker) && (self != eAttacker) && (self.pers["team"] == eAttacker.pers["team"]))
    		{
    			if(level.friendlyfire == "0")
    			{
    				return;
    			}
    			else if(level.friendlyfire == "1")
    			{
    				// Make sure at least one point of damage is done
    				if(iDamage < 1)
    					iDamage = 1;
    
    				self finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);
    
    				// Shellshock/Rumble
    				self thread maps\mp\gametypes\_shellshock::shellshockOnDamage(sMeansOfDeath, iDamage);
    				self playrumble("damage_heavy");
    			}
    			else if(level.friendlyfire == "2")
    			{
    				eAttacker.friendlydamage = true;
    
    				iDamage = int(iDamage * .5);
    
    				// Make sure at least one point of damage is done
    				if(iDamage < 1)
    					iDamage = 1;
    
    				eAttacker finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);
    				eAttacker.friendlydamage = undefined;
    
    				friendly = true;
    			}
    			else if(level.friendlyfire == "3")
    			{
    				eAttacker.friendlydamage = true;
    
    				iDamage = int(iDamage * .5);
    
    				// Make sure at least one point of damage is done
    				if(iDamage < 1)
    					iDamage = 1;
    
    				self finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);
    				eAttacker finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);
    				eAttacker.friendlydamage = undefined;
    
    				friendly = true;
    
    				// Shellshock/Rumble
    				self thread maps\mp\gametypes\_shellshock::shellshockOnDamage(sMeansOfDeath, iDamage);
    				self playrumble("damage_heavy");
    			}
    		}
    		else
    		{
    			// Make sure at least one point of damage is done
    			if(iDamage < 1)
    				iDamage = 1;
    
    			self finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);
    
    			// Shellshock/Rumble
    			self thread maps\mp\gametypes\_shellshock::shellshockOnDamage(sMeansOfDeath, iDamage);
    			self playrumble("damage_heavy");
    		}
    
    		if(isdefined(eAttacker) && eAttacker != self)
    			eAttacker thread maps\mp\gametypes\_damagefeedback::updateDamageFeedback();
    	}
    	
    
    	// Do debug print if it's enabled
    	if(getCvarInt("g_debugDamage"))
    	{
    		println("client:" + self getEntityNumber() + " health:" + self.health +
    			" damage:" + iDamage + " hitLoc:" + sHitLoc);
    	}
    
    	if(self.sessionstate != "dead")
    	{
    		lpselfnum = self getEntityNumber();
    		lpselfname = self.name;
    		lpselfteam = self.pers["team"];
    		lpselfGuid = self getGuid();
    		lpattackerteam = "";
    
    		if(isPlayer(eAttacker))
    		{
    			lpattacknum = eAttacker getEntityNumber();
    			lpattackGuid = eAttacker getGuid();
    			lpattackname = eAttacker.name;
    			lpattackerteam = eAttacker.pers["team"];
    		}
    		else
    		{
    			lpattacknum = -1;
    			lpattackGuid = "";
    			lpattackname = "";
    			lpattackerteam = "world";
    		}
    
    		if(isDefined(friendly))
    		{
    			lpattacknum = lpselfnum;
    			lpattackname = lpselfname;
    			lpattackGuid = lpselfGuid;
    		}
    
    		logPrint("D;" + lpselfGuid + ";" + lpselfnum + ";" + lpselfteam + ";" + lpselfname + ";" + lpattackGuid + ";" + lpattacknum + ";" + lpattackerteam + ";" + lpattackname + ";" + sWeapon + ";" + iDamage + ";" + sMeansOfDeath + ";" + sHitLoc + "\n");
    	}
    }
    As you can see from this, the code looks for either alliedgas_mp or axisgas_mp weapon files, and starts threading to your mustardgas functions.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •