Jump to content

fn_Quiksilver

Member
  • Content Count

    2697
  • Joined

  • Last visited

  • Medals

Everything posted by fn_Quiksilver

  1. fn_Quiksilver

    Make all DLC Maps Free

    The issue is, I will never play Livonia with more than 20 people on a public server, because not enough people own Livonia for a public server to retain a steady server pop of 20+. So despite owning this nice DLC map, I'll never really get to enjoy it aside from singleplayer or maybe 2-4 player coop. Ditto to Weferlingen and creator DLC terrains. They will never hold a steady server pop, basically private match only. Who would even work on singleplayer content for terrains that nobody owns? If you spend 500 hours creating nice missions for a terrain, which will you choose if you actually want people to play it and get feedback from it? Altis, or Livonia? For creators, there is close to zero incentive to work on content for DLC terrains, unless your content is procedural and can be deployed on any terrain. Even then, the time/effort spent porting from Altis to Livonia is largely wasted time since nobody will bother to play it. Only DLC terrain that has enough customers to fill a server, is Tanoa. Even then, its only 3-4 servers worldwide. For these reasons, I support DLC terrains being free access, even if I paid and others did not. I paid for Livonia and don't really get to enjoy it beyond the campaign. Allow for a 6-12 month commercial period for the DLC terrain, then unlock it.
  2. fn_Quiksilver

    Mission Idea - need help. RTS mission making

    Sounds huge. 1500 hour project for someone who knows what they're doing, to create all from scratch.
  3. fn_Quiksilver

    Apex Framework

    Hey, glad you enjoy. Which mods are you trying to install?
  4. fn_Quiksilver

    Apex Framework

    PM me a copy of your servers RPT file Also easier to get in touch on our Discord, linked in the original post.
  5. fn_Quiksilver

    Apex Framework

    Updated to 1.1.9 Removed real_date.dll extension dependency, AI tweaks, bug fixes - [ADDED] New script commands (systemTime, getAttackTarget, etc). - [TWEAKED] Vehicle Active Protection System to improve player-vehicle protection from enemy AI-fired projectiles. - [TWEAKED] AI awareness of hostile (player occupied) buildings. - [TWEAKED] Added civilian Tractor to easter eggs - [TWEAKED] Enemy MG towers no longer spawn on roads, probably. - [TWEAKED] Server security to A3 2.00 compatibility. - [FIXED] Friendly AI vehicles could spawn at some enemy objectives. - [FIXED] Custom terrain structures will no longer delete at the start of Defend missions/end of AO when players are nearby. - [REMOVED] real_date.dll extension dependency Server admins no longer need to use the real_date.dll extension to have built-in mission restart functionality. In addition, some AI improvements and general bug fixes. Next update will introduce player sandbag deployment, AI brain improvements, and some mission content. ETA 4 weeks.
  6. fn_Quiksilver

    Scheduling and Compiling

    as a general rule for optimization, call/execute/evaluate code as infrequently as possible while still accomplishing the task. very few things need to be executed each frame, examples being visual things like GUI. Things that aren't seen by the player dont need to be updated very frequently
  7. fn_Quiksilver

    Apex Framework

    Mission update in the pipeline. Main change is removing dependency of the real_date.dll extension
  8. fn_Quiksilver

    Group Management Script

    there is a group management system in vanilla since then https://community.bistudio.com/wiki/Arma_3_Dynamic_Groups
  9. fn_Quiksilver

    General Discussion (dev branch)

    impressed with the script commands coming, thats a lot!
  10. Finding flat spots in forests is tricky, since most of the built in SQF commands like isFlatEmpty will fail due to the object/tree density. Those won't really help him. A function like getTerrainHeightASL is more useful for solving this problem. You'll need to test different positions for flatness (within a radius). A way to do that is to get a reference position (random position), then get 6-12 radial positions around it in all directions. Then calculate the angle of the Z-axis (height) delta of each of those positions from the reference position. If some of those radial positions Z-axis are much different from the Z of the reference position, then a slope exists at that site. Iterate over the random pos code until you've found a position where the Z axis is consistent. here is how I attempted it: https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/functions/fn_areaGradient.sqf https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/functions/fn_terrainGradAngle.sqf And in practice, I used it to find a Forested + Flat position with a block like this: https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/functions/fn_SMregenerator.sqf#L21-L41 _bestPlaces = '(1 + forest) * (1 - houses)'; private _nearestTerrainObjects = []; _basePosition = markerPos 'QS_marker_base_marker'; _baseRadius = 1500; _fobPosition = markerPos 'QS_marker_module_fob'; _fobRadius = 300; _posGradient = 0; for '_x' from 0 to 99 step 1 do { _spawnPosition = ['WORLD',-1,-1,'LAND',[1.5,0,0.1,3,0,FALSE,objNull],TRUE,[[0,0,0],300,_bestPlaces,15,3],[],FALSE] call (missionNamespace getVariable 'QS_fnc_findRandomPos'); _posGradient = [_spawnPosition,12] call (missionNamespace getVariable 'QS_fnc_areaGradient'); if ( ((_usedPositions inAreaArray [_spawnPosition,500,500,0,FALSE]) isEqualTo []) && ((_allPlayers inAreaArray [_spawnPosition,500,500,0,FALSE]) isEqualTo []) && (!([_spawnPosition,150,8] call (missionNamespace getVariable 'QS_fnc_waterInRadius'))) && ((_spawnPosition distance2D _basePosition) > _baseRadius) && ((_spawnPosition distance2D _fobPosition) > _fobRadius) && ((_spawnPosition distance2D (missionNamespace getVariable 'QS_aoPos')) > 1000) && ((_posGradient < 5) && (_posGradient > -5)) && (((_spawnPosition select [0,2]) nearRoads 100) isEqualTo []) ) exitWith {}; };
  11. fn_Quiksilver

    Apex Framework

    https://community.bistudio.com/wiki/Arma_3_Dynamic_Groups The mission uses the vanilla Dynamic Groups system. I don't believe it's possible to configure a maximum group size, although I could be wrong.
  12. Hi guys, Stumped on how to return day of week from date? On the map diary tabs there is a day of the week listed, according to the date. Any idea how to return this in script? Will post the solution here once found. Thanks!
  13. fn_Quiksilver

    Apex Framework

    looking into it now. around base the vehicle respawn distance is quite small for all vehicles. away from base, it depends on the type of vehicle. for instance a helicopter, will search for nearby pilots. If there aren't any pilots within the radius, the helo will despawn (even if there are non-pilots nearby). for land vehicles it is more simple, checking for any players nearby. this helicopter detail is to prevent situations where helis are abandoned in the field but dont respawn due to infantry players being nearby. in some cases--where lots of helis go down in the combat area--this will ensure that there are helicopters available at base.
  14. fn_Quiksilver

    Apex Framework

    Is this related to side mission reward vehicles, or all vehicles? If just the reward vehicles, then its a known issue
  15. fn_Quiksilver

    Make agent attack players

    if its an agent you need to script it with move + animation commands
  16. fn_Quiksilver

    Band of brothers Missions

    i would appreciate fewer required mods. some of those are "nice to have" but not essentials
  17. fn_Quiksilver

    Band of brothers Missions

    thank you ! 🙂
  18. fn_Quiksilver

    Apex Framework

    it is a good place I use fn_clientEventRespawn.sqf to reset many variables but Killed event works too
  19. fn_Quiksilver

    cfgRemoteExec and its use.

    - CfgRemoteExec handles only "from client" executions. - Best bet is to whitelist only non-destructive commands, the ones that aren't normally used in cheat scripts. Or better yet, dont whitelist any. https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/description.ext#L178-L208 - Instead, create your own script function with which you have more control over the execution, like logging and context-based sanity checks. https://github.com/auQuiksilver/Apex-Framework/blob/master/Apex_framework.terrain/code/functions/fn_remoteExecCmd.sqf Heres an example of filtered vs unfiltered // Unfiltered [_vehicle,1] remoteExec ['setVehicleAmmo',_vehicle]; // Remote Exec script function QS_fnc_remoteExecCmd = { params ['_type','_1','_2']; if (_type isEqualTo 'setVehicleAmmo') exitWith { if (player is in the vehicle service area) then { _1 setVehicleAmmo _2; }; }; }; // Filtered with sanity checks (in the above function) ['setVehicleAmmo',_vehicle,1] remoteExec ['QS_fnc_remoteExecCmd',_vehicle]; If a cheater wanted to remote-exec "setvehicleammo" then, they would have to use the script function, which would only allow the setvehicleammo if the player is in the service/rearm area. If you're looking at security improvements, dont overlook this one: https://community.bistudio.com/wiki/Arma_3_CfgDisabledCommands
  20. fn_Quiksilver

    Apex Framework

    VCOM will interfere with the built in AI, its highly recommended not to use. Is there any feature in particular that you want VCOM for? If you insist on using it, it should be as simple as plugging it in as a server mod, however you will likely experience adverse results with AI navigation due to conflict with built in logic.
  21. keep in mind this script will itself affect performance, especially with higher number of players. [] spawn { while {true} do { player setVariable ["DNI_PlayerFPS", floor diag_fps, true]; sleep 0.1; }; }; this block here will add quite a lot of network traffic with many connected clients.
  22. fn_Quiksilver

    Troubles with publicVariable..

    I find using the remoteExec framework and discarding the publicvariable/addpublicvariableeventhandler/publicvariableserver/publicvariableclient system entirely, to be the simplest. for example private _counter = 0; while {true} do { sleep 10; systemChat "Update"; _counter = _counter + 1; // remoteExec instead of publicVariable [ Counter, { if (hasInterface) then { hint str _this; }; } ] remoteExec ['call',0]; };
  23. fn_Quiksilver

    Creating a QRF

    you can simplify this by simply moving them into the vehicle instead of relying on the getin waypoint. i guess it depends on whether players would be able to see the vehicle at its starting point. next, create a separate group for the vehicle driver, and give him a "transport unload" waypoint next, add a move waypoint to the QRF group. discard the "Getout" waypoint, as they will disembark via the "transport unload" waypoint.
  24. fn_Quiksilver

    Ladder Use Prevention

    Use the "AnimChanged" object event handler to detect the ladder anim, then execute the "ladderOff" action <unit> addEventHandler [ "AnimChanged", { params ['_unit','_anim']; if (_anim in [ladder animations]) then { _unit action ["ladderOff",<building object>]; }; } ];
  25. fn_Quiksilver

    Apex Framework

    Hi, thank you! No plans at the moment for Headless Client. There was past work done to facilitate HC but it is a complex task which I don't have the time to tackle these days. It may come back into focus in the future, but not in the near future.
×