Jump to content

Rosso777

Member
  • Content Count

    130
  • Joined

  • Last visited

  • Medals

Posts posted by Rosso777


  1. 2 hours ago, beno_83au said:

    You haven't looped your script before the condition, so it'll run once when executed and that's it. But, even if it runs when the player is in the vehicle it'll loop the enableChannel command every frame, forever (while {true} do will never return false). You're better off using a GetInMan event handler though:

     

    https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#GetInMan

     

    Then just run the enableChannel command and wait until the player isn't in the vehicle and disable it again. 

     

    Interesting. Is this possible with persistent vehicles also?


  2. Goal: To ONLY activate the SIDE channel when a player is inside a comms truck (specifically THIS vehicle: "B_GEN_Offroad_01_comms_F"). If they're not inside the vehicle, only the DIRECT channel is active.

     

    Attempt:

    In the mission file's init.sqf, I have the following:

     

     [] spawn
        {
        if (typeOf vehicle player == "B_GEN_Offroad_01_comms_F") then 
            {
            while {true} do
                {
                1 enableChannel true;
                };
            sleep 2;
            };
        };

     

    But no matter how I reconfigure this, I cannot seem to get it to work, even though it seems so simple. Any insight is greatly appreciated!


  3. 1 hour ago, EO said:

    I found Al Rayak a troublesome config to overwrite successfully for my version of Sullen Skies.

    Assuming everything else in your mod folder structure is correct, I'd suggest adding all the CfgPatches information from the main Al Rayak map config...

      Reveal hidden contents
    
    
    class CfgPatches
    {
    	class Arma_Tide_Manager
    	{
    		units[]=
    		{
    			"pja310"
    		};
    		weapons[]={};
    		requiredVersion=0.1;
    		requiredAddons[]=
    		{
    			"CUP_Worlds",
    			"CAData",
    			"CABuildings",
    			"CAMisc",
    			"CABuildings2",
    			"CARoads2",
    			"CARocks2",
    			"CAStructures",
    			"A3_Data_F",
    			"A3_Roads_F",
    			"A3_Map_Stratis",
    			"A3_Structures_F",
    			"A3_Map_Data",
    			"A3_Map_Altis",
    			"A3Data",
    			"A3_Rocks_F",
    			"CUP_CABuildings_Misc",
    			"CAStructures_Wall",
    			"CAStructuresHouse_A_Office02",
    			"CUP_Buildings_Config",
    			"A3_Structures_F_Households_House_Small03",
    			"CAStructuresHouse_HouseV2",
    			"CAStructuresHouse_Shed_Ind",
    			"CAStructures_Nav_pier",
    			"CAStructures_E_HouseC",
    			"A3_Structures_F_Households_Slum",
    			"A3_Structures_F_Households_House_Big01",
    			"A3_Structures_F_Households_House_Small02",
    			"A3_Structures_F_Households_Addons",
    			"A3_Structures_F_Households_House_Shop02",
    			"A3_Structures_F_Households_House_Shop01",
    			"A3_Structures_F_Households_House_Big02",
    			"CAStructures_E_Ind_Oil_Mine",
    			"A3_Structures_F_Households_House_Small01",
    			"A3_Structures_F_Households_WIP",
    			"CAMisc2",
    			"CAStructuresHouse_A_Office01",
    			"CAStructuresBarn_W",
    			"CAMisc3",
    			"A3_Structures_F_Civ_Chapels",
    			"CAStructures_Ruins",
    			"CAStructuresLand_Nav_Boathouse",
    			"CABuildings2_Misc_Cargo",
    			"CAStructures_Mil",
    			"CUP_CAStructures_Misc",
    			"CAStructuresHouse_Church_05R",
    			"CARoads2Bridge",
    			"CAStructuresHouse_HouseV",
    			"CUP_A2_EditorObjects",
    			"CUP_CAStructures_Misc_Armory",
    			"CUP_CA_Plants2",
    			"A3_Structures_F_Mil_Radar",
    			"A3_Structures_F_Walls",
    			"A3_Structures_F_Dominants_Castle",
    			"CAStructuresHouse_a_stationhouse",
    			"CAStructuresHouse_A_Hospital",
    			"CAStructures_Nav",
    			"A3_Structures_F_Ind_Shed",
    			"CAStructuresInd_Quarry",
    			"CAStructures_A_BuildingWIP",
    			"CAStructures_A_CraneCon",
    			"A3_Structures_F_Mil_Barracks",
    			"A3_Structures_F_Civ_BellTowers",
    			"A3_Structures_F_Mil_Bunker",
    			"A3_Structures_F_Civ_Garbage",
    			"CUP_CA_Data",
    			"CAHouseBlock_A",
    			"A3_Structures_F_Dominants_Hospital",
    			"A3_Structures_F_Ind_ReservoirTank",
    			"A3_Structures_F_Civ_Offices",
    			"CAStructuresHouse_HouseBT",
    			"A3_Structures_F_Wrecks",
    			"CAStructures_E_HouseK",
    			"CAStructures_E_HouseA_A_Villa",
    			"A3_Structures_F_Households_Stone_Shed",
    			"A3_Structures_F_Ind_AirPort",
    			"CAStructures_E_HouseA_A_Office01",
    			"CAStructures_E_Misc_Misc_Market",
    			"CAStructures_E_Misc_Misc_Interier",
    			"CAStructures_E_HouseA_A_Minaret",
    			"A3_Structures_F_Ind_FuelStation",
    			"A3_Structures_F_Mil_Cargo",
    			"A3_Structures_F_Households_Stone_Small",
    			"A3_Structures_F_Households_Stone_Big",
    			"A3_Structures_F_Civ_Dead",
    			"CAStructures_Castle",
    			"A3_Structures_F_Civ_Constructions",
    			"A3_Structures_F_Items_Vessels",
    			"A3_Structures_F_Mil_Flags",
    			"A3_Structures_F_Bridges",
    			"A3_Structures_F_Civ_Market",
    			"CUP_Structures_Config",
    			"CAStructuresHouse_Church_02",
    			"A3_Structures_F_Civ_Ancient",
    			"A3_Structures_F_Civ_Camping",
    			"A3_Structures_F_Civ_SportsGrounds",
    			"A3_Structures_F_Dominants_Lighthouse",
    			"A3_Structures_F_Dominants_Church",
    			"A3_Structures_F_Research",
    			"A3_Structures_F_Ind_DieselPowerPlant",
    			"A3_Structures_F_Mil_Offices"
    		};
    	};
    };

     

    ...by adding this to CfgPatches, I managed to successfully overwrite the main config for Al Rayak, it might work for you. 

    Good luck. :rthumb:  


    Are you running Sullen Skies from the server addons folder or only client side?


  4. UPDATE 2: The code above works perfectly. The only reason it does not work for my situation is that it causes each player to spawn at one of their "personal" locations every time they join the server (instead of only when they die/respawn).

     

    Is there a way to make this script work only after a player actually dies/respawns?


  5. Hello all, I am trying to flood my current map (Al Rayak) on a dedicated server and I cannot seem to crack the code. I have tried using Arma Tides Manager but I get no effect. Not sure if I have the map classname incorrect or what, so I am at a loss. In the aforementioned addon, it seems like all that's inside the pbo is a config file that reads:

     

    class CfgPatches
    {
        class Arma_Tide_Manager
        {
            units[] = {"pja310"};
            weapons[] = {};
            requiredVersion = 0.1;
            requiredAddons[] = {"pja310"};
        };
    };

    class CfgWorlds
    {
        class CAWorld;
        class pja310: CAWorld
        {
            class Sea
            {
                MaxTide = 50;
            };
        };
    };

     

    *Note: pja310 is the name of the mission file pbo. 

     

    Has anyone successfully flooded a map and can see what is off here?


  6. In my initServer.sqf file (mission folder), I have a collection of simple objects:

     

    private _vehicles = [
    ["Land_Hotel", [1281.08, 1067.3, 22.8993], [-0.99999, -0.00458476, 0], [0, 0, 1], false],
    ["Land_Hotel", [1281.29, 1025.94, 22.9204], [-0.999989, -0.00458476, 0.00109177], [0.00109178, 0, 0.999999], false],
    ["Land_Hotel", [1280.66, 1150.06, 22.9], [-0.999989, -0.00458476, -0.00109182], [-0.00109183, 0, 0.999999], false]

    (this is just a tiny sample)

     

    I am wondering if there is a way to run a second file similar to this format but from the actual server? For instance, I run most of my .sqfs from the server with:
    [] execVM "\server\scripts\boathouse.sqf"; (listed in the initServer.sqf)

     

    I would like to move this massive file (5 MB) to the server so it's not continuously downloaded with the mission file. Is this possible?
     

    [SOLVED]:

    I created a folder in my server's root directory called server, then created a subdirectory named scripts. Inside that folder is a file named island.sqf:

    Spoiler


    ExileRouletteChairs = [];
    ExileRouletteChairPositions = [];

    // 17,581 Vehicles
    private _vehicles = [
    ["t_Ficus_small_F", [568.887, 1097.81, 20.099], [0.151047, 0.988527, 0], [0, 0, 1], false],
    ["t_Ficus_small_F", [608.895, 1063.99, 20.1387], [-0.943487, 0.331409, 0], [0, 0, 1], false],
    ["t_Agathis_wide_F", [1276.65, 1024.78, 21.969], [-0.924289, -0.381694, 0], [0, 0, 1], false],
    ["t_Agathis_wide_F", [1269.38, 1020.6, 21.9684], [0.856827, -0.515603, 0.00093551], [-0.00109183, 0, 0.999999], false]
    ];

    {
        private _vehicle = (_x select 0) createVehicle (_x select 1);
        _vehicle allowDamage false;
        _vehicle setPosWorld (_x select 1);
        _vehicle setVectorDirAndUp [_x select 2, _x select 3];
        _vehicle enableSimulationGlobal (_x select 4);
        _vehicle setVariable ["ExileIsLocked", -1, true];
        
        if (_vehicle isKindOf "Exile_RussianRouletteChair") then
        {
            ExileRouletteChairs pushBack _vehicle;
            ExileRouletteChairPositions pushBack [_x select 1, getDir _vehicle];
        };
    }
    forEach _vehicles;

    // 7 Simple Objects
    private _invisibleSelections = ["zasleh", "zasleh2", "box_nato_grenades_sign_f", "box_nato_ammoord_sign_f", "box_nato_support_sign_f"];
    private _simpleObjects = [
    ["a3\vegetation_f_exp\tree\t_ficus_small_f.p3d", [1431.57, 877.822, 20.0061], [0, 1, 0], [0, 0, 1]],
    ["a3\vegetation_f_exp\tree\t_ficus_small_f.p3d", [1241.2, 871.944, 20.021], [0, 1, 0], [0, 0, 1]],
    ["a3\vegetation_f_exp\tree\t_ficus_small_f.p3d", [1433.41, 854.71, 20.0121], [0, 1, 0], [0, 0, 1]],
    ["a3\structures_f\civ\camping\sleeping_bag_f.p3d", [1426.6, 1135.17, 15.3638], [0, 1, 0], [0, 0, 1]],
    ["a3\structures_f\civ\garbage\garbage_square3_f.p3d", [1427.24, 1136.11, 15.3899], [0, 1, 0], [0, 0, 1]],
    ["a3\structures_f\civ\garbage\garbage_square5_f.p3d", [1429.48, 1134.04, 15.3761], [0, 1, 0], [0, 0, 1]],
    ["a3\structures_f\civ\garbage\garbage_line_f.p3d", [1423.34, 1134.58, 15.3931], [0, 1, 0], [0, 0, 1]]
    ];

    {
        private _simpleObject = createSimpleObject [_x select 0, _x select 1];
        _simpleObject setVectorDirAndUp [_x select 2, _x select 3];
        
        {
            if ((toLower _x) in _invisibleSelections) then 
            {
                _simpleObject hideSelection [_x, true];
            };
        }
        forEach (selectionNames _simpleObject);
    }
    forEach _simpleObjects;

     

    sleep 10;
    [] execVM "\server\scripts\RemoteIslandTroops.sqf";

     

    This was created using the Exile 3Den plugin, specifically the create initServer feature. The false that I highlighted at the end of each line means that the simulation has been disabled and the objects will take significantly less resources (since this file contains 17,000+ trees/bushes on a small island). I still maintain steady FPS numbers on the server even though I've added in this many objects.

     

    Additionally, the last couple lines:
    sleep 10;
    [] execVM "\server\scripts\RemoteIslandTroops.sqf";


    were added because I included some buildings in the original file and wanted to ensure the buildings loaded BEFORE the AI that would be inside/on top of them would. Hope this all helps someone.


  7. When you are in an inventory (storage, self, vehicle, etc.) and removing items, the items suddenly move up/down the inventory list. I find this to be infuriating. Has anyone ever had any experience with adjusting this so items stay in their current order regardless of quantity?


  8. Using the file: ExileClient_gui_selectSpawnLocation_show, I cannot seem to figure out how to ONLY display the RANDOM option of spawn locations, rather than displaying every spawn point and allowing the player to choose. I would like RANDOM to be the only option available... OR if there is an easy way to simply bypass this file and go from Death to Respawn. Any thoughts?

     

    FILE: 

    Spoiler

    private["_display", "_spawnButton", "_listBox", "_listItemIndex", "_numberOfSpawnPoints", "_randNum", "_randData", "_randomSpawnIndex"];

    disableSerialization;

    ExileClientSpawnLocationSelectionDone = false;

    ExileClientSelectedSpawnLocationMarkerName = "";
    createDialog "RscExileSelectSpawnLocationDialog";
    waitUntil
    {
        _display = findDisplay 24002;
        !isNull _display
    };
    _spawnButton = _display displayCtrl 24003;
    _spawnButton ctrlEnable false;
    _display displayAddEventHandler ["KeyDown", "_this call ExileClient_gui_loadingScreen_event_onKeyDown"];
    _listBox = _display displayCtrl 24002;
    lbClear _listBox;


    {
        if (getMarkerType _x == "ExileSpawnZone") then
        {
            _listItemIndex = _listBox lbAdd (markerText _x);
            _listBox lbSetData [_listItemIndex, _x];
        };
    }
    forEach allMapMarkers;


    _numberOfSpawnPoints = {getMarkerType _x == "ExileSpawnZone"} count allMapMarkers;
    if (_numberOfSpawnPoints > 0) then
    {
        _randNum = floor(random _numberOfSpawnPoints);
        _randData = lbData [24002,_randNum];
        _randomSpawnIndex = _listBox lbAdd "Random";
        _listBox lbSetData [_randomSpawnIndex, _randData];
    };
    true

     


  9. Yes, I know ACE3 exists, but for my small private (dedi) server, we use AGM Medical. The settings are basically fixed in a way that the player goes unconscious instead of dying; 4-minute timer and then must respawn if not treated. 

    For some reason which I cannot quite crack, the system works flawlessly for every player on the server..... except me as the admin. Rarely I go unconscious, but MOST of the time, straight to death timer and forced respawn.

     

    Does this resemble anything that anyone has dealt with before?


  10. I appreciate the continued help. I tried your code and it resulted in the player requiring all the tools in the array; they should only require one of them.

     

    i also tried: 

    _requiredTools=  [["Exile_Item_CanOpener"],["Exile_Item_Pliers"],["Exile_Item_Knife"],["Exile_Item_Screwdriver"]]; which resulted in a strange text glitch in the consume menu. 

    and then I tried:

    _requiredTools=  ["Exile_Item_CanOpener" || “Exile_Item_Pliers" || "Exile_Item_Knife" || "Exile_Item_Screwdriver"]; which resulted in not being able to open an item at all for use/consume. 
     

    not sure where to go from here. 


  11. Okay so if I make an adjustment in the ItemConsume file as you've mentioned, does this look right?

    Spoiler


    //_itemClassName = _this select 0;
    _itemClassName = ["Exile_Item_CanOpener","Exile_Item_Pliers","Exile_Item_Knife","Exile_Item_Screwdriver"];


    if !(_itemClassName in (magazines player)) exitWith {false};
    if( isClass(configFile >> "CfgMagazines" >> _itemClassName >> "Interactions" >> "Consuming") ) then
    {
        _consumingConfig = configFile >> "CfgMagazines" >> _itemClassName >> "Interactions" >> "Consuming";

     


  12. I’m aware of changing the ExileClient codes and calling the overwrites; I’ve done that successfully lots of times. On my private server, all my players have my version of exile (with edits) subscribed to on Steam so they get any updates I make. And the signatures have been adjusted to accommodate for changes. So no issues there. The proper way to convert to cpp, pbo and then add back to main @exile is exactly how I’ve done it, so I’m just not sure why the tools I’ve added are not working.  
     

    One thing I will add is that I did make a change that showed up at one point— I changed the BambiOverall to a NakedBody so that players spawned in with only underwear. This displayed correctly but was the only working change. I also tried to lower/change the sounds of tree-chopping, and the aforementioned can-opening tools. Nada. 
     

    if I can change all these things in the CustomCode config, great. But I also want the ability to ADD files that the client preStart precompiles; if there’s another easier way to do this, please let me know. This all started because I wanted to create a mod of the ‘nearestConcreteMixer’ file but as a ‘nearestWaterPump’ instead. 


  13. I’ve converted the exile client’s config.bin using the Arma tools CfgConvert (thanks to master @Larrow) and made a few specific changes. I converted back to .bin and readded/reuploaded to server (also changing the same files on the server’s @Exile client files). 

    For some reason, none of the changes will happen. For example, I added a few tools for opening cans; Canopener was already there, so I simply added Knife, screwdriver, and pliers (using the correct item classnames). Nothing. 
     

    Am I missing something here? Or should the process of editing the .bin be straight-forward?


  14. Not sure why, but all my players have 9999/9999 poptabs. I can’t seem to figure out where this is being created in the code and how to change it. 
     

    in my CreateBambi file, I have the variable set so that money should be removed (which I think is by default), so I’m not sure what’s going on.

     

    Anyone else ever deal with this?


  15. Been using Happy's Enigma Revive System for a long time on my private family server (origin: https://github.com/hpy/Enigma_Exile_Revive). There are two major issues which I cannot seem to crack given my very limited coding experience.

     

    The first issue lies here. Trying to get the "PERFORM CPR" option to show up when looking at a downed player is SO finicky that it flashes here and there and is so inconsistent that it costs lives as we're trying to revive someone and getting blasted ourselves because its so hard to find the option. Here is the original code:

     

    Spoiler

    _target = _this select 0;

    _targetname = name _target;

    _bodypos1 = [0.75,0.15,0];

    _bodypos2 = [-0.75,0.1,0];

    _bodypos3 = [0,0.08,0];

    _healPlace = "_bodypos1";

    _action = "medicStartRightSide";

    _bodypos = _bodypos1;

    _animstate = animationState _target;

    _primaryw = primaryWeapon player;

    _timer = 6;

    _Anims = ["ainvpknlmstpsnonwrfldnon_ainvpknlmstpsnonwrfldnon_medic"];

    _defibpos = [0.4,0.9,0];

    _defibangle = 30;

     

    if ((player distance (_target modelToWorld _bodypos2))<((_target modelToWorld _bodypos1) distance player)) then

    {

    _healPlace = "_bodypos2";

    _action = "medicStart";

    _bodypos = _bodypos2;

    _defibpos = [0,0.9,0];

    _defibangle = 180;

    };

    player attachTo [_target, _bodypos];

    _posh = player modelToWorld [0,0,0];

    _posi = _target modelToWorld _bodypos3;

    _dy = (_posh select 1) - (_posi select 1);

    _dx = (_posh select 0) - (_posi select 0);

    _dir = getDir player;

    player setDir (270 - (_dy atan2 _dx) - direction _target);


    Here is a direct link to the full file: https://github.com/hpy/Enigma_Exile_Revive/blob/master/Exile.Altis/Custom/EnigmaRevive/Enigma_RevivePlyr.sqf
     

    I've tried SO MANY variations of uncommenting this section (where applicable) and simply trying to make it so if the player is < 3 meters, the option arises (note: the option is coded in the config.cpp and does not have anything to do with distance, etc., so I won't post here.

     

    The second issue is that when player's are revived, the lose all of their handgun ammo. Here is the code:

     

    Spoiler

    _magazinesAmmo = magazinesAmmo _requestingPlayer;

    _handgunammo = _requestingPlayer ammo handgunWeapon _requestingPlayer;

    _handguntype = handgunWeapon _requestingPlayer;

     

    Here is a direct link to the full file: https://github.com/hpy/Enigma_Exile_Revive/blob/master/%40Enigma/addons/enigma_exile_revive/compile/Enigma/Exile_RevivePlayer.sqf

     

    Something seems wrong with that second line, but no matter which way I've tried it (changing to _HandgunMagazine according to the BIKI), I cannot seem to get players to have their secondary ammo once they have been revived.

     

    And even though I think this last piece is an ARMA issue and not a mod issue, I wonder if there's a way to make it so players do not drop their weapons when they die/get revived?

     

     


  16. 23 hours ago, pierremgi said:

    You should learn the basics of scripting. You can't mix side, objects, strings, arrays,...

     

    Yes, I know you are right. I need to slow down and stop getting ahead of myself; taking on projects that are much too big for me as a newbie. @wogz187 has been telling me the same thing but I've been much too excited to stop reverse-engineering things. I need to slow down, for sure.

    • Like 1
    • Haha 1
×