nichevo 2 Posted September 4, 2013 (edited) Operation Hog Cove Single-player infantry-only combat in fields and urban environments. Five small squads launch an amphibious assault on Molos. Mission Features Requires no addons. Randomised enemy placement and numbers. Shouldn't play out the same way twice. Randomised appearances for friend and foe. Soldiers aren't clones; they wear different uniform variants. Ability to join any squad, or strike out on your own. Randomised time of day: dawn, sunrise, midday, sunset and moonlit night. Visibility is high enough to not require night-vision. Optional objective: make do with your 'standard issue' rifle and basic equipment, plus whatever you can scavenge from the field. A weapons cache is available for those who would rather kit up. Feedback Played the mission? I'd appreciate some feedback so I can learn what does and doesn't work in ArmA 3. Download Steam Workshop (latest version) Armaholic Mirror (latest version) Direct Download (latest version) See Also For more of my missions, please click here. Edited September 13, 2013 by nichevo added Armaholic mirror Share this post Link to post Share on other sites
nichevo 2 Posted September 13, 2013 Updated the mission after ArmA came out of Beta. (More info.) The download links above have (and will) be edited to show which have the latest version. Share this post Link to post Share on other sites
jblack9 10 Posted September 13, 2013 Quick question for my own mission making, how did you randomize BLUFOR soldier experiences? Is this something you put in the init line? Thanks Share this post Link to post Share on other sites
nichevo 2 Posted September 14, 2013 how did you randomize BLUFOR soldier experiences? Is this something you put in the init line? You're talking about their appearance right? You're correct. :) In the init line for every BLUFOR infantry unit (including the player), I put the following: nul = [this] execvm "init_blufor.sqf"; ExecVM tells the game to run a script called init_blufor.sqf. I'll paste the script at the bottom of this post. The script file must exist in the mission folder. If you're new to scripts, maybe this guide will help, it's for ArmA 2 but seems mostly correct. I always use a script like this to randomise soldiers. In this mission I didn't randomise their weapons very much; they always have the MX. But random weapons is certainly possible by expanding the script. In this mission I actually have another script called init_blufor_medic.sqf because the medic needed different gear (a medikit). You might consider doing the same: different scripts for riflemen, machine-gunners, officers, snipers, AT soldiers etc. _target = _this select 0; // Skill: if(_target != player) then { _maxSkill = 0.8; _minSkill = 0.2; _target setSkill (random (_maxSkill - _minSkill)) + _minSkill; }; // Remove equipment: removeUniform _target; removeHeadgear _target; removeVest _target; removeBackpack _target; removeAllWeapons _target; _target unassignitem "NVGoggles"; _target removeItem "NVGoggles"; // Possible uniforms: _uniformArray = []; _uniformArray = _uniformArray + ["U_B_CombatUniform_mcam"]; _uniformArray = _uniformArray + ["U_B_CombatUniform_mcam"]; _uniformArray = _uniformArray + ["U_B_CombatUniform_mcam_vest"]; _uniformArray = _uniformArray + ["U_B_CombatUniform_mcam_tshirt"]; _uniformArray = _uniformArray + ["U_B_CombatUniform_mcam_worn"]; _target addUniform (_uniformArray select (floor random count _uniformArray)); // Possible vests: _vestProb = 1.0; _vestArray = []; _vestArray = _vestArray + ["V_BandollierB_cbr"]; _vestArray = _vestArray + ["V_BandollierB_khk"]; _vestArray = _vestArray + ["V_BandollierB_oli"]; _vestArray = _vestArray + ["V_BandollierB_rgr"]; _vestArray = _vestArray + ["V_Chestrig_khk"]; _vestArray = _vestArray + ["V_Chestrig_oli"]; _vestArray = _vestArray + ["V_TacVest_blk"]; _vestArray = _vestArray + ["V_TacVest_brn"]; _vestArray = _vestArray + ["V_TacVest_camo"]; _vestArray = _vestArray + ["V_TacVest_khk"]; _vestArray = _vestArray + ["V_TacVest_oli"]; if(random 1.0 < _vestProb) then { _target addVest (_vestArray select (floor random count _vestArray)); }; // Possible hats: _hatProb = 0.8; _hatArray = []; if (_target == leader group _target AND _target != player) then { _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_mcamo"]; _hatArray = _hatArray + ["H_MilCap_gry"]; _hatArray = _hatArray + ["H_MilCap_gry"]; _hatArray = _hatArray + ["H_MilCap_gry"]; _hatArray = _hatArray + ["H_MilCap_dgtl"]; _hatArray = _hatArray + ["H_MilCap_dgtl"]; _hatArray = _hatArray + ["H_MilCap_dgtl"]; _hatArray = _hatArray + ["H_Booniehat_dgtl"]; _hatArray = _hatArray + ["H_Booniehat_tan"]; _hatArray = _hatArray + ["H_Booniehat_mcamo"]; _hatArray = _hatArray + ["H_Cap_blk"]; _hatArray = _hatArray + ["H_Cap_blk_CMMG"]; _hatArray = _hatArray + ["H_Cap_blk_ION"]; _hatArray = _hatArray + ["H_Cap_blk_Raven"]; _hatArray = _hatArray + ["H_Cap_brn_SPECOPS"]; _hatArray = _hatArray + ["H_Cap_grn_BI"]; _hatArray = _hatArray + ["H_Cap_grn"]; _hatArray = _hatArray + ["H_Cap_tan"]; _hatArray = _hatArray + ["H_Cap_tan_specops_US"]; } else { _hatArray = _hatArray + ["H_HelmetB"]; _hatArray = _hatArray + ["H_HelmetB"]; _hatArray = _hatArray + ["H_HelmetB"]; _hatArray = _hatArray + ["H_HelmetB"]; _hatArray = _hatArray + ["H_HelmetB_light"]; _hatArray = _hatArray + ["H_HelmetB_light"]; _hatArray = _hatArray + ["H_HelmetB_light"]; _hatArray = _hatArray + ["H_HelmetB_light"]; _hatArray = _hatArray + ["H_HelmetB_paint"]; _hatArray = _hatArray + ["H_HelmetB_paint"]; _hatArray = _hatArray + ["H_HelmetB_paint"]; _hatArray = _hatArray + ["H_HelmetB_paint"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetB_plain_mcamo"]; _hatArray = _hatArray + ["H_HelmetSpecB"]; _hatArray = _hatArray + ["H_HelmetSpecB"]; _hatArray = _hatArray + ["H_HelmetSpecB"]; _hatArray = _hatArray + ["H_HelmetSpecB"]; _hatArray = _hatArray + ["H_Watchcap_blk"]; _hatArray = _hatArray + ["H_Watchcap_blk"]; _hatArray = _hatArray + ["H_Booniehat_dgtl"]; _hatArray = _hatArray + ["H_Booniehat_tan"]; _hatArray = _hatArray + ["H_Booniehat_mcamo"]; _hatArray = _hatArray + ["H_Cap_blk"]; _hatArray = _hatArray + ["H_Cap_blk_CMMG"]; _hatArray = _hatArray + ["H_Cap_blk_ION"]; _hatArray = _hatArray + ["H_Cap_blk_Raven"]; _hatArray = _hatArray + ["H_Cap_brn_SPECOPS"]; _hatArray = _hatArray + ["H_Cap_tan"]; _hatArray = _hatArray + ["H_Cap_tan_specops_US"]; }; if(random 1.0 < _hatProb) then { _target addHeadgear (_hatArray select (floor random count _hatArray)); }; // Equipment: for [{_i=0}, {_i<8+(random 2)}, {_i=_i+1}] do { _target addmagazine "30Rnd_65x39_caseless_mag_Tracer"; }; for [{_i=0}, {_i<random 4}, {_i=_i+1}] do { _target addmagazine "HandGrenade"; }; for [{_i=0}, {_i<random 4}, {_i=_i+1}] do { _target additem "FirstAidKit"; }; // A weapon: _target addweapon "arifle_MX_F"; // Possible optics: _opticsProb = 0.05; _opticsArray = []; _opticsArray = _opticsArray + ["optic_Arco"]; _opticsArray = _opticsArray + ["optic_Hamr"]; _opticsArray = _opticsArray + ["optic_Aco"]; _opticsArray = _opticsArray + ["optic_ACO_grn"]; _opticsArray = _opticsArray + ["optic_Holosight"]; if(random 1.0 < _opticsProb) then { _target addPrimaryWeaponItem (_opticsArray select (floor random count _opticsArray)); }; // Possible weapon accessories: _accProb = 0.5; _accArray = []; _accArray = _accArray + ["acc_flashlight"]; _primaryWeapon = primaryWeapon _target; if(random 1.0 < _accProb) then { _target addPrimaryWeaponItem (_accArray select (floor random count _accArray)); }; Share this post Link to post Share on other sites
codarl 1 Posted December 3, 2013 (edited) aaand.... removed from Steam workshop, saved to HDD. I need this even without the cloud. Good mission. I did found that there is a performance issue on my machine. Though it might be my 2007 hardware, I hope a bit of optimisation is possible. Also, a bit of entrenchment, and maybe some civillian presence would be nice... You know. Edited December 3, 2013 by Codarl Share this post Link to post Share on other sites
nichevo 2 Posted December 9, 2013 Good mission. Just saw your reply. Cheers. :) Also, a bit of entrenchment, and maybe some civillian presence would be nice... You know. You aren't wrong, but as this was my first ArmA 3 mission, KISS was foremost on my mind. Share this post Link to post Share on other sites
mathias_eichinger 64 Posted December 21, 2014 Great mission, it is a real showcase what Arma 3 is about - the new lighting, cunning enemy close range AI - I enjoyed this hard urban battle very much! Share this post Link to post Share on other sites
flatbear 19 Posted January 18, 2015 Very nice mission, its very tough and challenging but I really enjoyed it. Congrats on the pcgamer mention too, thats how I found the mission a few notes: -All of the friendly ai dont really take cover other than going prone when they take fire. Often times they just rush up the road then get cut down when they run too far into enemy fire. This results in all of the friendly squads getting wiped out extremely fast. -the only request I would have would be to make some of the soldiers playable for additional players so the mission could be coop (maybe anywhere from coop 2-4 to coop 10) Share this post Link to post Share on other sites
avengerarts 15 Posted March 20, 2017 Is it ok to send me Pbo file so i can learn from it, please? found it! thanks. Share this post Link to post Share on other sites