Jump to content

Rawshark

Member
  • Content Count

    78
  • Joined

  • Last visited

  • Medals

Posts posted by Rawshark


  1. Is anyone aware of how one disables the loot dropped by the AI or at least blacklists the default ravage items found on a corpse (eg: tin can, documents, notepad) stuff. Can it be done via the ravage modules or would i need to create like a loot blacklist system?

    Thanks in advance!


  2. I have setup a Mobile HQ where a trigger spawned vehicle can be interacted with via addAction and be set as an infantry spawn point. However, doing so seems to create a respawn marker on the map: Example . Is there any way to remove this from the map or make it invisible?

    For context, I am calling in a BIS_fnc_addRespawnPosition via a script from an addAction that looks like this:

    params ["_target", "_caller", "_id", "_args"];
    [ side _caller, _target, "MHQ" ] call BIS_fnc_addRespawnPosition;
    [(_this select 0) removeaction (_this select 2)];

    I don't have a clue as to how to proceed from here in hiding that respawn marker. Any help would be amazing, ty!!!


  3. Heya, this is an awesome script! I do want to check though that the features say

    Quote

    Custom CBRN damage, works with ACE and vanilla medical

     

    but you also point out that ACE is needed for medical pain integration. I take it that this means the script wont work if I run ACE without the medical module? Just a very quick test showed that some functionality is lost (checking exposure) with the loss of the medical menu but I thought I would check with you anyway. Thanks again!

     


  4. Hey all,

    I found this bit of code from the forums pulled from the Eastwinds campaign used to make a designated street lamp flicker. The scrip works as intended for a single street lamp as defined by the script but I am having a heck of a time trying to adapt the code to have the same effect on multiple street lights.
     

    // Script Adapted from BIS 'EAST WIND' Campaign 
    
    // Define
    
    #define ON       0
    #define OFF     0.97
    #define LIGHT    "light_1_hitpoint"
    #define DUMMY    "BIS_effectDummy"
    #define DESTROYED "BIS_lightDestroyed"
    #define SAMPLE  "electricity_loop"
    #define HELIPAD  "Land_HelipadEmpty_F"
    // Parameters
    private ["_position", "_type", "_timing", "_delay", "_condition"];
    _position = [nearestObject getMarkerPos "Lamp_A"] call BIS_fnc_param;
    _type  = [_this, 1, "Land_LampShabby_F", [""]] call BIS_fnc_param;
    _timing  = [_this, 2, [0.25, 0.50], [[]]] call BIS_fnc_param;
    _delay  = [_this, 3, [1, 2], [[]]] call BIS_fnc_param;
    _condition = [_this, 4, { true }, [{}]] call BIS_fnc_param;
    // Find Related Objects
    private "_object";
    _object = nearestObject [_position, _type];
    // Make Sure Object Found
    if (isNull _object) exitWith {
    ["Object at position (%1), of type (%2) not found", _position, _type] call BIS_fnc_error;
    };
    // Light Starts Off
    _object setHit [LIGHT, OFF];
    //Hit Event Handler
    _object addEventhandler ["Hit", { (_this select 0) setvariable [DESTROYED, true]; }];
    // Effect
    private "_setState";
    _setState = {
    private ["_object", "_on"];
    _object = [_this, 0, objNull, [objNull]] call BIS_fnc_param;
    _on  = [_this, 1, true, [true]] call BIS_fnc_param;
    
    // The Dummy Object
    private "_dummy";
    _dummy = objNull;
    
    // Has the Dummy Object Been Created?
    
    if (isNil { _object getVariable DUMMY }) then {
    
    // Create Dummy Object
    private "_dummy";
    _dummy = createVehicle [HELIPAD, position _object, [], 0, "CAN_COLLIDE"];
    
    // Attach to Light Object
    _dummy attachTo [_object, [0,0,2]];
    
    // Store
    _object setVariable [DUMMY, _dummy];
    } else {
    _dummy = _object getVariable DUMMY;
    };
    
    // Effect On Or Off
    if (_on) then {
    // Play Effect
    _dummy setDamage 0;
    _dummy say3D SAMPLE;
    _object setHit [LIGHT, ON];
    } else {
    // Destroy Effect
    _dummy setDamage 1;
    _object setHit [LIGHT, OFF];
    };
    };
    // Flag
    private "_lightOn";
    _lightOn = false;
    // Main Loop
    while _condition do {
    // Exit If Destroyed
    if (!isNil { _object getvariable DESTROYED }) exitWith {
    // Light Off
    _object setHit [LIGHT, OFF];
    
    // Log
    ["Light object (%1) was destroyed", _object] call BIS_fnc_log;
    };
    
    // Blinking Loop
    for "_i" from 0 to 5 do {
    // Set State
    if (_lightOn) then {
    [_object, false] call _setState;
    _lightOn = false;
    } else {
    [_object, true] call _setState;
    _lightOn = true;
    };
    
    // Timing
    sleep (_timing call BIS_fnc_randomNum);
    };
    
    // Sleep
    sleep (_delay call BIS_fnc_randomNum);
    };
    // Does It Exist?
    if (!isNil { _object getVariable DUMMY }) then {
    // The Dummy
    private "_dummy";
    _dummy = _object getVariable DUMMY;
    
    // Detach And Delete
    
    detach _dummy;
    deleteVehicle _dummy;
    };
    // Return
    
    true;

    The way the script is written, it seems the lamp needs to be defined via a marker. In order to effect multiple lamps I tried defining multiple markers via an array _lamps = [Lamp_A, Lamp_B, Lamp_C] and tried calling the position via the array but that doesn't seem to work. The only way ive gotten it to work is to run multiple versions of the script, each defining a different marker but that is terribly inefficient and is probably not great on the network load.
    Anyone have any ideas how this script could be tidied up to effect multiple lamps?


  5. Hey Pierre,

    Thanks for the reply! Does the following look about right? I didnt get any errors when in the editor but haven't as of yet tested it in MP.

    findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw",{
        {
    		if (_x getVariable ["ACE_unconcious",false]) then {
    		_this select 0 drawIcon ['\A3\ui_f\data\igui\cfg\actions\heal_ca.paa',[1,0,0,1],position _x,24,24,0,name _x,1,0.03,'TahomaB','right']
            };
            false
        } count allPlayers
    }];

    Also if I may ask, for a dedicated server would this be better off in an init.sqf or initPlayerLocal.sqf?
    Thanks again for the help!


  6.  I was wondering if it was possible to create a script where, once a player goes down, their unconscious position could be marked on the map for all playable units to see. Scouring the internet I found a script where the positions would be revealed to the medics on the map

    findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw",{
        if ([player] call ace_medical_fnc_isMedic) then {
            {
                if (_x getVariable ["ACE_unconcious",false]) then {
                    _this select 0 drawIcon ['\A3\ui_f\data\igui\cfg\actions\heal_ca.paa',[1,0,0,1],position _x,24,24,0,name _x,1,0.03,'TahomaB','right']
                };
                false
            } count allPlayers
        };
    }]

    So, to make modify it a bit further would it be possible to edit it like so to make the positions be visible to all playable units?
     

    findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw",{
        if (player) then {
            {
                if (_x getVariable ["ACE_unconcious",false]) then {
                    _this select 0 drawIcon ['\A3\ui_f\data\igui\cfg\actions\heal_ca.paa',[1,0,0,1],position _x,24,24,0,name _x,1,0.03,'TahomaB','right']
                };
                false
            } count allPlayers
        };
    }]

  7. I've recently setup a dedicated server and installed Ace on to the mission. Problem is even logged on as admin I cannot seem to make the server override the client settings. So I figured the next option is to force the override via the cba_setting.sqf but I don't exactly know what to put in that file. I took a look in CBA setting github page, do I just enter 'On Server 2 Force: Server > All' into the sqf?


  8. @wogz187
    Hey thanks for the link, having taken a look at GOM's post I am not entirely sure how I can best adapt it for my needs. From GOM's post:

    Quote

    Something like this will lock all building doors, add a lock/unlock option to every door and also has a check for the owner of the building, so players can only open doors on buildings they own:

     

    Unless I am misunderstanding something (again, I am not very good at this) but it looks like the script is:


    a) checking if a player is the owner of the building


    b) adds the "unlock door" option to the scroll menu if the player is the owner of the building -else- it fires the systemchat with "This door is locked!";

    If that's correct, then, so far so good! However,  I am not building a big mission, I am just trying to keep access to a single building restricted until a player interacts with it after collecting a key. In which case, how exactly do I adapt GOM's script to reflect that via this "ownership" method? Would something like this work:

    mission initialises with target building locked -> player picks up the key (eg: a notebook) -> this sets the player as the owner of the building?

    GOM mentions:

    Quote

    Now to initialize a building and owner to this system simply do this during mission runtime or wherever you seem fit:

    _building = cursorObject;
    _owner = player;
    
    //this sets the player as owner and locks all doors and adds all respective actions
    _init = [_building,_owner] call GOM_fnc_initBuildingDoors;


    As someone struggling with scripting...how do you run this script mid-mission? Can't this be done via triggers? I am a bit puzzled still, sorry!

    • Like 1

  9. Hi all,

    So I have a building (a military cargo house) in my MP mission that I have locked by putting the following into the init field: 

    building1 setVariable ['bis_disabled_Door_1',1,true] 


    I also have a "key" that will unlock the door to said building with:
     

    key addAction ["Pickup Key", {deleteVehicle key; building1 setVariable ['bis_disabled_Door_1',0,true];}]; 

     Everything works fine, however, I worry that the animation of a locked door alone might not be enough to inform any players without the key...that they should be looking for said key. In essence, I want to add a hint/system chat to appear whenever a player without the key takes the "Open door" addAction:

    hint "The door is locked. A key is required!";

    The problem is, I don't know how to add that hint into the setup I currently have. Simply adding the hint into the init field of the building causes the hint to fire when the mission launches (which is not ideal) and I am not well versed in scripting to be able to figure this one out by myself. So if anyone can help me work out this problem -or- suggest an alternative method where I can lock and unlock a building door with the suggested hint integrated within, I would be so so grateful.
    Thanks again! 


  10. In the mission that I am building I am trying to create a small squad of super-soldiers to go up against my players. I have done a mission like this before in vanilla by just adding 

    this addEventHandler ["HandleDamage",{damage (_this select 0)+((_this select 2)/15)}];

    into the init fields of the units in question and it has worked well enough in the past with the AI taking a lot more damage than normal before going down. This time around though I am using ACE and the above script just doesn't seem to work at all. I am fairly sure this might be down to how ACE handles damages but I am not versed enough in scripting to know how to modify (or even re-write) the script so it will play nicely with ACE. I am also aware that in the ACE medical setting I can tinker around with how much damage players and AI can take before going unconscious but that seems to apply a global effect when I only want to apply this to a selection of units. 

    Anyone have any ideas or experience trying to do something similar with ACE?


  11. 1 minute ago, Mr H. said:

    Be careful I'd made a mistake in the code and edited it, make  sure you use the latest if you've copied it before posting

     

     Cheers, I'll try the updated one in the editor now. One last thing, if I may, I assume that this would all be identical if it was a music track instead..only changing cfgsound to cfgmusic and in the trigger changing playSound with playMusic. Just wanted to check there wasn't any extra steps with the latter.

    Thanks again for the help! 👍


  12. Thanks for the reply. So if the trigger is set to activation type 'BLUFOR present' with the init: 

    playSound "ambient1"

    That should mean that player(s) within the trigger hear the sound, and not everyone on the server? 

    Also, if I wanted to loop a 90second soundclip, do I just modify the init as
     

    playSound "ambient1", sleep 90;

     


  13. So basically I am trying to setup a trigger based sound loop for an upcoming multiplayer mission. I have converted my audio file from mp3 to .ogg and have placed it in a 'sounds' folder within the Arma 3 mission folder. I have also setup the 'description.ext' file with the following script:

    class CfgSounds 
    {
    	sounds[] = {}; 
    	class ambient1 
    	{
    		name = "ambient1"; 
    		sound[] = {"\sounds\ambient1.ogg", 15, 1}; 
    		titles[] = {};
    	};
    };

     

    Within the trigger, which is set to trigger on the presence of BLUFOR in the trigger area I have the following in the init field:

    nul = [thisTrigger] spawn {while {true} do {(_this select 0) say3D "spooky1"; sleep 150;};};

    As far as I can tell, this does seem to get the job done when testing in the editor..but I have a few issues.

     

    1) I don't know if this only executes locally and so would go unnoticed by other players? Would it be better to initialise the trigger as:

     

    [thisTrigger, ["ambient1", 15, 1]] remoteExec ["say3d", 0, true];

     

    to get everyone else to hear the sound as well?

     

    and 2) When testing the sound, it seems to originate from the centre of the trigger as opposed to uniformly within the area of the trigger, as in, the sound gets louder when you approach where the centre of the trigger zone would be and fades away as you proceed further away from it. In my particular case though I want the sound to be at a consistent level throughout the trigger area and cant seem to tweak that in the coding. Does anyone have any advice on the matter?

     

    Edit: I should add I am running ACE and don't know if that is/would effect anything.

×