Jump to content

fn_Quiksilver

Member
  • Content Count

    2697
  • Joined

  • Last visited

  • Medals

Everything posted by fn_Quiksilver

  1. actually a decent idea to run hideobject locally on each machine
  2. It is/was an issue if you used roads to spawn vehicles. if you spawned vehicles dynamically on roads, often you want them on actual roads, not jungle tracks. The weakness is that there was not a separate road net for infantry, so inf and vics would use the same nodes. If there was a separate infantry road net, then adding infantry nodes thru dense jungle wouldnt have been an issue. but it was silly to add vehicle road nodes thru dense jungle. Finding these was partially alleviated in 2.00 with "roadsConnectedTo" alt syntax https://community.bistudio.com/wiki/roadsConnectedTo ultimately these are just workarounds for lazy/incomplete effort of BIS devs ... Your solution of using "hideobject" on jungle tracks to widen them for vehicle is novel but not suitable for procedural missions unless you're happy with the desync associated with large lists of JIP compatible global hidden terrain objects. its still not possible to prevent AI vics from attempting to navigate on the pedestrian tracks, so your solution might be beneficial there!
  3. Hi lads, Created a little "proof of concept" grappling hook script a few weeks ago using vanilla assets, thought I'd share. /* Dumb little grappling hook mod by Quiksilver How to use: - HOLD left mouse button to use grappling hook - RELEASE left mouse button to release grappling hook */ QS_mx = 50; // adjustable velocity multiplier QS_downVel = -0.1; // adjustable downward velocity for bullet drop QS_vehicle = objNull; QS_rope = objNull; QS_EH_3 = -1; removeAllUserActionEventHandlers ['defaultAction','activate']; removeAllUserActionEventHandlers ['defaultAction','deactivate']; addUserActionEventHandler [ 'defaultAction', 'activate', { if ((toLowerANSI (currentWeapon cameraOn)) isNotEqualTo 'hgun_esd_01_antenna_01_f') exitWith {}; if (!alive QS_vehicle) then { QS_helper_1 = createVehicle [QS_helperType,[0,0,0]]; QS_helper_1 hideObject FALSE; QS_helper_1 allowDamage FALSE; QS_helper_1 attachTo [player,[0.2,-2,1]]; QS_helper_2 = createVehicle [QS_helperType,[0,0,0]]; QS_helper_2 hideObject TRUE; QS_helper_2 allowDamage FALSE; QS_helper2_EH = addMissionEventHandler [ 'EachFrame', { if (isNull QS_helper_2) exitWith { removeMissionEventHandler [_thisEvent,_thisEventHandler]; }; if (isNull (attachedTo QS_helper_2)) then { QS_helper_2 setPosWorld (getPosWorld QS_helper_2); }; } ]; _weaponVectorDir = player weaponDirection (currentWeapon player); QS_vehicle = createVehicle ['Land_Balloon_01_water_F',[0,0,0]]; QS_vehicle setObjectTexture [0,"#(rgb,8,8,3)color(0,0,0,1)"]; QS_vehicle setPosASL (player modelToWorldWorld [0.2,2,1]); QS_helper_2 attachTo [QS_vehicle,[0,0,0]]; QS_vehicle setVelocity (_weaponVectorDir vectorMultiply QS_mx); QS_vehicle addEventHandler [ 'Killed', { (_this # 0) removeEventHandler [_thisEvent,_thisEventHandler]; (_this # 0) removeAllEventHandlers 'EpeContact'; QS_pos2 = getPosWorld (_this # 0); detach QS_helper_2; QS_helper_2 setPosWorld (getPosWorld (_this # 0)); ropeUnwind [QS_rope, 20, 1]; removeMissionEventHandler ['Draw3D',QS_EH_3]; QS_EH_3 = addMissionEventHandler [ 'Draw3D', { player setPosWorld ((getPosWorld QS_helper_1) vectorAdd [0,0,3]); } ]; } ]; QS_vehicle addEventHandler [ 'EpeContact', { (_this # 0) removeEventHandler [_thisEvent,_thisEventHandler]; (_this # 0) removeAllEventHandlers 'Killed'; QS_pos2 = getPosWorld (_this # 0); detach QS_helper_2; QS_helper_2 setPosWorld (getPosWorld (_this # 0)); ropeUnwind [QS_rope, 20, 1]; removeMissionEventHandler ['Draw3D',QS_EH_3]; QS_EH_3 = addMissionEventHandler [ 'Draw3D', { player setPosWorld ((getPosWorld QS_helper_1) vectorAdd [0,0,2]); } ]; } ]; addMissionEventHandler [ 'EachFrame', { if (!alive QS_vehicle) exitWith { removeMissionEventHandler [_thisEvent,_thisEventHandler]; }; QS_vehicle setVelocity ((velocity QS_vehicle) vectorAdd [0,0,QS_downVel]); } ]; detach QS_helper_1; QS_rope = ropeCreate [QS_helper_2,[0,1,0],QS_helper_1,[0,1,0],30]; systemChat str QS_rope; }; } ]; addUserActionEventHandler [ 'defaultAction', 'deactivate', { if ((toLowerANSI (currentWeapon cameraOn)) isNotEqualTo 'hgun_esd_01_antenna_01_f') exitWith {}; deleteVehicle QS_vehicle; if (!isNull QS_rope) then {deleteVehicle QS_rope}; if (!isNull QS_helper_1) then { detach QS_helper_1; deleteVehicle QS_helper_1; }; if (!isNull QS_helper_2) then { detach QS_helper_2; deleteVehicle QS_helper_2; }; removeMissionEventHandler ['Draw3D',QS_EH_3]; player setVelocity [0,0,0]; } ]; // Run the below stuff only once player addWeapon "hgun_esd_01_antenna_01_F"; player selectWeapon (handgunWeapon player); player allowDamage FALSE; QS_helperType = 'B_static_AA_F'; // what other physx object can we use for rope attach?. Hiding this doesnt work (disables physx). QS_helper_1 = objNull; QS_helper_2 = objNull;
  4. fn_Quiksilver

    Apex Framework

    that particular one is not in the vanilla framework, likely another modder has created it for their own server
  5. fn_Quiksilver

    Vehicle in Vehicle Transport Feedback

    what, the ship is configured for vehicle cargo??
  6. Posted this to the discord, thought it could be useful to post here as well I maintain a more comprehensive "soldier tracker" script here: However a community member asked for a "super light weight" script to add to a mission, this is reasonably lightweight, little more than an example. NOTE: This will only work from version 2.12 onward. Until then you will have to change a line // 2.10 (current game version) uiNamespace setVariable ['TAG_mapList',allGroups select {((side _x) isEqualTo playerSide}]; // 2.12+ uiNamespace setVariable ['TAG_mapList',groups playerSide]; // initPlayerLocal.sqf TAG_mymapfunction = { params ['_map']; // Update data only every x seconds if (diag_tickTime > (uiNamespace getVariable ['TAG_mapListInterval',-1])) then { uiNamespace setVariable ['TAG_mapListInterval',diag_tickTime + 5]; // 5 seconds interval uiNamespace setVariable [ // cache side color incase side changes 'TAG_mapListSideColor', ([ [0.7,0.6,0,0.5], [0.5,0,0,0.65], [0,0.3,0.6,0.65], [0,0.5,0,0.65], [0.4,0,0.5,0.65], [0.7,0.6,0,0.5] ] # (([sideUnknown, east, west, independent, civilian, sideUnknown] find playerSide) max 0)) ]; //uiNamespace setVariable ['TAG_mapList',groups playerSide]; // show groups OR // this line will only work in arma 2.12+ uiNamespace setVariable ['TAG_mapList',units playerSide]; // show units }; // Icon color for players side _color = uiNamespace getVariable ['TAG_mapListSideColor',[1,1,1,0.5]]; // Draw { //_leader = leader _x; // show groups OR _leader = _x; // show units _map drawIcon [ 'a3\ui_f\data\map\vehicleicons\iconMan_ca.paa', // Default man icon _color, getPosWorldVisual _leader, 22, 22, getDirVisual _leader, (if (_x isEqualType objNull) then {['',(name _leader)] select (_leader isEqualTo (effectiveCommander (vehicle _leader)))} else {(groupId _x)}), 1, 0.035, 'puristaMedium', 'right' ]; } forEach (uiNamespace getVariable ['TAG_mapList',[]]); }; ((findDisplay 12) displayCtrl 51) ctrlRemoveAllEventHandlers 'Draw'; // Remove existing, for debug/dev ((findDisplay 12) displayctrl 51) ctrlAddEventHandler [ // Add new event 'Draw', 'call TAG_mymapfunction' ]; Feel free to suggest optimisations!
  7. only way i have found to solve this is to periodically check uniform on remote machine (for instance server). if unit is naked on remote machine then bounce code back to player to re-apply uniform. have only had issues with uniform tho, not other gear tl;dr server checks players periodically for ((uniform _x) isequalto "") and prompts that player to reapply their uniform
  8. fn_Quiksilver

    Make Rhino MGS wheels tougher

    I think its the only way to handle this good idea too, i am often seeing the rhino wheels get disabled by GMGs
  9. fn_Quiksilver

    Apex Framework

    hey glad you enjoy! can you elaborate, maybe with a screenshot or something. there are several overlapping systems and i dont know which you mean 🙂
  10. fn_Quiksilver

    Vehicles stuck to the ground?

    It sounds like your mod(s) is increasing the Mass of the vehicle substantially, which will produce the effects you are describing.
  11. fn_Quiksilver

    Apex Framework

    I have published some small changes to enemy vehicle difficulty on classic mode. For some reason too many were spawning. Here are the changes: https://github.com/auQuiksilver/Apex-Framework/commit/e4fce5919e8b3e22f2de9e489b27ce3091a1dda9
  12. I like to do it in the UI event, is more graceful to prevent access than to allow access then eject. focus on the inGameUISetEventHandler also, since "pilot" is constant, replace //replace toUpper "Pilot" //with "PILOT"
  13. fn_Quiksilver

    killed event handeler

    // init.sqf if (hasInterface) then { addMissionEventHandler [ 'EntityKilled', { params ['_killed','_killer']; if (_killer isequalto player) then { }; } ]; };
  14. fn_Quiksilver

    Apex Framework

    Updated to 1.3.5 Inventory saving, stability & maintenance [ADDED] Inventory Edit/Save/Load (for crates and vehicles). [TWEAKED] Zeus remote-controlled units can now Jump and Holster Weapon. [TWEAKED] Zeus can now (numpad 1) ungarrison previously garrisoned AI (allow them to walk again). [TWEAKED] Zeus AI Suppressive Fire (numpad 6) to attempt Suppressive Fire even with no specific target. [TWEAKED] Explosion effects. [TWEAKED] Blindfold & CBRN mask effects. [TWEAKED] Increased radius for inventory editing areas. [FIXED] Players could not mount slat armor at service points.
  15. Just posting this here, maybe some food for thought for mission makers and scripters 🙂
  16. fn_Quiksilver

    AI suppressive fire improvements

    i have already implemented into I&A, the more recent versions at least. all enemy autoriflemen/machine gunners make use of it, randomized of course... havent thought about the vanilla suppression menu, it would depend on if its possible to override an existing suppressive fire order. no not straightforward to do
  17. fn_Quiksilver

    Apex Framework

    Updated to 1.3.4 Stratis, stability & maintenance, initial CDLC Support Starting work on expanding Zeus Mode and extending framework CDLC support [ADDED] Stratis (Zeus and Classic modes). [ADDED] Custom vehicle service system to replace vanilla vehicle repair/refuel/rearm. [ADDED] Local base objects system. Most base props--with integrated bases--are now local to client. (allows Server to commit more CPU time to AI/network evaluations). [TWEAKED] Recruitable AI can now have their loadout changed using Arsenal. [TWEAKED] (Classic Mode) AI area patrol logic small tweak. [TWEAKED] AI flagged as stuck (under rocks or swimming aimlessly) given some logic to unstuck themselves. [TWEAKED] Ruined military towers should no longer be cleaned up. [TWEAKED] Changed how framework handles marker positions. Spawn systems now use the marker Z-axis for placement. (May affect custom systems like vehicle and player spawns). Allows designers to fine tune spawn locations easily by simply setting marker height. [TWEAKED] Triggers placed in editor will no longer be deleted, if given variable: this setVariable ['QS_missionObject_protected',true]; . It is highly encourage to not use Triggers however. [TWEAKED] Improved AI Tracer mags system. [TWEAKED] AI Suppressive Fire. [TWEAKED] AI armed ground vehicles can now occasionally provide "Direct Fire Support" on red smoke positions (if other Fire Supports are unavailable). [FIXED] All primary crew in a vehicle can now see Trophy (Active Protection System) countermeasures info. [FIXED] Headless Client AI were not getting tracer magazines when appropriate. [FIXED] An old bug in QS_fnc_findSafePos [FIXED] Small user action error with Civilian interactions [FIXED] (Classic mode) Bandit camp could spawn over water in rare cases.
  18. fn_Quiksilver

    Apex Framework

    hey, good question the Eden Editor is for you to do custom stuff. the framework generates default systems from files. if you want to create a custom base for instance, you simply toggle the relevant setting in "parameters.sqf" to disable the default base, and then get busy in the eden editor, using the provided map markers in Eden editor, and the documentation folder (to do respawning vehicles for instance). I may do a tutorial vid on how to 'quickly' create a custom base to find out how it all initializes, this is one of the first files here https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/functions/fn_init.sqf and then the base eventually gets generated from this data file https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/config/QS_data_missionobjects.sqf the documentation folder provided has solutions to most of the basics https://github.com/auQuiksilver/Apex-Framework/tree/master/Apex_framework.terrain/documentation for example, adding respawning vehicles using the built in vehicle respawn system https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/documentation/adding respawning vehicles.txt In my opinion the framework is not for arma beginners. it is complex, extremely detailed and robust in multiplayer, however the cost of that is simplicity and a learning curve
  19. fn_Quiksilver

    Apex Framework

    Fix published for a bug related to plane/CAS service points https://github.com/auQuiksilver/Apex-Framework/commit/074425bfb16411822de0a17ae99db9e308efcb7a That fix will make its way into 1.3.4 , but its easy enough to apply to your copy. Simply replace _this with _v on that line (189) Bug introduced with language translation/stringtable updates
  20. you used "disableRemoteSensors TRUE" and then you used an AI getter command like "knowsAbout" or "targets" or "getattacktarget" or something. the getter only works if remote sensors are enabled. so instead of returning nothing, the getter enabled remote sensors and returned the desired result. @Dedmen might correct me or elaborate more on the issue
  21. fn_Quiksilver

    Apex Framework

    Updated to 1.3.3 Stability & Maintenance - [TWEAKED] All Laser-equipped Ground vehicles and JTACs handheld Laser designator can now designate targets for VLS Cruise Missiles (Naval Artillery). - [TWEAKED] Enemy Anti-Air Battery for improved targeting. - [TWEAKED] Dynamic Simulation system re-factor. - [TWEAKED] Dynamic Weapon Sway module re-factor. - [TWEAKED] Parameter option for Time Acceleration. - [TWEAKED] (Classic) Defend mission HQ flag should behave correctly. - [TWEAKED] Some code cleanup in various files. - [TWEAKED] Squad Radar compass lines will disappear when player is in GPS Jammer area. - [FIXED] Framework was using "worldName" incorrectly in displayed text (presenting "Enoch" instead of "Livonia" as example). - [FIXED] BuildingChanged event was executing twice. - [FIXED] Arma bug related to spawning of Boat racks on Destroyer ship. - [FIXED] Some language translation bugs. - [FIXED] HMG tower could spawn inside AA battery positions. - [FIXED] IDAP side mission should not spawn so close to base. - [FIXED] Incapacitation Respawn Menu showed obsolete player class display name.
  22. fn_Quiksilver

    HandleDamage Event Handler Explained

    EntityCreated can evaluate very frequently, i would not use it unless needed. useful for debug/dev but not sure about further use
  23. fn_Quiksilver

    Apex Framework

    1.3.2 has a critical error with Artillery priority target system, causing AI to stop spawning in all missions. Please see fix here: https://github.com/auQuiksilver/Apex-Framework/commit/1d0d03d46fffd4dcac8f3f971f53f0fe0c0a5b81 Note extra set of [ ] brackets
  24. fn_Quiksilver

    Apex Framework

    the default setting has been changed in 1.3.2 to allow spawning of armed air vehicles. https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/functions/fn_config.sqf#L416
×