Jump to content

Recommended Posts

@OutbreakDV,

Sure, I'm always interested in what things others have changed/added to enhance gameplay.

@Kirby

Great questions.

These are fairly easy edits.

In INS_definitions.sqf under // Player class types

add array of pilot classes.

INS_PlayerPilot = ["B_Pilot_F","B_Helipilot_F"];// can fly aircraft

Below is a working edit of init_player.sqf from v1.42_Kunduz with changes as an example for you.

Note the only differences from map to map in init_player.sqf are the flag pole scroll action options for teleport to Dock or Airfield begining at line 53.

Line 69 commented to remove manual save because automatic save loop will over ride this option.

//INS_Wep_box addAction ["<t color=#ff9207'>Save Loadout</t>", "scripts\get_loadout.sqf",nil,1, false, true, "", "side _this != EAST];

Change made beginning with line 129 to save loadout every four seconds instead of manual save.

These changes only affect Blufor players. Similar edit will need to be made at line 122 to affect Opfor players for loadout.

Addition made beginning at line 222 to restrict pilot seat.

// init_player.sqf by Jigsor

if (isNil "oamarker") then {oamarker = [];};//air patrole center marker
"oamarker" addPublicVariableEventHandler {call compile format ["%1",_this select 1]};

if (DebugEnabled > 0) then {
waitUntil {!isNull player && player == player};

if (isNil "spawnaire") then {spawnaire = [];};
if (isNil "spawnairw") then {spawnairw = [];};
if (isNil "cyclewpmrk") then {cyclewpmrk = [];};

"spawnaire" addPublicVariableEventHandler {call compile format ["%1",_this select 1]};
"spawnairw" addPublicVariableEventHandler {call compile format ["%1",_this select 1]};
"cyclewpmrk" addPublicVariableEventHandler {call compile format ["%1",_this select 1]};

[] spawn {
	waitUntil {time > 3};
	if (local player) then {
		player allowDamage false;
		player addAction[("<t color='#ff1111'>") + ("Open Virtual Arsenal") + "</t>",{["Open",true] call BIS_fnc_arsenal;}];
		[] spawn {sleep 4; setTerrainGrid 50; onMapSingleClick "vehicle player setpos [_pos select 0,_pos select 1,0]";};
	};
};

if (tky_perfmon > 0) then {_nul1 = [tky_perfmon] execVM "scripts\tky_evo_performance_report.sqf";};
{_x setmarkeralphalocal 1;} foreach Op4_mkrs;
{_x setmarkeralphalocal 1;} foreach Blu4_mkrs;
};

[] spawn {
waitUntil {!isNull player && player == player};

// Player Variables	//
player setVariable ["BIS_noCoreConversations", true];
enableSentences false;
setTerrainGrid 25;
gc_heading_on = false;
status_hud_running = false;
//if (local player) then {player setVariable ["BIS_enableRandomization", false]};// Disables randomization of gear
if (INS_p_rev isEqualTo 4) then {player call btc_qr_fnc_unit_init;};// BTC Quick Revive
if (Remove_grass_opt isEqualTo 1) then {tawvd_disablenone = true;};// Disables the grass Option 'None' button in Taw View Distance UI
if (Fatigue_ability isEqualTo 0) then {if (local Player) then {player enableFatigue false;};}else{if (Fatigue_ability isEqualTo 2) then {[] execVM 'scripts\QS_Fatigue.sqf';};};
if (!isJIP) then {intel_objArray = [];};	
private "_playertype";
_playertype = typeOf (vehicle player);
if (_playertype in INS_W_PlayerUAVop) then {[player,"UGV"] call BIS_fnc_addCommMenuItem; player setVariable ["ghst_ugvsup", 0];};
if (_playertype in INS_W_PlayerEOD) then {null = [] execVM "scripts\minedetector.sqf";};

// Player actions //
[] spawn JIG_p_actions_resp;

// INS Flag Pole
INS_flag addAction ["<t color='#ff9900'>HALO jump</t>", "ATM_airdrop\atm_airdrop.sqf"];
//INS_flag addAction ["<t color='#12F905'>Transfer to MHQ_1</t>", "call JIG_transfer_fnc", ["MHQ_1"]];
//INS_flag addAction ["<t color='#12F905'>Transfer to MHQ_2</t>", "call JIG_transfer_fnc", ["MHQ_2"]];
//INS_flag addAction ["<t color='#12F905'>Transfer to MHQ_3</t>", "call JIG_transfer_fnc", ["MHQ_3"]];
//INS_flag addAction ["<t color='#12F905'>Airfield</t>", "call JIG_transfer_fnc", ["Airfield"]];
INS_flag addAction ["<t color='#12F905'>Dock</t>", "call JIG_transfer_fnc", ["Dock"]];

// Virtual Arsenal
INS_Wep_box addAction[("<t color='#ff1111'>") + ("Open Virtual Arsenal") + "</t>",{["Open",true] call BIS_fnc_arsenal;}];
INS_Wep_box addAction[("<t color='#00ffe9'>") + ("Load VA profile") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],JIG_load_VA_profile], 1, true, true, "", "true"];
MHQ_1 addAction[("<t color='#F56618'>") + ("Load VA profile") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],JIG_load_VA_profile_MHQ1], 1, true, true, "", "true"];
MHQ_2 addAction[("<t color='#F56618'>") + ("Load VA profile") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],JIG_load_VA_profile_MHQ2], 1, true, true, "", "true"];
MHQ_3 addAction[("<t color='#F56618'>") + ("Load VA profile") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],JIG_load_VA_profile_MHQ3], 1, true, true, "", "true"];

//Blufor save/restore loadout
//INS_Wep_box addAction ["<t color='#ff9207'>Save Loadout</t>", "scripts\get_loadout.sqf",nil,1, false, true, "", "side _this != EAST"];
//INS_Wep_box addAction ["<t color='#ff9207'>Load Saved Loadout</t>", "scripts\set_loadout.sqf",nil,1, false, true, "", "side _this != EAST"];

// Op4 MHQ
Opfor_MHQ addAction[("<t color=""#12F905"">") + ("Deploy MHQ") + "</t>","scripts\deployOpforMHQ.sqf",nil,1, false, true, "", "side _this != INS_Blu_side"];

// Op4 Weapon Box	
INS_weps_Cbox addAction ["<t color='#ff1111'>Save Loadout</t>", "scripts\get_loadout.sqf",nil,1, false, true, "", "side _this != INS_Blu_side"];
INS_weps_Cbox addAction ["<t color='#ff1111'>Load Saved Loadout</t>", "scripts\set_loadout.sqf",nil,1, false, true, "", "side _this != INS_Blu_side"];
INS_weps_Cbox addAction[("<t color='#12F905'>") + ("Restore Default Loadout") + "</t>",{call Op4_restore_loadout},nil,1, false, true, "", "side _this != INS_Blu_side"];

// AI recruitment
if (max_ai_recruits > 1) then {INS_Wep_box addAction["<t color='#1d78ed'>Recruit Infantry</t>", "bon_recruit_units\open_dialog.sqf", [], 0];};

// Player actions for Engineer's Farp/vehicle service point
Jig_m_obj addAction[("<t color='#12F905'>") + ("Maintenance vehicle") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],INS_maintenance_veh], 8, true, true, "", "count (nearestObjects [position player, [""LandVehicle"",""Air""], 10]) > 0"];
Jig_m_obj addAction[("<t color='#12F905'>") + ("Repair wreck") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_repair_wreck], 8, true, true, "", "count (nearestObjects [position player, [""LandVehicle"",""Air""], 10]) > 0"];

// Player event handlers //
[] spawn {waitUntil {!isNull (findDisplay 46)}; (findDisplay 46) displayAddEventHandler ["KeyDown", "_this call DH_fnc_keyPresses"];};
player addEventHandler ["killed", {_nul = _this call killedInfo_fnc}];
player addEventHandler ["Respawn", {[] spawn JIG_p_actions_resp;[player,loadout] spawn setLoadout;}];
if (INS_p_rev isEqualTo 4) then
{
	player addEventHandler ["Respawn", {
		[(_this select 0)] spawn {
			waitUntil {sleep 1; alive (_this select 0)};
			if (captive (_this select 0)) then {(_this select 0) setCaptive false};
		};
	}];
};
If (side player == east) then
{
	player addEventHandler ["killed", {handle = [_this select 0] execVM "scripts\MoveOp4Base.sqf";}];
};
if (!isServer) then
{
	"PVEH_netSay3D" addPublicVariableEventHandler {private "_array"; _array = _this select 1; (_array select 0) say3D (_array select 1);};
};

// Routines //
// Intro and side settings
if (DebugEnabled isEqualTo 0) then {
	If (side player == east) then
	{		
		{_x setmarkeralphalocal 1;} foreach Op4_mkrs;
		{_x setmarkeralphalocal 0;} foreach Blu4_mkrs;
		[] spawn INS_intro_op4;
		[] spawn {sleep 10; [player] call Op4_spawn_pos;};
		[] spawn {
			loadout_handler = [player] execVM "scripts\DefLoadoutOp4.sqf";
			waitUntil { scriptDone loadout_handler };
			loadout = [player] call getLoadout;
		};
	};
	If (side player == west) then
	{
		{_x setmarkeralphalocal 1;} foreach Blu4_mkrs;
		{_x setmarkeralphalocal 0;} foreach Op4_mkrs;
		[] spawn INS_intro;
		[] spawn {
			sleep 15;
			// Save loadout every 4 seconds
			while{true} do {
				if(alive player) then {
					loadout = [player,["repetitive"]] call getLoadout;
				};
				sleep 4;  
			};			
		};			
	};
};

// 3rd Person PoV to vehicles only
if (limitPOV isEqualTo 1) then {
	[player] spawn PVPscene_POV;
	player addEventHandler ["Respawn", {[(_this select 0)] spawn PVPscene_POV;}];
};

// Ambient Radio Chatter in/near Vehicles (TPW code)
if (ambRadioChatter isEqualTo 1) then {
	[] spawn {
	while {true} do	{
		private ["_sound","_veh"];
		if (player != vehicle player) then {
			playmusic format ["RadioAmbient%1",floor (random 31)];
			}
			else
			{
			_veh = ((position player) nearEntities [["Air", "Landvehicle"], 10]) select 0;
			if !(isnil "_veh") then	{
				_sound = format ["A3\Sounds_F\sfx\radio\ambient_radio%1.wss",floor (random 31)];
				playsound3d [_sound,_veh,true,getPosasl _veh,1,1,50];
				};
			};
		sleep (1 + random 59);
		};
	};
};

// Vehicle Reward incentive initialized if Mechanized Armor threat enabled.
if (MecArmPb > 1) then {
	[] spawn {
		WaitUntil{not isNull player};
		private "_uid";
		_uid = (getPlayerUID player);
		rewardp = "";
		"rewardp" addPublicVariableEventHandler {call compile format ["%1",_this select 1]};
		While {true} do
		{
			if (rewardp isEqualTo "") then
			{
				sleep 10;
			}
			else
			{
				if ((local player) and (rewardp == _uid)) then					
				{
					//[activated_cache_pos] spawn JIG_circling_cam;// optional cache cam
					player setVariable ["createEnabled", true];
					_id = player addAction[("<t color=""#12F905"">") + ("Vehicle Reward") + "</t>", {call JIG_map_click}, [], 10, false, true];// Use it or loose it when player dies.
					private "_text";
					_text = "Vehicle Airdrop Awarded";
					[_text] spawn JIG_MPsideChatWest_fnc;
					rewardp = "";
					publicVariable "rewardp";
				};
			};
		};
	};
};

// Ambient Combat Sound
if (ambCombSound isEqualTo 1) then {
	[] spawn {
	private ["_allsounds","_source"];
	_allsounds = [];
	_source = objective_pos_logic;
	while {true} do	{
		private ["_sound","_sound1","_sound2","_maxtype"];
		_allsounds = _allsounds - _allsounds;
		_sound1 = format ["A3\Sounds_F\ambient\battlefield\battlefield_explosions%1.wss",ceil (random 5)];
		_sound2 = format ["A3\Sounds_F\ambient\battlefield\battlefield_firefight%1.wss",ceil (random 4)];
		_allsounds pushBack _sound1;
		_allsounds pushBack _sound2;
		_maxtype = (count _allsounds);
		_sound = _allsounds select (floor random _maxtype);
		playsound3d [_sound,_source,false,getPosasl _source,5,1,600];
		sleep (1 + random 35);
		};
	};
};

// Restrict Aircraft Pilot Seat to Pilots Only
[] spawn {
	if ((typeOf player) in INS_PlayerPilot) exitWith {};
	If (side player == east) exitWith {};// exclude Op4 players
	private "_veh";
	while {true} do {
		if (vehicle player != player) then {
			_veh = vehicle player;
			if ((_veh isKindOf "Plane") || (_veh isKindOf "Helicopter")) then {
				if !(_veh isKindOf "ParachuteBase") then {
					if (driver _veh == player) then {
						if (isEngineOn _veh) then {_veh engineOn false};
						player action ["GetOut", _veh];
						hintSilent "Only Pilots can Fly";
					};					
				};
			};
		};
		sleep 1;
	};
};
};

There are no pilots in current official version so you will have to manually add or change playable unit in the editor to a pilot class.

Edited by Jigsor

Share this post


Link to post
Share on other sites

Hello,

Thanks a lot for the job! It's a great and very complete ! :)

Do you know how to see all classname in the Virtual Arsenal ? It seems I dont see some weapons. :rolleyes:

Share this post


Link to post
Share on other sites

Thanks, Jigsor! I'll try it out as soon as I can get the opportunity. I already swapped out a couple of units for pilots in the mission our server is hosting.

I also discovered the quick revive functions acceptably as you don't "die" when you go unconscious, so you keep the gear you went down with. I don't mind having people save the loadout for full on base respawn, it was just the reverting upon going down that was odd. However the auto save feature could be handy.

Edit: The Kunduz 1.42 version of the map appears to cause a regular stutter/freeze when I run it on a client host when testing. This is prior to implementing the pilot restrict (I only plan on putting that on the public/altis/no mods version we're running). I tried it with different OPFOR choices and parameters and it still ran with steady freezes every few seconds.

Edited by Kirby

Share this post


Link to post
Share on other sites

Hello,

I noticed too that on DS with Altis map, that MHQ_1 to MHQ_3 are renamed to "vehicle_15" 16 and 21.

I checked the editor, they are correctly name to MHQ_1 to 3.

2454642015050900001.jpg

Share this post


Link to post
Share on other sites

Thank You flyingcoyotus,

There is no weapon filtering , blacklisting or white listing etcetera of Virtual Arsenal implemented in this mission.

You should have access to all weapons.

Maybe possible that a mod is interfering or you are missing a weapon mod another player or the server is running, or you have someone elses edited version?

Screen shot of me joining game in progress on dedicated server running v1.42.Altis.

MHQ marker working fine here. I've never seen that problem before. In your screenie you are running v_1.08. I never released an Altis version with that number. Altis began with version v1.32alpha, then v1.4 and v1.42 stable.

@Kirby,

I to have noticed this frame drop every few seconds server side at mission start. I haven't been able to pin point the cause of this.

It is strange because it only happens on Kunduz Island and scripts are the same as other Islands.

After all scripts initialize and tasks, then cache/intel spawned coincidentally, the server quits this behavior and a constant steady frame rate begins and actually is faster than all other ports.

I had suspected it may be due to Kunduz terrain somehow but can only somewhat speculate.

Looking at .rpt log after frame rate settles, I find these as the last entries which I believe are certainly Kunduz terrain related.

12:35:58 Unknown entity: ' NonovUrbizniz '
12:36:06 Error: PhysX 32: ConvexHullBuilder::CreateTrianglesFromPolygons: convex hull has a polygon with less than 3 vertices!, file ..\..\PhysXCooking\src\convex\ConvexHullBuilder.cpp, line 1116
12:36:06 Error: PhysX 32: Gu::ConvexMesh::loadConvexHull: convex hull init failed! Try to use the PxConvexFlag::eINFLATE_CONVEX flag. (see PxToolkit::createConvexMeshSafe), file ..\..\PhysXCooking\src\convex\ConvexMeshBuilder.cpp, line 253
12:36:06 ERROR when cooking roadway mesh for PX scene!
Model: pra3\pra3_structures\afghan_houses_old\jbad_house_8_old.p3d
Point: 110
Point: 109
Point: 111

update correction:

NonovUrbizniz is the author of SMD Sahrani.

I dissabled that mod and only run cba and Kunduz mods and frame issue at mission start is still there.

13:50:18 Error: PhysX 32: ConvexHullBuilder::CreateTrianglesFromPolygons: convex hull has a polygon with less than 3 vertices!, file ..\..\PhysXCooking\src\convex\ConvexHullBuilder.cpp, line 1116
13:50:18 Error: PhysX 32: Gu::ConvexMesh::loadConvexHull: convex hull init failed! Try to use the PxConvexFlag::eINFLATE_CONVEX flag. (see PxToolkit::createConvexMeshSafe), file ..\..\PhysXCooking\src\convex\ConvexMeshBuilder.cpp, line 253
13:50:18 ERROR when cooking roadway mesh for PX scene!
Model: pra3\pra3_structures\afghan_houses_old\jbad_house_8_old.p3d
Point: 110
Point: 109
Point: 111

Edited by Jigsor

Share this post


Link to post
Share on other sites
Thank You flyingcoyotus,

MHQ marker working fine here. I've never seen that problem before. In your screenie you are running v_1.08. I never released an Altis version with that number. Altis began with version v1.32alpha, then v1.4 and v1.42 stable.

Hello,

I made different test with/without mods.

I noticed that's the @Alive Server mod which poses problem.

http://www.armaholic.com/page.php?id=23684

So for people who use @Alive server for other missions, don't forget to disable it ;)

Share this post


Link to post
Share on other sites

Could you integrate the AGM mod in the Mission

Edited by jus61

Share this post


Link to post
Share on other sites

That's peculiar. I left it for about 10/15 minutes and it was still stuttering hosting on my PC but we haven't got around to tested it on the dedi, so I may not have left it long enough to fully initialise on my PC. The Altis mission runs fine, as does the pilot restrict so we've been focussing on keeping that going for public players so thanks for that.

The server owner did report that the delivery mission has appeared to cause the server to crash or nearly crash a couple of times but it seems to be a rare occurance and I'm not sure if it's just ARMA related rather than mission related, and I haven't seen it myself. I'm getting him to take a look at the RPT log.

Share this post


Link to post
Share on other sites

Hi Jigsor,

are there any plans to implement ACE3 in your Mission? If not, you´re okay with it if i do so? ;-)

BR

Noc

Share this post


Link to post
Share on other sites

I will not integrate AGM. The AGM team have discontinued AGM and have integrated with ACE3 team.

ACE_3 is new so I'm not familiar with it. I'll investigate integrating it into this mission soon,

However if aspects require module placement then ACE mod will not be optional and an ACE only version may be required to build.

I am currently working on a FSF Al Rayak version and already have the grid built.

Looking into a Bornholm version aswell. If no surprises or performance issues then they will be included in mission pack of next version.

AccuracyThruVolume's Iraqi-Syrian Conflict will be integrated in next version as an alternative to @MEC mod combination because it seams MEC mod has been discontinued and pulled from Armaholic and PWS

No promises on when next version or if ACE support is introduced at this point so feel free to add it your self if you like.

Share this post


Link to post
Share on other sites

How can I activate the MHQ without Revive system:

MHQ Spawn= Yas

Revive= NO

Share this post


Link to post
Share on other sites

You can't at the moment.

Dirty Haz

Share this post


Link to post
Share on other sites

Hey All! - Loving the BMR Insurgency on N'Ziwasogo! Like playing a modern day Vietnam scenario. I did have a couple of things to pass on. Still occasional chopper blow up on entry. I did wonder if there was a way to bring recruited troops at main base on a halo jump with me, or if i transport to remote MHQ from base and have troops, anyway to get them to come along with me? Right now i just grab some troops and head to a chopper! haha Thanks Jigsor!!!

Share this post


Link to post
Share on other sites

Common BIS please fix this exploding chopper issue.

This bug has been here since A3 alpha.

It doesn't seem to be mission/mission type or even script specific.

I've screwed with trying to script work around to circumvent this and though now it's not as bad as it used to be, it still happens.

Its so random and is hard to consistently reproduce though one consistency is it happens on dedicated servers.

I'm up to my wits end with this issue.

Please up vote fix to this problem here.

If anyone has found work around for this, please share.

I've got no elegant solution for A.I. halo at this point.

Other news: Successfully tested some new stuff this weekend on an alpha Kunduz test build. Save Loadout action's script has been replaced with native arsenal functions and seems to successfully save all backpack contents.

This currently is not really a big issue, but have found that some backpack things will not save when using ACE so this back end update will be in next version as well as the new BIS group manager. Can't say I will be releasing an ACE only version at this point.

Lots of work ahead if or before that happens, but at least I'm trying to make some features more compatible with ACE.

Share this post


Link to post
Share on other sites
Looking into a Bornholm version aswell. If no surprises or performance issues then they will be included in mission pack of next version.

I made a fast copy of your (sorry) Takistan zones and units and copied them into the Bornholm map. Distributes the zones all over without really changing or looking into what the different zones were set to spawn. Worked fine except one mission marker. It autofails. I think I havent left enough room for units to spawn. Played it for an hour with a friend. Should go fine! :) I thought you would make a finished Bornholm so didn't do more about it.

Share this post


Link to post
Share on other sites

Yeah, there will be a Bornholm version coming up. Just hope my computer can cope, if not, hope you enjoy. I'm holding on an update to include new some new features, improvements and compatibility (don't want to spoil to much right now) I've been working on for next official build.

Share this post


Link to post
Share on other sites

Hello,

Is there a way to spawn ennemy unit when we approach with helicopter and below 100m (for example).

Actually ennemy units spawn after helicopter has landed.

Thanks :)

Share this post


Link to post
Share on other sites

In eos\eos_core.sqf line 32

{_actCond="{vehicle _x in thisList && isplayer _x && ((getPosATL _x) select 2) < 7} count playableunits > 0";

and line 37

{_actCond="{vehicle _x in thisList && isplayer _x && ((getPosATL _x) select 2) < 7} count allUnits > 0";

7 is the height limiter in meters. Just be carefull to not set it to high to avoid trigering may zones at once and cause lag by high fly overs.

I'm now using 9.7 because its just the right height to be able to snipe from the 3 floor rooftop.

Share this post


Link to post
Share on other sites

Hi,

Is there a way to replace opfor ennemies units by the CAF Aggressor or MEC ?

I see that in UnitPools.sqf and init.sqf there are many factions, but how to activate one of them ?

Thanks

Edited by flyingcoyotus

Share this post


Link to post
Share on other sites
Hi,

Is there a way to replace opfor ennemies units by the CAF Aggressor or MEC ?

I see that in UnitPools.sqf and init.sqf there are many factions, but how to activate one of them ?

Thanks

By parameter (on lobby screen) though, I don't think Jig supports CAF or MEC anymore.

Dirty Haz

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

×