Jump to content

Photo
- - - - -

[SP] Operation Hog Cove (Altis)


  • Please log in to reply
7 replies to this topic
Thread Starter
nichevo
nichevo

    Sergeant

  • Members
  • 113 posts

#1

Posted 04 September 2013 - 03:51

Operation Hog Cove

Single-player infantry-only combat in fields and urban environments.

Five small squads launch an amphibious assault on Molos.
Posted Image

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

See Also

For more of my missions, please click here.

http://www.youtube.com/watch?v=n3bdRNqRBGw

Edited by nichevo, 13 September 2013 - 11:53.
added Armaholic mirror

Posted Image

Thread Starter
nichevo
nichevo

    Sergeant

  • Members
  • 113 posts

#2

Posted 13 September 2013 - 09:04

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.
Posted Image

jblack9
jblack9

    Staff Sergeant

  • Members
  • 284 posts

#3

Posted 13 September 2013 - 17:33

Quick question for my own mission making, how did you randomize BLUFOR soldier experiences? Is this something you put in the init line? Thanks

Thread Starter
nichevo
nichevo

    Sergeant

  • Members
  • 113 posts

#4

Posted 14 September 2013 - 08:58

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));
};

Posted Image

Codarl
Codarl

    Warrant Officer

  • Members
  • 2094 posts

#5

Posted 03 December 2013 - 20:47

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 by Codarl, 03 December 2013 - 21:19.


Thread Starter
nichevo
nichevo

    Sergeant

  • Members
  • 113 posts

#6

Posted 09 December 2013 - 10:19

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.
Posted Image

mathias_eichinger
mathias_eichinger

    Staff Sergeant

  • Members
  • 284 posts

#7

Posted 21 December 2014 - 20:42

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!

Flatbear
Flatbear

    Corporal

  • Members
  • 77 posts

#8

Posted 18 January 2015 - 04:30

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)