Jump to content

Gill93

Member
  • Content Count

    277
  • Joined

  • Last visited

  • Medals

Posts posted by Gill93


  1. 13 minutes ago, Vandeanson said:

    Hi all,

     

    Here s a little sneak peek of the shop script i am currently working on. This should allow you to spawn in a trader that will sell you weapon attachements based on the list of weapons you define in an array.

     

    I will probably polish it more and at some point make a thread about it.

    This version requires ravage and CBA.

     

    Step 1: Place a marker called mrkrTR_1. 

    Step 2: create "TraderspawnAtt.sqf" and copy paste the below script:

     

    NOTE: You can add more markers under _traderspawn =[] in TraderspawnAtt. The script will then keep spawning and despawning the trader at these locations (e.g. the trader is wandering around).

     

      Hide contents
    
    
    while {true} do {
    _traderspawn = selectRandom ["mrkrTR_1"];
    
    traders = createGroup west;
    trader1 = traders createUnit ["B_G_Survivor_F", getMarkerPos _traderspawn, [], 0, "FORM"];
    [trader1] call rvg_fnc_equip;
    trader1 allowDamage false;
    trader1 disableAI "MOVE";
    
    traderID0 = trader1 addAction ["Buy Attachements","AttachementsStore.sqf"];
    
    sleep 3600;
    
    removeAllActions trader1;
    deleteVehicle trader1;
    
    sleep 5;
    };

     

     

    Step 3: create "AttachementStore.sqf" and copy paste below script:

     

    NOTE: you can add your own weapons to WeaponArray = [] in AttachementStore.sqf below

      Hide contents
    
    
    
    WeaponArray = [
    "Rusty_srifle_DMR_04_F",
    "Rusty_DMR_05_base_F",
    "Rusty_srifle_DMR_02_F",
    "Rusty_srifle_DMR_03_F",
    "Rusty_srifle_EBR_F",
    "Rusty_MMG_01_tan_F",
    "Rusty_MMG_02_black_F",
    "Rusty_LMG_Zafir_F"
    ];
    
    AttachementCosts = 100 +(selectrandom [0,1,2,3,4,5,6,7,8,9,10]);
    
    EquippedWeapons = weapons player;
    RndEquippedWeapon = selectRandom EquippedWeapons;
    RndWeapon = selectRandom WeaponArray;;
    //AttachementArray = RndWeapon call BIS_fnc_compatibleItems;
    AttachementArray = {_x call BIS_fnc_compatibleItems;} foreach WeaponArray;
    if
    (
    weapons player isEqualTo []
    )
    then
    {
    Attachement = selectRandom AttachementArray;
    }
    else
    {
    persAttachementArray = RndEquippedWeapon call BIS_fnc_compatibleItems;
    Attachement = selectRandom persAttachementArray;
    };
    
    Attachement1 = selectRandom AttachementArray;
    Attachement2 = selectRandom AttachementArray;
    Attachement3 = selectRandom AttachementArray;
    Attachement4 = selectRandom AttachementArray;
    
    traderID1 = trader1 addAction [format ["Buy %1 for %2",Attachement,AttachementCosts],"call BuyItem"];
    traderID2 = trader1 addAction [format ["Buy %1 for %2",Attachement1,AttachementCosts],"call BuyItem1"];
    traderID3 = trader1 addAction [format ["Buy %1 for %2",Attachement2,AttachementCosts],"call BuyItem2"];
    traderID4 = trader1 addAction [format ["Buy %1 for %2",Attachement3,AttachementCosts],"call BuyItem3"];
    traderID5 = trader1 addAction [format ["Buy %1 for %2",Attachement4,AttachementCosts],"call BuyItem4"];
    traderID6 = trader1 addAction ["Back","Back.sqf"];
    trader1 removeaction traderID0;
    
    
    BuyItem = {
    
      CurrentCash = {"rvg_money" == _x} count magazines player;
    
      if (CurrentCash >= AttachementCosts) then {
      for "_i" from 1 to (AttachementCosts) do {
      	player removemagazine "rvg_money";};
        player additem Attachement; hint format ["Bought %1", Attachement];
      	trader1 removeaction traderID1;
      }
      else
      {
      	hint "No no no, I want my Money first!";
      };
    
    };
    
    BuyItem1 = {
    
      CurrentCash = {"rvg_money" == _x} count magazines player;
    
    if (CurrentCash >= AttachementCosts) then {
    for "_i" from 1 to (AttachementCosts) do {
    	player removemagazine Money;};
      player additem Attachement1; hint format ["Bought %1", Attachement1];
    	trader1 removeaction traderID2;
    }
    else
    {
    	hint "No no no, I want my Money first!";
    };
    };
    
    BuyItem2 = {
    
      CurrentCash = {"rvg_money" == _x} count magazines player;
    
      if (CurrentCash >= AttachementCosts) then {
      for "_i" from 1 to (AttachementCosts) do {
      	player removemagazine "rvg_money";};
        player additem Attachement2; hint format ["Bought %1", Attachement2];
      	trader1 removeaction traderID3;
      }
      else
      {
      	hint "No no no, I want my Money first!";
      };
    
    };
    
    BuyItem3 = {
      CurrentCash = {"rvg_money" == _x} count magazines player;
    
      if (CurrentCash >= AttachementCosts) then {
      for "_i" from 1 to (AttachementCosts) do {
      	player removemagazine "rvg_money";};
        player additem Attachement3; hint format ["Bought %1", Attachement3];
      	trader1 removeaction traderID4;
      }
      else
      {
      	hint "No no no, I want my Money first!";
      };
    };
    
    BuyItem4 = {
    
      CurrentCash = {"rvg_money" == _x} count magazines player;
    
      if (CurrentCash >= AttachementCosts) then {
      for "_i" from 1 to (AttachementCosts) do {
      	player removemagazine "rvg_money";};
        player additem Attachement3; hint format ["Bought %1", Attachement4];
      	trader1 removeaction traderID5;
      }
      else
      {
      	hint "No no no, I want my Money first!";
      };
    };

     

    Tadaa, a trader will spawn giving you nice things for hard earned money!

     

    Enjoy, I welcome any feedback while i further work on this.

     

    To dos:

    1. check if goods bought can be sold to original rvg traders, else create function

    2. add vehicle (Heli, Plane, Cars trader

    3.  will see;)

     

    Awesome glad you got it working (:

    • Thanks 1

  2. 6 hours ago, Vandeanson said:

    thanks mate, this is also my current solution, various arrays with hand picked items. however, the advantage of the solution i am looking for is, that the attachement spawned always matches to the weapons that are available.

    e.g. for magazine selection:

     

    {_myWeapon = selectRandom _MyWeaponsArray;

     

    _magazines = getArray (configFile >> "CfgWeapons" >> _myWeapon>> "magazines");

    _MagForMyWeapon = selectRandom _magazines;

    player addmagazinetovest _MagForMyWeapon, 1+ random 2;

    player addweapon _myWeapon, 1;}

     

    this will spawn a matching mag directly into my weapon.

    i just dont know what references to use for scopes and such as Optic, Muzzles, Items,... wont work:)

     

    PS. how to i embed code i to html via mobile? XD 

    maybe something like this (currentWeapon player) call BIS_fnc_compatibleItems;

    • Thanks 1

  3. 37 minutes ago, Vandeanson said:

    before i open a new post, does anyone know how to pull an array of all weapon attachements (scopes, silencers, flashlights,...) from the config file?

     

    _array = getArray (configFile >> "CfgVehicles" >> "Thing" >> "threat")

     

    i changed "thing" to one specific weapon and "threat" to "magazines" to pull a magazine array on another case. now i dont get it to work for attachements and am wondering what the "magazines" equivalent is for scopes ans silencers..

     

    i appreciate any input:)

    cheeeers

    I'm not to good with scripting really but maybe you could get something like this to work minus the ravage stuff and vests

    Spoiler

    _Items =    ["MineDetector","rvg_toolkit","rvg_purificationTablets","rvg_Geiger","rvg_flare","Muzzle_snds_H","Muzzle_snds_L","Muzzle_snds_M","Muzzle_snds_B","optic_Arco","optic_Hamr","optic_ACO_grn","optic_Holosight","optic_SOS","acc_flashlight","acc_flashlight_pistol","muzzle_snds_acp","optic_Nightstalker","optic_tws","optic_DMS","optic_LRPS","muzzle_snds_338_black","muzzle_snds_93mmg","optic_Holosight_blk_F","rvg_franta","rvg_spirit","rvg_bacon","rvg_rice","rvg_milk","rvg_tire","rvg_matches","rvg_antiRad","rvg_canisterFuel_Empty","rvg_plasticBottle","CUP_Mxx_camo","CUP_optic_PSO_1","CUP_optic_kobra","CUP_muzzle_PBS4","CUP_muzzle_snds_M9","CUP_SVD_camo_g","CUP_optic_LeupoldMk4","CUP_optic_CompM2_Black","CUP_optic_RCO","CUP_muzzle_snds_M110","CUP_muzzle_snds_M14","CUP_muzzle_snds_M16","CUP_muzzle_snds_SCAR_H","V_TacVest_blk_POLICE","V_TacVest_oli","V_PlateCarrier1_rgr"];

     


  4. 31 minutes ago, Vandeanson said:

    before i open a new post, does anyone know how to pull an array of all weapon attachements (scopes, silencers, flashlights,...) from the config file?

     

    _array = getArray (configFile >> "CfgVehicles" >> "Thing" >> "threat")

     

    i changed "thing" to one specific weapon and "threat" to "magazines" to pull a magazine array on another case. now i dont get it to work for attachements and am wondering what the "magazines" equivalent is for scopes ans silencers..

     

    i appreciate any input:)

    cheeeers

    Maybe try this as I believe scopes and attachments are considered items.  _array = getArray (configFile >> "srifle_EBR_F" >> "Item" >> "") not sure if that helps srry.


  5. Hey guys does anyone else think that Radiation poisoning should have some symptoms such as coughing blurred vision or even tinnitus when really sick as to give players an Idea of how close to death they are instead of just having to check HUD. Maybe someone could make a script for this or Haleks could possibly add these in in future updates. (:

    • Like 1

  6. 28 minutes ago, Eogos said:

    Just a quick question, is it planned to eventually have some kind of built in random mission/encounter generator? I love the ambiance that Ravage creates but unfortunately my group kinda lost interest last time we played due to, well, running out of things to do so as it is right now it doesn't really work for us as a continuous ambient mission.

    Quite a few different ravage missions out there with tasks to complete not sure about the default ravage mission though.


  7. 8 hours ago, FookinThicc said:

    Hi. I've been having a hard time figuring out how the loot system works. I've added a couple rhs pistols to civilian loot table and set the probability of finding stuff 50 for every item in the civilian table. Problem is I still seem to find only survival items, nothing else. Not a single weapon or any ammo. If I set weapons to 100 then I'll find only weapons, if I set magazines to 100 I find only ammo. But everything at 50 only gets me survival items. I don't know if this is connected to the problem or not, but sometimes when searching objects, the inventory pops up but it doesnt show any items. Other times it just says that "nothing but junk" etc and the inventory doesn't pop up.

    Mods I'm running:

    CBA_A3

    Ravage

    Achilles

    All RHS

    Blastcore

    JSRS

    CUP Terrains - Core

    Chernarus Redux

     

    What I have in Common weapons: ["rhsusf_weap_glock17g4", "rhsusf_weap_m1911a1", "rhsusf_weap_m9"]

     

    For most of my scenario's I usually set civilian to 50,17,15,8,10 Military 5,50,48,7,11 Industrial 45,25,24,6,11. You may also want to try adding even more weapons to the array just to see what happens.


  8. So I have gathered most of the building class-names and positions on the Chernobyl zone using a script called Building position locater I then placed all the class-names, Loot type and positions into the Array/Script hidden in the spoiler. The script itself is supposed to go into your init.sqf from what I was told but I keep getting an error towards the very bottom of the script when trying to run it mabey someone can experiment.

    Spoiler

    //----Add classnames Here ---


    waitUntil {!isNil "Building_list"};
    sleep 1;

    {

    0 = Building_list pushBack _x;

    }

    forEach [

    "land_chz_vesnice_dum05",
    "land_chz_vesnice_dum04",
    "land_chz_vesnice_dum03",
    "land_chz_vesnice_dum09",
    "land_chz_vesnice_dum12",
    "land_chz_vesnice_dum11",
    "land_chz_vesnice_dum08",
    "land_chz_vesnice_dum01",
    "land_chz_vesnice_dum07",
    "land_chz_vesnice_dum06",
    "land_chz_vesnice_dum11",
    "land_chz_vesnice_dum17",
    "land_chz_vesnice_dum14",
    "land_chz_vesnice_dum16",
    "land_chz_vesnice_dum10",
    "land_chz_vesnice_farma01",
    "land_chz_vesnice_dum13",
    "land_chz_vesnice_dum15",
    "land_chz_vesnice_dum02",
    "land_chz_vesnice_farma03",
    "land_chz_janov_04",
    "land_chz_cementarna_04",
    "land_chz_zavod_beton_02",
    "land_chz_cisticka_zazemi_02",
    "land_chz_kontrolnibod_03",
    "land_chz_kontrolnibod_01_budka",
    "land_chz_budova_04_02",
    "land_chz_skladoleju_06_03",
    "land_chz_skladoleju_06_06",
    "land_chz_skladiste_01",
    "land_chz_beryozka",
    "land_chz_gastronom",
    "land_chz_janov_02",
    "land_chz_janov_03"
    ];


    //---Classname Building Positions here ---


    waitUntil {!isNil "Building_registr"};

    {

    0 = Building_registr pushBack _x;

    }

    forEach [

    ["land_chz_vesnice_dum05",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum04",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum03",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum09",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum12",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum11",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum08",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum01",0,[0,1,2,3]],

    ["land_chz_vesnice_dum07",0,[0,1,2,3,4,5,6]],

    ["land_chz_vesnice_dum06",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum11",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum17",0,[0,1,2,3,4]],

    "land_chz_vesnice_dum14",0,[0,1,2,3]],

    ["land_chz_vesnice_dum16",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum10",2,[0,1,2,3]],

    ["land_chz_vesnice_farma01",2,[0,1,2,3,4,5,6]],

    ["land_chz_vesnice_dum13",0,[0,1,2,3,4,5]],

    ["land_chz_vesnice_dum15",0,[0,1,2,3,4,5]],

    ["land_chz_vesnice_dum02",0,[0,1,2,3,4,5]],

    ["land_chz_vesnice_farma03",2,[0,1,2,3,4,5,6,7]],

    ["land_chz_janov_04",2,[0,1,2,3,4,5,6,7,8]],

    ["land_chz_cementarna_04",2,[0,1,2,3,4,5,6,7,8,9,10,11]],

    ["land_chz_zavod_beton_02",2,[0,1]],

    ["land_chz_cisticka_zazemi_02",2,[0,1,2,3,4,5,6,7,8,9,10,11,12,13]],

    ["land_chz_kontrolnibod_03",2,[0,1,2,3,4,5,6,7,8]],

    ["land_chz_kontrolnibod_01_budka",1,[0,1,2]],

    ["land_chz_budova_04_02",2,[0,1,2,3,4,5,6,7,8,9]],

    ["land_chz_skladoleju_06_03",2,[0,1,2,3,4]],

    ["land_chz_skladoleju_06_06",2,[0,1,2,3,4,5,6,7]],

    ["land_chz_skladiste_01",2,[0,1,2,3,4,5,6,7,8,9,10]],

    ["land_chz_beryozka",2,[0,1,2,3,4,5,6,7,8,9]],

    ["land_chz_gastronom",2,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]],

    ["land_chz_janov_02",2,[0,1,2,3,4]],

    ["land_chz_janov_03",2,[0,1,2,3,4,5,6,7,8,9,10,11,12,13]]

    ];

     

    • Like 1

  9. Hey guys so I managed to gather most of the building class-names and positions from the Chernobyl zone but I need some help with using the script/array hidden in the spoiler what exactly should I name the script  and do I need to create a folder for it. I found the script on the ravage wikia page section custom map loot list and replaced the Australia assets with the Chernobyl ones.

    Spoiler

    //----Add classnames Here ---


    waitUntil {!isNil "Building_list"};

    {

    0 = Building_list pushBack _x;

    }

    forEach [

    "land_chz_vesnice_dum05",
    "land_chz_vesnice_dum04",
    "land_chz_vesnice_dum03",
    "land_chz_vesnice_dum09",
    "land_chz_vesnice_dum12",
    "land_chz_vesnice_dum11",
    "land_chz_vesnice_dum08",
    "land_chz_vesnice_dum01",
    "land_chz_vesnice_dum07",
    "land_chz_vesnice_dum06",
    "land_chz_vesnice_dum11",
    "land_chz_vesnice_dum17",
    "land_chz_vesnice_dum14",
    "land_chz_vesnice_dum16",
    "land_chz_vesnice_dum10",
    "land_chz_vesnice_farma01",
    "land_chz_vesnice_dum13",
    "land_chz_vesnice_dum15",
    "land_chz_vesnice_dum02",
    "land_chz_vesnice_farma03",
    "land_chz_janov_04",
    "land_chz_cementarna_04",
    "land_chz_zavod_beton_02",
    "land_chz_cisticka_zazemi_02",
    "land_chz_kontrolnibod_03",
    "land_chz_kontrolnibod_01_budka",
    "land_chz_budova_04_02",
    "land_chz_skladoleju_06_03",
    "land_chz_skladoleju_06_06",
    "land_chz_skladiste_01",
    "land_chz_beryozka",
    "land_chz_gastronom",
    "land_chz_janov_02",
    "land_chz_janov_03"
    ];


    //---Classname Building Positions here ---


    waitUntil {!isNil "Building_registr"};

    {

    0 = Building_registr pushBack _x;

    }

    forEach [

    ["land_chz_vesnice_dum05",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum04",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum03",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum09",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum12",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum11",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum08",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum01",0,[0,1,2,3]],

    ["land_chz_vesnice_dum07",0,[0,1,2,3,4,5,6]],

    ["land_chz_vesnice_dum06",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum11",0,[0,1,2,3,4,5,6,7]],

    ["land_chz_vesnice_dum17",0,[0,1,2,3,4]],

    "land_chz_vesnice_dum14",0,[0,1,2,3]],

    ["land_chz_vesnice_dum16",0,[0,1,2,3,4]],

    ["land_chz_vesnice_dum10",2,[0,1,2,3]],

    ["land_chz_vesnice_farma01",2,[0,1,2,3,4,5,6]],

    ["land_chz_vesnice_dum13",0,[0,1,2,3,4,5]],

    ["land_chz_vesnice_dum15",0,[0,1,2,3,4,5]],

    ["land_chz_vesnice_dum02",0,[0,1,2,3,4,5]],

    ["land_chz_vesnice_farma03",2,[0,1,2,3,4,5,6,7]],

    ["land_chz_janov_04",2,[0,1,2,3,4,5,6,7,8]],

    ["land_chz_cementarna_04",2,[0,1,2,3,4,5,6,7,8,9,10,11]],

    ["land_chz_zavod_beton_02",2,[0,1]],

    ["land_chz_cisticka_zazemi_02",2,[0,1,2,3,4,5,6,7,8,9,10,11,12,13]],

    ["land_chz_kontrolnibod_03",2,[0,1,2,3,4,5,6,7,8]],

    ["land_chz_kontrolnibod_01_budka",1,[0,1,2]],

    ["land_chz_budova_04_02",2,[0,1,2,3,4,5,6,7,8,9]],

    ["land_chz_skladoleju_06_03",2,[0,1,2,3,4]],

    ["land_chz_skladoleju_06_06",2,[0,1,2,3,4,5,6,7]],

    ["land_chz_skladiste_01",2,[0,1,2,3,4,5,6,7,8,9,10]],

    ["land_chz_beryozka",2,[0,1,2,3,4,5,6,7,8,9]],

    ["land_chz_gastronom",2,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]],

    ["land_chz_janov_02",2,[0,1,2,3,4]],

    ["land_chz_janov_03",2,[0,1,2,3,4,5,6,7,8,9,10,11,12,13]]


    ];

     

    • Like 1

  10. Hey guys I have been holding onto this body temperature script for awhile now and would love to use it again, The issue is that the players health auto regenerates if temp is at the default 37 degrees Celsius only when the players temp drops below this is he able to receive damage without the health regenerating. If someone would be willing to take a look mabey you could spot the issue causing this problem. I have provided the bodytemp.sqf in the spoiler. Thanks guys

    Spoiler

       _fires = {inflamed _x} count (nearestObjects [player, ["All"], 2]); 

       _shelter = count (lineIntersectsSurfaces [atltoasl (player modeltoworld (player selectionPosition "head")), atltoasl (player modeltoworld [0,0,10]), player, objnull]);
       
       _tempIncrease = 0;   

       
       _daytime = 1-sunOrmoon;

       _weather = rain; //(rain + _daytime)/2;

       
       if (_shelter > 0) then
       {
        _weather = _weather * 0;
       };
       
       
       _tempIncrease = -_weather * babe_tempFactor;
       
       
       
       if (_fires > 0) then
       {
        _tempIncrease = _tempIncrease + _fires * babe_tempFactor;
       };
       
       _spd = velocity player;
       _spd = (abs(_spd select 0)) + (abs(_spd select 1)) + (abs(_spd select 2));
       
       if (_spd > 0.1) then
       {
        _tempIncrease = _tempIncrease * 0.01;
       };
       
       babe_temperatur = babe_temperatur + _tempIncrease;
       
       if (babe_temperatur < 37) then
       {
        //cutText ["","White IN"];
        enableCamShake true; 
        addCamShake [0.5 * (37-babe_temperatur)/11, 1, 50];
        player setStamina (getStamina player) - 0.01;
       };
       
       
       if (babe_temperatur < 32) then
       {
        player setStamina 0;
        player setdamage (damage player) + babe_coldDamage * 25/(37-babe_temperatur);
       };

       if (babe_temperatur < 26) then
       {
        babe_temperatur = 26;
       };
       
       if (babe_temperatur >= 37) then
       {
        babe_temperatur = 37;
        player setDamage (damage player) - 0.01;
       };

      

    • Like 2

  11. 12 hours ago, UnDeaD. said:

    Is it possible to define custom military buildings for military loot to spawn, because it seems like there are none on ChernarusRedux.

    Thanks in advance.

    Not sure how to define custom military buildings but what you could do is increase the spawn chance for weapons and ammo at civilian and industrial buildings and or add more military buildings by hand to the map. One more thing you could do to improve the scenario is add more weapons to the Common, Military and rare section In the loot module after doing this lootpiles and AI will carry more of a variety of ammo and weapons along with the traders.

    • Like 1

  12. 5 hours ago, lv1234 said:

    I also tried playing with the "required" mods of my missions (which isn't too much compared to my other list). It seems that I got much more playable frames when around & inside the large survivor areas.

     

    Edit: Changed the activation distance modifier to x1.5 and changed ai activation distance to 350m just like the vehicles

    ok awesome but I forgot one thing and that is in the performance tab at very bottom you will want to uncheck the box that says limit by object view distance I believe this will override the 350m x1.5 if not unchecked


  13. 2 hours ago, lv1234 said:

    Global population limit is 150 as of rightnow

    Ok so you don't have to stop the AI from moving period but what you can do is enable Dynamic simulation on a single AI or group then head to the Attributes tab and select performance once there you will see that the default activation distance for AI is 500m and for vehicles it 350m. AI will become active from player or enemy AI faction once in range  what I recommend is turning down the distance for AI and vehicles to match each others activation distance. Towards the bottom of the performance tab you will see what is called Activation distance Modifier this multiplies the activation distance for non static Ai I believe the default is x2 you will want to drop that to x1 or to whatever you desire.

    • Like 1

  14. 16 hours ago, lv1234 said:

    Here is what i have

    -MP mission was meant for single player only (weird but that is how it is going to work for now)

    -Zombies to spawn per player is about 20-25 if i remember

    -ai population factor is 0.5

    -Bandit camps (total of around 20 placed), where only 1/20 camps appears for a certain amount of time and then deletes itself to spawn in another new area script found here

    -another bandit camp implementation by the ravage wiki itself, where a player spawns a bandit camp nearby when they walk through a "trigger" (around 10 placed i believe)

    -AI patrol cars were present during this issue (like a good fair amount, found around 7 under 8 minutes near one of the large survivor areas)

    -Scripts used: Only a single dynamic bandit camp script listed above

    -Mods used (believed this was the culprit probs LOL, didn't know it was that big):

      Hide contents

    -Ravage

    -3eden enhanced

    -CBA_A3

    -Cup weapons, units, vehicles, terrains-core

    -Enhanced movement

    -IFA3_AIO_LITE + LEN WEAPONS PACK addon

    -Extended fortification mod

    -Brick's Arma 3 flashlight mod

    -Remove stamina

    -ASR AI3

    -Friths ruins

    -Incon effects mod

    -jsrs soundmod

    -jtd "body flies" mod

    -NATO RUS cba_weapons

    -Niarms core, ak, awm, springfield rifles (each are a separate mod)

    -All RHS mods

    -Suppress mod

    -Unlocked uniforms

    -Warfare thai mod

    -Craig SP pack

     

     

    Any more info that I am missing?

    If you want to test out my scenario or look at its contents in editor, the link is here for the mission download: https://forums.bohemia.net/forums/topic/217650-mp-ravage-altis-wasteland/

    ok so I added up the mods your using and its roughly around 31980MB or 31GB worth that definitely could cause the issue. As for zombies per person that seems decent but you might want to lower it just a tad also make sure to check the Global population limit for zombies and adjust it if needed the default is 250. Also I seen that your using 3eden enhanced and was wondering if your using any hand placed AI or objects.


  15. 16 hours ago, lv1234 said:

    Thanks for the answer everyone!

     

    Now to another problem with my Ravage Altis Wasteland mission. When it comes to playing mp on that mission, it is noticeably alot laggier compared to playing SP. This is esp. noticeable in fairly-big survivor areas.

     

    Specs (if needed):

    -intel g4560 cpu

    -rx 480 4gb msi OC

    -16gb of ram

    -windows 10 64-bit

     

    Edit: Also does anyone know how to decrease the # of car patrols we deal with? The ai population factor is not effecting it much at all. I'm starting to see constant car patrols throughout the wasteland, esp. through towns, and I want to see them once in a while instead.

    The lag could be coming from a number of things including the amount of players on server and or the amount of zombies to spawn per player also having a lot of hand placed objects or AI may cause this especially if the AI are moving about when player is not around. Also the amount of mods being run or scripts might cause this. If you provide a little more info on the scenario itself such as the mods your running/scripts, the amount of zombies your spawning, etc might be easier to solve.

    • Like 2
    • Thanks 1

  16. 12 hours ago, lv1234 said:

    Also does anyone know how to speed up the nighttime in MP and SP missions?

    If you want day & Night to cycle faster you will need to increase the Time Acceleration in one of the ravage modules cannot remember what one atm but the default level is x4 you will want to increase to x5 or higher.


  17. Just now, GEORGE FLOROS GR said:

    Hello there Gill93 !

     

    Is this part of the code? (the quote)

    Did you test it?

     

    check and change  :

    
    waitUntil {getPos _cargo select 2 < 0};
              
    detach _cargo;
    _chute disableCollisionWith _cargo;   
    
    _time = time + 6;
    waitUntil {time > _time};       
    if (!isNull _chute) then {deleteVehicle _chute};

    This is part of my  :

     

    oh thanks man I will definitely try that out keep up the good work (:

    • Thanks 1

  18. Hey guys I use the ETG Heli crash/supply drop script in just about every ravage mission I create and the creator and I have ran into a issue with the supply crate falling/clipping through the ground once it lands though sometimes if it hit a tree before the ground it will not clip through. If anyone is willing to help or check the script out for any possible changes that could be made that would be great.  here is the fncrashdrop.sqf. This is the section I think needs adjusting  (waituntil {(getPos _cargo select 2) < 20}; 
     detach _cargo;)

    Spoiler

    /*
     Filename:   fn_crashdrop.sqf
     Author:   Kellojo
     Description:  Heli crash and drop script main function - Part of the ETG script collection
     Link: http://www.armaholic.com/page.php?id=29519
    */

    _mode = [_this, 0, 0, [0]] call BIS_fnc_param;

    _time = 4900;          //Time between every heli crash/supply drop in seconds (integer)
    _markertp = "n_service";       //Type of marker? (https://community.bistudio.com/wiki/cfgMarkers) (string - leave empty if no marker is wanted)
    _fire = true;          //Should fire be around the helicrashsite ? (true/false)
    _ai = false;           //AI? (true/false)
    _mapcenter = [10000.622,10003.933];      //Edit this coordinate it should be roughly the center of the map you are playing on (this one is for Altis)
    _centerrad = 12000;         //Radius around the _CenterOfMap (make sure its covering the whole map - Integer)
    _rpt = true;          //Writes debug information to the rpt file. (true/false)

    _MaxAmmount = 6;         //Ammount of Magazines and Items that can spawn at one lootpile
    _MaxItem = 6;          //Max ammount of individual items
    _MaxMag = 6;          //Max ammount of individual magazines
    _MaxWeap = 4;          //Max ammount of individual weapons
    _MaxBpack = 6;

    //Add or remove item classnames to the array to add them to the loot table
    _Backpacks =   ['B_AssaultPack_khk','B_AssaultPack_dgtl','B_AssaultPack_rgr','B_AssaultPack_sgg','B_AssaultPack_blk','B_AssaultPack_cbr','B_AssaultPack_mcamo','B_Kitbag_mcamo','B_Kitbag_sgg','B_Kitbag_cbr','B_Bergen_sgg','B_Bergen_mcamo','B_Bergen_rgr','B_Bergen_blk','B_FieldPack_blk','B_FieldPack_ocamo','B_FieldPack_oucamo','B_FieldPack_cbr','B_Carryall_ocamo','B_Carryall_oucamo','B_Carryall_mcamo','B_Carryall_oli','B_Carryall_khk','B_Carryall_cbr','B_OutdoorPack_blk','B_OutdoorPack_tan','B_OutdoorPack_blu','B_HuntingBackpack','B_UAV_01_backpack_F'];
    _Weapons =    ["srifle_EBR_F","LMG_Mk200_F","SMG_02_F","srifle_LRR_F","hgun_ACPC2_F","hgun_P07_F","arifle_MXC_F","arifle_TRG21_F","srifle_DMR_04_F","srifle_DMR_05_blk_F","srifle_DMR_01_ACO_F","srifle_GM6_F","arifle_Katiba_F","hgun_PDW2000_F","srifle_DMR_02_F","srifle_DMR_03_khaki_F","launch_RPG7_F","arifle_MX_SW_F","CUP_srifle_CZ750","CUP_srifle_M24_ghillie","CUP_srifle_ksvk","CUP_sgun_Saiga12K","CUP_srifle_SVD","CUP_srifle_VSSVintorez_pso","CUP_sgun_AA12","CUP_arifle_AK47","CUP_arifle_AK74","CUP_arifle_AKS74","CUP_arifle_FNFAL_railed","CUP_srifle_L129A1_HG","CUP_srifle_M107_Base","CUP_srifle_M110","CUP_arifle_M16A4_Aim_Laser","CUP_arifle_M4A1_camo_Aim","CUP_srifle_MK12SPR_LeupoldM3LR","CUP_lmg_m249_para","CUP_launch_RPG7V","CUP_arifle_Sa58RIS2","CUP_arifle_Mk17_STD","CUP_hgun_M9_snds","CUP_hgun_Phantom_Flashlight_snds","CUP_arifle_CZ805_A2_Holo_Laser","arifle_ARX_hex_ACO_Pointer_Snds_F","arifle_SPAR_03_khk_F","arifle_MXM_Black_F"];
    _Items =    ["MineDetector","ToolKit","Muzzle_snds_H","Muzzle_snds_L","Muzzle_snds_M","Muzzle_snds_B","optic_Arco","optic_Hamr","optic_ACO_grn","optic_Holosight","optic_SOS","acc_flashlight","acc_flashlight_pistol","muzzle_snds_acp","optic_Nightstalker","optic_tws","optic_DMS","optic_LRPS","muzzle_snds_338_black","muzzle_snds_93mmg","optic_Holosight_blk_F","rvg_franta","rvg_spirit","rvg_rice","rvg_milk","rvg_tire","rvg_matches","rvg_antiRad","rvg_canisterFuel_Empty","rvg_plasticBottle","CUP_Mxx_camo","CUP_optic_PSO_1","CUP_optic_kobra","CUP_muzzle_PBS4","CUP_muzzle_snds_M9","CUP_SVD_camo_g","CUP_optic_LeupoldMk4","CUP_optic_CompM2_Black","CUP_optic_RCO","CUP_muzzle_snds_M110","CUP_muzzle_snds_M14","CUP_muzzle_snds_M16","CUP_muzzle_snds_SCAR_H","V_TacVest_blk_POLICE","V_TacVest_oli","V_PlateCarrier1_rgr"];
    _magazines =   ["20Rnd_762x51_Mag","200Rnd_65x39_cased_Box","30Rnd_45ACP_Mag_SMG_01","7Rnd_408_Mag","9Rnd_45ACP_Mag","16Rnd_9x21_Mag","30Rnd_65x39_caseless_mag","30Rnd_556x45_Stanag","10Rnd_127x54_Mag","10Rnd_93x64_DMR_05_Mag","10Rnd_762x54_Mag","5Rnd_127x108_APDS_Mag","30Rnd_65x39_caseless_green","30Rnd_9x21_Mag","10Rnd_338_Mag","RPG7_F","ClaymoreDirectionalMine_Remote_Mag","APERSTripMine_Wire_Mag","DemoCharge_Remote_Mag","IEDUrbanSmall_Remote_Mag","100Rnd_65x39_caseless_mag","CUP_10Rnd_762x51_CZ750","CUP_5Rnd_762x51_M24","CUP_5Rnd_127x108_KSVK_M","CUP_8Rnd_B_Saiga12_74Slug_M","CUP_8Rnd_B_Saiga12_74Pellets_M","CUP_10Rnd_762x54_SVD_M","CUP_10Rnd_9x39_SP5_VSS_M","CUP_20Rnd_B_AA12_Pellets","CUP_20Rnd_B_AA12_74Slug","CUP_30Rnd_762x39_AK47_M","CUP_30Rnd_545x39_AK_M","CUP_20Rnd_762x51_FNFAL_M","CUP_20Rnd_762x51_L129_M","CUP_10Rnd_127x99_m107","CUP_20Rnd_762x51_B_M110","CUP_30Rnd_556x45_Stanag","CUP_20Rnd_556x45_Stanag","CUP_100Rnd_TE4_Red_Tracer_556x45_M249","CUP_PG7V_M","CUP_30Rnd_Sa58_M","CUP_20Rnd_762x51_B_SCAR","CUP_15Rnd_9x19_M9","CUP_18Rnd_9x19_Phantom","CUP_20Rnd_B_AA12_HE"];  
    _aiunits =    [" I_G_officer_F", "I_G_Soldier_A_F","I_G_Soldier_LAT_F","I_G_Soldier_M_F","I_G_Soldier_GL_F"];     //Add or remove unit classnames for more or less ai

    //random timer + calls in new drop/crash
    if (_mode == 1) exitwith {
     sleep (round (random _time));
     [2] call fn_crashdrop;
    };

    //creates a drop/crash
    if (_mode == 2) exitwith {
     
     //Get data
     _cord1 = [_mapcenter, 1, _centerrad, 3, 0, 600, 0] call BIS_fnc_findSafePos;
     sleep 0.5;
     _cord2 = [_mapcenter, 1, _centerrad, 3, 0, 600, 0] call BIS_fnc_findSafePos;
     sleep 0.5;
     _cord3 = [_mapcenter, 1, _centerrad, 3, 0, 600, 0] call BIS_fnc_findSafePos;
     sleep 0.5;
     _cord4 = [_mapcenter, 1, _centerrad, 3, 0, 600, 0] call BIS_fnc_findSafePos;
     sleep 0.5;
     _cord5 = [_mapcenter, 1, _centerrad, 3, 0, 600, 0] call BIS_fnc_findSafePos;
     
     //Spawn heli & cargo
     _veh = [[0,0,0], 180,"I_Heli_light_03_unarmed_F",independent] call bis_fnc_spawnvehicle;
     _cargo = "Box_NATO_AmmoVeh_F" createVehicle [0,0,0];
     _grp = group (_veh select 0);
     
     veh = _veh;
     cargo = _cargo;
     
     clearMagazineCargoGlobal _cargo;
     clearWeaponCargoGlobal _cargo;
     clearItemCargoGlobal _cargo;
     clearBackpackCargoGlobal _cargo;
     
     {
      _x disableAI "AUTOTARGET";
      _x disableAI "TARGET";
      _x disableAI "SUPPRESSION";
      removeBackpackGlobal _x;
      removeAllWeapons _x;
     } forEach units (_veh select 2);
     
     //Spawn loot
     _weapc = 0;
     _weapcount = round (random _MaxWeap);
     while {_weapc < _weapcount} do {
      sleep 0.1;
      _weapc = _weapc + 1;
      _curi = _Weapons call BIS_fnc_selectRandom;
      _ammount = 1;
      _mag = getArray (configFile / "CfgWeapons" / _curi / "magazines");
      _cargo addWeaponCargoGlobal [_curi,_ammount];
      _cargo addMagazineCargoGlobal [(_mag select 0),round random 8];
     };

     
     _magc = 0;
     _magcount = round (random _MaxMag);
     while {_magc < _magcount} do {
      sleep 0.1;
      _magc = _magc + 1;
      _curi = _magazines call BIS_fnc_selectRandom;
      _cargo addMagazineCargoGlobal [_curi,round (random 5)]; 
     };

     
     _ic = 0;
     _ic = round (random _MaxItem);
     while {_ic < _ic} do {
      sleep 0.1;
      _ic = _ic + 1;
      _curi = _Items call BIS_fnc_selectRandom;
      _ammount = 1;
      _cargo addItemCargoGlobal [_curi,_ammount]; 
     };

     
     _bpackc = 0;
     _backcount = round (random _MaxBpack);
     while {_bpackc < _backcount} do {
      sleep 0.1;
      _bpackc = _bpackc + 1;
      _curi = _Backpacks call BIS_fnc_selectRandom;
      _ammount = 1;
      _cargo addBackpackCargoGlobal [_curi,_ammount]; 
     };
     
     (_veh select 0) setSlingLoad _cargo;

     //Set waypoints
     ETG_tvehdrop = false;
     ETG_tvehcrash = false;

     _wp = _grp addWaypoint [_cord1, 0];
     _wp setWaypointType "move";
     _wp setWaypointBehaviour "CARELESS";
     (_veh select 0) flyInHeight 225;
     [_grp,1]setWaypointSpeed "FULL";
     
     _wp = _grp addWaypoint [_cord2, 0];
     _wp setWaypointType "move";
     _wp setWaypointBehaviour "CARELESS";
     _wp setWaypointStatements ['true', "ETG_tvehdrop = true;"];
     
     _wp = _grp addWaypoint [_cord3, 0];
     _wp setWaypointType "move";
     _wp setWaypointBehaviour "CARELESS";
     
     _wp = _grp addWaypoint [_cord4, 0];
     _wp setWaypointType "move";
     _wp setWaypointBehaviour "CARELESS";
     
     _wp = _grp addWaypoint [_cord5, 0];
     _wp setWaypointType "move";
     _wp setWaypointBehaviour "CARELESS";
     _wp setWaypointStatements ['true', "ETG_tvehcrash = true;"];
     
     waituntil {ETG_tvehdrop};
     
     //Unload
     (_veh select 0) flyInHeight 100;
     (_veh select 0) setSlingLoad objNull;
     _chute = "B_Parachute_02_F" createVehicle position _cargo;
     _cargo attachTo [_chute,[0, 0, -1.2]];
     
     _smoke = "SmokeShellRed" createVehicle position _cargo;
     _smoke attachto [_cargo,[0,0,0]];
     sleep 10;
     _smoke setDamage 1;
     deleteVehicle _smoke;
     
     _smoke = "SmokeShellRed" createVehicle position _cargo;
     _smoke attachto [_cargo,[0,0,0]];
     
     waituntil {(getPos _cargo select 2) < 20}; 
     detach _cargo;
     sleep 4;
     deleteVehicle _chute;
     _smoke = "SmokeShellRed" createVehicle position _cargo;
     _smoke attachto [_cargo,[0,0,0]];
     
     if (_rpt) then {
      diag_log "###ETG Heli Crash and Drop Script by Kellojo###";
      diag_log format ["###Cargodrop position: %1",position _cargo];
      diag_log "###End###";
     };

     if !(isNil "_markertp") then {
      if !(isNil "ETG_HCADS_dropMarker") then {
       deleteMarker ETG_HCADS_dropMarker;
      };
      ETG_HCADS_dropMarker = createMarker ["",position _cargo];
      ETG_HCADS_dropMarker setMarkerType _markertp;
     };
     
     if (_ai) then {
     _hcunits = [position _cargo, EAST, _aiunits,[],[],[],[],[],180] call BIS_fnc_spawnGroup;
      _hcg = group (leader _hcunits);
      _hcg addWaypoint [position _cargo, 0];
      [_hcg, 0] setWaypointType "GUARD";
      [_hcg, 0] setWaypointBehaviour "AWARE";
      {
       removeBackpackGlobal _x;
       removeAllWeapons _x;
       _curW = _weapons call BIS_fnc_selectRandom;
       [_x,_curW, 5] call BIS_fnc_addWeapon;
      } forEach units _hcunits;
     };
     
     //Wait for crash & crash
     waituntil {ETG_tvehcrash  || (getDammage (_veh select 0) > 0.2)};
     (_veh select 0) setDamage 1;
     
     waituntil {(getPos (_veh select 0) select 2) < 1};
     sleep 10;
     
     _crashpos = position (_veh select 0);
     _crashrot = getDir (_veh select 0);
     sleep 2;
     deleteVehicle (_veh select 0);
     
     if !(isNil "_markertp") then {
      ETG_HCADS_dropMarker = createMarker ["",_crashpos];
      ETG_HCADS_dropMarker setMarkerType _markertp;
     };
     
     _cheli = createVehicle ["Land_Wreck_Heli_Attack_01_F",_crashpos,[], 0, "can_collide"];
     _cheli setDir _crashrot;
     _cheli setPos [position _cheli select 0,position _cheli select 1, 0.1];
     _cheli setVectorUp surfaceNormal position _cheli;
     _smokeeff = createVehicle ["test_EmptyObjectForSmoke",position _cheli,[], 0, "can_collide"];
     _smokeeff attachTo [_cheli, [0.5, -2, 1] ];
     _fireeff = createVehicle ["Campfire_burning_F",_crashpos,[], 0, "can_collide"];
     
     if (_ai) then {
      _hcunits = [position _cheli, EAST, _aiunits,[],[],[],[],[],180] call BIS_fnc_spawnGroup;
      _hcg = group (leader _hcunits);
      _hcg addWaypoint [position _cargo, 0];
      [_hcg, 0] setWaypointType "GUARD";
      [_hcg, 0] setWaypointBehaviour "AWARE";
      {
       removeBackpackGlobal _x;
       removeAllWeapons _x;
       _curW = _weapons call BIS_fnc_selectRandom;
       [_x,_curW, 5] call BIS_fnc_addWeapon;
      } forEach units _hcunits;
     };
     
     if (_rpt) then {
      diag_log "###ETG Heli Crash and Drop Script by Kellojo###";
      diag_log format ["###Helicrash position: %1",_crashpos];
      diag_log "###End###";
     };
     
     _weapc = 0;
     _maxweapc = round (random _MaxWeap);
     _whold = createVehicle ["Box_IND_Wps_F",_crashpos,[], 25, "none"];
     clearMagazineCargoGlobal _whold;
     clearWeaponCargoGlobal _whold;
     clearItemCargoGlobal _whold;
     clearBackpackCargoGlobal _whold;
     while {_weapc < _maxweapc} do {
      _weapc = _weapc + 1;
      _curri = _Weapons call BIS_fnc_selectRandom;
      _Ammount = 1;
      _whold addWeaponCargoGlobal [_curri,_Ammount];
      _mag = getArray (configFile / "CfgWeapons" / _curri / "magazines");
      _whold addMagazineCargoGlobal [(_mag select 0),round random 6];
     };

     _magc = 0;
     _maxmagc = round (random _MaxMag);
     _whold = createVehicle ["Box_IND_Wps_F",_crashpos,[], 25, "none"];
     clearMagazineCargoGlobal _whold;
     clearWeaponCargoGlobal _whold;
     clearItemCargoGlobal _whold;
     clearBackpackCargoGlobal _whold;
     while {_magc < _maxmagc} do {
      _magc = _magc + 1;
      _curri = _magazines call BIS_fnc_selectRandom;
      _Ammount = round (random _MaxItem);

      _whold addMagazineCargoGlobal [_curri,_Ammount]; 
     };

     _ic = 0;
     _maxic = round (random _MaxItem);
     _whold = createVehicle ["Box_East_Grenades_F",_crashpos,[], 25, "none"];
     clearMagazineCargoGlobal _whold;
     clearWeaponCargoGlobal _whold;
     clearItemCargoGlobal _whold;
     clearBackpackCargoGlobal _whold;
     while {_ic < _maxic} do {
      _ic = _ic + 1;
      _curri = _Items call BIS_fnc_selectRandom;
      _Ammount = 1;
      _whold addItemCargoGlobal [_curri,_Ammount]; 
     };

     _bpackc = 0;
     _maxbpackc = round (random _MaxBpack);
     _whold = createVehicle ["Box_East_Grenades_F",_crashpos,[], 25, "none"];
     clearMagazineCargoGlobal _whold;
     clearWeaponCargoGlobal _whold;
     clearItemCargoGlobal _whold;
     clearBackpackCargoGlobal _whold;
     while {_bpackc < _maxbpackc} do {
      _bpackc = _bpackc + 1;
      _curri = _Backpacks call BIS_fnc_selectRandom;
      _Ammount = 1;
      clearBackpackCargoGlobal _whold;
      _whold addBackpackCargoGlobal [_curri,_Ammount]; 
     };

     [1] call fn_crashdrop;
    };

     

     

     


  19. 21 minutes ago, EO said:

     

    Something like this may well make it's way to into Ravage/Tales from Nowhere, with haleks twist on it. ^^

     

    Those videos are just me having fun with an existing working script by @mrcurry, I just modified it to be compatible with Ravage zeds...

      Reveal hidden contents
    
    
    //motionDetector.sqf
    if(!isDedicated) then {
    	private _mineClass = "DemoCharge_Remote_Ammo";
    	CMD_run = true;
    	private _nearObjects = [];
    
    	while { CMD_run } do {
    		private _newObjects = (player nearEntities [["zombie"], 50]);
    
    		{ 
    			private _mine = _x getVariable ["CMD_attachedMine", objNull];
    			deleteVehicle _mine;
    			_x setVariable ["CMD_attachedMine", nil];
    		} forEach (_nearObjects-_newObjects);
    		
    		_nearObjects = _newObjects;
    
    		{
    			if( !(player isEqualTo _x) && (vehicle _x isEqualTo _x) ) then {
    				private _mine = _x getVariable ["CMD_attachedMine", objNull];
    				if(abs speed _x >= 3) then {
    					if(isNull _mine) then {
    						_mine = _mineClass createVehicleLocal getPos _x;
    						_mine attachTo [_x, [0,0,0]];
    						_mine hideObject true;
    						_x setVariable ["CMD_attachedMine", _mine];
    						if(group _x isEqualTo group player) then {
    							playerSide revealMine _mine;
    						};
    					};
    				} else {
    					if(!isNull _mine) then {
    						detach _mine;
    						deleteVehicle _mine;
    					};
    				};
    			};
    		} forEach _nearObjects;
    		sleep 0.1;
    	};
    };

     

     

    Thanks man awesome idea

     

×