Login x
User Name:
Password:
Social Links Facebook Twitter YouTube Steam RSS News Feeds

Members Online

»
0 Active | 52 Guests
Online:

LATEST FORUM THREADS

»
CoD: Battle Royale
CoD+UO Map + Mod Releases
Damaged .pk3's
CoD Mapping
heli to attack ai
CoD4 SP Mapping

Forums

»

Welcome to the MODSonline.com forums. Looking for Frequently Asked Questions? Check out our FAQs section or search it out using the SEARCH link below. If you are new here, you may want to check out our rules and this great user's guide to the forums and the website.
For more mapping and modding information, see our Wiki: MODSonWiki.com

Jump To:
Forum: All Forums : Call of Duty 4
Category: CoD4 Scripting
Scripting and coding with Call of Duty 4.
Moderators: foyleman, Foxhound, Mystic, StrYdeR, batistablr, Welshy, DrBiggzz, supersword, playername, novemberdobby
Latest Posts
Subscribed Posts
Search
Restricted Access Topic is Locked
Page
Next Page
subscribe
Author Topic: Give Player Ammo (MP)
DeekCiti
General Member
Since: Mar 13, 2008
Posts: 1293
Last: Jul 9, 2016
[view latest posts]
Level 8
Category: CoD4 Scripting
Posted: Monday, Mar. 23, 2009 08:21 pm
Could anyone cook up a script quick to give a player max ammo for the current gun they have, when they press a trigger?


Trigger = Array of Triggers


I have a (lot) of ammo boxes set up with a trigger_use_touch around them for players get get full ammo when trigger is pressed. Just need a script to run it. I tried one way, but failed.

I would just spawn a weapon with full ammo, but it doesn't work.

IE:
Right click 2D, weapon>mp44_mp

Ticked "Respawn" doesn't even respawn when player picks up weapon.

Tried also adding, "count" - Specifies a specific amount of ammo to include with the weapon. Amount is capped to ammo max.

Key = count
Value = 50

Adding a count doesn't do anything, no clue, so my only other option was to run a script so players can get ammo for the gun they pickup. Can anyone help me out with the script, or inform me why the count is not working?
Share |
techno2sl
General Member
Since: Aug 5, 2004
Posts: 2977
Last: Oct 14, 2010
[view latest posts]
Level 9
Category: CoD4 Scripting
Posted: Monday, Mar. 23, 2009 08:42 pm
Check out.

Looks like what you need, I'll have to check out another idea a sec.
Share |
DeekCiti
General Member
Since: Mar 13, 2008
Posts: 1293
Last: Jul 9, 2016
[view latest posts]
Level 8
Category: CoD4 Scripting
Posted: Monday, Mar. 23, 2009 08:58 pm
Yeah, I already found that, but I don't know how to apply it to script, when I said I tried something but failed, that is what I tried.

I was going to post that in my opening thread, but forgot, and ten minutes edit time was up. You're right, that is the line I need to make it work, or one of them.
Share |
DeekCiti
General Member
Since: Mar 13, 2008
Posts: 1293
Last: Jul 9, 2016
[view latest posts]
Level 8
Category: CoD4 Scripting
Posted: Wednesday, Apr. 1, 2009 12:06 am
I was able to get it working this way.

Created a "trigger_use_touch" around where I want a player to get ammo from.

Gave trigger a targetname of: "ammo_trig" and a hintstring.

I used "player GiveStartAmmo" insead of "player GiveMaxAmmo" because max ammo was too much.

For now I just added each individual gun to the list, so no matter what gun you are carrying, it will give you ammo for it. there is probably a way to separate the code by class, but I don't know how to do it that way.


Code:
main()
{
	thread ammo();
}
ammo()
{

	ammotrigger = getentarray("ammo_trig","targetname");
	for(i=0;i< ammotrigger.size;i++)
	{
		ammotrigger[i] thread give_ammo();
	}
}

give_ammo()
{
	
	while(1)
	{
		self waittill("trigger", player);

		player GiveStartAmmo( "ak47_acog_mp" );
		player GiveStartAmmo( "ak47_gl_mp" );
		player GiveStartAmmo( "ak47_mp" );
		player GiveStartAmmo( "ak47_reflex_mp" );
		player GiveStartAmmo( "ak47_silencer_mp" );
		
		player GiveStartAmmo( "ak74u_acog_mp" );
		player GiveStartAmmo( "ak74u_mp" );
		player GiveStartAmmo( "ak74u_reflex_mp" );
		player GiveStartAmmo( "ak74u_silencer_mp" );
		
		player GiveStartAmmo( "barrett_acog_mp" );
		player GiveStartAmmo( "barrett_mp" );
		
		player GiveStartAmmo( "beretta_mp" );
		player GiveStartAmmo( "beretta_silencer_mp" );
		
		player GiveStartAmmo( "colt45_mp" );
		player GiveStartAmmo( "colt45_silencer_mp" );
		
		player GiveStartAmmo( "deserteagle_mp" );
		player GiveStartAmmo( "deserteaglegold_mp" );
		
		player GiveStartAmmo( "dragunov_acog_mp" );
		player GiveStartAmmo( "dragunov_mp" );
		
		player GiveStartAmmo( "g3_acog_mp" );
		player GiveStartAmmo( "g3_gl_mp" );
		player GiveStartAmmo( "g3_mp" );
		player GiveStartAmmo( "g3_reflex_mp" );
		player GiveStartAmmo( "g3_silencer_mp" );
		
		player GiveStartAmmo( "g36c_acog_mp" );
		player GiveStartAmmo( "g36c_gl_mp" );
		player GiveStartAmmo( "g36c_mp" );
		player GiveStartAmmo( "g36c_reflex_mp" );
		player GiveStartAmmo( "g36c_silencer_mp" );
		
		player GiveStartAmmo( "m4_acog_mp" );
		player GiveStartAmmo( "m4_gl_mp" );
		player GiveStartAmmo( "m4_mp" );
		player GiveStartAmmo( "m4_reflex_mp" );
		player GiveStartAmmo( "m4_silencer_mp" );
		
		player GiveStartAmmo( "m14_acog_mp" );
		player GiveStartAmmo( "m14_gl_mp" );
		player GiveStartAmmo( "m14_mp" );
		player GiveStartAmmo( "m14_reflex_mp" );
		player GiveStartAmmo( "m14_silencer_mp" );
		
		player GiveStartAmmo( "m16_acog_mp" );
		player GiveStartAmmo( "m16_gl_mp" );
		player GiveStartAmmo( "m16_mp" );
		player GiveStartAmmo( "m16_reflex_mp" );
		player GiveStartAmmo( "m16_silencer_mp" );
		
		player GiveStartAmmo( "m21_acog_mp" );
		player GiveStartAmmo( "m21_mp" );
		
		player GiveStartAmmo( "m40a3_acog_mp" );		
		player GiveStartAmmo( "m40a3_mp" );	
		player GiveStartAmmo( "m60e4_acog_mp" );			
		player GiveStartAmmo( "m60e4_grip_mp" );			
		player GiveStartAmmo( "m60e4_mp" );			
		player GiveStartAmmo( "m60e4_reflex_mp" );	
		
		player GiveStartAmmo( "m1014_grip_mp" );			
		player GiveStartAmmo( "m1014_mp" );			
		player GiveStartAmmo( "m1014_reflex_mp" );
		
		player GiveStartAmmo( "mp5_acog_mp" );	
		player GiveStartAmmo( "mp5_mp" );
		player GiveStartAmmo( "mp5_reflex_mp" );
		player GiveStartAmmo( "mp5_silencer_mp" );
		
		player GiveStartAmmo( "mp44_mp" );
		
		player GiveStartAmmo( "p90_acog_mp" );
		player GiveStartAmmo( "p90_mp" );
		player GiveStartAmmo( "p90_reflex_mp" );
		player GiveStartAmmo( "p90_silencer_mp" );
		
		player GiveStartAmmo( "remington700_acog_mp" );
		player GiveStartAmmo( "remington700_mp" );
		
		player GiveStartAmmo( "rpd_acog_mp" );
		player GiveStartAmmo( "rpd_grip_mp" );
		player GiveStartAmmo( "rpd_mp" );
		player GiveStartAmmo( "rpd_reflex_mp" );
		
		player GiveStartAmmo( "saw_acog_mp" );
		player GiveStartAmmo( "saw_grip_mp" );
		player GiveStartAmmo( "saw_mp" );
		player GiveStartAmmo( "saw_reflex_mp" );
		
		player GiveStartAmmo( "skorpion_acog_mp" );
		player GiveStartAmmo( "skorpion_mp" );
		player GiveStartAmmo( "skorpion_reflex_mp" );
		player GiveStartAmmo( "skorpion_silencer_mp" );
		
		player GiveStartAmmo( "usp_mp" );
		player GiveStartAmmo( "usp_silencer_mp" );
		
		player GiveStartAmmo( "uzi_acog_mp" );
		player GiveStartAmmo( "uzi_mp" );
		player GiveStartAmmo( "uzi_reflex_mp" );
		player GiveStartAmmo( "uzi_silencer_mp" );
		
		player GiveStartAmmo( "winchester1200_grip_mp" );
		player GiveStartAmmo( "winchester1200_mp" );
		player GiveStartAmmo( "winchester1200_reflex_mp" );
		
		self playsound ("weap_pickup");
		wait(0.5);
	}
}



I also made a different one for Explosives ammo, but only for RPG and the Grenade Launchers. The Explosive ammo has a targetname of "explo_trig". This one can be mixed into the code above in a separate thread like this, or simply all in the same thread.

Code:
main()
{
	thread ammo();
	thread expolsive_ammo();
}
ammo()
{

	ammotrigger = getentarray("ammo_trig","targetname");
	for(i=0;i< ammotrigger.size;i++)
	{
		ammotrigger[i] thread give_ammo();
	}
}

give_ammo()
{
	
	while(1)
	{
		self waittill("trigger", player);

		player GiveStartAmmo( "ak47_acog_mp" );
		player GiveStartAmmo( "ak47_gl_mp" );
		player GiveStartAmmo( "ak47_mp" );
		player GiveStartAmmo( "ak47_reflex_mp" );
		player GiveStartAmmo( "ak47_silencer_mp" );
		
		player GiveStartAmmo( "ak74u_acog_mp" );
		player GiveStartAmmo( "ak74u_mp" );
		player GiveStartAmmo( "ak74u_reflex_mp" );
		player GiveStartAmmo( "ak74u_silencer_mp" );
		
		player GiveStartAmmo( "barrett_acog_mp" );
		player GiveStartAmmo( "barrett_mp" );
		
		player GiveStartAmmo( "beretta_mp" );
		player GiveStartAmmo( "beretta_silencer_mp" );
		
		player GiveStartAmmo( "colt45_mp" );
		player GiveStartAmmo( "colt45_silencer_mp" );
		
		player GiveStartAmmo( "deserteagle_mp" );
		player GiveStartAmmo( "deserteaglegold_mp" );
		
		player GiveStartAmmo( "dragunov_acog_mp" );
		player GiveStartAmmo( "dragunov_mp" );
		
		player GiveStartAmmo( "g3_acog_mp" );
		player GiveStartAmmo( "g3_gl_mp" );
		player GiveStartAmmo( "g3_mp" );
		player GiveStartAmmo( "g3_reflex_mp" );
		player GiveStartAmmo( "g3_silencer_mp" );
		
		player GiveStartAmmo( "g36c_acog_mp" );
		player GiveStartAmmo( "g36c_gl_mp" );
		player GiveStartAmmo( "g36c_mp" );
		player GiveStartAmmo( "g36c_reflex_mp" );
		player GiveStartAmmo( "g36c_silencer_mp" );
		
		player GiveStartAmmo( "m4_acog_mp" );
		player GiveStartAmmo( "m4_gl_mp" );
		player GiveStartAmmo( "m4_mp" );
		player GiveStartAmmo( "m4_reflex_mp" );
		player GiveStartAmmo( "m4_silencer_mp" );
		
		player GiveStartAmmo( "m14_acog_mp" );
		player GiveStartAmmo( "m14_gl_mp" );
		player GiveStartAmmo( "m14_mp" );
		player GiveStartAmmo( "m14_reflex_mp" );
		player GiveStartAmmo( "m14_silencer_mp" );
		
		player GiveStartAmmo( "m16_acog_mp" );
		player GiveStartAmmo( "m16_gl_mp" );
		player GiveStartAmmo( "m16_mp" );
		player GiveStartAmmo( "m16_reflex_mp" );
		player GiveStartAmmo( "m16_silencer_mp" );
		
		player GiveStartAmmo( "m21_acog_mp" );
		player GiveStartAmmo( "m21_mp" );
		
		player GiveStartAmmo( "m40a3_acog_mp" );		
		player GiveStartAmmo( "m40a3_mp" );	
		player GiveStartAmmo( "m60e4_acog_mp" );			
		player GiveStartAmmo( "m60e4_grip_mp" );			
		player GiveStartAmmo( "m60e4_mp" );			
		player GiveStartAmmo( "m60e4_reflex_mp" );	
		
		player GiveStartAmmo( "m1014_grip_mp" );			
		player GiveStartAmmo( "m1014_mp" );			
		player GiveStartAmmo( "m1014_reflex_mp" );
		
		player GiveStartAmmo( "mp5_acog_mp" );	
		player GiveStartAmmo( "mp5_mp" );
		player GiveStartAmmo( "mp5_reflex_mp" );
		player GiveStartAmmo( "mp5_silencer_mp" );
		
		player GiveStartAmmo( "mp44_mp" );
		
		player GiveStartAmmo( "p90_acog_mp" );
		player GiveStartAmmo( "p90_mp" );
		player GiveStartAmmo( "p90_reflex_mp" );
		player GiveStartAmmo( "p90_silencer_mp" );
		
		player GiveStartAmmo( "remington700_acog_mp" );
		player GiveStartAmmo( "remington700_mp" );
		
		player GiveStartAmmo( "rpd_acog_mp" );
		player GiveStartAmmo( "rpd_grip_mp" );
		player GiveStartAmmo( "rpd_mp" );
		player GiveStartAmmo( "rpd_reflex_mp" );
		
		player GiveStartAmmo( "saw_acog_mp" );
		player GiveStartAmmo( "saw_grip_mp" );
		player GiveStartAmmo( "saw_mp" );
		player GiveStartAmmo( "saw_reflex_mp" );
		
		player GiveStartAmmo( "skorpion_acog_mp" );
		player GiveStartAmmo( "skorpion_mp" );
		player GiveStartAmmo( "skorpion_reflex_mp" );
		player GiveStartAmmo( "skorpion_silencer_mp" );
		
		player GiveStartAmmo( "usp_mp" );
		player GiveStartAmmo( "usp_silencer_mp" );
		
		player GiveStartAmmo( "uzi_acog_mp" );
		player GiveStartAmmo( "uzi_mp" );
		player GiveStartAmmo( "uzi_reflex_mp" );
		player GiveStartAmmo( "uzi_silencer_mp" );
		
		player GiveStartAmmo( "winchester1200_grip_mp" );
		player GiveStartAmmo( "winchester1200_mp" );
		player GiveStartAmmo( "winchester1200_reflex_mp" );
		
		self playsound ("weap_pickup");
		wait(0.5);
	}
}




expolsive_ammo()
{
	explo_ammo = getentarray("explo_trig","targetname");
	for(i=0;i< explo_ammo.size;i++)
	{
		explo_ammo[i] thread give_explo_ammo();
	}
}

give_explo_ammo()
{
	
	while(1)
	{
		self waittill("trigger", player);

		player GiveMaxAmmo( "rpg_mp" );
		
		player GiveMaxAmmo( "gl_ak47_mp" );
		player GiveMaxAmmo( "gl_g3_mp" );
		player GiveMaxAmmo( "gl_g36c_mp" );
		player GiveMaxAmmo( "gl_m4_mp" );
		player GiveMaxAmmo( "gl_m14_mp" );
		player GiveMaxAmmo( "gl_m16_mp" );
		player GiveMaxAmmo( "gl_mp" );
		
		self playsound ("weap_pickup");
		wait(0.5);
	}
}



I'm sure there is an easier way to write it, but this is how I did it and it works just fine.
Share |
_INSANE_
General Member
Since: Nov 7, 2008
Posts: 352
Last: Jul 10, 2011
[view latest posts]
Level 5
Im a fan of MODSonair
Category: CoD4 Scripting
Posted: Wednesday, Apr. 1, 2009 08:19 am
Code:
give_ammo()
{
	while(1)
	{
		self waittill("trigger", player);

		weapon = player GetCurrentWeapon();
		player GiveMaxAmmo(weapon);

		self playsound ("weap_pickup");
		wait(0.5);
	}
}


edited on Apr. 1, 2009 04:19 am by -=INSANE=-
Share |
DeekCiti
General Member
Since: Mar 13, 2008
Posts: 1293
Last: Jul 9, 2016
[view latest posts]
Level 8
Category: CoD4 Scripting
Posted: Wednesday, Apr. 1, 2009 02:09 pm
Yeah, that would work, but since I was trying to not allow players to pick up anything besides Clip Ammo, RPG and Grenade Launcher Rounds, with that code they can get ammo for C4, and Claymore, or whatever their Primary Weapon is at the moment, but maybe I can mess with it. [thumbs_up] Thanks!
Share |
DeekCiti
General Member
Since: Mar 13, 2008
Posts: 1293
Last: Jul 9, 2016
[view latest posts]
Level 8
Category: CoD4 Scripting
Posted: Wednesday, Apr. 1, 2009 04:42 pm
This seems to work. No Ammo for Claymores or C4, but for all other weapons.


Code:
give_ammo()
{
	
	while(1)
	{
		self waittill("trigger", player);		
		weapon = player GetCurrentWeapon();		
		if (weapon == "c4_mp" || weapon == "claymore_mp")
		{
			player iprintln("Ammo Unavailable");
			wait(0.5);
		}			
		else
		{
			player GiveStartAmmo(weapon);
			self playsound ("weap_pickup");
			wait(0.5);
		}
	}
}



It's not a big deal that those two were in there, I just needed them for my map to play properly I guess. Anyways, thanks for the "getcurrentweapon" didn't see that there, helps simplify the code. [thumbs_up]
Share |
TFD|Gumpi
General Member
Since: Aug 28, 2008
Posts: 37
Last: May 16, 2009
[view latest posts]
Level 2
Category: CoD4 Scripting
Posted: Friday, Apr. 3, 2009 03:44 pm
I just found a nasty glitch with this script, you can get infinity ammo and an unlimited clip, if you stand inside the trigger and keep your finger on the escape button. I think it would be better if you could set a limit of using it 3 times. I think it would be a good idea if you create lets say for example 3 ammo boxes, and everytime when you press F one of them disapears.
Share |
DeekCiti
General Member
Since: Mar 13, 2008
Posts: 1293
Last: Jul 9, 2016
[view latest posts]
Level 8
Category: CoD4 Scripting
Posted: Friday, Apr. 3, 2009 05:38 pm
I'll take a look into that [wave]
Share |
TFD|Gumpi
General Member
Since: Aug 28, 2008
Posts: 37
Last: May 16, 2009
[view latest posts]
Level 2
Category: CoD4 Scripting
Posted: Friday, Apr. 3, 2009 05:49 pm
Hey thanks man. It seems, that you have a lot of scripting experience, can you tell me a site with tutorials for CoD scripting. The problem is, that I understand the logical things of programming like if elseif and so on ( I've already wrote many C# programms ). But I don't know the commands, which I have to use when I write scripts for CoD 4.

edited on Apr. 3, 2009 01:51 pm by TFD|Gumpi
Share |
Restricted Access Topic is Locked
Page
Next Page
subscribe
MODSonline.com Forums : Call of Duty 4 : CoD4 Scripting

Latest Syndicated News

»
Codutility.com up and runn...
Nice, and there still using the logo and template for the screenshots, which...
Codutility.com up and runn...
dundy writes...Quote:Call of Duty modding and mapping is barly alive only a ...
Codutility.com up and runn...
Mystic writes...Quote:It seems to me the like the site is completely dead? ...
Codutility.com up and runn...
It seems to me the like the site is completely dead?

Partners & Friends

»