Jump to content

CheyenneAH56

Member
  • Content Count

    60
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by CheyenneAH56


  1. Hi all ; I'll try to make it short.

     

    I have created a new weapon, with three fire modes which can be installed on all vanilla and community planes and helicopters, even those provided without weapons at the base (e.g. unarmed WY-55, etc.).

    Everything is working well, except that I cannot see the display of fire modes in the HUD at the top right, on any of the vehicles.

     

    I then understood slightly that the display seams to depends on the vehicle and its configuration (UnitInfoType: RscBlaBlaBla), and not on the weapon, because this one, moreover, is a weapon mountable on vehicle (so WeaponInfoType: RscBlaBlaBla is not used).

     

    Therefore ; to counter this, i created a control display and a script.

    The only current problem, when the player is in the pause menu, the display remains there, same for the splendid camera, same for the spectator mode, same for the GUI editor, etc.

    I managed to use a displayeventhandler to hide the control display in the pause menu, but not for the rest mentioned.

     

    If someone can do a lot much easier, I'm interested, just to understand a little better ! 😶

     

    > Here is the script :

     

    _veh = _this select 0;
    
    waitUntil {(currentWeapon _veh == "MyNewWeapon") && (!isNull findDisplay 46)};
    ("FireModes" call BIS_fnc_rscLayer) cutRsc ["RscTitleDisplayEmpty", "PLAIN", -1, false];
    
    with uiNamespace do
    {
    	_display = uiNamespace getVariable "RscTitleDisplayEmpty";
    	FireModes = _display ctrlCreate ["RscStructuredText", -1];
    };
    
    sleep 0.01;
    FireModes = [uiNamespace getVariable "FireModes"];
    (FireModes select 0) ctrlSetPosition [32.5 * (((safezoneW / safezoneH) min 1.2) / 40), -1.60 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25), 0.095 * safezoneW, 0.085 * safezoneH];
    
    sleep 0.01;
    (findDisplay 46) displayAddEventHandler ["KeyDown", "if (_this select 1 == 0x01) then {(FireModes select 0) ctrlShow false;};"];
    
    while {alive _veh} do
    {
    	(FireModes select 0) ctrlCommit 0.0;
    
    	if ((currentWeapon _veh == "MyNewWeapon") && (player in _veh) && (assignedDriver _veh == player) && !(visibleMap) && (isNull (uinamespace getvariable "RscDisplayInterrupt"))) then
    	{
    		(FireModes select 0) ctrlShow true;
    		(FireModes select 0) ctrlSetStructuredText parseText format ["<t size='0.8' align='Left' font='RobotoCondensed' color='#D9FFFFFF'>%1</t>", gettext (configFile >> "CfgWeapons" >> "MyNewWeapon" >> (currentWeaponMode (driver _veh)) >> "displayName")];
    	}
    	else
    	{
    		(FireModes select 0) ctrlShow false;
    	};
    };
    
    sleep 0.01;
    ctrlDelete (FireModes select 0);
    
    sleep 0.01;
    terminate _thisScript;

     

    > Here is the configuration of the weapon (it is unusual / but do not focus on it, it works) :

     

    class CfgWeapons
    {
    	class Laserdesignator;
    	class MyNewWeapon : Laserdesignator
    	{
    		//_generalMacro = "Laserdesignator";
    		access = 3;
    		aiDispersionCoefX = 1;
    		aiDispersionCoefY = 1;
    		aimTransitionSpeed = 1;
    		aiRateOfFire = 5;
    		aiRateOfFireDispersion = 0;
    		aiRateOfFireDistance = 500;
    		ammo = "";
    		artilleryCharge = 1;
    		artilleryDispersion = 1;
    		author = "Bohemia Interactive";
    		autoFire = 0;
    		autoReload = 1;
    		backgroundReload = 1;
    		ballisticsComputer = 0;
    		burst = 100;
    		canMODE = 1;
    		canLock = 0;
    		canShootInWater = 0;
    		cartridgePos = "nabojnicestart";
    		cartridgeVel = "nabojniceend";
    		changeFiremodeSound[] = {"",1,1};
    		cmImmunity = 1;
    		count = 0;
    		cursor = "laserDesignator";
    		cursorAim = "EmptyCursor";
    		cursorAimOn = "CursorAimOn";
    		cursorSize = 1;
    		detectRange = 0;
    		dispersion = 0.002;
    		displayName = "MyNewWeapon";
    		distanceZoomMax = 2300;
    		distanceZoomMin = 100;
    		drySound[] = {"",1,1};
    		emptySound[] = {"",1,1};
    		enableAttack = 1;
    		ffCount = 1;
    		ffFrequency = 1;
    		ffMagnitude = 0;
    		fireAnims[] = {};
    		fireLightAmbient[] = {0,0,0};
    		fireLightDiffuse[] = {0.937,0.631,0.259};
    		fireLightDuration = 0.05;
    		fireLightIntensity = 0.2;
    		fireSpreadAngle = 3;
    		forceOptics = 0;
    		handAnim[] = {};
    		hiddenSelections[] = {};
    		hiddenSelectionsTextures[] = {};
    		hiddenUnderwaterSelections[] = {};
    		hiddenUnderwaterSelectionsTextures[] = {};
    		inertia = 0.1;
    		initSpeed = 0;
    		irDistance = 0;
    		irDotIntensity = 0.001;
    		irLaserEnd = "laser dir";
    		irLaserPos = "laser pos";
    		Laser = 1;
    		lockAcquire = 1;
    		lockedTargetSound[] = {"",0.000316228,6};
    		lockingTargetSound[] = {"",0.000316228,2};
    		magazineReloadSwitchPhase = 1;
    		magazineReloadTime = 0;
    		magazines[] = {"MyNewWeaponMag"};
    		maxLeadSpeed = 10000;
    		maxRange = 850;
    		maxRangeProbab = 0.1;
    		maxRecoilSway = 0.008;
    		memoryPointCamera = "eye";
    		midRange = 500;
    		midRangeProbab = 0.75;
    		minRange = 1;
    		minRangeProbab = 0.95;
    		//model = "\A3\Weapons_F\Binocular\laserdesignator_f.p3d";
    		modelMagazine = "";
    		//modelOptics = "\A3\Weapons_F_beta\Binocular\lasermarker_optics";
    		modelSpecial = "";
    		modes[] = {"MyNewWeapon_1","MyNewWeapon_2","MyNewWeapon_3"};
    		multiplier = 1;
    		muzzleEnd = "konec hlavne";
    		muzzlePos = "usti hlavne";
    		muzzles[] = {"this"};
    		nameSound = "binoculars";
    		optics = 1;
    		opticsDisablePeripherialVision = 1;
    		opticsFlare = 1;
    		opticsID = 0;
    		opticsPPEffects[] = {"OpticsCHAbera1","OpticsBlur1"};
    		opticsZoomInit = 0.05;
    		opticsZoomMax = 0.05;
    		opticsZoomMin = 0.01;
    		//picture = "\A3\Weapons_F_Mark\Data\UI\gear_laserdesignator_ca.paa";
    		primary = 0;
    		recoil = "empty";
    		recoilProne = "";
    		reloadAction = "";
    		reloadMagazineSound[] = {"",1,1};
    		reloadSound[] = {"",1,1};
    		reloadTime = 0.05;
    		scope = 2;
    		selectionFireAnim = "zasleh";
    		showAimCursorInternal = 1;
    		showEmpty = 1;
    		shownUnderwaterSelections[] = {};
    		showSwitchAction = 1;
    		showToPlayer = 1;
    		simulation = "weapon";
    		sound[] = {"",0,1};
    		soundBegin[] = {"sound",1};
    		soundBeginWater[] = {"sound",1};
    		soundBullet[] = {"emptySound",1};
    		soundBurst = 1;
    		soundClosure[] = {"sound",1};
    		soundContinuous = 0;
    		soundEnd[] = {"sound",1};
    		soundLoop[] = {"sound",1};
    		sounds[] = {};
    		swayCoef = 0.34;
    		swayDecaySpeed = 2;
    		textureType = "default";
    		thermalMode[] = {2};
    		type = 4096;
    		uiPicture = "";
    		useAction = 0;
    		useActionTitle = "";
    		useAsBinocular = 1;
    		useModelOptics = 1;
    		value = 5;
    		visionMode[] = {"Normal","NVG","TI"};
    		//weaponInfoType = "RscUnitInfoAir"; //"RscOptics_LaserDesignator_2"; Not used for vehicle mounted weapon
    		weaponLockDelay = 0;
    		weaponLockSystem = 0;
    		weaponPoolAvailable = 1;
    		weaponSoundEffect = "";
    		weight = 0;
    		zeroingSound[] = {"",1,1};
    
    		class MyNewWeapon_1 : Laserdesignator
    		{
    			displayName = "FULL MODE";
    			autoFire = 0;
    			autoReload = 1;
    			backgroundReload = 1;
    			reloadTime = 0.05;
    			burst = 100;
    		};
    
    		class MyNewWeapon_2 : Laserdesignator
    		{
    			displayName = "HALF MODE";
    			autoFire = 0;
    			autoReload = 1;
    			backgroundReload = 1;
    			reloadTime = 0.05;
    			burst = 50;
    		};
    
    		class MyNewWeapon_3 : Laserdesignator
    		{
    			displayName = "LITE MODE";
    			autoFire = 0;
    			autoReload = 1;
    			backgroundReload = 1;
    			reloadTime = 0.05;
    			burst = 25;
    		};
    
    		class Eventhandlers {};
    	};
    };

     


  2. Hi everybody, I will keep it simple ; I need to create and animate a progress bar, and hide unit info (displayctrl 184) when the player is in a vehicle ;

    BUT like any HUD display, I need the progress bar to be hidden when map is open, game is paused, etc.

     

    My problem is that the progress bar does not hide when the game is paused, or when I activate the splendid camera, etc. 🤔

    The only thing I can do is hide when map is open.

     

    it's still in the development stage, I'm only testing the possibility of hiding the bar

    Here is my configuration and my script:

     

    CfgIGUI.hpp

    class WF_RscProgress
    {
        type = 8;
        style = 0;
        shadow = 2;
        texture = "#(argb,8,8,3)color(0.4,0.6,1.0,1.0)";
        colorFrame[] = {1,1,1,1};
        colorBar[] = {1,1,1,1};
        colorBackground[] = {1,1,1,1};
        x = 1.05;
        y = 0.1;
        w = 0.2;
        h = 0.025;
    };
    
    class RscTitles
    {
        class Default
        {
            idd = -1;
            fadein = 0;
            fadeout = 0;
            duration = 0;
        };
    
        class WF_Progress
        {
    
            name = "WF_Progress";
            idd = 611983;
            fadein=0;
            duration = 99999999999;
            fadeout=0;
            movingEnable = 0;
            onLoad = "uiNamespace setVariable ['WF_Progress',_this select 0]";
            objects[]={};
    
            class controlsBackground
            {
                class ProgressBar : WF_RscProgress
                {
                    idc = 6119831;
                    x = 0.8055 * safezoneW + safezoneX;
                    y = 0.07 * safezoneH + safezoneY;
                    w = 0.28; h = 0.03;
                };
            };
        };
    };

     

    MyTestScript

    _veh = _this select 0;
    
    sleep 0.01;
    disableSerialization;
    "WF_Progresslayer" cutRsc ["WF_Progress","PLAIN", -1, false];
    
    sleep 0.01;
    _UnitInfoPos = ctrlPosition ((uiNameSpace getVariable "RscUnitInfo") displayCtrl 184);
    _WF_ProgrPos = ctrlPosition ((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831);
    
    while {alive player} do
    {
    	if ((player in _veh) AND (isNull (findDisplay 49))) then
    	{
    		((uiNameSpace getVariable "RscUnitInfo") displayCtrl 184) ctrlSetPosition [0,0,0,0];
    	  	((uiNameSpace getVariable "RscUnitInfo") displayCtrl 184) ctrlCommit 0;
    	  	sleep 0.01;
    	  	((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) ctrlSetPosition _WF_ProgrPos;
    	  	((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) progressSetPosition (0.0001 max 100);
    	  	((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) ctrlSetTextColor [0.4,0.6,1.0,(0.45 max 100)];
    	  	((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) ctrlCommit 0;
    	}
    	else
    	{
    		((uiNameSpace getVariable "RscUnitInfo") displayCtrl 184) ctrlSetPosition _UnitInfoPos;
    		((uiNameSpace getVariable "RscUnitInfo") displayCtrl 184) ctrlCommit 0;
    		sleep 0.01;
    		((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) ctrlSetPosition [0,0,0,0];
    		((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) progressSetPosition 0;
    	  	((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) ctrlSetTextColor [0,0,0,0];
    		((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831) ctrlCommit 0;
    	};
    };
    
    sleep 0.01;
    ctrlDelete (((uiNameSpace getVariable "WF_Progress") displayCtrl 6119831));
    terminate _thisscript;

    Can someone help me ! Please ! 🙄


  3. Hi Johnnyboy; small questions :

    I developed the script and it works well, but I have two small problems !

     

    • the first is that the dog, who is an agent, is not subject to collisions and literally crosses objects (houses, walls, etc.);
    • the second is that although I can define a destination, the dog constantly changes direction between the starting point and the destination position, sometimes it goes to the opposite for a hundred meters before returning on the destination position randomly. I tried to use unitName disableai "PATH" when the dog faces the destination position, using BIS_fnc_inAngleSector, but it does not change much to the deal.

     

    Do you have a solution ?

    Here is my script / Try it ; call this script with player and put an injured civilian near him

     

    Alpha script

    _Master = _this select 0;
    _DogAgent = createAgent ["Alsatian_SandBlack_F", (_Master getRelPos [1, (getDir _Master) + 35]), [], 5, "NONE"];
    _DogAgent setVariable ["BIS_fnc_animalBehaviour_disable", true];
    sleep 0.01;
    _DogAgent playMoveNow "Dog_Sit";
    
    _DogArrow = "Sign_Arrow_Large_F" createVehicle position _DogAgent;
    _DogArrow attachTo [_DogAgent,[0,0,7]];
    _DogArrow2 = "Sign_Arrow_Large_F" createVehicle position _DogAgent;
    _DogArrow2 attachTo [_DogAgent,[0,0,14]];
    _DogArrow3 = "Sign_Arrow_Large_F" createVehicle position _DogAgent;
    _DogArrow3 attachTo [_DogAgent,[0,0,21]];
    
    _markerstr0 = createMarker ["Mk_victim", [0,0,0]];
    _markerstr0 setMarkerShape "ELLIPSE";
    _markerstr0 setMarkerSize [5,5];
    _markerstr0 setMarkerColor "ColorRed";
    
    _markerstr1 = createMarker ["Mk_Dog", [0,0,0]];
    _markerstr1 setMarkerShape "ELLIPSE";
    _markerstr1 setMarkerSize [3,3];
    _markerstr1 setMarkerColor "ColorBlue";
    
    _markerstr2 = createMarker ["Mk_Dog_expt", [0,0,0]];
    _markerstr2 setMarkerShape "ELLIPSE";
    _markerstr2 setMarkerSize [5,5];
    _markerstr2 setMarkerColor "ColorGreen";
    
    {_DogAgent enableCollisionWith _x} forEach (nearestTerrainObjects [_DogAgent, [],200]); //does not work
    
    sleep 2.00;
    
    while {alive _DogAgent} do
    {
    	sleep 0.01;
    	_entts = _DogAgent nearEntities ["Man", 50];
    	_vctmList = [];
    	sleep 0.10;
    	{if ((getDammage _x) > 0.1) then {_vctmList pushback _x;}} forEach _entts;
    
    	sleep 1.00;
    
    	if ((count _vctmList) < 1) then
    	{
    		if ((_DogAgent distance2D _Master) > 10) then
    		{
    			sleep 0.01;
    			_DogAgent playMoveNow "Dog_Run";
    		};
    
    		if (((_DogAgent distance2D _Master) > 5) && ((_DogAgent distance2D _Master) < 10)) then
    		{
    			sleep 0.01;
    			_DogAgent playMoveNow "Dog_Walk";
    		};
    
    		if ((_DogAgent distance2D _Master) < 5) then
    		{
    			sleep 0.01;
    			_DogAgent playMoveNow "Dog_Sit";
    		};
    
    		if ([position _DogAgent, getDir _DogAgent, 30, position _Master] call BIS_fnc_inAngleSector) then
    		 {
    		 	_DogAgent disableai "PATH";
    		 }
    		 else
    		 {
    		 	_DogAgent enableai "PATH";
    		 };
    
    		sleep 0.01;
    		_DogAgent moveTo (getPos _Master);
    	}
    	else
    	{
    		if ((_DogAgent distance2D (_vctmList select 0)) > 10) then
    		{
    			sleep 0.01;
    			_DogAgent playMoveNow "Dog_Run";
    		};
    
    		if (((_DogAgent distance2D (_vctmList select 0)) > 5) && ((_DogAgent distance2D (_vctmList select 0)) < 10)) then
    		{
    			sleep 0.01;
    			_DogAgent playMoveNow "Dog_Walk";
    		};
    
    		if (((_DogAgent distance2D (_vctmList select 0)) < 5)) then
    		{
    			sleep 0.01;
    			_DogAgent playMoveNow "Dog_Idle_09";
    			_DogAgent playMove "Dog_Idle_Bark";
    		};
    
    		if ([position _DogAgent, getDir _DogAgent, 30, position (_vctmList select 0)] call BIS_fnc_inAngleSector) then
    		 {
    		 	_DogAgent disableai "PATH";
    		 }
    		 else
    		 {
    		 	_DogAgent enableai "PATH";
    		 };
    
    		sleep 0.01;
    		_DogAgent moveTo (markerPos "Mk_victim");
    
    		sleep 0.01;
    		"Mk_victim" setMarkerPos (getPos (_vctmList select 0)); //victim position
    
    		sleep 0.01;
    		"Mk_Dog" setMarkerPos (getPos _DogAgent); //dog position
    
    		sleep 0.01;
    		_Expt = expectedDestination _DogAgent; //dog expected destination
    		"Mk_Dog_expt" setMarkerPos (_Expt select 0);
    
    		sleep 0.01;
    		hintSilent parsetext format ["<t align='left' color='#028ee0'>%4</t><t align='left'> victim(s) found</t><br/><t align='left' color='#ff7200'>%1</t><br/><t align='left'>victim is injured at</t><t align='left' color='#028ee0'> %2</t><t align='left'>%3</t><br/><br/><t align='left'>Dog agent </t><t align='left' color='#e00034'>%6</t><t align='left'>m to victim</t><br/><br/><t align='left' color='#00e003'>%7</t><br/><br/><t align='left'>Dog face victim? (+/-30°) </t><t align='left' color='#fa00ff'>%8</t>", name (_vctmList select 0), round (100-(getDammage (_vctmList select 0))*100), "%", count _vctmList, round (100-(getDammage (_DogAgent))*100), round(_DogAgent distance2D (_vctmList select 0)), _Expt, [position _DogAgent, getDir _DogAgent, 30, position (_vctmList select 0)] call BIS_fnc_inAngleSector];
    	};
    };

    Service-Dogs-Ww1-World-War-One-German-Sh


  4. Hi All,

     

    having a little problem ;

     

    When I use the following piece of code, the script works (Arma 3 Animals: Override Default Animal Behaviour Via Script).

    Here the working code :

    _Master = _this select 0;
    _DogAgent = createAgent ["Alsatian_Sand_F", (getPos _Master), [], 5, "CAN_COLLIDE"];
    _DogAgent setVariable ["BIS_fnc_animalBehaviour_disable", true];
    
    _DogAgent playMoveNow "Dog_Sprint";
    
    while {alive _DogAgent} do
    {
    	_DogAgent moveTo (getpos _Master);
    };

     

    When I perfect this script, the dog no longer follows me and walks in a straight line to infinity.

    Here my reworked code :

    _Master = _this select 0;
    _DogAgent = createAgent ["Alsatian_Sand_F", (getPos _Master), [], 5, "CAN_COLLIDE"];
    _DogAgent setVariable ["BIS_fnc_animalBehaviour_disable", true];
    
    while {alive _DogAgent} do
    {
    	if ((_DogAgent distance2D player) > 12) then
    	{
    		sleep 0.01;
    		_DogAgent playMoveNow "Dog_Sprint";
    		sleep 0.01;
    		hintSilent "SPRINT";
    	};
    
    	if (((_DogAgent distance2D player) > 6) && ((_DogAgent distance2D player) < 12)) then
    	{
    		sleep 0.01;
    		_DogAgent playMoveNow "Dog_Run";
    		sleep 0.01;
    		hintSilent "RUN";
    	};
    
    	if (((_DogAgent distance2D player) > 2) && ((_DogAgent distance2D player) < 6)) then
    	{
    		sleep 0.01;
    		_DogAgent playMoveNow "Dog_Walk";
    		sleep 0.01;
    		hintSilent "WALK";
    	};
    
    	if ((_DogAgent distance2D player) < 2) then
    	{
    		sleep 0.01;
    		_DogAgent playMoveNow "Dog_Sit";
    		sleep 0.01;
    		hintSilent "SIT";
    	};
    	sleep 0.01;
    	_DogAgent moveTo getPos player;
    };

     

    I want the dog to follow me, sprint when I'm away from him, walk when I'm near him, and sit down when he is very close to me.

    If someone found a solution I'm interested !

     

    Bye


  5. Hi,
    unfortunately it would be necessary to rewrite all the scripts of the mod. It's feasible, but for now I do not have much time to myself.

     

    In addition, the scripts are in sqs; Since then I have evolved and gained know-how about scripts.

    I would have to review everything in sqf, and delete the global commands.

    • Like 1

  6. Hello everyone,

    I need a little help I try to create, through a script, a combination of modules to add a civilian presence to the cities crossed by the player.

     

    The problem is that at the launch of the mission, despite the generation of three modules (visible and existing in Zeus mode) the main module (ModuleCivilianPresence_F) does not link with the other two modules (ModuleCivilianPresenceSafeSpot_F and ModuleCivilianPresenceUnit_F), and I have the following error message :

     

    "bis_fnc_moduleCivilianPresence [x] Civilian Presence L-Alpha 1-2: 1 terminated." There are at least 1 spawnpoint and 1 position module. "

     

    How to make dialogue, synchronize the three modules, created via a script, ingame ?

    This is just a piece of extracted code; the rest of my project works perfectly :

     

    Do not pay attention to the two ways to create a unit, both ways work exactly the same, I put the necessary characters to hide the text for reading the script > /* and */

    _townLoc = nearestLocations [getPos player, ["NameVillage","NameCity","NameCityCapital","NameLocal","CityCenter","Airport"], 2500];
    
    if ((count _townLoc) > 0) then
    {
    	sleep 0.01;
    	_townPos = locationPosition (_townLoc select 0);
    
    	/*
    	sleep 0.50;
    	_MCP_Spawn = (createGroup sideLogic) createUnit ["ModuleCivilianPresenceUnit_F",_townPos,[],0,"NONE"];
    	_MCP_Spawn setvariable ['BIS_fnc_initModules_disableAutoActivation', false];
    	sleep 0.50;
    	_MCP_SafeSpot = (createGroup sideLogic) createUnit ["ModuleCivilianPresenceSafeSpot_F",_townPos,[],0,"NONE"];
    	_MCP_SafeSpot setvariable ['BIS_fnc_initModules_disableAutoActivation', false];
    	sleep 0.50;
    	_MCP_Module = (createGroup sideLogic) createUnit ["ModuleCivilianPresence_F",_townPos,[],0,"NONE"];
    	_MCP_Module setvariable ['BIS_fnc_initModules_disableAutoActivation', false];
    	*/
    
    	sleep 0.50;
    	_MCP_SafeSpot = "ModuleCivilianPresenceSafeSpot_F" createUnit [_townPos, createGroup sideLogic, "this setVariable ['BIS_fnc_initModules_disableAutoActivation', false];", 0.6, "PRIVATE"];
    	sleep 0.50;
    	_MCP_Spawn = "ModuleCivilianPresenceUnit_F" createUnit [_townPos, createGroup sideLogic, "this setVariable ['BIS_fnc_initModules_disableAutoActivation', false];", 0.6, "PRIVATE"];
    	sleep 0.50;
    	_MCP_Module = "ModuleCivilianPresence_F" createUnit [_townPos, createGroup sideLogic, "this setVariable ['BIS_fnc_initModules_disableAutoActivation', false];", 0.6, "PRIVATE"];
    };

    Otherwise I also tried another method : 

    I to place the necessary modules in the 3den editor, then move them by script when the player is near a locality.

    The modules change position, but the created civil entities always go to the moduleCivilianPresenceSafeSpot module's initial position, ie the position of the module when it was placed in the editor, even if it was changed position. :/

    • Like 1

  7. 2 hours ago, jacknorrisuk said:

    I had a good play with this yesterday - really awesome work! 

    The aircraft look great and it's cool to watch them dumping water on the fire, but the ground vehicles are really nice too - can't wait until they are also capable of firefighting.

     

    My only suggestion is for giving mission makers control over where the fire is placed, rather than in-game. Perhaps an editor-placable fire that doesn't spread, so mission makers can make specific fire shapes/locations for rescue missions etc?

     

    Thanks a lot for your comments.

     

    I take into consideration your suggest !

     

    ;)

    • Like 1

  8. One thing is unfortunate, I worked and produced a version of the BE-200, from the creations of Mr Massimo Taccolli (FS) and / or the Wing of Peace mod (A2), but not being able to reach Mr Taccolli, or team of Wing of peace, I do not have permission to upload the BE-200. I tried to join Mukcep (WoP), but no answer.

     

    Really bad, because the plane is great, especially with the SCmod.


  9. 3 hours ago, venthorror said:

    Amazing mod!

    It' on the front page of Steam workshop congratulations.

     

    How did you make post process effects change screen color gradually when approaching fire? All I was ever able to do is make it change screen color instantly.

     

    Thanks a lot.

     

    easy :icon_biggrin:

     

    Using a script, when the player is close to a flame, I use a mathematical calculation to determine a coefficient, usable as a variable.

    The distance between the player and the flame determines this coefficient.

     

    Here is the script :

     

    _fogX = fogParams;
    _effprox = ppEffectCreate ["ColorCorrections", 1000];
    
    #LoopEffect
    _firelist = player nearObjects ["SCmod_fire", 300];
    _countF = count _firelist;
    ~0.5
    ?(_countF == 0): goto "EffectOff";
    _firenear = _firelist select 0;
    
    ?!(isNull _firenear) : goto "LoopPart2";
    ~0.01
    goto "LoopEffect";
    
    #LoopPart2
    _distanceX = player distance _firenear;
    _coeffD = _distanceX;
    goto "EffectChange";
    
    #EffectOff
    ~0.01
    "ColorCorrections" ppEffectCommit 3;
    "ColorCorrections" ppEffectEnable true;
    "ColorCorrections" ppEffectAdjust [1.00,1.00,0.00,[0.00,0.00,0.00,0.00],[1.00,1.00,1.00,1.00],[0.50,0.25,0.25,1.00]];
    3.01 setFog [_fogX select 0, _fogX select 1, _fogX select 2];
    
    ~3.00
    "ColorCorrections" ppEffectEnable false;
    goto "LoopEffect";
    
    #EffectChange
    ~0.01
    _kA = 0.90 + (_coeffD/3000);
    _kB = -0.10 + (_coeffD/3000);
    _kC = 0.05 - (_coeffD/6000);
    _kD = 0.45 - (_coeffD*0.0015);
    _kE = 0.75 - (_coeffD*0.0025);
    _kF = -0.50 + (_coeffD/600);
    _kG = 2.50 - (_coeffD*0.005);
    _kH = 1.70 - (_coeffD*0.00233);
    _kI = 0.60 + (_coeffD*0.00133);
    _kJ = 0.30 + (_coeffD*0.00233);
    _kK = 0.20 + (_coeffD*0.001);
    _kL = 0.30 - (_coeffD*0.00016);
    _kM = 0.20 + (_coeffD*0.00016);
    
    _fogV = 0.50 - (_coeffD*0.00165);
    _fogD = 0.01 - (_coeffD*0.000033);
    _fogB = 150 - (_coeffD/2);
    
    ~0.01
    "ColorCorrections" ppEffectCommit 0.75;
    "ColorCorrections" ppEffectEnable true;
    "ColorCorrections" ppEffectAdjust [1.00,_kA,_kB,[_kC,_kD,_kE,0.00],[_kG,_kH,_kI,_kJ],[_kK,_kL,_kM,1.00]];
    0.75 setFog [_fogV, _fogD, _fogB];
    
    ~0.8
    goto "LoopEffect";

     

    • Like 2

  10.  

    16 hours ago, jacknorrisuk said:

    This looks awesome, can't wait to try it!

     

    So, the fire system actually enables the flames to spread? This could create some amazing gameplay scenarios...will it engulf villages and destroy buildings if not halted?

     

    Yes, indeed, once the fire is lit, it remains free to go over the whole map, depending on the wind, and can destroy any object on its way.

    • Like 1

  11. no I don't repack data_f.pbo.

    create new addon folder.

     

    in my addons folder :

     

    \config.cpp

    \proxies\rope\model.cfg

    \proxies\rope\rope.p3d ----> modified with ODOL Web converter ----> Name original segment with named selection and added new rope segment with named selections.

     

    Here my config.cpp :

     

    ////////////////////////////////////////////////////////////////////
    //SCmod by CheyenneAH56
    ////////////////////////////////////////////////////////////////////
    
    #define _ARMA_
    
    //ndefs=13
    //Class data_f : hook\config.bin{
    
    class CfgPatches
    {
    	class SCmod_Rope
    	{
    		units[] = {};
    		weapons[] = {};
    		requiredVersion = 0.1;
    		requiredAddons[] = {"A3_Data_F"};
    	};
    };
    class CfgVehicles
    {
    //SCROPE
    	/*extern*/ class All;
    
    	class Rope: All
    	{
    		model = "\SCmod_rope\proxies\Rope\rope.p3d";
    		hiddenSelections[] = {"pipe", "pipeX"};
    		hiddenSelectionsTextures[] = {"","a3\data_f\proxies\rope\data\rope_co.paa"};
    	};
    }
    //};
    
    class CfgNonAIVehicles
    {
    	class RopeSegment
    	{
    		model = "\SCmod_rope\proxies\Rope\rope.p3d";
    		hiddenSelections[] = {"pipe", "pipeX"};
    		hiddenSelectionsTextures[] = {"","a3\data_f\proxies\rope\data\rope_co.paa"};
    	};
    		
    	class RopeEnd: RopeSegment
    	{
    		model = "\A3\Data_f\Hook\Hook_F.p3d";
    	};
    };

    inside my model.cfg :

     

    class CfgSkeletons
    {
        class Skeleton
        {
            isDiscrete=0;
    
            skeletonInherit="";
    
            skeletonBones[]={};
    
        };
    
    };
    
    class CfgModels
    {
        class rope
        {
            htMin=0;
    
            htMax=0;
    
            afMax=0;
    
            mfMax=0;
    
            mFact=0;
    
            tBody=0;
    
            skeletonName="Skeleton";
    
            sectionsInherit="";
    
            sections[]={"pipe","pipex"};
    
            class Animations{};
        
        };
    
    };

    pipe is original segment model

    pipeX is a new one, added inside same LOD 0.000, at same place, but bigger.

     

    and I use this little script to change texture, and reveal my pipeX (SCmod pipe) or rope model (pipe) :

     

    ropeX = vehicle player nearObjects ["rope", 20];
    ropesegmentX = vehicle player nearObjects ["ropesegment", 20];
    {if (typeOf _x == "rope") then {_x setObjectTexture [0, "\scmod_fire\data\pipes.paa"]; _x setObjectTexture [1, ""];};} foreach ropeX;
    {if (typeOf _x == "ropesegment") then {_x setObjectTexture [0, "\scmod_fire\data\pipes.paa"]; _x setObjectTexture [1, ""];};} foreach ropesegmentX;

     

×