Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

145 Excellent


About b3lx

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. TERRAIN: Fallujah 1.2 ASSETS: Diyala, CUP terrains, RSO buildings, Veteran mod, MILITIA scripted factions, Max women, Women at work POSTPROCESSING: ReColor
  2. forget my previous fallujah RSO replacement script. Here's a great and fast one I'm working on for RSO, CUP and METIS Nature. The replacement function I use on on the Object Replament Modules mod is good for simple all purpose modifications but for so many different changes on a terrain it's better a specific script like this one. And this is the result:
  3. I think the sights on the ZU23 (both the collimator and the optical sight) are very difficult to use against land targets unless you have someone telling you where to aim. In single player if I don't want to cheat I have to get out of the vehicle to use the binoculars and get back in to aim. Could you make it possible to use binoculars while sitting on the gunner seat of the ZU23?
  4. Major update: -Can set area shape (rectangle or ellipse) -New object selection filters: probability, condition expression, exclusion areas -New object creation options: custom or random direction, snap to terrain, random height (good for trees), simple object mode, expression to run on each created object
  5. Thanks everyone for your suggestions!. I use postInit because contrary to preInit it makes it possible to use together with editor hide object modules. Definitely much faster than after mission initialised. I've been using a different updated version of this script that I put in my object replacement mod. @pognivet this is what I used for fallujah together with another script only to replace trees. Best way is to define the replacement script as a function and call it instead of execVM and call it pre or postInit. You can use center=player and use a small radius to see a preview in the editor. Don't use worldsize as radius if you don't use pre or post init, it will take forever. _center = [worldsize/2,worldsize/2]; _radius = worldsize; //chernarusian billboards [_center, _radius,[],["bilboard_cigara_chernomorky.p3d","bilboard_toaletak_armasan.p3d","bilboard_vodka.p3d","bilboard_beach.p3d","bilboard_everon.p3d","bilboard_likery_bardak.p3d","bilboard_strana_noveho_radu.p3d","bilboard_smadny_maskrnik.p3d","bilboard_bienvenudo.p3d","bilboard_escape.p3d","bilboard_seci_stroje.p3d","bilboard_riviera.p3d","bilboard_pizza_presto.p3d","bilboard_alkohol.p3d","bilboard_hlinik.p3d","bilboard_cibulka.p3d"], ["Land_Billboard_F"],0,false,1,[0,100],{_this setobjecttexture [0,(selectrandom billboardstextures)]}] execVM "replaceobjects.sqf"; //house with arches small and hut with no interior [_center,_radius,["HOUSE"],["Land_Dum_istan2","Land_Dum_olez_istan2"], ["rso_construct3","rso_complex5","rso_complex6","rso_h1","rso_h10","rso_h19","rso_shop3","rso_shop3b","rso_apartmentcomplex","rso_garages","rso_garage1","Land_villa_b","Land_villa"],0,false,1,[12,16]] execVM "replaceobjects.sqf"; //cubic buildings with interior [_center,_radius,["BUILDING","HOUSE"],["Land_Dum_olez_istan2_maly2","Land_Dum_olez_istan2_maly"], ["rso_hut1","rso_hut2","rso_hut4","rso_stores","rso_shack"],0,false,1,[8,10]] execVM "replaceobjects.sqf"; //old building very large [_center,_radius,["BUILDING","HOUSE"],["Land_Dum_istan2_02"], ["rso_big_f"],270,false,1] execVM "replaceobjects.sqf"; //old buildings single piece and double piece [_center, _radius,["BUILDING"],["Land_Dum_istan2_01","Land_Dum_istan2_03","Land_Dum_istan2_03a"], ["Land_House_C_10_EP1","rso_stores2","rso_stores3","rso_shop1"],0,false,1] execVM "replaceobjects.sqf"; //brown house small [_center, _radius,["HOUSE","BUILDING"],["Land_Dum_istan3_pumpa"], ["rso_store1","Land_House_C_4_EP1","Land_Unfinished_Building_01_F"], 0,false,0.5] execVM "replaceobjects.sqf"; //old house no interior [_center, _radius,["BUILDING"],["dum_mesto3_istan.p3d"], ["Land_17str","Land_17strb","rso_h20","rso_h21","Land_14str","Land_Unfinished_Building_02_F"],90,false] execVM "replaceobjects.sqf"; //brown house big [_center, _radius,[],["Land_Dum_istan3_hromada2"], ["rso_h17","Land_5str","Land_villa","Land_6str","Land_villa3","Land_villa_b"], 0,false,0.5] execVM "replaceobjects.sqf"; //house with arches big [_center, _radius,["house"],["Land_Dum_istan3"], ["rso_h18","Land_16str","Land_7str","Land_22str","rso_h6","rso_h15"], 90,false,0.5,[22.7,22.9]] execVM "replaceobjects.sqf"; //house without classname (parasol) [_center, _radius,[],["dum_olez_istan1_open.p3d"], ["Land_House_C_1_EP1","Land_House_C_1_v2_EP1","rso_cornershop1","Land_21str","Land_21str_b","Land_21str_c"]] execVM "replaceobjects.sqf"; //yellow apartment buildings [_center, _radius,["house"],["Land_Dum_istan4","Land_Dum_istan4_big"], ["rso_complex1","rso_complex2","rso_complex3","rso_complex4"], 180,false,0.1] execVM "replaceobjects.sqf"; //phonebooth [_center, _radius,[],["phone_box.p3d"], ["Land_GarbageHeap_02_F"]] execVM "replaceobjects.sqf"; //dumpster [_center, _radius,[],["kontejner.p3d"], ["Land_ChairPlastic_F","Oil_Spill_F", "Land_Plank_01_4m_F","Land_CratesPlastic_F","Land_CanisterFuel_Blue_F","Land_BarrelEmpty_F","Land_BarrelTrash_grey_F","Land_MetalBarrel_empty_F"]] execVM "replaceobjects.sqf";
  6. Updated. Now is possible to use model names instead of classnames of objects to be replaced.
  7. How can I order groups or units carrying mortars or Metis backpacks to assemble their weapons by script? I made an High Command action that orders a group to assemble their weapon. It works great and I'm trying to make it compatible with VTN but I only made it work with static MG's. It seems Mortar and Metis backpacks work in a totally different way. Ended up finding an alternative using createvehicle, removebackpack and another shenanigans. Love this mod, guys. Keep up the good work!
  8. Terrain Object Replacement Modules Replace or delete massive numbers of terrain objects easily Download: https://steamcommunity.com/sharedfiles/filedetails/?id=2276624333 Check images below for how to use: Explanation:
  9. You? Doing an Iraq terrain? And you care about palms?
  10. Update available on Steam: https://steamcommunity.com/sharedfiles/filedetails/?id=2062342317 Major changes since last post: MILITIA Mod now works with either Veteran Mod, CUP, RHS or just vanilla.
  11. AI properly following weapon safety rules: units should never have their weapons pointed at friendlies, maybe force lower weapon if cursorobject is a friendly
  12. The latest update includes a few modules that makes it very easy to set up an occupied area -Read module: put down vehicles and turrets for each faction (I advise only HMG's for now), customise vehicles appearance and put down objects that you want to attach to them (I use PLP materials to bulletproof vehicles for instance) -Area spawn module: it will spawn vehicles read by the read module preserving customisations, crew them and add passenger groups if seats are available. It will spawn units and turrets in buildings in CUP ME and RSO buildings (only the good ones not the those that AI can see through). (I've mapped a ton of positions, so this goes well beyond building positions). A ton of other options: VBIED included -Blacklist module: exclude buildings in area from occupation -Core module: faction selection I'm very happy with the result. I made them for myself but I'm sure other people will have fun with this.
  13. So if one is to create a config for these walls to make them bulletproof what properties should be changed?
  14. Here you have. This is the script I use. Those variables are actually global, by bad. Anyway it works with debug off so the only thing it does is to spawn an empty 20 seconds loop _center = [worldsize/2,worldsize/2]; _radius = worldsize; //for debug b3lx_DYA_HIDDEN_DEBUG = []; b3lx_DYA_HIDDEN_DEBUG_ON = false; ///////////////////FUNCTIONS _removeArrFNC = { _arr = _this; { hideObjectGlobal _x; b3lx_DYA_HIDDEN_DEBUG pushback _x; } forEach _arr; }; _rplModelFNC = { params ["_array","_oldList","_newlist"]; { _obj = _x; if ((getModelInfo _obj select 0) in _oldlist) then { _pos = getposATL _obj; _dir = getdir _obj; hideobjectglobal _obj; b3lx_DYA_HIDDEN_DEBUG pushback _x; _obj allowdamage false; _type = selectRandom _newlist; _new = _type createvehicle [0,0,0]; _new setdir _dir; if (_type == "b3lx_palm_B") then { _pos = _pos getpos [2.2,180+_dir]; }; _new setposATL _pos; }; } forEach _array; }; _removeModelFNC = { params ["_array","_oldlist"]; { _obj = _x; if ((getModelInfo _obj select 0) in _oldlist) then { hideobjectglobal _obj; b3lx_DYA_HIDDEN_DEBUG pushback _x; _obj allowdamage false; }; } forEach _array; }; _rplFNC = { params ["_array","_newobjarray"]; { _pos = getposATL _x; _dir = getdir _x; hideobjectglobal _x; b3lx_DYA_HIDDEN_DEBUG pushback _x; _x allowdamage false; _type = selectRandom _newobjarray; _new = _type createvehicle [0,0,0]; _new setdir _dir; if (_type == "b3lx_palm_B") then { _pos = _pos getpos [2.2,180+_dir]; }; _new setposATL _pos ; } forEach _array; }; ///////////////////GETDATA _trees = nearestTerrainObjects [_center, ["tree","small tree","bush"], _radius]; _all = nearestTerrainObjects [_center, [], _radius]; _houses = nearestTerrainObjects [_center, ["house"], _radius]; //_bushes = nearestTerrainObjects [_center, ["bush"], _radius]; //_other = (nearestTerrainObjects [_center, [], _radius]) - (_trees + _bushes + _houses); ///////////////////REMOVE BUSHES //_bushes call _removeArrFNC; ///////////////////REMOVE BAD MODEL BUSHES AND UNWANTED TREES _bushesToRemove = ["cype_brg_bird_1.p3d", "cype_brg_bird_3.p3d", "b_pistacial1s_ep1.p3d", "b_amygdalusn1s_ep1.p3d", "b_pinusm1s_ep1.p3d"]; _palmsToRemove = [ "cype_palm.p3d", "cype_palm_01.p3d", "cype_palm_02.p3d", "cype_palm_03.p3d", "cype_palm_04.p3d", "cype_palm_09.p3d", "cype_palm_10.p3d", "cype_palm_08small.p3d", "t_cacao_ripe_f.p3d", "t_cocosnucifera2s_small_f.p3d", "t_cocos_small_f.p3d", "t_cocos_tall_f.p3d" ]; _removetrees = _all select {(getModelInfo _x select 0) in (_bushesToRemove + _palmsToRemove)}; _removetrees call _removeArrFNC; ///////////////////REPLACE TREES _treesToReplace = ["t_cocosnucifera3s_tall_f.p3d","t_millettia_f.p3d","cype_amygdalus.p3d","t_ficusb1s_f.p3d","t_ficusb2s_f.p3d"]; _replacetrees = _trees select {(getModelInfo _x select 0) in _treesToReplace}; [_replacetrees, DYAtreesReplacers] call _rplFNC; //REPLACE TALL CUP RURAL BUILDINGS _CUPbldTall = [ "Land_House_K_8_EP1", "Land_House_K_8_dam_EP1", "Land_House_K_6_EP1", "Land_House_K_6_dam_EP1", "Land_House_K_3_EP1", "Land_House_K_3_dam_EP1", "Land_House_K_7_EP1", "Land_House_K_7_dam_EP1" ]; _housesRPL = _houses select {typeOf _x in _CUPbldTall}; [_housesRPL,DYAhousesReplacers] call _rplFNC; [b3lx_DYA_HIDDEN_DEBUG] spawn { while {true} do { sleep 20; if b3lx_DYA_HIDDEN_DEBUG_ON then { _test = 0; _test = count (b3lx_DYA_HIDDEN_DEBUG select {!(isObjectHidden _x)}); hint format ["time: %1, unhidden: %2",time, _test]; }; }; };