guilemouse / Overthrow

An effort to balance and fix the dynamic and persistent revolution platform for Arma 3.
https://steamcommunity.com/sharedfiles/filedetails/?id=2572102841
GNU General Public License v2.0
0 stars 3 forks source link

JOBS/missions/Quests Escort/Scout/Recon are currently broken #10

Open guilemouse opened 3 years ago

guilemouse commented 3 years ago

Issue: Jobs, at least escort missions are currently broken.

Solution: I have not investigated but, maybe turn off some/all broken jobs, then re-enable newer job mechanics that are more stable and tested for this current year of arma 3.

guilemouse commented 3 years ago

fn_jobLoop.sqf had a single line missing from rest of the job loops except the first two.

spawner setVariable ["OT_activeJobIds",_activeJobs,false];

Added in "martial law" version of overthrow by gerhart. I've asked him on discord and he said someone helped him fix jobs and so far it's working. And that's the only lines I've seen that could be different to help jobs flow better.

Hope this works, pushing it today.

guilemouse commented 3 years ago

This job breaking is more broken than I thought. Goes further than borrowing fix from martial law.

inside fn_initNATO.sqf There are global variables set for the server, however these are not available global variables for declaring from functions that the job functions USE.

    server setVariable ["NATOobjectives",OT_NATOobjectives,true];
    server setVariable ["NATOcomms",OT_NATOcomms,true];
    server setVariable ["NATOhvts",OT_NATOhvts,true];

These are the most common examples before I start tracking them down and patching it away.

guilemouse commented 3 years ago

This job breaking is more broken than I thought. Goes further than borrowing fix from martial law.

inside fn_initNATO.sqf There are global variables set for the server, however these are not available global variables for declaring from functions that the job functions USE.

  server setVariable ["NATOobjectives",OT_NATOobjectives,true];
  server setVariable ["NATOcomms",OT_NATOcomms,true];
  server setVariable ["NATOhvts",OT_NATOhvts,true];

These are the most common examples before I start tracking them down and patching it away.

For example in fn_factionNATO

OT_NATOobjectives is being called in a for loop but clearly isn't defined anywhere above???

guilemouse commented 3 years ago

Idk how Arma works, but through trial and error:

  1. initVar.sqf. do keep public variables when they're defined as OT_Xyz = "will work when recalled"
  2. fn_initNATO.sqf do not keep public variables unless they're specifically defined as publicVariable "OT_allComms"; etc because through trial and error, i see them working in a live debug (LAN) server.
guilemouse commented 3 years ago

Idk how Arma works, but through trial and error:

  1. initVar.sqf. do keep public variables when they're defined as OT_Xyz = "will work when recalled"
  2. fn_initNATO.sqf do not keep public variables unless they're specifically defined as publicVariable "OT_allComms"; etc because through trial and error, i see them working in a live debug (LAN) server.

To fix this, the variables in fn_initNATO.sqf including OT_NATOobjectives, OT_NATOHelipads (this one your version already has), OT_NATOhvts, OT_NATOcomms, OT_NATOobjectives, OT_NATOcomms, OT_NATO_Units_CTRGSupport, OT_NATO_Units_LevelTwo, OT_NATO_Units_LevelOne, OT_NATO_Group_Engineers, OT_NATO_Group_Recon, OT_NATO_GroundForces has to be made into public variables

guilemouse commented 3 years ago

Reopened think it's still borked. (Thank you Lyme & friend for play testing)

I think I narrowed it down to...

fn_requestJobFaction.sqf referencing into fn_jobLoop.sqf

It's only two lines that need to be modified. afaik. Maybe it will work.

It's to get rid of gang ID and replace it with the _faction variable, because within fn_jobLoop.sqf there is a _cls class that is being added to _name. Anyway this may fix it, may not, but this is a good start.

PS> Recon I think is still broken and untouched. I'll get to it later in a future date.

guilemouse commented 3 years ago

NATO Informants in any has been taken care of.

And kill missions generally end early for some reason... Will look into long-fix too.

guilemouse commented 3 years ago
_activeJobs pushback _id;

was added to fn_jobLoop.sqf to defeat bugs. Probably that's the cause to jobs not sticking.

guilemouse commented 3 years ago

Faction jobs should be fixed in the current priest build (have not published on steam yet)

It was a combination of my coding pasting a line by mistake, as well as a combination of previously the jobs were using gangid to initiate factions...?? Currently the legit faction jobs only have Operative transport, which is fine, but perhaps add more jobs to factions in the future.