Search the Community
Showing results for tags 'Module'.
Found 81 results
-
mission maker tools MGI ADVANCED MODULES
pierremgi posted a topic in ARMA 3 - ADDONS & MODS: COMPLETE
MGI ADVANCED MODULES Hi all, Here is an addon for mission makers. If you need to easily spawn some factions, some civilian life or just add randomized weapons loot in houses... If you want an advanced AI heal & revive, for SP or MP mission, able to heal players or bros.. ... or respawning AIs, in waves or at once.. If you want a transport support on any vehicle... A vehicle respawn system with crew, waypoints, loadouts, addActions, arsenal.... Friendly kill sanction... AI cannons able to fire HE shells on infantry... Some generators able to switch on/off a district... or adapt silencers to combat behavior... or perhaps a simple tool for reading all map object classes/display names/p3d model names... Other tools like tire puncture on barbed wires? ... And of course, MP compatible, favorite mods compatible... Here you are. MODULES on Steam: https://steamcommunity.com/sharedfiles/filedetails/?id=1682280809 The summary is just here. The modules are described and explained in an updated documentation: DOCUMENTATION LINK Have fun! Pierre MGI- 302 replies
-
- 37
-
Respawn Expressions Issue(s)
EveryEmpireFalls posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello! First | The basic premise of what I am attempting to do is two-fold. A) respawn existing vehicles (of different types - i.e. some jets, some helicopters, some ground vehicles), with the same custom pylons - for the jets/helis - set by the pylon/dynamic loadout editor in 3den. This part works fine thus far (see below). And B) apply unlimited ammo on a delay (i.e. it takes 45 seconds for the ammo to restore) to both the original vehicle and its respawned clone. The main trouble I am having is getting unlimited ammo to work with the new, respawned vehicles. Second | A code dump and summary of what is where: The code below is my unlimited ammo expression in the existing F/A-181 (and other vehicles). Ideally, the missiles & bombs refresh on a delay, hence the {sleep 45} segment. This part works perfectly for my purposes. this addEventHandler ["Fired",{[_this select 0,getNumber (configFile/"CfgAmmo"/(_this select 4)/"explosive")] spawn {if (_this select 1==1) then {sleep 45};_this select 0 setVehicleAmmo 1}}]; This code is present in the expression of a Game Logic and synced to all relevant air vehicles. It works perfectly for my purposes; no errors and functions as intended. [this] call { if (!isServer) exitWith {}; params ["_thisObject"]; _vehs = synchronizedObjects _thisObject; _initScript = { params ["_vehicle", ["_pylons", "none"]]; if (typeName _pylons == typeName []) then { private _pylonPaths = (configProperties [configFile >> "CfgVehicles" >> typeOf _vehicle >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"]) apply { getArray (_x >> "turret") }; { _vehicle removeWeaponGlobal getText (configFile >> "CfgMagazines" >> _x >> "pylonWeapon") } forEach getPylonMagazines _vehicle; { _vehicle setPylonLoadout [_forEachIndex + 1, _x, true, _pylonPaths select _forEachIndex] } forEach _pylons; }; }; { [_x] call _initScript; } forEach _vehs; [_vehs, _initScript] spawn { params ["_vehs", "_initScript"]; sleep 1; _respawnlist = []; { _respawnlist = _respawnlist + [[_x, position _x, [vectorDir _x, vectorUp _x], getPylonMagazines _x]] } forEach _vehs; while { true } do { sleep 1; { _veh = _x # 0; _respawnpos = _x # 1; _playerdistance = 200; { if (_veh distance _x < _playerdistance) then { _playerdistance = _veh distance _x }; } forEach allPlayers; if (!alive _veh || (_veh distance _respawnpos > 20 && _playerdistance > 20)) then { _vehType = typeOf _veh; [_veh, _respawnlist] spawn { params ["_veh", "_respawnlist"]; deleteVehicleCrew _veh; _veh lock true; _inSpawn = false; waitUntil { sleep 0.5; _inSpawn = false; { _respawnpos = _x # 1; if ((_veh distance _respawnpos) < 30) exitWith { _inSpawn = true; }; } forEach _respawnlist; _inSpawn || ((speed _veh == 0) && (isTouchingGround _veh)); }; if (!_inSpawn) then { sleep 30 }; deleteVehicle _veh; }; sleep 10; _newveh = _vehType createVehicle _respawnpos; _newveh setPos _respawnpos; _newveh setVectorDirAndUp (_x # 2);[_newveh, _x # 3] call _initScript; _respawnlist set [_forEachIndex, [_newveh, _respawnpos, _x # 2, _x # 3]]; }; } forEach _respawnlist; }; }; }; This is the current code present in the "System Specific - Vehicle Respawn" Module expression (not its Init). It does not work at all. params ["_newVeh", "_oldVeh"]; [_newVeh addEventHandler ["Fired", { [_newVeh select 0, getNumber (configFile/"CfgAmmo"/(_newVeh select 4)/"explosive")] spawn { if (_newVeh select 1 >= 0) then { sleep 5 }; _newVeh select 0 setVehicleAmmo 1 } }]] call BIS_fnc_initVehicle; The Vehicle Respawn Module: It throws the no errors upon mission launch and no errors upon vehicle respawn. My friends and I suspect it is not even executing properly. Here are a few screencaps of the 3den editor of the scene in question if it helps you: // Overview of the whole airfield. The Vehicle Respawn Module on the Right by the center of the airfiled is exlusively linked to ground vehicles. It respawns the vehicles fine but without the unlimited ammo. // The test F/A-181. // The Game Logic. // My two primary test subjects (Left is experimental; Right is the control). As you can see, the left F/A-181 is the primary test subject for the Vehicle Respawn Module, as it is synced to both the Vehicle Respawn and the Game Logic. The right F/A-181 (and all other air vehicles) is synced only to the Game Logic. Both jets initially spawn with the proper pylons/dynamic loadouts and unlimited ammo, as expected vis-a-vis the 3den editor settings. Both jets respawn with the proper pylons/dynamic loadouts. Neither jet respawns with unlimited ammo, currently. I feel close to solving this, but I am blind to what I am missing/adding unnecessarily. I have tried numerous other variations with even less luck. I am sure there is some redundancy between the Vehicle Respawn Module and the game logic, and I would appreciate any simplifications there. However, that is a secondary concern. Thanks for reading this far! Hopefully, you can help me and anyone else who wants to do this. -
Trigger activated by support module.
RabbitxRabbit posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
There are a lot of resources on how to make a trigger activate a support module, but how do you make a support module activate a trigger? I've been scouring the net and even trying chatGPT for an answer but I'm coming up empty. I'm trying to trigger an event when my player calls in an airstrike. Specifically, I'm try to keep my CAS plane from taking off from TeTeT's Nimitz mod aircraft carrier before the air strike is called in. There are a lot of other applications that I would like to use this for as well. Is there anything I can put in the trigger's condition field to activate it when the support module gets activated? Something like "supportModuleActivated"? I'm at a complete loss. 😩 -
Hello everyone, I've been playing arma for about 11 years now and I've seen some pretty cool AI mods, however, I've noticed a lot of the really well functioning mods and scripts that were an absolute asset in ARMA 2 haven't been succesfully ported over to ARMA 3 and I wanted to remedy that. With that said, I wanted to create an AI medevac module that takes seriously wounded troops off of the battlefield and back to a pre-determined base/ area. For revival or death (50/50 percentage based on location of damage and severity). I know it can be done since there were a few good ones for arma 2 (especially the 9 line medevac module) any advice and or tips for me as I undergo this? Anyone want to partner up? Thank you all in advance for the comment's, suggestions, berations etc...
-
mgi scripts [HOW TO... SOLVED] drop a car instead of a crate with standard BI module
pierremgi posted a topic in ARMA 3 - QUESTIONS & ANSWERS
Hi all, I'm frequently scripting around BI modules overriding. I scripted some "multiple bombs" + "napalm" CAS for thus who knows MGI tactical pack addon. Today, I'd like to share a little script if you would like to drop a car (any vehicle) instead of a crate. Place a BI support module (virtual drop). It should work also with a real support. Not tested. Name it. Don't forget the BI support requester, sync modules as usual. In the BI module, write all vehicle types you want (helicopter classes existing in your cfgVehicles); In my example, as I'm fond of UNSUNG: ["uns_ach47_m200","uns_ch47_m60_army"] and this remark: the APEX V44 Blackfish ("B_T_VTOL_01_armed_F") is a plane but you can use it for faster drop! add what you want in the crate init, for example, I like to signal the crate with smoke/flare and add virtual arsenal on it: [_this,{ _this addAction ["<t color='#ffff11'>Arsenal</t>", {["Open",true] spawn BIS_fnc_arsenal},nil,10,false,true,"", ""]} ] remoteExec ["call"]; _flare = if (sunOrMoon <0.5) then [{"F_20mm_Yellow"},{"smokeShellYellow"}]; _fumi = _flare createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]; Remark: this code is for standard drop of a crate, but will be overridden with vehicle code. add a simple calling code in the Vehicle init of the module (here vehicle is the helicopter, not the parcel!): _this spawn MGI_fnc_dropVeh with the following remark: I use to compile sqf in init.sqf: MGI_fnc_dropVeh = compileFinal preprocessFileLineNumbers "MGI_fnc_dropVeh.sqf"; (You can also directly execVM it, writing _this execVM "MGI_fnc_dropVeh.sqf" in vehicle init of the module). Now, the sqf code: MGI_fnc_dropVeh.sqf: Last version 03rd/08/18 _veh = _this; if !(_veh isKindOf "uns_ach47_m200") exitWith {}; comment "choose the helicopter class you want for car drop, the other ones will drop simple crates."; _home = getpos _this; _grpVeh = group _veh; sleep 3; _currentwpt = [_grpVeh, currentWaypoint _grpVeh]; _currentwptPos = waypointPosition _currentwpt; _currentwptdesc = waypointDescription _currentwpt; deleteWaypoint _currentwpt; _wpt = _grpVeh addWaypoint [_currentwptPos,0]; _wpt setWaypointDescription _currentwptdesc; _wpt setWaypointStatements ["TRUE", " if (isServer) then { [this, this getVariable 'BIS_SUPP_supportRunCoords', 'B_Parachute_02_F', 'B_MRAP_01_hmg_f', this getVariable 'BIS_SUPP_selectedModule'] spawn { _pilot = _this select 0; _wpPos = _this select 1; _chuteType = _this select 2; _crateType = _this select 3; _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = if (sunOrMoon <0.5) then [{'F_20mm_Yellow'},{'smokeShellYellow'}]; _fumi = _flare createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; comment 'optional remove the _crateCode line if you dont want an arsenal'; _oldDist = _pilot distance _wpPos; while {_oldDist >= _pilot distance _wpPos} do { _oldDist = _pilot distance _wpPos; sleep 0.1 }; _pilot setVariable ['BIS_SUPP_supporting', FALSE]; _chute = createVehicle [_chuteType, [100, 100, 200], [], 0, 'FLY']; _chute setPos [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _crate = createVehicle [_crateType, position _chute, [], 0, 'NONE']; vehicle _pilot setVariable ['MGI_crate',_crate,true]; _crate call _crateCode; comment 'to be removed also, if the _crateCode line is removed above.'; _crate attachTo [_chute, [0, 0, 0]]; waitUntil {position _crate select 2 < 3 || isNull _chute}; detach _crate; _chute setVelocity [0,5,0]; vehicle _pilot setVariable ['MGI_crate',nil,true]; }; }; "]; _grpVeh setCurrentWaypoint _wpt; _wp2 = _grpVeh addWaypoint [_home, 0]; _wp2 setWaypointType "Move"; _wp2 setWaypointBehaviour "SAFE"; _wp2 setWaypointStatements ["TRUE", "vehicle this land 'LAND'"]; _veh land "none"; waitUntil {!isnil {_veh getVariable "MGI_crate"}}; sleep 60; {deleteVehicle _x} forEach crew _veh; deleteVehicle _veh; Hope you'll have fun with that. An adapted version is now included in the MGI advanced Modules addon. -
Hi, I need help with curator add editing area module. What I want is to be able to change editing area during mission via radio trigger or attachTo to some object (or some other way I don't know about 🙂). I tried to attach it to the arsenal object but it doesn't change position with it, it just stay where it was placed in the editor. I also tried to delete the module and spawn it to the new position via radio trigger. "myCurator" is the variable name of Game Master module. myCurator removeCuratorEditingArea 1; myCurator addCuratorEditingArea [ 1, (position player), 40 ]; It doesn't work. Any help is appreciated.
-
I have a question regarding the new DLC Laws of War and the showcase mission In the showcase where you get to try out CAS and choose the right one without killing civilian you can choose what kind of bomb the incoming jet gets to use. For examble you can order the new cluster bomb. But i dont seem to find any way to edit the CAS module so that the selected bomb is used. I can only choose between guided and unguided. I know if you choose an non virtual CAS provider with artillery you can choose the type of ammo but why not with planes. Hope someone knows more about scripting than me or knows how they did it in the showcase. PS. I know theres a way to force the plane to use a specific kind of weapon by disabling all others but that doesnt seem to work with virtual Provider.
-
Werthles' Headless Module (now v2.0!) Fully configurable module to give headless clients control of editor/script/Zeus AI. -->TUTORIAL VIDEO - CLICK HERE<-- Albert is the name of my headless client... Downloads: http://steamcommunity.com/sharedfiles/filedetails/?id=510031102 http://www.armaholic.com/page.php?id=29455 Main features: Easy way to create headless client missions HC Setup and Ignore modules Editor/script/Zeus AIs auto-transferred to HC control AI waypoints/scripts/trigger syncs preserved Splits AIs evenly among multiple HCs 3D Debug Mode Here's Why Headless Clients Are Good: https://www.youtube.com/watch?v=0-WKHrC661g&feature=iv&src_vid=15VK_kNOu6o&annotation_id=annotation_4128809211#t=1m46.4s How To Use: Download the mod and launch Arma 3 with the mod. Edit your mission, adding a WH Setup Module, found under "Headless Modules". Configure the parameters as appropriate for your mission. Add an "Ignore" module if required. Add playable, uniquely named, headless clients. Save your mission as a multiplayer mission. Set up your server and headless clients Play your mission! Players, HCs and the server need to run the WHM mod in order to play. Part 3 of this guide is how I set up dedicated servers and headless clients: Werthles Headless Kit Guide http://steamcommunity.com/sharedfiles/filedetails/?id=459917508 Setup Module Parameters: Headless clients to be used Repeating checks for spawned AI Time to wait between repeats 3D debug mode for all or just admins Balance the number of AI units on each HC, and rebalance when uneven Delay between module activation and HC setup starting Time between each HC transfer, to aid stability Initial setup report Phrases the module should ignore when checking AI for the HC (can be whole/part unit names/group names/unit type/synced module name) If certain units need to remain controlled by (local to) the server, simply sync these units to an ignore module. Compatibility When combining with mods that require setup time, try increasing the WHM startup delay or activate the module on a trigger, so WHM setup starts afterwards. ALiVE Compatibility ALiVE Profiles: Attach "WH Setup Module" to a radio trigger (or similar solution), then activate once in game (else profiles do not load or save correctly). ALiVE Support Modules: Give the group a distinct callsign, then add this to the list of units to ignore within the "WH Setup Module".Please let me know if you find an issue with this and any mods. I will list any issues found here. I would like to make this compatible with as many mods as possible! Headless Client Tips: Headless Clients must be set as playable and have a unique name. HCs cannot connect to client internet multiplayer servers, only local servers or dedicated servers. This is because IPs cannot be whitelisted with these servers. HCs can only connect to servers which are passworded. WHM will change the locality of the AI being transferred to HCs. This can interfere with some scripts. If it does, you can use the "Ignore" module to stop WHM from giving the HC control of individual groups. See: http://killzonekid.com/arma-scripting-tutorials-locality/ Links For Scripted Version: WHK Setup Guide (For scripted version) https://www.youtube.com/watch?v=15VK_kNOu6o Werthles Headless Kit http://steamcommunity.com/sharedfiles/filedetails/?id=459317544 Werthles Headless Kit Guide http://steamcommunity.com/sharedfiles/filedetails/?id=459917508 WHK Armaholic Download http://www.armaholic.com/page.php?id=28917 Please let me know if there are any problems/things that could be improved, and I'll get to work on it! I'd also love to see this in action. Please link me if you have screenshots/videos!
-
Hi anyone knows why my custom module works when the attribute isTriggerActivated is disabled? (it didn't work when its enable). # Config: class CfgPatches { class FCLA_Modules { units[] = {}; requiredAddons[] = {}; author = "hozlucas28"; version = "2.0"; authorUrl = "https://steamcommunity.com/profiles/76561198137876583/"; requiredVersion = 2.0; }; }; class CfgFactionClasses { class FCLA_Modules { side = 7; priority = 1; displayName = "FCLA"; }; }; class CfgFunctions { class FCLA_Modules { class 3DEN { class createACEObjectAction3DEN {file = "\FCLA_Modules\3DEN\functions\ACE_Actions\fn_objectAction.sqf";}; }; }; }; class CfgVehicles { class Logic; class Module_F: Logic { class AttributesBase { class Default; class Edit; class Combo; class CheckBox; class CheckBoxNumber; class ModuleDescription; }; class ModuleDescription { class Anything; }; }; class FCLA_Module_ACE_Object_Action_v1: Module_F { author = "hozlucas28"; displayName = "Crear acción (ACE - objeto)"; //icon = "\FCLA_Modules\3DEN\data\ACE_Interaction_Object.paa"; //portrait = "\FCLA_Modules\3DEN\data\ACE_Interaction_Object.paa"; category = "FCLA_Modules"; function = "FCLA_Modules_fnc_createACEObjectAction3DEN"; is3DEN = 0; isGlobal = 1; canSetArea = 0; isDisposable = 0; canSetAreaHeight = 0; isTriggerActivated = 1; scope = 2; class Attributes: AttributesBase { class FCLA_Name: Edit { tooltip = "Nombre que tendra la acción."; typeName = "STRING"; property = "FCLA_Name"; displayName = "Nombre"; defaultValue = "''"; }; class FCLA_Icon: Edit { tooltip = "Icono de la acción, opcional.\n• Se recomienda que el tamaño sea de 32x32 en formato '.paa'."; typeName = "STRING"; property = "FCLA_Icon"; displayName = "Icono"; defaultValue = "''"; }; class FCLA_Condition: Edit { tooltip = "Determina que condición/es deben cumplirse para que la acción se muestre.\n• Variables reservadas:\n - _target = entidad asociada a la acción.\n - _player = unidad que ejecuta la acción."; typeName = "STRING"; property = "FCLA_Condition"; displayName = "Condición/es"; defaultValue = "''"; }; class FCLA_Statement: Edit { tooltip = "Determina el código que se ejecutara al seleccionar la acción.\n• Variables reservadas:\n - _target = entidad asociada a la acción.\n - _player = unidad que ejecuta la acción."; typeName = "STRING"; property = "FCLA_Statement"; displayName = "Sentencia/s"; defaultValue = "''"; }; class FCLA_Associated_Object: Edit { tooltip = "Variable de la entidad a la que se le asociara la acción, opcional.\n• Si no se define ningúna variable, se le asociara la acción a la entidad sincronizada solo si es la única sincronizada al módulo."; typeName = "STRING"; property = "FCLA_Associated_Object"; displayName = "Variable"; defaultValue = "''"; }; class FCLA_Type_Of_Action: Combo { tooltip = "• Propia: solo la entidad asociada tiene acceso a la acción.\n• Externa: todas las entidades ajenas a la asociada tienen acceso a la acción."; typeName = "NUMBER"; property = "FCLA_Type_Of_Action"; displayName = "Tipo de acción"; defaultValue = 1; class Values { class Self { name = "Propia"; value = 1; }; class External { name = "Externa"; value = 0; }; }; }; class FCLA_Parent_Path: Edit { tooltip = "Determina en que acción padre se colocara la acción que queremos crear.\n• Por ejemplo:\n- Acción externa = ['ACE_MainActions']\n- Acción propia = ['ACE_SelfActions', 'ACE_Equipment']"; typeName = "STRING"; property = "FCLA_Parent_Path"; displayName = "Padres"; defaultValue = "''"; }; class ModuleDescription: ModuleDescription {}; }; class ModuleDescription: ModuleDescription { description[] = {"Crea una acción ACE 3D asociada a una entidad específica.<br/>• Más información: <a href='https://ace3mod.com/wiki/framework/interactionMenu-framework.html'>https://ace3mod.com/wiki/framework/interactionMenu-framework.html</a>"}; }; }; }; # Function: /* ---------------------------------------------------------------------------- * Author: hozlucas28 * * Description: * Crea una acción ACE 3D para una entidad específica. * * Public: [No] ---------------------------------------------------------------------------- */ params [ ["_module", objNull, [objNull], 0], ["_synchronizedObjects", [], [[]], []], ["_isActivated", true, [true], 0] ]; if ((is3DEN) || (isNull _module) || (!_isActivated)) exitWith {["FCLA (server log): No Entro 1"] call ACE_Common_fnc_serverLog;}; //Verificar argumentos. _name = _module getVariable ["FCLA_Name", ""]; _icon = _module getVariable ["FCLA_Icon", ""]; _condition = _module getVariable ["FCLA_Condition", ""]; _statement = _module getVariable ["FCLA_Statement", ""]; _parentPath = _module getVariable ["FCLA_Parent_Path", []]; _typeOfAction = _module getVariable ["FCLA_Type_Of_Action", -1]; _associatedObject = _module getVariable ["FCLA_Associated_Object", objNull]; _numberOfCompatibleSynchronizedObjects = {!(_x isKindOf "EmptyDetector")} count _synchronizedObjects; if ((_name == "") || (_condition == "") || (_statement == "") || (_typeOfAction <= -1)) exitWith {["FCLA (server log): No Entro 2"] call ACE_Common_fnc_serverLog;["¡Error! El/Un módulo 'Crear acción (ACE - objeto)' no se pudo inicializar con éxito."] call BIS_fnc_error;}; //Pasar ruta de padres y classnames asociadas al formato correcto. _parentPath = parseSimpleArray ([_parentPath, """", "'"] call CBA_fnc_replace); _findedEntity = _synchronizedObjects findIf {!(_x isKindOf "EmptyDetector")}; _associatedObject = if ((_findedEntity > -1) && (_numberOfCompatibleSynchronizedObjects == 1)) then {_synchronizedObjects select _findedEntity;} else {call compile format ["%1", _associatedObject];}; //Crear y asociar acción. _actionCreated = [_name, _name, _icon, [_statement] call FCLA_Common_fnc_stringToCode, [_condition] call FCLA_Common_fnc_stringToCode, {}, [], {[0, 0, 0]}, 2, [false, false, false, false, false], {}] call ACE_Interact_Menu_fnc_createAction; _return = [_associatedObject, _typeOfAction, _parentPath, _actionCreated] call ACE_Interact_menu_fnc_addActionToObject; //Eliminar módulo. //deleteVehicle _module; ["FCLA (server log): Entro " + str _associatedObject + " " + str _return] call ACE_Common_fnc_serverLog;
-
Hi, I'm working in a multiplayer mission were the server needs a custom module. I wrote the module in a small addon and everything works well. The module is used only by the server but clients cannot connect without the small addon with module info. I don't like that players need to get an addon just for this small bite of information (131 kb). Is there a way to make clients get module definition from the server when they download the mission? I hope I've been clear enought. Thank you
-
Hi, I'm trying to make my own module. I cannot understand what "Sync", "Synced" parameters and "class Units: Units"do. Thank you class My_Module: Module_F { class Attributes: AttributesBase { // Arguments shared by specific module type (have to be mentioned in order to be present) class Units: Units { property = "myTag_ModuleNuke_Units"; }; }; class ModuleDescription: ModuleDescription { description = "Short module description"; // Short description, will be formatted as structured text sync[] = {"LocationArea_F"}; // Array of synced entities (can contain base classes) class LocationArea_F { description[] = { // Multi-line descriptions are supported "First line", "Second line" }; position = 1; // Position is taken into effect direction = 1; // Direction is taken into effect optional = 1; // Synced entity is optional duplicate = 1; // Multiple entities of this type can be synced synced[] = {"BLUFORunit","AnyBrain"}; // Pre-define entities like "AnyBrain" can be used. See the list below }; };
-
Wildfire! This mod adds scripted fire spreading from foliage to foliage, and optionally buildings. Fires do damage, and are affected by wind direction, speed and rain. Fires can be started via module or script, and all fires can be extinguished in an emergency. The performance FPS wise is better than you'd expect, but less than perfect. FEATURES: - Spreadable wildfire - Compatible with any modded map - Eden/Zeus modules - Takes rain, wind direction and wind strength into account - Damages AI and players - ACE Medical Compatible (no compats needed) - CBA Settings for behaviour and performance - Optionally burn buildings - Emergency extinguish module - Multiplayer compatible - Serverside calculations Get it here: https://steamcommunity.com/sharedfiles/filedetails/?id=2645823531 Please submit any contributions, bug reports, stringtable translations, or feature requests to this projects Github: https://github.com/Seb105/Arma-Wildfire
-
Hey guys, My Real World Weather mod has been out-of-date for quite sometime. So I finally got around to updating it to use a new API provider. Now it uses https://www.weatherstack.com instead of the previous, Wunderground. Also I've never made a release thread for the mod, so I figured I might as well do one now after the update. Anyways here it is. Cheers! WORKSHOP DOWNLOAD https://steamcommunity.com/sharedfiles/filedetails/?id=879970502 Summary: Integration of a real-time weather API into arma 3. Grabs Real forecast data from an official reliable Weather Provider. Uses terrains Real World Counter-part Predicts future forecasts based on actual weather statistics. Option to sync time with location. Adds extra Immersion and Feel 3den Editor Extension (highly customizable module). Real-time weather Debug console. 32 and 64 bit support Auto config option included Keep in mind, This is a weather prediction system and it may not be entirely accurate at times. (Just like real life weather forecasts). The system does what it can with the data it's provided and makes calculations based on those. NOTES: 1. This mod runs on the server side, but is required by clients due to the newly created module. 2. Set Clouds on "Ultra" in video settings for best effects 3. You do need your own API key. You can get one for free at https://www.weatherstack.com Help/Questions: Where is the module? The module is located in the games editor ("Systems" >> "[HZ] Real-World Weather" >> "Real World Weather") Can I search for my own Weather Stats anywhere in the world?: Yes!, This System allows for dynamic search query's all over the world. With your own key simply enter the Country and City you want weather from. Everything is available to you in a easy to use Module If you are having issues getting data from the places you want, follow the steps below. Can I search using (Lat, Long) co-ords? Yes, If you have your own key. Replace Country with the latitude. Replace City with the longitude. What is a API key and do I need one? Yes, This mod does require you to own a API Key!. In short, API keys are unique id's which allow access to the Specific data services like Google, Weatherstack etc and are needed to prevent abuse and overload of the systems. Free API keys are usually limited to (x) amount of calls per hour or per day. For more info on weather API keys or how to get your own visit. https://www.weatherstack.com/ Additional Credits Daithi: Mods logo! Killzone Kid: Url fetch dll WORKSHOP DOWNLOAD https://steamcommunity.com/sharedfiles/filedetails/?id=879970502 Pictures
- 10 replies
-
- 17
-
module SPAWN GROUP - Advanced Module
pierremgi posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hi all, Here is a new module in MGI Advanced Module addon, for spawning any groups you want, any time... (done) This module allows: - to spawn any group, even customized, on any side, - spawning on multiple possible areas (triggers) - with a wide randomized choice or a very specific group. You can place several modules on the map, each of them have their own parameters; 1. Choose the side (applies to all groups spawned from a module, no matter the initial vanilla side). So civilian units can be aggressors. 2. decide if you want to spawn: * at total random (so the groups are picked in cfgGroups, but for the side you chose (normal limitation) * at randomized or specific faction(s) . They must exist in cfgGroups (not all factions from cfgFactionClasses are available for groups). All factions (cfgGroups) are available so not depending, here, on the final side * You can filter these first possibilities by the type(s) of groups. For example, "infantry" and/or "motorized" and/or "armored"... But, these types must exist in the cfgGroups. * you can choose to spawn a specific group (from cfgGroups).. or even an array of units, vehicles... or even an edited group (with all customized textures, pylons, loadouts...) * linked group(s) on module, customized or not, will be candidates for spawning. That's fine for spawning not existing groups such as air or sea patrols. 3. Choose the attitude: behavior, combat mode, formation... 4. choose the repeat sequence (limitation and delay) 5. decide on what condition groups module can spawn (not only at start, but any time!) 6. decide for a simple task (or not). Chase players, enemies, defend... 7. run a code for each group (useful for specific task) MODULE(S) IN 3DEN - Position/ area of the module(s) if no synced trigger area. Direction of the module, in 3den, is the direction of the group (if no synced trigger area) SYNCED TRIGGER AREA(S) - The position, area and direction of the module doesn't matter any more. The group(s) are spawning at randomized positions in randomized trigger area(s), with the direction of the trigger area. SYNCED UNIT(S) - In 3den, you can place (customized or not) group(s) with the module(s). No matter if you synced one (leader or not) or several units of a group, with the module. The group will be candidate for spawning. PARAMETERS SIDE - Definitely the side of your group(s) for this module. No matter the choice you did (edited group, chosen faction(s), or type(s) of group or group(s)..) What ever you spawn we belong to this side. --> But, if you let the module at full random (no synced group, no, faction, no type, no group), in this case, the randomized group is picked among the native possibility from cfgGroups. So, if you just select a side (say EAST), you'll spawn randomized groups(s) from OPFOR. HOW MANY GROUPS - The number of group(s) to be spawned at each occurrence. Randomization will depend on the possibility of what you want to spawn, so your choice) Min 1 max 12 (limited for performance saving when spawning heavy customized groups. Feel free to add other modules) NOTE: The modules works with edited groups or existing configs/classes of groups in cfgGroups (see config viewer from console). So, scripted groups have always the architecture: configFile >> "cfgGroups" >> "side" >> "faction"* >> "type of group" >> "group" ... then units/vehicles for each group Example: side like "Indep" , faction like "IND_E_F", type like "infantry", group like "I_E_InfSquad" FACTION(S)* - If empty, no filter about them. If filled without any more details (type(s), group(s) ) all available factions in cfgGroups can be used to spawn any child type, then any child group. But ⚠️ all current faction names can't work. Some existing factions in cfgFactionClasses are not present in cfgGroups. For example: "CIV_IDAP_F" (IDAP civilian faction has no group) or even "OPF_V_F" (Arma Viper) can't work in the architecture of cfgGroups. (for Viper, the only group defined in: configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "SpecOps" >> "OI_ViperTeam" exits. So at faction level, there is nothing to do). You can fill the parameter with a working class like: "OPF_F" , or the config (configfile >> "CfgGroups" >> "East" >> "OPF_F"), or an array of these possibilities. Not case sensitive. TYPE(S) - if more a filter about what you want to spawn. That should be simple as "infantry" or " motorized or mechanized" or "armored". That doesn't. Even in Arma vanilla, you can find exotic classes as "motorized_MTP". Any dev has his own mind to sort the groups by types. The reason is probably the way you can find sorted groups in 3den's right panel. But, it's just impossible (or needs an updated list of hundreds of names) to filter groups easily. You have to do that job, if you want to do so, writing a config or a class or an array of that, for filtering the type(s). Not case sensitive but do not make typo's error! If wrong, there is no more filter. You can fill the parameter with a working class (not the config) like: "specops", or an array of these possibilities. SPECIFIC GROUP(S) - a step more for less randomization. You are at the group level. As factions, you can fill it with class (of group) or config or an array of these possibilities. Much more, you can add arrays of units/vehicles class(es). That's also a way to customize some groups, but one the contrary of synced edited ones, you'll not able to define appearance for vehicles or pylons payload at this moment. RADIUS AREA - radius of the module area, so the spawn area if no synced trigger areas. Useless if any trigger area synced. GROUP(S) DIRECTION - orientation of the module in 3den (shift mousse drag) . Do not write anything on field (it's a result, not an entry). Useless if any trigger area synced. GROUP(S) SKILL - As 3den, skill for whole group, with +/-10% randomized on each units. ENABLE DYNAMIC SIMULATION - As in 3den. See Biki for detailed explanation (recommended) CONDITION FIELD - checked every 2 seconds. So, much more convenient than a simple condition of presence at start! Feel free to do what you want but return a boolean. Examples: * spawning only at night : sunOrMoon < 0.5 * strengthening weakened side : INDEPENDENT countSide allGroups < 3 * waiting for more players : count allPlayers > 2 * even checking for 1000 m distance at least from any player: private _possAreas = _logic getVariable "possAreas"; (count allPlayers > 0 && allPlayers findIf {private _plyr = _x; _possAreas findIf {_plyr distance _x#0 < 1000} == -1} == -1) but that will not despawn or hide or disable the groups! See the dynamic simulation instead. REPEAT OCCURRENCE - the added times for re-spawning the same groups (not at the same place) . 0 means no more occurrence. -1 means infinite repeat. So if you want to spawn 3 times a group, set it to 2 (1 shot + 2 added) INTERVAL FOR REPEAT - A delay between 2 consecutive spawns , if the condition are met. If not, the spawn will wait for condition to be TRUE, then spawn, then wait for interval duration, then check for condition... min 30 sec max 2 hours. FORMATION OF THE GROUP - As usual. Sometimes this setting is reinitialized to default wedge. I didn't identify why. So check twice before OK button and save scenario. BEHAVIOR - (or behaviour, sorry) Same as usual COMBAT MODE - same as usual SPEED MODE - As usual. same little problem as formation. Check twice. INSIGNIA - I hope that works fine everywhere... CODE FOR GROUP - Blank of any code (without {}). Passes parameters are <group> <<leader>, <vehicles of the group> . For example, just write: params ["_grp","_lead","_vehs"]; private _wp = _grp addWaypoint [<aPosition>,0]; _wp setWaypointType "MOVE"; _lead forceFlagTexture "\A3\Data_F\Flags\Flag_red_CO.paa"; {_x setFuel 0.2} forEach _vehs No bracket, just like this. BASIC TASK - can be: * Do Nothing (the preferred one of dumb AIs) * Attack nearest known enemy. So the group will start after an enemy knowledge acquisition. Not before. I hope I managed air assets for chasing air assets... I can't imagine infantry running after a jet. * Chase nearest enemy. Same as above but the position of nearest enemy is known (for spawning attack waves for example) * Attack nearest Player (known enemy) . The group must acquire the detection of a hostile player. * Chase nearest player (enemy). The group will start the hunting on player's (updated) position. * Defend this area. some SAD waypoints in the area of the group(s). known difficulties - Mods like Unsung or CUP or RHS (all in fact) requires a sharp attention for the name of the factions/groups but also Types... of groups. You can't imagine hundreds of names for stupid things like "infantry" "armored" "mechanized" ... That should be normalized, but not! - Too many mods, even non used by mission, but just loaded on server (so ticked), will affect the randomization for nuts, and lead to unwanted results like Arma or CUP units during Unsung play. know bugs all corrected so far To do list: - respawn without delay on whole group death - add a filter for mods... A lot of work. Enjoy! All feedback welcome. [RELEASED]- 16 replies
-
- 7
-
- mgi scripts
- advanced module
-
(and 3 more)
Tagged with:
-
Terrain Object Replacement Modules Replace or delete massive numbers of terrain objects easily Download: https://steamcommunity.com/sharedfiles/filedetails/?id=2276624333 Check images below for how to use: Explanation:
-
Hi all, Team switching is one of the weirdest feature in Arma. If you are playing in SP, with several switchable units, some behaviors can be lost. If you switch, you can loose all supports (BI standard support modules). Reproducible, Vanilla, 3den: Add units: player + playable ones Add an artillery (the support type doesn't matter, it's just an example) Add the artillery provider module add the requester module link the artillery to the provider module, the provider to the requester module, the requester module to all switchable (playable in 3den) units. Preview Starting as player (the player unit in 3den), gives you the artillery support. No problem. Starting "as character" from any other playable unit does the trick also. No problem. But, each time you press "U" (or whatever key for switching menu) and you choose another unit, the support menu disappear. NB 1: No matter the method used: editor or scripted links with BIS_fnc_addSupportLink, the supports are lost on team switching. Only the first unit played at start can call supports. NB 2: a little workaround, tested but not guaranteed: addMissionEventHandler ["teamSwitch", { BIS_requesterFSM = nil; [yourRequestModuleName] execVM "A3\modules_f\supports\init_requester.sqf"; }]; Now if you switch, the support works.... A remaining point I failed to correct: At your first support call after switching, a hint message will say: "provider not available". Which is wrong. The support works.
-
How are SpawnAI Unit costs calculated?
Mr Elusive posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hey BIS Forums, Can anyone explain how SpawnAI unit costs are actually calculated? I'm working on a mission using the SpawnAI modules. The SpawnAI modules have a manpower cap of 50 by default and I'd like to tweak it to spawn more/less units of different types (infantry, armor etc). According to the MP Support Guidelines on the BIS Wiki... a rifleman costs about 0.5 an AA/AT soldier about 6 a MRAP about 6 an APC about 12 a tank about 27 The page says the values are calculated using the cost and threat values defined in the unit's config. I admit I'm not great at math, but I just don't see how they came up with 0.5 as an answer using those two values. Example 1 - a standard NATO rifleman ("B_Soldier_F") and open up his entry in the config viewer: cost = 100000; threat[] = {0.8,0.1,0.1}; Example 2 - NATO AT Missile Specialist ("B_soldier_AT_F"): cost = 130000; threat[] = {0.8,0.8,0.3}; According to the guidelines these units should cost 0.5 and 6 respectively. Clearly I'm missing something, so can anyone tell me how unit costs are actually calculated? Thanks in advance. -
sector control Sector Control and AI Spawn modules after save/load?
viel.kuul.10 posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I want to make a big Sector Control mission in the editor and then export to Singleplayer to play. I put a lot of Sector Control Modules on the map in the editor, I set Spawn AI Modules for BLU and OPF and exported to Singleplayer, in the beginning everything worked as it should, AI spawns, moves, fights with each other and conquers Sector Controls by map, then after I clicked Save & Exit to continue this mission later. But after reloading the save game I noticed that me and the AI (BLU and OPF) can´t capture Sector Controls. Sector Controls do not change color, they remain gray. The modules seem to have stopped working after the reload and need to be reactivated via script? How can I reactivate this? I wish I could save this mission so I could easily reload and continue later. Not that I have to play the whole mission in one piece. This is very important to me! If anyone can help, I will be very grateful. -
mgi scripts MGI GUN RUN (on BI CAS module)
pierremgi posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
MGI GUN RUN Last update: 01/05/2020 Hi all, Here is another script to add a specific gun run, calling a virtual or real CAS. This script is to copy/paste inside BI init CAS module. Nothing more to do! The code will search for "cannon" or "Gatling" in the pilot's weapon. So far, it doesn't work for gunners. You can see "no pilot cannon" in the sub-menu. If you find some non-listed pilot's cannon, let me know. Tips: - Always place your module/aircraft at 2 km from a target area. It's far better for a straight-in approach. You can even place them outside of the map. - Don' try to repeat the CAS too soon with a real aircraft. It will turn around the target without aiming it. Don't forget, pilots are dumb (I can say that referring to my own career). - At this time, Buzzard is far more precise than Wipeout which generously spread ammo with poor efficiency. Code to copy/paste in init field of the CAS module: MGI_CAS_MODULE_1 = this; MGI_CAS = compileFinal " if !(GUNRUNCAS) exitWith {}; private _isVirtual = ({_x isKindOf 'air'} count synchronizedObjects MGI_CAS_MODULE_1 ==0); private _pilot = player getVariable 'BIS_SUPP_selectedProvider'; private _veh = vehicle _pilot; private _home = getPos MGI_CAS_MODULE_1; private _trts = (_veh WeaponsTurret [-1]) select { getText (configfile >> 'CfgWeapons' >> _x >> 'nameSound') == 'cannon'}; waitUntil {!isNil {_pilot getVariable 'BIS_SUPP_requester'} && {!isNull (_pilot getVariable 'BIS_SUPP_requester')}}; private _requester = _pilot getVariable 'BIS_SUPP_requester'; 'Gun run requested' remoteExec ['hint',_requester]; waitUntil {!isnil {_pilot getVariable 'BIS_SUPP_supportRunCoords'}}; private _coords = _pilot getVariable 'BIS_SUPP_supportRunCoords'; private _alt = getTerrainHeightASL _coords; private _limit = [40,90] select (_veh distance2D _coords < 2500); _pilot setCombatMode 'BLUE'; _veh flyInHeightASL [_alt +500,_alt +500,_alt +500]; waitUntil {_veh distance2D _coords < 2000}; if (!isNil 'BIS_SUPP_laserTGT') then {deleteVehicle BIS_SUPP_laserTGT; BIS_SUPP_laserTGT = nil}; private _timer = diag_tickTime; _veh flyInHeightASL [_alt +100,_alt +100,_alt +100]; private _resultOK = false; 'In sight' remoteExec ['hint',_requester]; private _typeForIndep = (WEST getFriend RESISTANCE >0.6); private _tgttype = ['laserTargetE','laserTargetW'] select (side _veh == WEST or (side _veh == RESISTANCE && _typeForIndep)); private _tgt = createVehicle [_tgttype,_coords,[],0,'none']; if (count _trts > 0) then { _trt = _trts select 0; private _mags = (getArray (configfile >> 'CfgWeapons' >> _trt >> 'magazines')) arrayIntersect (_veh magazinesTurret [-1]); comment ""private _cnt = getNumber (configFile >> 'cfgMagazines' >> _mags select 0 >> 'count')""; _pilot setCombatMode 'RED'; _pilot reveal [_tgt,4]; _veh selectWeaponTurret [_trt,[-1]]; private _cnt =_veh magazineTurretAmmo [_veh currentMagazineTurret [-1],[-1]]; while {diag_tickTime < _timer + _limit} do { _tgt setPosASL (getPosASL _tgt vectorAdd [0,0,(0.18 * (_veh distance2D _tgt)) -270]); _veh selectWeaponTurret [_trt,[-1]]; _veh doTarget _tgt; if ((_veh weaponDirection _trt vectorCos (AGLToASL _coords vectorDiff (eyepos _pilot))) > 0.999) then { [[_veh,_trt], BIS_fnc_fire] remoteExec ['call',_veh]; if (_veh magazineTurretAmmo [_veh currentMagazineTurret [-1],[-1]] < _cnt) then {_resultOK = true}; } else { _pilot lookAt _tgt }; uiSleep .01; }; }; if (!_resultOK) then {_pilot setVariable ['BIS_SUPP_failed',true]}; (['Gun run aborted','Gun run terminated, resuming support'] select _resultOK) remoteExec ['hint',_requester]; if !(_isVirtual) then { waitUntil {waypointType [group _veh,currentWaypoint group _veh] == 'MOVE'}; [group _veh,currentWaypoint group _veh] setWaypointPosition [_home,0]; [group _veh,currentWaypoint group _veh] setWaypointStatements ['true','']; _veh setFuel 1; {_veh setAmmo [_x, 2000]} forEach _trts; }; _pilot setVariable ['BIS_SUPP_supporting',false]; if (_isVirtual && alive _veh) then {uiSleep 120; deleteVehicle _veh}; "; 0 = MGI_CAS_MODULE_1 spawn { while {true} do { GUNRUNCAS = false; waitUntil {uiSleep 0.2; !isnil {player getVariable "BIS_SUPP_selectedProvider"}}; waitUntil {!isNil {player getVariable "BIS_SUPP_request"} && {(player getVariable "BIS_SUPP_request") #0 == "CAS_Bombing"} && {!isnull (player getVariable "BIS_SUPP_selectedProvider")}}; private _pilot = player getVariable "BIS_SUPP_selectedProvider"; private _veh = vehicle _pilot; private _trts = (_veh WeaponsTurret [-1]) select { getText (configfile >> "CfgWeapons" >> _x >> "nameSound") == "cannon"}; private _cooldown = time - (_this getVariable ["BIS_SUPP_lastCall",time -122]) - ((_this getVariable ["BIS_SUPP_cooldown",0]) max 60); BIS_SUPP_commMenu = BIS_SUPP_commMenu + [ [ ["Gun run request",["No pilot cannon!",format ["wait for %1 sec",-(round _cooldown)]] select (_cooldown < 0)] select (count _trts == 0 or _cooldown <0), [4], "", -5, [[ "expression","GUNRUNCAS = true; [] spawn MGI_CAS; player setVariable ['BIS_SUPP_ammoType', 0]" ]], "1", ["1","0"] select (count _trts == 0 or _cooldown < 0), "\A3\ui_f\data\IGUI\Cfg\WeaponCursors\cannon_gs.paa" ] ]; uiSleep 0.1; showCommandingMenu "#USER:BIS_SUPP_commMenu"; waitUntil {uiSleep 0.2; isNil {player getVariable "BIS_SUPP_selectedProvider"} or {!isNil {player getVariable "BIS_SUPP_selectedProvider"} && isnull (player getVariable "BIS_SUPP_selectedProvider")}}; }; }; Seems to be short? It took me a lot of hours to find this solution. Feel free to test, comment, ask for some implementation. Pierre -
Can I add different types of magazines to the supply drop? I tried it this way but it doesn’t work: clearMagazineCargo _this; clearItemCargo _this; clearWeaponCargo _this; _this addMagazineCargo ["Item_FirstAidKit", 15]; _this addMagazineCargo ["Item_Medikit", 15]; _this addMagazineCargo ["rhs_magazine_rhs_100Rnd_762x54mmR_green", 15]; _this addMagazineCargo ["rhs_magazine_rhs_10Rnd_762x39mm", 30]; _this addMagazineCargo ["rhs_magazine_rhs_10Rnd_762x39mm_tracer", 30]; _this addMagazineCargo ["rhs_magazine_rhs_10rnd_9x39mm_SP6", 30]; _this addMagazineCargo ["rhs_magazine_rhs_10Rnd_762x54mmR_7n14", 30]; _this addMagazineCargo ["rhs_magazine_rhs_mag_9x19_17", 30]; _this addMagazineCargo ["rhs_magazine_rhs_20rnd_9x39mm_SP5", 30]; _this addMagazineCargo ["rhs_magazine_rhs_mag_9x19mm_7n21_20", 30]; _this addMagazineCargo ["rhs_magazine_rhs_30Rnd_545x39_7N10_2mag_AK", 30]; _this addMagazineCargo ["rhs_magazine_rhs_30Rnd_545x39_7N10_AK", 30]; _this addMagazineCargo ["rhs_magazine_rhs_45Rnd_545x39_AK", 30]; _this addMagazineCargo ["rhs_magazine_rhs_5Rnd_338lapua_t5000", 30]; _this addMagazineCargo ["rhs_magazine_rhs_mag_9x18_8_57N181S", 30]; _this addMagazineCargo ["rhs_magazine_rhs_mag_f1", 20]; _this addMagazineCargo ["rhs_magazine_rhs_GDM40", 20]; _this addMagazineCargo ["rhs_magazine_rhs_rpg7_PG7VL_mag", 10]; Signal = "SmokeShellYellow" createVehicle position _this; _this allowDamage false; HELP plz!
- 2 replies
-
- supplydrop
- module
-
(and 1 more)
Tagged with:
-
Hello, everyone! I have played missions with such tasks. For example: the player can finish a main task, shown above the others, when 2 or more other side/secondary tasks are completed. My simple example: -> Main Task: Survive - Kill The Officer - Destroy Tank When I kill the officer and destroy the enemy tank, I have completed these side/secondary tasks, and with that the main task: Survive, is also completed. Is this some special script that should be used or just placing down any modules in the Eden editor?
-
Hello, does anyone know how to create the Zeus modules for the Zeus of Arma 3 Vanilla. I knwo how to create the modules for EDEN, but I don't see nothing for Zeus Modules https://community.bistudio.com/wiki/Modules Thx.
-
createDialog not executing for Zeus in MP
xeenenta posted a topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
Hi Everyone, I'm looking for some help regarding a zeus module that I am creating. To give some background, the module (when placed) should prompt the user to use sliders to configure a radius and number of AI with which to garrison buildings within said defined radius. I think I'm running into an issue with execution locality, as this works perfectly in the editor. Expected behavior: User selects the module in zeus and places it somewhere on the map Dialog box appears to ask them to configure radius and number of AI User hits OK and it calls another function to start placing AI relative to the module location In singleplayer this works as above (I imagine this is due to the server and client both being local) In multiplayer, the function to create the dialog is executed on the server (evidenced by debug output to the console), but a dialog does not appear for Zeus My module is defined as follows: class xeen_module_base: Module_F { icon = "\xeen_modules\insignia.paa"; category = "xeen_modules"; isGlobal = 0; isTriggerActivated = 1; isDisposable = 1; is3DEN = 0; curatorCanAttach = 1; scope = 1; scopeCurator = 1; }; class xeen_moduleGarrison: xeen_module_base { displayName = "Garrison Area"; function = "xeen_fnc_garrisonModuleDialog"; functionPriority = 10; scope = 2; scopeCurator = 2; class Attributes: AttributesBase { class GarrisonSpread: Edit { property = "xeen_moduleGarrison_GarrisonSpread"; displayName = "Unit Spread (m)"; tooltip = "The distance of buildings to be garrisoned"; typeName = "NUMBER"; defaultValue = "50"; }; class MaxPerBuilding: Edit { property = "xeen_moduleGarrison_MaxPerBuilding"; displayName = "Max units per building"; tooltip = "Max units per building"; typeName = "NUMBER"; defaultValue = "5"; }; //class ModuleDescription: ModuleDescription{}; // Module description should be shown last }; #include "description.hpp" }; and it calls the following function: /* * Author: Xeenenta * Opens the dialog menu for the garrison module * * Arguments: * 0: Logic <LOGIC> * * Return Value: * None * * Example: * [_logic] call xeen_garrison_fnc_garrisonModuleDialog * * Public: No */ // Parameters params ["_logic"]; _logicLocation = getPos _logic; diag_log format ["Spawning display with logic %1", _logicLocation]; // Create display createDialog "garrisonModuleDialog"; _display = findDisplay 99; // Set Variable _display setVariable ["_logicLocation", _logicLocation]; diag_log "Finished spawning display"; and my dialog is defined here: class garrisonModuleDialog { idd = 99; access = 0; movingEnable = false; enableSimulation = false; class ControlsBackground { class IGUIBack_2200: IGUIBack { idc = 2200; x = 0; y = 0.4; w = 1; h = 0.6; }; class RscStructuredText_1100: RscStructuredText { idc = 1100; text = "AI per building:"; //--- ToDo: Localize; x = 0.025; y = 0.68; w = 0.17; h = 0.05; }; class RscStructuredText_1101: RscStructuredText { idc = 1101; text = "Garrison Radius:"; //--- ToDo: Localize; x = 0.025; y = 0.44; w = 0.17; h = 0.05; }; class RscStructuredText_1102: RscStructuredText { idc = 1102; text = "0"; //--- ToDo: Localize; x = 0.1625; y = 0.68; w = 0.06; h = 0.05; }; class RscStructuredText_1103: RscStructuredText { idc = 1103; text = "0m"; //--- ToDo: Localize; x = 0.2; y = 0.44; w = 0.06; h = 0.05; }; }; class Controls { class RscButtonMenuOK_2600: RscButtonMenuOK { idc = 1234; x = 0.875; y = 0.88; w = 0.1; h = 0.1; onButtonClick = "[(findDisplay 99) getVariable ['_logicLocation', objNull], sliderPosition 1901, sliderPosition 1900] call xeen_fnc_garrisonModuleInit; (findDisplay 99) closeDisplay 1;" }; class RscButtonMenuCancel_2700: RscButtonMenuCancel { x = 0.75; y = 0.88; w = 0.1; h = 0.1; }; class RscSlider_1900: RscSlider { idc = 1900; x = 0.025; y = 0.74; w = 0.95; h = 0.1; type = 43; arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; color[] = {1,1,1,0.5}; coloractive[] = {1,1,1,1}; sliderPosition = 0; sliderRange[] = {0,10}; sliderStep = 1; lineSize = 1; onSliderPosChanged="((findDisplay 99) displayCtrl 1102) ctrlSetStructuredText parseText str(sliderPosition 1900)" }; class RscSlider_1901: RscSlider { idc = 1901; x = 0.025; y = 0.5; w = 0.95; h = 0.1; type = 43; arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; color[] = {1,1,1,0.5}; coloractive[] = {1,1,1,1}; sliderPosition = 5; sliderRange[] = {0,100}; sliderStep = 10; lineSize = 1; onSliderPosChanged="((findDisplay 99) displayCtrl 1103) ctrlSetStructuredText parseText str(sliderPosition 1901)" }; }; class Objects { }; }; Any thoughts? Full source code can be found at: https://github.com/Xeenenta/xeenenta-enhanced-battlefield if anyone wanted to go digging around. -
Are changes to the Support mission framework coming at any point?
sgtfuzzle17 posted a topic in ARMA 3 - QUESTIONS & ANSWERS
To start off, I'm a massive fan of the Support framework - not enough missions make transport/logistics pilots really feel like they have a meaningful impact on the battlefield in my opinion, and I'm not a huge fan of the needless level of complexity involved with getting ALiVE working properly. However... Since we got the mission framework, it seems to have the hardcoded limitation that getting out of your chopper outside the base/leaving the base in any manner other than a helicopter results in a "returning to base, out of bounds" message. Now, I get that the mission is geared towards support objectives (they've specifically stated in the past it was designed this way so that when it was released alongside the Helicopters DLC, there would be a mission purely focusing on the logistics capabilities those new vehicles brought to the table) - it does it better than anything else. But the inability to have even a small player squad operating alongside a larger, busier air wing kind of sucks, especially when its due to a single option that could be as easily turned off as a single attribute in one of the modules. Is there any chance of getting in contact with Bohemia and seeing if they'd make this change? Alternatively, if people know a way around this limitation please let me know so I can implement it. -
https://steamcommunity.com/sharedfiles/filedetails/?id=2111460425 F-16 Falcon CAS Module For Arma 3 by ANZACSAS Steve. --------------------------------------------------------------------------------------------------------------------------- - Instant brutal and intense Airstrikes !! - Enhanced AI behaviour CAS Module for Firewills F-16 Falcon Mod !! 🙂 - Big Napalm and bomb strikes for great cinematics! - Signed and comes with server key. - Thanks to bis and the community. - Support module capable. - Comes with example mission for Support Module airstrikes.Found in your @ANZACSAS Napalm and WP Smoke marker rockets Mod folder! - Enjoy. Required Addons - Napalm Mod https://steamcommunity.com/sharedfiles/filedetails/?id=1703765606 Firewills F-16 Falcon Mod https://steamcommunity.com/sharedfiles/filedetails/?id=366423278 - Quick how to use - - Place module on map.Sync to a trigger with a Radio Alpha activation or whatever activation you choose. - Make sure player is equipped with a radio. - The direction of the module sets the direction the planes will attack from. - Found in the module tab in the editor (F5) in the effects tab. - See below for a more in depth how to use guide by Phronk from BI Forums. Phronk says, Here's how to place a CAS module in the editor and edit it: Click the Modules button on the right (Or press F5) Click the category, "Effects" (It's the third one down) Click the "Close Air Support (CAS)" item in the list Place the module on the map Double-click on it to open the module and edit it Very bottom category in edit box lets you change type of attack and CAS plane used Here's how to sync it to a trigger: Place your Blufor player unit Place a trigger and set the Activation to "BLUFOR" Right-click your Blufor player unit, highlight "Connect" and then click "Sync to" Left-click the trigger; this will sync your unit to the trigger Right-click the placed CAS module, highlight "Connect" and then click "Sync to" Left-click the trigger; this will sync your CAS module to the trigger Results. Also, the azimuth you set the CAS module to will be the direction the CAS plane will ingress from. If the azimuth is 0, then the plane will come in from the north and egress south Copyright 2019[ANZACSAS Steven].This item is not authorised for posting on Steam, except under the Steam account named ANZACSAS Steven.