Jump to content
roy86

[SP/MP][COOP] Patrol Operations - Official Thread

Recommended Posts

Just a heads up, PO3.1 will be delayed. I've lost all work after a computer failure. I'll be back as soon as I can.

Oh that's bad Roy. Hope you didn't lose too much important stuff. Seems a bad week for hardware, 3 in my clan have had failures this week.

i like Patrol Ops, but have been unable to leave it running on a public server due to the role assignment needing an admin.

hope you can remember all the things you changed!

Share this post


Link to post
Share on other sites

hello,

About the return point not working, is there a way i could correct that myself ? I already corrected a few bugs on the version I have but to be honest, I can't find a way to fix this one by myself.

Thank you in advance

Share this post


Link to post
Share on other sites

Sorry for the delays, I've managed to recover the mission from a saved pbo. gotta love that mission cache.

Here is a sneak peek of some of the updates. Video by Lyndiman during a gaming night.

Evaluation copies have been emailed so release will follow barring any glaring issues.

Cheers,

Share this post


Link to post
Share on other sites

good news on the missioncache folder - looking forward to the release eightySix.

Are you able to post a change log so we have something to ogle before the mission releases?

Share this post


Link to post
Share on other sites

Just a headsup to those who have been invited to the evaluation testing.

There is a JSRS addon dependancy in the mission.

This is unwittingly created by editing missions while the sound mod JSRS is being run

This can easily be fixed with minimal editing

There are 2 entries for

"jsrs2_amv7_marshal"

in the addons and addons_auto section of the mission.sqm

as seen below

class Mission

{

addOns[]=

{

"a3_map_altis",

"A3_Characters_F_BLUFOR",

"a3_characters_f_beta",

"A3_Armor_F_Panther",

"A3_Soft_F_Gamma_HEMTT",

"A3_Soft_F_Quadbike",

"A3_Armor_F_Slammer",

"A3_Armor_F_AMV",

"A3_Weapons_F_Ammoboxes",

"a3_weapons_f_gamma_ammoboxes",

"A3_Air_F_Heli_Light_01",

"A3_Air_F_Beta_Heli_Transport_01",

"A3_Air_F_Beta_Heli_Attack_01",

"A3_Structures_F_Mil_Helipads",

"A3_Structures_F_Mil_Flags",

"A3_Signs_F_AD",

"A3_Soft_F_HEMTT",

"A3_Boat_F_Boat_Armed_01",

"A3_Boat_F_SDV_01",

"A3_Structures_F_Mil_Shelters",

"A3_Structures_F_Walls",

"A3_Structures_F_Civ_InfoBoards",

"A3_Structures_F_Furniture",

"A3_Structures_F_Items_Electronics",

"A3_Structures_F_Mil_Fortification",

"A3_Structures_F_Mil_Cargo",

"A3_Structures_F_Mil_BagFence",

"A3_Soft_F_MRAP_01",

"A3_Characters_F_Civil",

"A3_Animals_F_Rabbit",

"jsrs2_amv7_marshal"

};

addOnsAuto[]=

{

"A3_Characters_F_BLUFOR",

"a3_characters_f_beta",

"A3_Armor_F_Panther",

"A3_Soft_F_Gamma_HEMTT",

"A3_Soft_F_Quadbike",

"A3_Armor_F_Slammer",

"A3_Armor_F_AMV",

"jsrs2_amv7_marshal",

"A3_Weapons_F_Ammoboxes",

"a3_weapons_f_gamma_ammoboxes",

"A3_Air_F_Heli_Light_01",

"A3_Air_F_Beta_Heli_Transport_01",

"A3_Air_F_Beta_Heli_Attack_01",

"A3_Structures_F_Mil_Helipads",

"A3_Structures_F_Mil_Flags",

"A3_Soft_F_HEMTT",

"A3_Boat_F_Boat_Armed_01",

"A3_Boat_F_SDV_01",

"A3_Structures_F_Mil_Shelters",

"A3_Structures_F_Walls",

"A3_Structures_F_Civ_InfoBoards",

"A3_Structures_F_Furniture",

"A3_Structures_F_Items_Electronics",

"A3_Structures_F_Mil_Fortification",

"A3_Structures_F_Mil_Cargo",

"A3_Structures_F_Mil_BagFence",

"A3_Soft_F_MRAP_01",

"A3_Animals_F_Rabbit",

"a3_map_altis"

};

Simply delete the red entries and also you need to remove the comma at the end of the blue line "A3_Animals_F_Rabbit", in the addons section

Save the file, relaunch the mission and then pbo it (Save to MPMissions)

Am sure Roy wiill notice this post

MORE URGENT ISSUES

There is an OnMapsingleclick in the mission scripts which is enabled that allows players to teleport anywhere on the map every time they single click on the map making this unplayable

To fix this edit the Patrol_Ops_3.sqf

changing Po3_Debug to FALSE

Edited by Terox

Share this post


Link to post
Share on other sites

Damn JSRS. Fixed :p

Share this post


Link to post
Share on other sites

Will give you more detailed feedback later Roy... Quick review.

Wow things just got a whole lot harder :-)

Ambient enemy is, dependant on param settings (We tried medium & High)... very testing even with a very organised and responsive all arms group

Movement to and from the A.O now has to be done carefully.

This is by far the best public style multi objective scenario available to Arma3

Excellent job and thanks for the effort

Technical feedback

FPS with high player numbers, 30 - 35 was a minimum of 15 serverside (This is without HC on an older Xeon x5570- running Freds 2GB memory allocation dll's

4.5 hours stable gameplay without any major issues.

______________________________________________________________________

______________________________________________________________________

In the Patrol_Ops_3.sqf is the line highlighted in red correct?

It doesnt seem to have a value attached to it but doesn't cause an entry into the .rpt nor a black box error when running -showscripterrors

// =========================================================================================================

// MPSF PO3 Edition - MultiPlayer Scripting Framework by EightySix

// Version Release 3.1.1

// PERMITTED FOR PUBLIC RELEASE WITHOUT MODIFICATION

// =========================================================================================================

["INIT",format["Executing Patrol_Ops_3.sqf"],true] call po3_fnc_log; enableSaving [false, false];

po3_debug = true;

po3_debug_log = true;

po3_PlayerSide =

// =========================================================================================================

// !! DO NOT MODIFY THIS FILE !!

// =========================================================================================================

["INIT",format["Debug set: %1, Debug Log set: %2",po3_debug,po3_debug_log],true] call po3_fnc_log;

if(po3_debug) then {

OnMapSingleClick "vehicle player SetPos [_pos select 0, _pos select 1, if( (vehicle player) isKindof ""AIR"" && isEngineOn (vehicle player) ) then { 100 }else{ 0 } ]";

player allowDamage false;

};

Edited by Terox

Share this post


Link to post
Share on other sites

No thats a mistake that conveniently will not break things due to the commented section and the subsequent call to write a log. I've removed it but not updated the copy yet.

Share this post


Link to post
Share on other sites

Some Bug Reports.

3.1 RC evaluation version

HC

Had issues getting the HC to take control of the A.I. 1 success in 5 sessions

This was confirmed by using Freds A3 monitor running on the HC and the server.

I also noticed the HC was the last to fully load at the briefing stage.

Maybe (Purely a guess) the issue is the HC code / enemy AI creation is run too early after mission start.

When the HC did take control, if it disconnected, it did take over the AI again on reconnection.

When it did it's job, I saw the serverside FPS jump from low 10-15fps to nearly 45 (Low ground ambience, showing a max number of AI somewhere in the region of 120

If the HC didn't take control at mission start, it would never take over the AI, no matter how many times I restarted it

(I forgot to take screenshots of the A3 monitor, sorry :-)

VAS

No "Laserbatteries" available

INTRO

The cutscene runs what seems to be a good 30 seconds after mission start

GROUP LEADERSHIP

Tthe leader loses control of the group to a JIP

(I havent looked at the code, but maybe a suggestion.. use a setvariable to define unit as a group leader ("GrpLeader") and then on JIP or respawn, reset the group leader based on getvariable "GrpLeader" . The Squad GUI could then also setvariable when a new group leader is defined using it.

SERVERSIDE PERFORMANCE

When not using HC and with 40 players + 120 AI, serverside FPS dropped to a minimum of 8.

I added most of these points to the DEV tracker.

Edited by Terox

Share this post


Link to post
Share on other sites

This mission is one of my two favorite missions. Incredible, is the word to describe this mission.

Share this post


Link to post
Share on other sites

Quick query on the headless client implementation.

if(profilename == "headlessclient")then{..................};

1) Does this mean I need to define -name=Headlessclient in the headless client startup params so that the HC will work?

2) .... or will it pick up the headless client regardless of the -name used through some later code I haven't seen that searches for !hasinterface

if its No.1, that will have been the reason for my HC issues

Share this post


Link to post
Share on other sites

change the init field of the Headless Client unit to match your headless client name rather than do option 1. That was just a generic name to identify it somehow.

Share this post


Link to post
Share on other sites

HC seems to be more robust and hasnt failed so far. I'll be able to give a better confirmation after tomorrow nights gaming session

On one test session I did notice something very odd on the A3 monitor

The HC output was cycling the AI from remote to local and then back again every few seconds.

What I mean by this was....

Say there was 45 AI on the mission.

For a few seconds the A3 monitoring the HC would show these AI local to the HC then a few seconds later local to the server and kept looping like that

This may have been a glitch on the A3sm as I have not been able to reproduce it

Share this post


Link to post
Share on other sites

Thats very wierd. I haven't seen that before.

The way the HC works is essentially it polls the server every 10 seconds and the server responds by assigning any units it owns to the headless client using the setOwner command.

This is a very light weight way of load balancing the locality but needs a lot of testing to ensure it works, but has been working for us so far.

Let me know how the session goes as its a big unknown for me.

---------- Post added at 11:10 ---------- Previous post was at 11:01 ----------

just found a bug in fn_hlc_assignOwner.sqf, needs the forEach loop replaced with the following code.

{
if(owner _x IN [0] && !((owner _x) IN _playerIDs) ) then {
	if !(isNull _x) then {
		if( _x setOwner _hcID ) then {
			["HLC",format["Succeeded: HLCID %1, Object: %2 Command: %3 setOwner %1",_hcID,typeOf _x,_x]] spawn PO3_fnc_log;
		}else{
			["HLC",format["Failed: HLCID %1, Owner %4, Object: %2 Command: %3 setOwner %1",_hcID,typeOf _x,_x,owner _x]] spawn PO3_fnc_log;
		};
	};
};
}forEach allUnits;

I'll update it tonight for download.

Share this post


Link to post
Share on other sites
Thats very wierd. I haven't seen that before.

The way the HC works is essentially it polls the server every 10 seconds and the server responds by assigning any units it owns to the headless client using the setOwner command.

This is a very light weight way of load balancing the locality but needs a lot of testing to ensure it works, but has been working for us so far.

Let me know how the session goes as its a big unknown for me.

---------- Post added at 11:10 ---------- Previous post was at 11:01 ----------

just found a bug in fn_hlc_assignOwner.sqf, needs the forEach loop replaced with the following code.

{
if(owner _x IN [0] && !((owner _x) IN _playerIDs) ) then {
	if !(isNull _x) then {
		if( _x setOwner _hcID ) then {
			["HLC",format["Succeeded: HLCID %1, Object: %2 Command: %3 setOwner %1",_hcID,typeOf _x,_x]] spawn PO3_fnc_log;
		}else{
			["HLC",format["Failed: HLCID %1, Owner %4, Object: %2 Command: %3 setOwner %1",_hcID,typeOf _x,_x,owner _x]] spawn PO3_fnc_log;
		};
	};
};
}forEach allUnits;

I'll update it tonight for download.

Suggestion:

Maybe have the poll only take control of the server AI if the HC FPS is above say 15 or 20. This could possibly load balance between the server and hc better than allocating all ai to the HC

I have seen our HC grind down to very low fps

Share this post


Link to post
Share on other sites

not a bad idea.

Added FPS check to prevent any further unit assignments.

fn_hlc_sendKeepAlive.sqf (from HLC)

[player,diag_fps,time]

fn_hlc_assignOwner.sqf (Server Response)

_hcID	= owner (_this select 0);
_state	= _this select 1;

if(_state < 15) exitWith { ["HLC",format["Failed: HLCID %1 Low FPS %2. Too low to assign any further units",_hcID,_state]] spawn PO3_fnc_log; };

also increased the poll time to 15 seconds (4x a minute)

Share this post


Link to post
Share on other sites

where can we get a copy of 3.1? because 3.0 is horribly broken, the revive system really breaks everything. thank you

Share this post


Link to post
Share on other sites

Hi Nuker22110,

3.1 is still being tested. It will be released once the feedback has been processed and will be available through the dev-heaven and armaholic

cheers,

Share this post


Link to post
Share on other sites

i join a server with 3.1 mission. i test it on my server and i saw that the problem with the main weapon desappear after respawn is still there....

note that i use mcc .

i need to know if anyone have the same issue on respaun

Share this post


Link to post
Share on other sites

i confirm that with vanilla , the problem - main weapon missing after respawn- is still there.....

Share this post


Link to post
Share on other sites
Do you need any more testers?

Thanks for the offer, we've just completed testing and making final adjustments.

i confirm that with vanilla , the problem - main weapon missing after respawn- is still there.....

Cannot replicate issue in any of the tests. Please provide more detail to the ticket.

Also the 3.1 on the servers is a small update only to fix a few bugs and not the actual PO3.1

Cheers,

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

×