Jump to content

[evo] dan

Member
  • Content Count

    1504
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by [evo] dan


  1. On 8/6/2023 at 8:03 PM, Fred1988 said:

    Is there any simple trigger script that can end a scenario with a faction victory?

     

    I've used this code to end previous scenarios 

    SCR_BaseGameMode gameMode = SCR_BaseGameMode.Cast(GetGame().GetGameMode());

    Faction faction = GetGame().GetFactionManager().GetFactionByKey("US");

    int usIndex = GetGame().GetFactionManager().GetFactionIndex(faction);

    gameMode.EndGameMode(SCR_GameModeEndData.CreateSimple(SCR_GameModeEndData.ENDREASON_EDITOR_FACTION_VICTORY, -1, usIndex));

     

    But now the workbench refuses to work with it

     

    I had a quick look at this as I was looking at how to do it. On the last line, you cannot use the SCR_GameModeEndData, it has been moved into an enum - see my below code for something that works.

    		SCR_BaseGameMode gameMode = SCR_BaseGameMode.Cast(GetGame().GetGameMode());
    		Faction faction = GetGame().GetFactionManager().GetFactionByKey("US");
    		int usIndex = GetGame().GetFactionManager().GetFactionIndex(faction);
    		gameMode.EndGameMode(SCR_GameModeEndData.CreateSimple(EGameOverTypes.COMBATPATROL_VICTORY, -1, usIndex));

    Once you type in the EGameOverTypes and then press the "." key, you'll see a list of the available types - I picked COMBATPATROL_VICTORY. I hope this helps you out.

    • Like 1

  2. Ok. I have managed to figure this out. I have had to assign the variable to the trigger space using setVariable before referencing it.

     

    It now looks like:

    //create all the trigger references here
    _trg = createTrigger ["EmptyDetector", _markerLocation];
    _trg1 = createTrigger ["EmptyDetector", getMarkerPos _selectedHospital];
    _trg2 = createTrigger ["EmptyDetector", getMarkerPos _selectedHospital];
    
    //create the first trigger for joining group
    _trg setTriggerArea [10, 10, 0, false];
    _trg setVariable ["officer", _unit];
    _trg setTriggerActivation ["ANYPLAYER", "PRESENT", true];
    _trg setTriggerStatements ["this", "[(thisTrigger getVariable 'officer')] join group (thisList select 0);", ""];
    
    //create the second trigger for leaving the group - don't forget to succeed the mission with this and call a new side mission
    _trg1 setTriggerArea [20, 20, 0, false];
    _trg1 setVariable ["officer", _unit];
    _trg1 setVariable ["trigger2", _trg2];
    _trg1 setTriggerActivation ["ANY", "PRESENT", true];
    _trg1 setTriggerStatements ["(thisTrigger getVariable 'officer') in thisList", format["[(thisTrigger getVariable 'officer')] join grpNull; ['%1','SUCCEEDED'] call BIS_fnc_taskSetState; sideMissionCount = sideMissionCount + 1; call EVODan_fnc_sideMissionSelection; deleteVehicle (thisTrigger getVariable 'trigger2')",_missionNumber], ""];
    
    //generate a third trigger if the civilian dies and set the mission to fail, but still call for another one to be spawned
    _trg2 setTriggerArea [20, 20, 0, false];
    _trg2 setVariable ["officer", _unit];
    _trg2 setVariable ["trigger0", _trg];
    _trg2 setVariable ["trigger1", _trg1];
    _trg2 setTriggerActivation ["ANY", "PRESENT", true];
    _trg2 setTriggerStatements ["!alive (thisTrigger getVariable 'officer')", format["[(thisTrigger getVariable 'officer')] join grpNull; ['%1','FAILED'] call BIS_fnc_taskSetState; sideMissionCount = sideMissionCount + 1; call EVODan_fnc_sideMissionSelection; deleteVehicle (thisTrigger getVariable 'trigger0'); deleteVehicle (thisTrigger getVariable 'trigger1');",_missionNumber], ""];

     

    • Confused 1

  3. I am using the following code in my mission to create some triggers, and then if the players succeed or fails at the mission, then deleting the other trigger so as to free up performance and prevent race conditions.

    //create all the trigger references here
    _trg = createTrigger ["EmptyDetector", _markerLocation];
    _trg1 = createTrigger ["EmptyDetector", getMarkerPos _selectedHospital];
    _trg2 = createTrigger ["EmptyDetector", getMarkerPos _selectedHospital];
    
    //create the first trigger for joining group
    _trg setTriggerArea [10, 10, 0, false];
    _trg setVariable ["officer", _unit];
    _trg setTriggerActivation ["ANYPLAYER", "PRESENT", true];
    _trg setTriggerStatements ["this", "[(thisTrigger getVariable 'officer')] join group (thisList select 0);", ""];
    
    //create the second trigger for leaving the group - don't forget to succeed the mission with this and call a new side mission
    _trg1 setTriggerArea [20, 20, 0, false];
    _trg1 setVariable ["officer", _unit];
    _trg1 setTriggerActivation ["ANY", "PRESENT", true];
    _trg1 setTriggerStatements ["(thisTrigger getVariable 'officer') in thisList", format["[(thisTrigger getVariable 'officer')] join grpNull; ['%1','SUCCEEDED'] call BIS_fnc_taskSetState; sideMissionCount = sideMissionCount + 1; call EVODan_fnc_sideMissionSelection; deleteVehicle %2",_missionNumber, _trg2], ""];
    
    //generate a third trigger if the civilian dies and set the mission to fail, but still call for another one to be spawned
    _trg2 setTriggerArea [20, 20, 0, false];
    _trg2 setVariable ["officer", _unit];
    _trg2 setTriggerActivation ["ANY", "PRESENT", true];
    _trg2 setTriggerStatements ["!alive (thisTrigger getVariable 'officer')", format["[(thisTrigger getVariable 'officer')] join grpNull; ['%1','FAILED'] call BIS_fnc_taskSetState; sideMissionCount = sideMissionCount + 1; call EVODan_fnc_sideMissionSelection; deleteVehicle %2; deleteVehicle %3;",_missionNumber, _trg, _trg1], ""];

    However, as soon as I press start in the editor, I get an error message referring to the "deleteVehicle" command, saying

     

    deleteVehicle 1780388: |#|<no shape>;
      
      Error invalid number in experssion

    I thought the createTrigger command returned a reference to the trigger, and that all I had to do was refer to this by formatting it into the trigger statements.

    Syntax:
    createTrigger [type, position, makeGlobal]
    Parameters:
    [type, position, makeGlobal]: Array
    type: String - usually "EmptyDetector"
    position: Position2D, Position3D or Object
    makeGlobal (Optional): Boolean - locality flag (available since Arma 3 v1.43.129935)
    true (Default) - trigger is global Effects of this scripting command are broadcasted over the network and happen on every computer in the network
    false - trigger is local Effects of this scripting command are not broadcasted over the network and remain local to the client the command is executed on
    Return Value:
    Object - created trigger
    Syntax:
    deleteVehicle object
    Parameters:
    object: Object

    Where have I gone wrong on this as I have checked both Biki pages and this should work from what I read (amongst other forum posts). I have even tried making it into a string but this just delays the error until its triggered.


  4. I've managed to get this to work pretty much now.

     

    I had a re-read on the vehicle configs and adjusted the bounds as I think they were set wrong.

     

    I added an exit location to the ViV config, and the respective memory point, and that can load equipment now too.


  5. Hi all,

     

    I'm attempting to make a test vehicle to make sure that I can get a functioning system, before I go and do a more detailed model.

     

    I've managed to import it into the game, and its even driveable as I used the sample cars settings. However, this is an issue:

    https://www.dropbox.com/s/cq5esbxdu0netea/ArmaModelNotOnGround.png?dl=0

    Now, I don't think its related to physics, as I set it to spawn 10m higher and it fell to that position. If I spawn it correctly with the wheels on the ground (it will do this correctly in the editor preview), then the model will fly off into the air like its being compressed underground.

     

    I have also defined my ViV settings, and checking it via code in the editor says it is active, but that nothing fits, even a small ammobox, despite the fact the ViV markers are quite well space, what am I doing wrong here? I have tried swapping the points around to check them, and I've checked the names are correct multiple times.

     

    What have I done wrong here? Here is my project so far:

    https://www.dropbox.com/s/xfaug6m3zld5n4r/EVO_Test_Forklift.zip?dl=0


  6. 2 hours ago, Mr H. said:

    { class Cargo { parachuteClass = B_Parachute_02_F; // Type of parachute used when dropped in air. When empty then parachute is not used. parachuteHeightLimit = 40; // Minimal height above terrain when parachute is used. canBeTransported = 1; // 0 (false) / 1 (true) dimensions[] = {"BBox_1_1_pos", "BBox_1_2_pos"}; // Memory-point-based override of automatic bounding box }; };

     

    No formatting sorry I'm on my phone. Found here :

    https://community.bistudio.com/wiki/Arma_3_Vehicle_in_Vehicle_Transport

    don't know if it works for thingX though.

    Copied the code into the config.cpp, game gave me an error when placing the object of "No Entry 'model.cfg/cfgmodels/evo_oil_barrel.sectioninherit.

     

    Didn't give me the option to load it.

     

    Dunno if its related but I couldn't binarize it for some reason, just ended up packing it so i'm not sure if that could be doing it. Kept giving me an error code of -1073740791 and saying binarize task failed, even when I deleted that piece of code so I have no idea whats going on with the addon builder.


  7. Hi all,

     

    I've copied an rvmat and renamed it to match my new model but when I load it into the game, the colour shows up correctly, but I can see the ground through the model.

     

    I haven't changed anything in my rvmat but I suspect its something to do with it.

     

    here is my rvmat:

    ambient[]={1,1,1,1};
    diffuse[]={1,1,1,1};
    forcedDiffuse[]={0,0,0,0};
    emmisive[]={0,0,0,0};
    specular[]={0,0,0,0};
    specularPower=0.05;
    PixelShaderID="Normal";
    VertexShaderID="Basic";
    fresnel(7.53,5.44);

    Could it be that its not assigned the rvmat correctly? I can see it in object builder though.

     

     


  8. I've been making some progress on the model and have managed to get it in game and with ViV. I think the model would make a good LOD3 with its current detail level.

     

    https://imgur.com/a/rqNuX

     

    I think I've managed to get the scaling right although its taken me a few hours to get the handling close to what I think is right.

     

    I've got more memory points to add as I currently don't have that many of them and some are shared with multiple things.

    • Like 2

  9. 52 minutes ago, Alwarren said:

    Have you applied the transformations before export? Transformations, rotations and scale need to be applied otherwise the result might not be what you expect it to be.

    I didn't apply any transformations. It did this on its own and looks fine in blender. Its when it ends up in object builder that's wrong. I exported something a few days ago and it worked fine then.

     

    I had to rotate in object builder and then export back to blender to get it to work. Still not sure why though but it fixed it. Now when I export it its fine. However, I cannot save without getting an error now in object builder.

     

    I think I've figured it out. I think I rotated the "plane" when I created it in object mode and so it permanently rotated it, I've managed to repeat it several times now. Creating the plane, going into edit then rotating it works fine.


  10. 9 minutes ago, martinezfg11 said:

    Did you add preciseGetInOut=0? I'll take a look at your file later today or tomorrow.

    Yes. I've even tried increasing the getInRadius to 25m, only get the gunner seat still. 

     

    I've figured it out. You NEED to have 

     

    driverAction = driver_mid01;

     

    Otherwise it doesn't work. I added this and its fine now.

    • Like 1

  11. 2 minutes ago, martinezfg11 said:

    Driver memory points also require a direction. Also, make another mem point for the driver other than "engine1_axis".

     

    memoryPointsGetInDriver = where you need to be standing to enter

    memoryPointsGetInDriverDir = direction you need to be facing to enter

    I just used that mem point to try it.

     

    I'll give it a try later. I understand the first point now about defining the standing point rather than the access point.

     

    How would I define the direction as memory points, is there anything special I have to do ?


  12. Hi all,

     

    I am making a test boat object so that I can get used to the workflow for making some small boats but i'm having trouble with my vehicle config. I can only get into the driver seat by dragging a player into the drivers seat. I cannot get into the drivers seat when in game. I can however get into the gunners seat even though I haven't defined it. Once i'm in the gunners seat, no option is available to move to the drivers seat either.

     

    I've been using this biki page for reference purposes:

    https://community.bistudio.com/wiki/Arma_3_Ships_Config_Guidelines

     

    I have defined the memory point type "memoryPointsGetInDriver" but it doesn't seem to do anything for me. Have I missed something obvious here that's preventing me from getting in as a driver? 

     

    Here is my config.cpp:

     

    class CfgPatches
    {
    	class Dan_BoatPT
    	{
    		units[] = {"Dan_BoatPT"};
    		weapons[] = {};
    		requiredVersion = 0.1;
    		requiredAddons[] = {};
    	};
    };
    class CfgDestructPos{};
    class CfgVehicles
    {
    	class Ship;
    	class Ship_F: Ship
    	{
    		class ViewPilot;
    		class AnimationSources;
    		class Eventhandlers;
    	};
    	class Dan_BoatPT: Ship_F
    	{
    		scope = 2;
    		author = "[EVO] Dan";
    		model = "\Dan_BoatPT\dan_boatpt.p3d";
    		displayName = "TestBoat";
    		faction = "CIV_F";
    		hasDriver = true; //allow a driver
    		hasGunner = true; //allow a gunner
    		memoryPointsGetInDriver = "engine1_axis"; 
    		radarType = 8;
    		side = 3;
    		simulation = "shipx";
    		idleRpm = 1000;
    		redRpm = 4000;
    		maxSpeed = 20;
    		thrustDelay = 30;
    		overSpeedBrakeCoef = 0.5;
    		enginePower = 8000;
    		engineShiftY = 2;
    		waterLeakiness = 1000;
    		waterResistanceCoef = 0.01;
    		waterLinearDampingCoefX = 10;
    		waterLinearDampingCoefY = 1.2;
    		rudderForceCoef = 12;
    		rudderForceCoefAtMaxSpeed = 15;
    		memoryPointsLeftWaterEffect = "engine1_axis";
    		memoryPointsRightWaterEffect = "engine2_axis";
    		memoryPointsLeftEngineEffect = "engine2_axis";
    		memoryPointsRightEngineEffect = "engine1_axis";
    		class complexGearbox
    		{
    			GearboxRatios[] = {"R1",-0.782,"N",0,"D1",2,"D2",1.85,"D3",1.75};
    			TransmissionRatios[] = {"High",1};
    			gearBoxMode = "auto";
    			moveOffGear = 1;
    			driveString = "D";
    			neutralString = "N";
    			reverseString = "R";
    		};
    		destrType = "DestructBuilding";
    		armor = 30;
    		fireResistance = 0.1;
    		explosionShielding = 0.1;
    		damageResistance = 0.004;
    		class Damage
    		{
    			tex[] = {};
    			mat[] = {};
    		};
    		damageHalf[] = {};
    		damageFull[] = {};
    	};
    };

    Here is a link to my whole test object:

    https://www.dropbox.com/s/gsb1hyb2artsu8v/Dan_BoatPT.rar?dl=0

    https://www.dropbox.com/s/xumx7310p5lro60/BoatPBo.rar?dl=0

×