Jump to content
Sign in to follow this  
Militant1006

Ammo Crate refiller

Recommended Posts

I need help with making ammo boxes in my missions refill after a certain amount of time so they don't run out, I need a simple script, that someone will have to explain to me how to use, that refills weapons after a certain amount of time, now I know there are ammo crate filler scripts everywhere, but I need a script that can be used on multiple ammo crates in one mission, and it DOESN'T ADD WEAPONS, I already have the right weapons, just gotta make sure they don't run out.

Thanks for any help, and sorry I couldn't figure this one out for myself.

Share this post


Link to post
Share on other sites

I'm going to point you into the right direction:

First when the mission starts the script needs to know which magazines and how many are in the crate. Use getMagazineCargo. Save this into a variable.

After 1 minute or so (Use while-loop with sleep. For example while "{sleep 60; true} do {") iterate through new getMagazineCargo and compare it to the variable. addMagazineCargoGlobal if the amount of magazines are not the same. If you want to remove extra magazines it is more trickier, because there is no removeMagazineCargo-command. You'll have to clear the whole cargo and then add all items again.

Haven't tested this method. This was just a pointer.

Share this post


Link to post
Share on other sites

well I got this script from a friend, but not sure how to use it, as I have tried and failed

0 = _box execvm "script.sqf"

scripts.sqf:

_box = _this;

_weapons = getWeaponCargo _box;

_magazines = getMagazineCargo _box;

while {true} do {

sleep 120; //120s == 2minutes

for "_i" from 0 to (count (_weapons select 0)) do {

_t = _weapons select 0 select _i;

_c = _weapons select 1 select _i;

_box addweaponcargo [_t, _c];

};

for "_i" from 0 to (count (_magazines select 0)) do {

_t = _magazines select 0 select _i;

_c = _magazines select 1 select _i;

_box addmagazinecargo [_t, _c];

};

};

Share this post


Link to post
Share on other sites

That will put more items every other minute. If you start the mission with 5 stanag mags and wait 6 minutes there will be 20 stanags.

Share this post


Link to post
Share on other sites

I use this

Original Code by BON_IF adapted and simplified using AAW mod weapons

First in mission editor create a marker called "ammobox"

Second insert into init.sqf:

_ammo = "USVehicleBox" createVehicleLocal getMarkerPos "ammobox";
_ammo allowDamage false;
[_ammo] execVM "scripts\ammocrate_filler.sqf";

Third create scripts\ammocrate_filler.sqf with the following:

// by Bon_Inf
private ['_contenttype'];

_cache = _this select 0;

_weapons = [
"AAW_f88_A1","AAW_f88_A1_gla","AAW_f88_elcan","AAW_f88_elcan_gla","AAW_f88_S","AAW_f88_S_gla","AAW_f88_ACOG","AAW_f88_ACOG_gla","AAW_f88_AIM","AAW_f88_AIM_gla","AAW_f88SA2_15",
"AAW_f88SA2_15_gla","AAW_f88SA2_elcan","AAW_f88SA2_elcan_gla","AAW_f88SA2_ACOG","AAW_f88SA2_ACOG_gla","AAW_f88SA2_AIM",
"AAW_f89_ELCAN","AAW_f89_ACOG","AAW_f89_15","AAW_f89_AIM",
"AAW_mag58","AAW_mag58_ELCAN","AAW_mag58_ACOG","AAW_mag58_AIM",
"AAW_M72a6","AAW_M2_carlG","AAW_M2_carlG_optic","AAW_M2_carlG_D","AAW_M2_carlG_optic_D","Javelin",
"M24","M40A3","m107","BAF_LRR_scoped",
"aaw_9mmslp","M9","M9SD","glock17_EP1",
"NVGoggles","ItemMap","ItemCompass","ItemWatch","ItemRadio","Binocular_Vector","glock17_EP1","ItemGPS"
];

_magazines = [
"aaw_f88_mag","aaw_f88_mag_allTracers","aaw_f89_mag","aaw_f89_mag_allTracers","aaw_f89_100_mag","aaw_f89_100_mag_allTracers",
"aaw_mag58_mag","aaw_mag58_mag_allTracers",
"1Rnd_HE_M203","1Rnd_Smoke_M203","1Rnd_SmokeGreen_M203","1Rnd_SmokeRed_M203","1Rnd_SmokeYellow_M203","FlareGreen_M203","FlareRed_M203","FlareWhite_M203","FlareYellow_M203",
"aaw_HEDP","aaw_HEAT","aaw_HEAT_RAP","aaw_HEDP_FFV","aaw_HEAT_FFV","aaw_HEAT_RAP_FFV","Javelin",
"5Rnd_762x51_M24","10Rnd_127x99_M107","5Rnd_86x70_L115A1",
"13Rnd_9mm_SLP","15Rnd_9x19_M9","15Rnd_9x19_M9SD","17Rnd_9x19_glock17",
"SmokeShell","SmokeShellGreen","SmokeShellRed","SmokeShellYellow","SmokeShellBlue","SmokeShellPurple","SmokeShellOrange",
"PipeBomb","Mine","aaw_f1_grenade","LaserBatteries","IR_Strobe_Target","IR_Strobe_Marker"
];

if(tfor_acre == 1) then {
_weapons = _weapons + ["ACRE_PRC148","ACRE_PRC148_UHF","ACRE_PRC117F","ACRE_PRC119","ACRE_PRC343"];
};

//remove duplicates:
{ _magazines = (_magazines - [_x]) + [_x]; } foreach _magazines;
{ _weapons = (_weapons - [_x]) + [_x]; } foreach _weapons;

_weaponcapacity = 0 max (getNumber (configFile >> "CfgVehicles" >> typeOf _cache >> "transportMaxWeapons") min 470);
_magazinecapacity = 0 max (getNumber (configFile >> "CfgVehicles" >> typeOf _cache >> "transportMaxMagazines") min 880);

while {alive _cache} do {
{deleteVehicle _x} foreach nearestObjects [position _cache,["WeaponHolder"],50];
clearMagazineCargo _cache;
clearWeaponCargo _cache;
{ _cache addWeaponCargo [_x, floor(_weaponcapacity / (count _weapons))]; } foreach _weapons;
{ _cache addMagazineCargo [_x, floor(_magazinecapacity / (count _magazines))]; } foreach _magazines;
sleep 1800; // restock time.
}; 

Share this post


Link to post
Share on other sites

oh jeez, I will say this again, i need a refiller, not a filler, Gekkibi, i suppose I dont mind if it stacks items up, but would you know how to use that script? the person who gave it to me is never on his computer

Share this post


Link to post
Share on other sites

Hi Militantsausage,

the last part of the code i gave you refills the box every "x" seconds. It clears it then refills it so there is always weapons and ammunition.

while {alive _cache} do {
{deleteVehicle _x} foreach nearestObjects [position _cache,["WeaponHolder"],50];
clearMagazineCargo _cache;
clearWeaponCargo _cache;
{ _cache addWeaponCargo [_x, floor(_weaponcapacity / (count _weapons))]; } foreach _weapons;
{ _cache addMagazineCargo [_x, floor(_magazinecapacity / (count _magazines))]; } foreach _magazines;
sleep 1800; // restock time.
};

Share this post


Link to post
Share on other sites

does it require you to put in the weapon names first? can be a real pain with ACE

EDIT: thanks roy, this is looks useful, I guess there isn't an easier way to set it up.

Share this post


Link to post
Share on other sites

yeah, basically you create an "ACE" part, just like the ACRE part in the code above and set the ACE weapons.

It is a bit of manual setup initially but works a really well and have not found any bugs to date.

It also allows dynamically sized boxes as well, so if you change the box type the filler will still proportion the weapons and ammo appropriately.

I suggest analyse the "TFOR" missions by bon_if. they are a great resource for adaptable scripting.

Share this post


Link to post
Share on other sites
oh jeez, I will say this again, i need a refiller, not a filler, Gekkibi, i suppose I dont mind if it stacks items up, but would you know how to use that script? the person who gave it to me is never on his computer

You'll have to think outside of your tiny little box. If it fills it without checking if it already have x amount of magazines it will run out of space. It is possible that you will run out of certain kind of magazines and it never add more of 'em.

oh jeez, I guess it is pointless to give pointers nowadays...

Share this post


Link to post
Share on other sites

I recently tried to gather all ACE equipment, and came up with the following list:

_weapons = _weapons + [
"ACE_RPK","ACE_RPK74M","ACE_RPK74M_1P29","ACE_BrokenNVGoggles","ACE_Laserdesignator_D",
"ACE_MX2A","ACE_Rangefinder_OD","ACE_YardAge450","ACE_Broken_GPS","ACE_BrokenRadio",
"ACE_BrokenWatch","ACE_DAGR","ACE_Earplugs","ACE_GlassesBalaklava",
"ACE_GlassesBalaklavaGray","ACE_GlassesBalaklavaOlive","ACE_GlassesGasMask_RU",
"ACE_GlassesGasMask_US","ACE_GlassesLHD_glasses","ACE_GlassesSunglasses",
"ACE_GlassesTactical","ACE_HuntIR_monitor","ACE_Kestrel4500","ACE_KeyCuffs","ACE_Map",
"ACE_Map_Tools","ACE_SpottingScope","ACE_WireCutter","ACE_Javelin_Direct",
"ACE_JerryCan_Dummy_15","ACE_M136_CSRS","ACE_M72","ACE_M72A2","ACE_ParachutePack",
"ACE_ParachuteRoundPack","ACE_RMG","ACE_RPG22","ACE_RPG27","ACE_RPG29","ACE_RPG7V_PGO7",
"ACE_RPOM","ACE_RSHG1","ACE_BAF_L7A2_GPMG","ACE_M60","ACE_Flaregun","ACE_Glock18",
"ACE_Knicklicht_Proxy","ACE_L9A1","ACE_P226","ACE_P8","ACE_TT","ACE_USP","ACE_USPSD",
"ACE_AK103","ACE_AK103_1P29","ACE_AK103_GL","ACE_AK103_GL_1P29","ACE_AK103_GL_Kobra",
"ACE_AK103_GL_PSO","ACE_AK103_Kobra","ACE_AK103_PSO","ACE_AK104","ACE_AK104_1P29",
"ACE_AK104_Kobra","ACE_AK104_PSO","ACE_AK105","ACE_AK105_1P29","ACE_AK105_Kobra",
"ACE_AK105_PSO","ACE_AK74M","ACE_AK74M_1P29","ACE_AK74M_GL","ACE_AK74M_GL_1P29",
"ACE_AK74M_GL_Kobra","ACE_AK74M_GL_PSO","ACE_AK74M_Kobra","ACE_AK74M_PSO","ACE_AKM",
"ACE_AKM_GL","ACE_AKMS","ACE_AKMS_SD","ACE_AKS74_GP25","ACE_AKS74_UN","ACE_AKS74P",
"ACE_AKS74P_1P29","ACE_AKS74P_GL","ACE_AKS74P_GL_1P29","ACE_AKS74P_GL_Kobra",
"ACE_AKS74P_GL_PSO","ACE_AKS74P_Kobra","ACE_AKS74P_PSO","ACE_G36A1_AG36A1",
"ACE_G36A1_AG36A1_D","ACE_G36A1_AG36A1_D_UP","ACE_G36A1_AG36A1_UP","ACE_G36A2",
"ACE_G36A2_Bipod","ACE_G36A2_Bipod_D","ACE_G36A2_D","ACE_G36K_EOTech",
"ACE_G36K_EOTech_D","ACE_G36K_iron","ACE_G36K_iron_D","ACE_G3A3","ACE_G3A3_RSAS",
"ACE_G3SG1","ACE_gr1","ACE_gr1sd","ACE_gr1sdsp","ACE_gr1sp","ACE_HK416_D10",
"ACE_HK416_D10_AIM","ACE_HK416_D10_COMPM3","ACE_HK416_D10_COMPM3_SD","ACE_HK416_D10_Holo",
"ACE_HK416_D10_M320","ACE_HK416_D10_M320_UP","ACE_HK416_D10_SD","ACE_HK416_D14",
"ACE_HK416_D14_ACOG_PVS14","ACE_HK416_D14_COMPM3","ACE_HK416_D14_COMPM3_M320",
"ACE_HK416_D14_COMPM3_M320_UP","ACE_HK416_D14_SD","ACE_HK416_D14_TWS","ACE_HK417_Eotech_4x",
"ACE_HK417_leupold","ACE_HK417_micro","ACE_HK417_Shortdot","ACE_KAC_PDW","ACE_M1014_Eotech",
"ACE_M14_ACOG","ACE_m16a2_scope","ACE_m16a2gl_scope","ACE_m16a2gl_scope_UP","ACE_M16A2GL_UP",
"ACE_M16A4_ACG_GL_UP","ACE_M16A4_CCO_GL","ACE_M16A4_CCO_GL_UP","ACE_M16A4_GL_UP","ACE_M16A4_Iron",
"ACE_M27_IAR","ACE_M27_IAR_ACOG","ACE_M3A1","ACE_M4","ACE_M4_ACOG","ACE_M4_Aim","ACE_M4_AIM_GL",
"ACE_M4_AIM_GL_UP","ACE_M4_Eotech","ACE_M4_GL","ACE_M4_GL_UP","ACE_M4_RCO_GL","ACE_M4_RCO_GL_UP",
"ACE_M4A1_ACOG","ACE_M4A1_ACOG_SD","ACE_M4A1_AIM_GL","ACE_M4A1_AIM_GL_SD","ACE_M4A1_AIM_GL_SD_UP",
"ACE_M4A1_AIM_GL_UP","ACE_M4A1_Aim_SD","ACE_M4A1_Eotech","ACE_M4A1_GL","ACE_M4A1_GL_SD",
"ACE_M4A1_GL_SD_UP","ACE_M4A1_GL_UP","ACE_M4A1_RCO2_GL","ACE_M4A1_RCO2_GL_UP","ACE_M4A1_RCO_GL",
"ACE_M4SPR_SD","ACE_Mk12mod1","ACE_Mk12mod1_SD","ACE_MP5A4","ACE_MP5A5","ACE_MP5SD","ACE_MP7",
"ACE_MP7_RSAS","ACE_oc14","ACE_oc14gl","ACE_oc14glsp","ACE_oc14sd","ACE_oc14sdsp","ACE_oc14sp",
"ACE_SCAR_H_STD_Spect","ACE_SKS","ACE_SOC_M4A1","ACE_SOC_M4A1_Aim","ACE_SOC_M4A1_AIM_SD",
"ACE_SOC_M4A1_Eotech","ACE_SOC_M4A1_Eotech_4x","ACE_SOC_M4A1_GL","ACE_SOC_M4A1_GL_13",
"ACE_SOC_M4A1_GL_AIMPOINT","ACE_SOC_M4A1_GL_EOTECH","ACE_SOC_M4A1_GL_SD","ACE_SOC_M4A1_GL_SD_UP",
"ACE_SOC_M4A1_GL_UP","ACE_SOC_M4A1_RCO_GL","ACE_SOC_M4A1_RCO_GL_UP","ACE_SOC_M4A1_SD_9",
"ACE_SOC_M4A1_SHORTDOT","ACE_SOC_M4A1_SHORTDOT_SD","ACE_SOC_M4A1_TWS","ACE_SPAS12","ACE_UMP45",
"ACE_UMP45_SD","ACE_Val","ACE_Val_Kobra","ACE_Val_PSO","AKS_GOLD","M32_EP1","M79_EP1","Mk13_EP1",
"ACE_2b14Proxy","ACE_2b14TripodProxy","ACE_6T7TripodProxy","ACE_AGS30Proxy","ACE_AGS30TripodProxy",
"ACE_ALICE_Backpack","ACE_ANPRC77","ACE_BackPack","ACE_BackPack_ACR","ACE_BackPack_ACR_FL",
"ACE_BackPack_ACR_TT","ACE_Backpack_FL","ACE_Backpack_TT","ACE_Backpack_US","ACE_BAF_L2A1Proxy",
"ACE_BAF_static_GMGProxy","ACE_CharliePack","ACE_CharliePack_ACU","ACE_CharliePack_ACU_Medic",
"ACE_CharliePack_WMARPAT","ACE_Combat_Pack","ACE_Coyote_Pack","ACE_Coyote_Pack_Black",
"ACE_DSHKMProxy","ACE_DSHKMTripodProxy","ACE_FAST_PackEDC","ACE_FAST_PackEDC_ACU","ACE_KonkursTripodProxy",
"ACE_KORDProxy","ACE_M122TripodProxy","ACE_M220Proxy","ACE_M220TripodProxy","ACE_M224Proxy",
"ACE_M224TripodProxy","ACE_M252Proxy","ACE_M252TripodProxy","ACE_M2HBProxy","ACE_M3TripodProxy",
"ACE_MK19MOD3Proxy","ACE_P159_RD54","ACE_P159_RD90","ACE_P159_RD99","ACE_PRC119","ACE_PRC119_ACU",
"ACE_PRC119_MAR","ACE_Rucksack_EAST","ACE_Rucksack_MOLLE_ACU","ACE_Rucksack_MOLLE_ACU_Medic",
"ACE_Rucksack_MOLLE_Brown","ACE_Rucksack_MOLLE_Brown_Medic","ACE_Rucksack_MOLLE_DMARPAT",
"ACE_Rucksack_MOLLE_DMARPAT_Medic","ACE_Rucksack_MOLLE_Green","ACE_Rucksack_MOLLE_Green_Medic",
"ACE_Rucksack_MOLLE_WMARPAT","ACE_Rucksack_MOLLE_WMARPAT_Medic","ACE_Rucksack_MOLLE_Wood",
"ACE_Rucksack_RD54","ACE_Rucksack_RD90","ACE_Rucksack_RD91","ACE_Rucksack_RD92","ACE_Rucksack_RD99",
"ACE_Stretcher","ACE_VTAC_RUSH72","ACE_VTAC_RUSH72_ACU","ACE_VTAC_RUSH72_FT_MEDIC","ACE_VTAC_RUSH72_TT_MEDIC",
"ACE_AS50","ACE_M109","ACE_M110","ACE_M110_SD","ACE_SVD_Bipod","ACE_TAC50","ACE_TAC50_SD"
];


_magazines = _magazines + [
"ACE_100Rnd_556x45_T_M249","ACE_200Rnd_556x45_T_M249","ACE_30Rnd_556x45_SB_Stanag","ACE_30Rnd_556x45_T_Stanag",
"ACE_30Rnd_556x45_T_G36","ACE_30Rnd_762x39_T_AK47","ACE_40Rnd_762x39_B_AK47","ACE_40Rnd_762x39_T_AK47",
"ACE_75Rnd_762x39_B_AK47","ACE_30Rnd_545x39_T_AK","ACE_45Rnd_545x39_B_AK","ACE_75Rnd_545x39_T_RPK",
"ACE_Battery_Rangefinder","ACE_MAAWS_HE","ACE_Javelin_Direct","ACE_RPG29_PG29","ACE_RPG29_TBG29","ACE_PG7VM",
"ACE_TBG7V","ACE_AT13TB","ACE_SMAW_NE","ACE_20Rnd_9x18_APS","ACE_20Rnd_9x18_APSB","ACE_SSGreen_FG","ACE_SSRed_FG",
"ACE_SSWhite_FG","ACE_SSYellow_FG","ACE_33Rnd_9x19_G18","ACE_13Rnd_9x19_L9A1","ACE_15Rnd_9x19_P226",
"ACE_15Rnd_9x19_P8","ACE_8Rnd_762x25_B_Tokarev","ACE_12Rnd_45ACP_USP","ACE_30Rnd_762x39_SD_AK47",
"ACE_75Rnd_762x39_SD_AK47","ACE_1Rnd_CS_GP25","ACE_1Rnd_HE_GP25P","ACE_SSGreen_GP25","ACE_SSRed_GP25",
"ACE_SSWhite_GP25","ACE_SSYellow_GP25","ACE_20Rnd_762x51_B_FAL","ACE_20Rnd_762x51_T_FAL",
"ACE_1Rnd_CS_M203","ACE_1Rnd_HE_M203","ACE_1Rnd_PR_M203","ACE_FlareIR_M203","ACE_HuntIR_M203",
"ACE_SSGreen_M203","ACE_SSRed_M203","ACE_SSWhite_M203","ACE_SSYellow_M203","ACE_20Rnd_762x51_B_G3",
"ACE_20Rnd_762x51_T_G3","ACE_20Rnd_762x51_B_HK417","ACE_20Rnd_762x51_SB_HK417","ACE_20Rnd_762x51_T_HK417",
"ACE_30Rnd_6x35_B_PDW","ACE_20Rnd_762x51_B_M14","ACE_20Rnd_762x51_T_DMR","ACE_30Rnd_1143x23_B_M3",
"ACE_40Rnd_B_46x30_MP7","ACE_20Rnd_9x39_B_OC14","ACE_20Rnd_762x51_S_SCAR","ACE_20Rnd_762x51_SB_S_SCAR",
"ACE_20Rnd_762x51_SB_SCAR","ACE_20Rnd_762x51_T_SCAR","ACE_10Rnd_762x39_B_SKS","ACE_10Rnd_762x39_T_SKS",
"ACE_25Rnd_1143x23_B_UMP45","ACE_10Rnd_77x56_T_SMLE","ACE_30Rnd_762x39_T_SA58","ACE_5Rnd_127x99_B_TAC50",
"ACE_5Rnd_127x99_T_TAC50","ACE_5Rnd_25x59_HEDP_Barrett","ACE_20Rnd_762x51_SB_M110","ACE_20Rnd_762x51_T_M110",
"ACE_10Rnd_762x54_T_SVD","ACE_5Rnd_86x70_T_L115A1","ACE_5Rnd_127x108_T_KSVK","ACE_10Rnd_127x99_Raufoss_m107",
"ACE_10Rnd_127x99_T_m107","ACE_5Rnd_762x51_T_M24","ACE_Bandage","ACE_Bodybag","ACE_Epinephrine","ACE_Medkit",
"ACE_Morphine","ACE_BBetty_M","ACE_C4_M","ACE_Claymore_M","ACE_M2SLAM_M","ACE_M4SLAM_M","ACE_MON50_M","ACE_Pomz_M",
"ACE_TripFlare_M","ACE_SandBag_Magazine","ACE_TOW_CSWDM","ACE_KORD_CSWDM","ACE_DSHKM_CSWDM","ACE_M2_CSWDM",
"ACE_MK19_CSWDM","ACE_AGS30_CSWDM","ACE_Konkurs_CSWDM","ACE_KonkursM_CSWDM","ACE_M252HE_CSWDM","ACE_M252WP_CSWDM",
"ACE_M252IL_CSWDM","ACE_M224HE_CSWDM","ACE_M224WP_CSWDM","ACE_M224IL_CSWDM","ACE_2B14HE_CSWDM","ACE_2B14WP_CSWDM",
"ACE_2B14IL_CSWDM","ACE_Rope_M_120","ACE_Rope_M_50","ACE_Rope_M_60","ACE_Rope_M_90","ACE_VS17Panel_M","ACE_Rope_M5",
"ACE_RDG2","ACE_RDGM","ACE_DM25","ACE_DM32","ACE_DM51","ACE_M86PDM","ACE_Flashbang","ACE_M84","ACE_TORCH_C","ACE_M7A3",
"ACE_RG60A","ACE_M34","ACE_ANM14","ACE_Knicklicht_B","ACE_Knicklicht_G","ACE_Knicklicht_IR","ACE_Knicklicht_R",
"ACE_Knicklicht_W","ACE_Knicklicht_Y"
];

You can just add the code to the script roy86 posted - I suggest you take the above code to replace the part with

if(tfor_acre == 1) then {....

'cause this is some mission-specific stuff anyway.

Hope that helps.

Edited by Bon

Share this post


Link to post
Share on other sites

Or check this and this to get the classlists of every item (Even in the future)...

Spending one hour of typing classlist isn't much. Start scripting and the time will fly...

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×