Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Everything posted by gc8

  1. Field of war (Formerly known as GcCTI) FOW is AI commander led CTI mission which creates a dynamic battlefield for the players to play on. Player can help the AI to capture towns or go solo and fight wherever he wants to help the team to win Current version: 0.9.11 This mission is WIP but can already be played. Main Features (So far): AI commander Buys new units (both air/land) and assign them to defend or attack Uses special units such as airborne to attack the enemy Uses aircraft and AA units to establish air superiority on occupied territory Sends close air support to help friendly forces attacking Sends scouts to recon enemy occupied areas (ground forces or plane) Builds new FOBs (bases) by sending engineer truck or helicopter Calls artillery strikes Moves ambulance to attack so that players may respawn in them Three different AI com types: Rusher, Turtle, Balanced Buys headquarters units so support forces on the field HQ also works as respawning point Does research to make better weapons and vehicles available Assigns patrols around owned places Player Can buy equipment (In bases, HQs) Can buy vehicles and men (In bases) Can call artillery strikes (If artillery available) Can call close air support (CAS) Can be revived by AI or player medics Can call reinforcements by air or sea Can call airlift helicopter (To transport player via air) Can call ordnance crate drop Can call vehicle drop Can request ambulance to be sent near enemy location Sees a kill feed Can use maintance in friendly base to refuel, rearm and repair vehicle Gain money periodically from places of same side and from kills Gain XP from kills (either team member kills (less XP) or own kills) Has a limit on how many men can the player control. Increasing in rank through XP allows higher men control limit Can take control of friendly forces if rank is high enough Needs a radio for remote actions (Optional feature) Has to eat and drink to survive (Optional feature) AI groups Intelligent unit spawning system to allow large military operations with minimal lag If vehicles get stuck to something they are moved to nearest road by script. This helps them to arrive at destination If squad leader loses his ability to walk he's healed after the battle is over so that the squad can move at normal speed Groups report how they are doing via radio (text) Group who's icon is blinking is currently talking via radio AI groups gain skill from kills (Stars shown on cursor hover on) AI units have morale value (Shown on hover over) AI units have to be near the HQ or FOB to receive morale bonus The AI may try to ambush the player by positioning them self at windows The AI is scripted to engage targets behind cover (If they know the location) Some other features (So far): Recon unit's are not only highly skilled but have special ability to detect enemy forces from greater range than regular units The resistance has bunker and sandbag defenses in their occupied towns Even AI is shot down he may still get up and fight! Throw a smoke to show air lift it's landing zone Total 5 different type of reinforcements of which 2 are over sea and 3 over air 2 types of close air support Helicopter or plane Select either predefined or random starting position for army Be aware of shooting civilians as this will reduce town money income Supply trucks travel between towns increasing the condition (Recovering town income) Air supply helicopter flies between bases giving money to the side on each landing Air supply helicopter travels between bases giving money for the army (And creating nice ambient air traffic) Enemy locations are hidden in start and must be searched out AI places mines on town roads to defend the town Airfields under your army's control can be used to buy airplanes Instead of fleeing the enemies surrender if hostile forces are near (Shooting surrendered enemies gives no money) Aircraft carriers Side missions, player can do different kind of small missions for money Various startup parameters (Nearly 30) to setup your game Notes on parameters: At 100% max locations attacked at a time is 3 And max attackers at a time is 6 Mods required: Either IFA3, Unsung, Apex, CUP or RHS Bugs: Sometimes the civilian module will throw an error, this is being investigated Starting dedicated server and joining it may take a while before the mission is loaded Sometimes respawn position is weird but works at next respawn While in respawn dialog there can be error messages (But doesn't seem to be a problem?) To play: Download the FoW mod and mission you wish to play Play as multiplayer to enable respawning Try running the mission on dedicated server environment for better performance. You can setup dedicated server on your PC with the TADS tool Important: When playing with new version check your lobby parameters that everything is setup correctly Mod Download Missions available for download: https://steamcommunity.com/workshop/filedetails/?id=1757695005 Alternative non-steam downloads: The mod: https://drive.google.com/file/d/1rt7IJ7r_xECDlMBlQvIqtLj5avgfSzjy/view?usp=sharing Missions: https://drive.google.com/file/d/1QNHCjh1KCzo7egraVPOXLLmkou5wcdOq/view?usp=sharing (Rarely needs updating) Optimization guide: Toggling some parameters off (under the performance section) can help to rise the FPS It's best to tweak the multiplier parameters for different units to have lesser units on map. Such as maximum "battle groups", "support groups", "defenders" and most importantly "maximum locations attacked at a time" which has most impact on how many units there are on map at a time. Also try playing on smaller map or set the full map parameter to no Play in small map if experiencing lag! (If you have ideas for this mission please post them) Beta testers: I'm also looking for beta testers so if there's anyone willing please let me know :) Have fun!
  2. I opened a small test server if someone wants to play. The mission is vanilla/apex arma Address: When starting the mission please allow up to minute to let the server load at start (Should be pretty lagless after that) have fun!
  3. isnt (cameraView == "GUNNER") that? https://community.bistudio.com/wiki/cameraView
  4. you can use this command to check the weapon items: https://community.bistudio.com/wiki/primaryWeaponItems
  5. yes but nearestObjects can filter only by class names not by the object name which is the "krater.p3d". Now if someone could just tell how to get that class name
  6. Then the craters class is something else than "crater". you might get the crater class figured out by leaving the class name out from nearestObjects
  7. i would check if nearestObjects returns list of the craters or is it empty
  8. Don't know but there's 60 sec delay
  9. well the first thing I notice is that spawn should be last. because with this order setVariable has not yet set the variable when spawn happens and so it wont work
  10. try this old function of mine that I dug up from my project: getNearestLocation = { private ["_pos", "_loc", "_nearLocs"]; _pos = _this; _loc = locationNull; // ignore these since they dont have name: ["Hill"] _nearLocs = nearestLocations [_pos, ["Airport","NameCityCapital","nameCity","NameVillage","NameLocal"], 90000000]; if(count _nearLocs > 0) then { _loc = _nearLocs select 0; }; _loc }; Usage: _loc = text (_pos call getNearestLocation);
  11. maybe some locations dont have a name, IDK. try with: _loc = text nearestLocation [_pos, "nameCity"];
  12. yes save the _loc to variable like the others are and then get glad to hear it works!
  13. modified the code a bit, _wCache was not properly set
  14. no error messages? you could put hint as the first thing in tskCrt to make sure it triggers...
  15. // Lythium weapon caches script by HonzaVinCZ #define __dbug__ _wCache = _this select 0; wCache = _wCache; _posATL_1 = _this select 1; _posATL_2 = _this select 2; _posATL_3 = _this select 3; _posATL = selectRandom [_posATL_1, _posATL_2, _posATL_3]; _wCache setDir (random 359); _wCache setPosATL _posATL; _pos = getPos _wCache; _loc = text nearestLocation [_pos, ""]; loc = _loc; _taskID = format["task_%1",(random 1000)]; // Create task ID tskCrt ={ _taskID = thisTrigger getVariable 'taskId'; // Get the task ID _wCache = thisTrigger getVariable 'wCache'; [west, _taskID, [format ['Destroy enemy weapon cache near %1', loc], format ['Destroy Weapon Cache near %1', loc], ''], _wCache, 'CREATED', -1, true,'destroy', true] call BIS_fnc_taskCreate; deleteVehicle thisTrigger; }; _trig = createTrigger ["EmptyDetector", _pos]; _trig setTriggerArea [10,10,0,FALSE,10]; _trig setTriggerActivation ["ANYPLAYER","PRESENT",false]; _trig setTriggerTimeout [0,0,0,false]; _trig setTriggerStatements[ "this", "call tskCrt", ""]; _trig setVariable ["taskId", _taskID]; // Save taskID so trigger code can use it _trig setVariable ["wCache", _wCache]; // Save weaponcache too #ifdef __dbug__ _mkrID=format["wCache_%1",_pos]; _mkr=createMarker[_mkrID,_pos]; _mkr setMarkerShape"ICON";_mkr setMarkerType"mil_dot";_mkr setMarkerBrush"Solid";_mkr setMarkerAlpha 1;_mkr setMarkerColor"ColorEast";_mkr setMarkerText format ["wCache %1", _loc]; #endif _wCache enableDynamicSimulation true; waitUntil{sleep 1; !alive _wCache}; if (true) then { [_taskID,"SUCCEEDED"] call BIS_fnc_taskSetState; "Bo_GBU12_LGB" createVehicle _pos; deleteVehicle _wCache; } else { "Bo_GBU12_LGB" createVehicle _pos; deleteVehicle _trig; deleteVehicle _wCache; }; something like this.. code not tested
  16. use global variables. example: put this at the beginning of the script so that the variable is "defined" myGlobalVar = 777; then in tskCrt: hint format["var is %1", myGlobalVar ]; Task Id is just a string or array with strings (array supposed to have two strings where the last one is parent task ID) so you don't need to import that. Just pass your task ID string to the task functions
  17. no need to use publicvariable on this, that's multiplayer stuff well the first thing to advice you is not to try get the return value of BIS_fnc_taskCreate because it only returns boolean instead define the task ID as the second parameter like you seem to have done already. Then use the ID in: _exists = ["wcachetask_"] call BIS_fnc_taskExists; (not 100% sure of the syntax) so you just refer to the task with the task ID (no need for variables...) will check this thread again later
  18. _taskwcache variable is inside tskCrt so it wont exist in the root scope. And when you call tskCrt the _taskwcache is local variable and doesn't exist anywhere else to fix you should use global variables or something
  19. To check if all units of group yourGroup are in some vehicle: {vehicle _x != _x} count (units yourGroup) == (count (units yourGroup))
  20. gc8

    MOD development cycle

    Filepatching enabled and your mod folder symbolically linked to arma3 folder with "recompile = 1;" for the script you want to reload allows you make changes without restarting arma. I'm using this for my mod that my mission needs (linking to mod files from mission) and it sure does save time. For pure mod it maybe different though...
  21. here you go: https://community.bistudio.com/wiki/emptyPositions and for the other question: https://community.bistudio.com/wiki/in or (vehicle _man == _man) // Not in
  22. Not sure actually. I personally use objectgrabber and objectmapper scripts of which the later creates the composition in game. But I'm unsure if it's compatible. but you could try that, I think objectmapper is module in the editor
  23. spawn creates new thread where the execution of the spawned code is done. call doesn't create new thread. Also execVM and spawn are basically the same, just that execVM get's the code from a file
  24. It's called compositions: https://community.bistudio.com/wiki/Eden_Editor:_Custom_Composition
  25. If you guys have experienced performance problems check out the renewed optimization guide (In first post) that has some good tips for bringing the FPS to reasonable level.