Jump to content

aeroson

Member
  • Content Count

    160
  • Joined

  • Last visited

  • Medals

Everything posted by aeroson

  1. Sorry. For now, iam no longer willing to support this (no time, no money). Though i will gladly accept any pull requests on github. Summary / info Can delete everything that is not really needed: dead bodies, dropped items, smokes, chemlights, explosives, times and classes can be specified Beware: if weapons on ground is intentional e.g. fancy weapons stack, it will delete them too. Beware: if dead bodies are intentional it will delete them too. Beware: if destroyed vehicles intentional it will delete them too. Uses allMissionObjects "" to iterate over all objects. Adds objects for deletion only if players are specified distance away from them. If you want something to withstand the clean up, paste this into it's init: this setVariable["persistent",true]; License, legal stuff You are free to use Repetitve Cleanup script as you wish. Though it would be nice of you to put my name into credits (thanks to you who already did) Usage paste into init.sqf [] execVM 'repetitive_cleanup.sqf'; then open repetitive_cleanup.sqf and adjust values in CNFIGURATION section For those struggling with file hierarchy download repetitive_cleanup.sqf Changelog Credits DIS gaming community for testing 1MSOB for original idea Willing to participate ? github.com/aeroson/a3-misc
  2. These scripts don't work anymore. BI recently added getUnitLoadout and setUnitLoadout, use those. 2016-05-12, I wholeheartedly thank and tip my imaginary fedora to the amazing employee who did this for us, BI needs more of your kind. Thank you good sire. If you are using ACE3 you can use ACE_common_fnc_getAllGear and ACE_common_fnc_setAllGear Sorry. Support for this has been discontinued. Though I will gladly accept any pull requests on github. Summary / info I guarantee backwards compatibility. These scripts allows you set/get (load/save)all of the unit's gear, including: uniform, vest, backpack, contents of it, all quiped items, all three weapons with their attachments, currently loaded magazines and number of ammo in magazines. All this while preserving order of items. Useful for saving/loading loadouts. Ideal for revive scripts where you have to set exactly the same loadout to newly created unit. Uses workaround with placeholders to add vest/backpack items, so items stay where you put them. Why should i use it ? Well i was sceptical at first as well, i was like hell i don't need to use 200 lines script if i can just write it with 20 lines. That's basically how i started. After days of testing and debuging i found out that Arma 3 is not perfect. And to make the loadout set/get functions work as expected i had to figure out many workarounds and spend much more time on this than i would expect. In the end it turns out to be this big but it does also works perfectly and exactly how you would expect it to work. If you are interested in the workarounds scroll to the bottom of this post. Also if you decide not to use this, i will most likely come to your thread and tell you all the bugs your loadout saving/loading code has (which you could have avoided by using this), by now i can tell it only by looking at the code. License, legal stuff You are free to use GET/SET Loadout scripts for whatever you wish to, including any kind of contests. Though it would be nice of you to put my name into credits. Usage Just an explanation on how it works. waitUntil { !isNull player }; // Wait for player to initialize // Saves loadout of player into var loadout loadout=[player] call compile preprocessFileLineNumbers 'get_loadout.sqf'; // Sets player's loadout from var loadout 0=[player,loadout] execVM 'set_loadout.sqf'; Here an example of usage within map's init.sqf, it does save loadout upon map's init and then loads it after respawn, you can also save/load loadout at every ammobox. waitUntil { !isNull player }; // Wait for player to initialize // Compile scripts getLoadout = compile preprocessFileLineNumbers 'get_loadout.sqf'; setLoadout = compile preprocessFileLineNumbers 'set_loadout.sqf'; // Lets wait 10 seconds, hopefully all crates will spawn by then sleep 10; // Save default loadout loadout = [player] call getLoadout; // Add save/load loadout actions to all ammo boxes { _x addAction ["<t color='#ff1111'>Save loadout</t>", "get_loadout.sqf"]; _x addAction ["<t color='#00cc00'>Load loadout</t>", "set_loadout.sqf"]; } forEach nearestObjects [getpos player,["ReammoBox","ReammoBox_F"],15000]; // Load saved loadout on respawn player addEventHandler ["Respawn", { [player,loadout] spawn setLoadout; } ]; Another example of map's init.sqf, this one will make you respawn with same gear, you had when you died. waitUntil { !isNull player }; // Wait for player to initialize // Compile scripts getLoadout = compile preprocessFileLineNumbers 'get_loadout.sqf'; setLoadout = compile preprocessFileLineNumbers 'set_loadout.sqf'; // Save loadout every 2 seconds [] spawn { while{true} do { if(alive player) then { loadout = [player,["repetitive"]] call getLoadout; }; sleep 2; }; }; // Load saved loadout on respawn player addEventHandler ["Respawn", { [player,loadout] spawn setLoadout; } ]; A slight edit of previous code, this one will save your magazines ammo count as well. waitUntil { !isNull player }; // Wait for player to initialize // Compile scripts getLoadout = compile preprocessFileLineNumbers 'get_loadout.sqf'; setLoadout = compile preprocessFileLineNumbers 'set_loadout.sqf'; // Save loadout (including ammo count) every 2 seconds [] spawn { while{true} do { if(alive player) then { loadout = [player,["ammo","repetitive"]] call getLoadout; }; sleep 2; }; }; // Load saved loadout (including ammo count) on respawn player addEventHandler ["Respawn", { [player,loadout,["ammo"]] spawn setLoadout; } ]; Parameters You can find this inside each script as well. get_loadout.sqf 0 : target unit 1 : (optional) array of options, default [] : "ammo" will save ammo count of partially emptied magazines "repetitive" intended for repetitive use, will not use selectWeapon, means no visible effect on solder, but will not save magazines of assigned items such as laser designator batteries set_loadout.sqf 0 : target unit 1 : array of strings/arrays containing desired target unit's loadout, obtained from get_loadout.sqf 2 : (optional) array of options, default [] : ["ammo"] will allow loading of partially emptied magazines, otherwise magazines will be full Fixes / Help For those struggling with file hierarchy Notice the description.ext file, you need that if you want respawn. Check out wiki for how-to. community.bistudio.com/wiki/Description.ext If your loadout is loaded but you can not use grenades try this // Load saved loadout on respawn player addEventHandler ["Respawn", { [] spawn { sleep 1; // If it still doest not work add more sleep D: [player,loadout] call setLoadout; }; } ]; You can tinker with profileNamespace for persistent loadouts // Saves var loadout into profileNamespace, which is persistent profileNamespace setVariable ["loadout",loadout]; // Loads loadout from profileNamespace into var loadout loadout=profileNamespace getVariable "loadout"; Loadout manager A simple scroll wheel based loadout manager. Uses profileNamespace so all loadouts are saved permanently into your profile. You can load all previously saved loadouts in VAS (both new and old) Offer loadout is WIP. Requires compiled set/get functions (usually in the mission's init.sqf) getLoadout = compile preprocessFileLineNumbers 'get_loadout.sqf'; setLoadout = compile preprocessFileLineNumbers 'set_loadout.sqf'; http://i.imgur.com/XlDqn8g.png (304 kB) Put this into init line of object you wish to be loadout manager 0 = [this] execVM 'loadout_manager.sqf'; Download download get_loadout.sqf download set_loadout.sqf download loadout_manager.sqf download example mission (not updated) Changelog get_loadout.sqf set_loadout.sqf loadout_manager.sqf Credits eggbeast and his Evolution for extensive testing and feedback Nimrod and sxp2high for code edit and ideas Foxhound for constantly updating this on armaholic Tonic's VAS for ideas SMS for reporting issue and of course everyone who participated anyhow Problems and facts I made _add function that checks cfg attributes and classes to select correct add command, this allowed me use uniformItems, vestItems and backpackItems commands. No need to save magazines and items separately. There is no unitVest, so to add something to vest you have to keep adding small placeholders while {loadUniform _target < 1} do { _target addItem "itemWatch"; }; add stuff to vest here. For backpack there is unitBackpack, but apparently you can not add every item with addItemCargo (such as glasses, can be added into inventory with addItem), so i use the placeholder solution for backpack as well. Yet i still use the command addWeaponCargo because addWeapon will add the weapon into hands. You can retreive currently loaded magazines by using selectWeapon and currentMagazine, just be sure to selectWeapon each muzzle on the primary weapon, to get currently loaded GL as well. (from Tonic's VAS) You can use new command clearAllItemsFromBackpack. (Nimrod) First magazine from config for MXM (maybe some other weapons too) ends with Mag, you can add it, but in magazines player it ends with mag (small case m). Use toLower it if you are doing some string comparison. If you are seeing someone holding and firing invisible weapon. Do selectWeapon, that seems to fix it. Backpackitems do not contain backpacks, you need to use backpackcargo to get backpacks within backpack ( ). But those backpacks are empty, you can't make infinite recursive backpack D: Willing to participate ? github.com/aeroson/a3-loadout
  3. Had this issue: init.sqf was trying to execVM missing script if you do this on client, you see error message and must click continue, same probably happens on server, but you can't click continue -> server didn't finish initialization -> players spawn as seagulls Fixed by: Add -noLogs to server params, this will cause the server to not care about errors (and not show them nor log them). Or fix your missing scripts.
  4. aeroson

    PBO Manager

    Found bug in v.1.4 beta Running on Windows 10 Explorer > Right click XXX.pbo > PBO Manager > Extract to XXX.pbo\ Extracts $PBOPREFIX$ Explorer > Double left click XXX.pbo > In PBO Manager v.1.4 beta window > Right click root node > Extract to XXX.pbo\ Does not extract $PBOPREFIX$ Also any chances of putting the source code onto github.com ?
  5. Here is my story in screenshots: http://imgur.com/a/DYPgF Tried all password I could have used. None worked. Tried chrome and firefox. None worked. Tried deleting cookies. Didn't work. Any ideas ?
  6. There is a working addon on Steam workshop that does something similar: http://steamcommunity.com/sharedfiles/filedetails/?id=289207924&insideModal=0&requirelogin=1 The code that does it:
  7. Thank you for this amazing script, I can see alot of work and testing was put into it. Iam not getting the issue desribed above. However I found and fixed some bugs: Fixed bug where it did not work once you respawned with your old body having backpack in ventral position. Fixed bug? where the addActions on your old body would stay after you respawned. I also put it all into one script that we can use in our missions without the need to update our modpack: https://raw.githubusercontent.com/aeroson/a3-misc/master/FSF_SecVentral.sqf Cheers.
  8. If you are looking for better and updated player markers use this > Soldier Tracker ( Map and GPS Icons / Markers ). Sorry folk, this has been discontinued. Summary / info A script to mark players on map All markers are created locally Designed to be dynamic, small and fast Shows driver/pilot, vehicle name and number of passengers Click vehicle marker to unfold its passengers list Lets BTC mark unconscious players Shows Norrin's revive unconscious units Shows who is in control of UAV unit License, legal stuff You are free to use GET/SET Loadout scripts as you wish. Though it would be nice of you to put my name into credits. Usage In (client's) init do: init.sqf 0 = [] execVM "player_markers.sqf"; no options, default behaviour is used: will show players for your side in multiplayer or you and all ais on your side in singleplayer to change this you can add any of the following options "players" will show players "ais" will show ais "allsides" will show all sides not only the units on player's side this will show all players and all ais, you can add allsides if you want to show all sides 0 = ["players","ais"] execVM 'player_markers.sqf'; once you add any of these default behaviour is not used download player_markers.sqf download example mission Changelog player_markers.sqf
  9. Amazing, easy to use, cleverly designed and made. Easy to customize. Thank you. Recommending change of eos\core\eos_core.sqf in lines 32 to 40. So you can set that if helicopters fly under 100m _heightLimit=100; enemies will spawn, but if over 100m they will not. It also ensures that if players are in building on third floor above 5m from ground the enemies will not despawn. if (_heightLimit!=0) then {_actCond = format["{vehicle _x in thisList && isplayer _x && ((getPosATL _x) select 2) < %1} count playableunits > 0", _heightLimit]; }else {_actCond="{vehicle _x in thisList && isplayer _x} count playableunits > 0"; };}else{ if (_heightLimit!=0) then {_actCond = format["{vehicle _x in thisList && isplayer _x && ((getPosATL _x) select 2) < %1} count allUnits > 0", _heightLimit]; }else {_actCond="{vehicle _x in thisList && isplayer _x} count allUnits > 0";};}; Also patrols (light and armoured) have sometimes one waypoint placed at [0,0] so if you don't kill them, they move there and if it's vehicle it gets stuck in river on the way there.
  10. Sorry. For now, iam no longer willing to support this (no time, no money). Though i will gladly accept any pull requests on github. You can use Bohemia Interactive's groups manager: https://community.bistudio.com/wiki/Dynamic_Groups Summary / info Hold T and use scrollwheel to see squad manager menu You can invite others, request to join, or join squad based on squad options You can also leave squad, kick members or take leadership if you have better score than current squad leader Potential targets is either cursorTrager and/or everyone within 5m range Preview: http://i.imgur.com/wpqLma1.png (486 kB) License, legal stuff You are free to use Group Manager scripts as you wish. Though it would be nice of you to put my name into credits (thanks to you who already did) Usage in (client's) init: 0 = [] execVM 'group_manager.sqf'; Chemlights Port of chemlights from pokertour's =ATM= Air Drop Usage: in (client's) init: 0 = [] execVM 'chemlights.sqf'; or if you want to use chemlights from your inventory do: 0 = [true] execVM 'chemlights.sqf'; download group_manager.sqf download chemlights.sqf Changelog group_manager.sqf chemlights.sqf Credits DIS gaming community for testing Started creating it at the same time as Zuff posed his Group Management Script Uses chemlights by Sc0rc3d and KevsnoTrev Willing to participate ? github.com/aeroson/a3-misc
  11. aeroson

    Group Manager

    @fond: There is no such feature in this group manager script. It must be something else.
  12. I'm thankful for this very useful and handy tool. Arma3:_Startup_Parameters allows "<path>\mission.sqm" (Load a mission directly in the editor...) I'm unable to use it since ArmA3Sync thinks every space means next parameter, despite the path being in wrapped in " " both of these Additional Parameters: "C:\Users\ME\Documents\Arma 3 - Other Profiles\NICK\MPMissions\Test%20Mission.Sara" -"C:\Users\ME\Documents\Arma 3 - Other Profiles\NICK\MPMissions\Test%20Mission.Sara" are turned into: -"C:\Users\ME\Documents\Arma -3 -Other -Profiles\NICK\MPMissions\Test%20Mission.Sara"
  13. The most amazing tool for Arma 3. Thank you.
  14. aeroson

    Dynamic Player Markers

    @Wiggum: No, once this script is executed, it runs forever, unless terminated with terminate or it errors out. @Quorum: Yes you may do something like this: (beware it is untested) if(player in allCurators) then { 0 = ["players","allsides"] execVM 'player_markers.sqf'; // player is zeus } else { 0 = ["players"] execVM 'player_markers.sqf'; // player is not zezs }; @DuM3D0: setUnconscious players are switched to different side i believe. Or if you have BTC revive enabled: BTC revive shows its own marker, that is why dynamic player markers hide its player marker in such case.
  15. @Beerkan: That is true, if you want to add face saving/loading functionality you may encapsulate set/get loadout functions like this. Beware it is untested. setLoadoutAndFace = { _target = _this select 0; _data = _this select 1; _flags = _this select 2; _face = _data select 0; _loadout = _data select 1; _target setFace _face; [_target, _loadout, _flags] call setLoadout; }; getLoadoutAndFace = { _target = _this select 0; _flags = _this select 1; [ face _target, [_target, _flags] call getLoadout ]; }; @Baddazs: That is what the "repetitive" flag is for. "repetitive" intended for repetitive use, will not use selectWeapon, means no visible effect on solder, but will not save magazines of assigned items such as laser designator batteries loadout = [player,["ammo","repetitive"]] call getLoadout;
  16. My apologies folks, it has been a while. I will happily accept any pull requests on git. Expect this to be quite a long post (ordered chronologically). @ Janez: Sorry Janez at the moment iam not willing to spend days debuging, testing and inventing workarounds. @ IndeedPete: Yup i think there is no way (i didn't try any) to get separate attachments and/or loaded magazines in weapons inside backpack/vest/uniform. The only way to save attachements is if the weapon comes with preconfigured classnames. @ PtPau, LKincheloe, Mariodu62, Larrow, 1PARA{God-Father}: You are all very clever guys. The issue is the getLoadout makes unit switch thru all weapons really fast. Yup one solution is to check if you are holding launcher, but that only aplies to launchers. That is why i introducted the "repetitve" option flag. If the flag is used, getLoadout won't cycle thru all weapons, but it also won't be able to save each weapon's loaded magazine + ammo count. // Save loadout (including magazine + ammo count) every 2 seconds [] spawn { while{true} do { if(alive player) then { loadout = [player,["ammo"]] call getLoadout; //<-- THIS LINE }; sleep 2; }; }; So the the line marked //<-- THIS LINE should be changed to: loadout = [player,["ammo","repetitive"]] call getLoadout; //<-- THIS LINE @ DroopyPiles: None uses old VAS nowadays. It has been hereby remove from the loadout manager. You can redownload it now. @ MisterGoodson: You are very right. I didn't use the event handler either because revive scripts replaced / removed them. Or because they were not reliable, e.g. if you get killed in one hit, the hit event handler might not fire. Also in Arma 2 the best way to do this was to use the Killed event handler, but in Arma 3 when unit is killed it drops it's weapon. If you are willing to put your life on the line PM me the (revive script's compatible) changes i should made in the first post D: @ Braae: This sounds like the ideal task for Arma Arsenal by Bohemia, but if you wish to use the set/get loadout functions read on: Run your mission in singleplayer, select your loadout, then in console, save it into variable and then look at the variable and copy it's contents. You can then easily use these loadout contents to load loadout for any unit. select loadout in game execute in console: loadout = [player] call getLoadout watch variable in console: loadout copy contents of loadout into CLIPBOARD paste this into your mission file: unit1 addEventHandle["Respawn", { _loadout = paste loadout from CLIPBOARD [_this select 0, _loadout ] call setLoadout; }]; repeat for all units you want @ Kilo1: First of all the takeovers are not maintained, specifically BTC takeover is for BTC version 0.92 and lastest BTC version is 0.98. The takovers also only replace the loadout handling functions. From the scripts you posted iam unsure of how you are executing the init_player.sqf
  17. Updated / Fixed set_loadout.sqf v4.3 - Added: now using addItemTo commands - Fixed: assigned binocular/laser designator is now properly added @goldenfiver: Thank you, fixed. @Pergor: These functions accept unit as target parameter, not a group. If you want to do something with each unit (memeber) of player's group you can do it like this: (not tested and most likely not working, but you get the idea) // Save loadout of all units in player's group units_reference=[]; units_loadout=[]; { units_reference set [_forEachIndex, _x]; units_loadout set [_forEachIndex, [_x] call getLoadout]; } forEach units group player // Load previously saved loadout of all units in player's group private["_i"]; { _i = units_reference find _x; [units_reference select _i, units_loadout select _i] spawn setLoadout; } forEach units group player
  18. Updated / Fixed get_loadout.sqf v3.4 - Added: "repetitve" option flag, will not use selectWeapon, means no visible effect on solder, but will not save magazines of assigned items such as laser designator batteries - Added: weapons magazines are now saved using the new magazinesAmmoFull command set_loadout.sqf v4.2 - Fixed: Goggles and headgear are now removed before adding assigned items @Phoenix_ZA: Thank you, goggles and headgear are now removed when setting loadout. Though i found no problems involving NV goggles. @TinyPirate, @goldenfiver, @PenguinInATuxedo: All this flickering/ir laser turning off was caused by quick selectWeapon in order to get current magazine and ammo count of weapons and assigned items. The script is now using magazinesAmmoFull, unfortunately magazinesAmmoFull does not return magazines from laser designator, so we still have to use selectWeapon for assigned items. That's why i've added the "repetitive" options flag, use it and you wont't notice any kind of flickering/animation interrupting, though the drawback is magazines of assigned items won't be saved. @TinyPirate: I believe VAS has a Load on respawn feature. But you are right, VAS might reload the loadout and Xmed might be replacing it with it's own loadout right after it. Anyway, you should be able to delay the VAS loadout loading or mine setLoadout a bit. // Load saved loadout on respawn player addEventHandler ["Respawn", { sleep 2; // All other scripts might set loadout in this time, thus making the following setLoadout final [player,loadout] spawn setLoadout; } ];
  19. @KingoftheSandbox: I didn't test it with ai, but my guess is it will work. The ai needs to be local on the computer that is setting its loadout.
  20. aeroson

    Dynamic Player Markers

    To change side colors you would need to change _getMarkerColor function, currently its using BIS colors. You can change into something like this (["ColorGreen","ColorRed"] select ([EAST,WEST] find (side _this)));
  21. aeroson

    Dynamic Player Markers

    To change your's marker color look for if(_vehicle == vehicle player) then { and add under it _marker setMarkerColorLocal COLOR; Where COLOR is one of these http://community.bistudio.com/wiki/setMarkerColorLocal
  22. aeroson

    Dynamic Player Markers

    @HaveANiceDay: I have no idea, it might have something to do with UI scale. Or BIS changed the font in one of the updates.
  23. My apologies for not answering sooner. @madbull: Ive tested those, they dont exactly work corectly. @Fusion13: That is a pspad, if you are looking for a new text editor go for sublime @tgb: That is a very common bug. It happens only on certain soldier classes though.
  24. aeroson

    Repetitive Cleanup

    Yup fixed that as well, repaired vehicles == mobile vehicles Yup for vehicles and bodies, we have inbuilt vehicles, allDead and allDeadMen variables. No need to use nearestObjects command for that.
×