Jump to content
Mickyleitor

[SOLVED] Cannot get a proxy missile working

Recommended Posts

Hi guys,
I'm nearly 2 weeks trying to figure out how get a proxy missile to spawn (maverick simulation) in its station.
It always spawn from the "memoryPointMissile[]", but I don't want it, I want use proxy maverick simulation. The issue is that I'm using a BIS weapon (Missile_AA_04_F) so no extra config regarding to CfgNonAivehicles is needed!

Here is the config because I'm tired on searching and testing what It could be and honestly I need your help:

CfgVehicles:

 

class ffaa_lanzador_nasams: StaticMGWeapon
    {
        author="$STR_FFAA_AUTOR_FFAAMOD";
        mapSize=2.29;
        htMin=1;
        htMax=700;
        afMax=0;
        mfMax=0;
        mFact=1;
        tBody=100;
        class SpeechVariants
        {
            class Default
            {
                speechSingular[]=
                {
                    "veh_static_AA_s"
                };
                speechPlural[]=
                {
                    "veh_static_AA_p"
                };
            };
        };
        textSingular="$STR_A3_nameSound_veh_static_AA_s";
        textPlural="$STR_A3_nameSound_veh_static_AA_p";
        nameSound="veh_static_AA_s";
        _generalMacro="ffaa_lanzador_nasams";
        scope=2;
        displayName="$STR_FFAA_LANZADOR_NASAMS";
        class Armory
        {
            description="$STR_FFAA_LANZADOR_NASAMS_DESCRIPCION";
        };
        model="\ffaa_estatico\ffaa_lanzador_nasams.p3d";
        editorSubcategory="EdSubcat_Turrets";
        picture="\ffaa_estatico\ico\icon_nasams_ca.paa";
        icon="\ffaa_estatico\icomap\icomap_nasams_ca.paa";
        cost=150000;
        editorPreview = "\ffaa_data\EditorPreview\ffaa_lanzador_nasams.jpg";
        side=1;
        faction="ffaa";
        crew="B_UAV_AI";
        transportSoldier=0;
        cargoAction[]={"Mortar_Gunner"};
        getInAction="GetInMortar";
        getOutAction="GetOutLow";
        isUav=1;
        uavCameraGunnerPos="konec hlavne";
        uavCameraGunnerDir="usti hlavne";
        epeImpulseDamageCoef=60;
        extCameraPosition[]={0,3,-10};
        enableGPS = 1;
        armor = 40;
        armorStructural=100;
        threat[] = {0.1,0.1,0.94};
        Accuracy = 0.3;
        radarType = 4;
        lockDetectionSystem = 15;
        incomingMissileDetectionSystem = 16;
        irScanRangeMin = 250;
        irScanRangeMax = 10000;
        irScanToEyeFactor = 5;
        irScanGround = 0;
        driverCanSee = 31;
        gunnerCanSee = 31;
        commanderCanSee = 31;
        class HitPoints
        {
            class HitBody
            {
                armor=40;
                material=50;
                name="karoserie";
                visual="zbytek";
                passThrough=1;
                explosionShielding=2;
            };
            class HitEngine
            {
                armor=0.80000001;
                material=-1;
                name="Engine";
                visual="";
                passThrough=1;
                explosionShielding=2;
            };
            class HitFuel
            {
                armor = 1.4;
                material = -1;
                name = "palivo";
                visual = "palivo";
                passThrough = 1;
                explosionShielding = 1;
            };
        };
        selectionDamage = "camo_launcher";
        destrType = "DestructEngine";
        explosionEffect = "FuelExplosion";
        class DestructionEffects
        {
            class Light1
            {
                simulation = "light";
                type = "ObjectDestructionLight";
                position = "destructionEffect1";
                intensity = 0.001;
                interval = 1;
                lifeTime = 3;
                enabled = "distToWater";
            };
            class Sound
            {
                simulation = "sound";
                position = "destructionEffect1";
                intensity = 1;
                interval = 1;
                lifeTime = 1;
                type = "Fire";
            };
            class Fire1
            {
                simulation = "particles";
                type = "ObjectDestructionFire1Small";
                position = "destructionEffect1";
                intensity = 0.15;
                interval = 1;
                lifeTime = 3;
            };
            class Refract1
            {
                simulation = "particles";
                type = "ObjectDestructionRefractSmall";
                position = "destructionEffect1";
                intensity = 0.15;
                interval = 1;
                lifeTime = 3;
            };
            class Smoke1
            {
                simulation = "particles";
                type = "ObjectDestructionSmokeSmall";
                position = "destructionEffect1";
                    intensity = 0.15;
                interval = 1;
                lifeTime = 3.5;
            };
            class Sparks1
            {
                simulation = "particles";
                type = "ObjectDestructionSparks";
                position = "destructionEffect1";
                intensity = 0;
                interval = 1;
                lifeTime = 0;
            };
        };
        class VehicleTransport
        {
            class Cargo
            {
                canBeTransported = 1;
            };
        };
        class Damage
        {
            tex[]={};
            mat[]=
            {
                "ffaa_estatico\data\nasams.rvmat",
                "ffaa_estatico\data\nasams_damage.rvmat",
                "ffaa_estatico\data\nasams_destruct.rvmat"
            };
        };
        class Turrets: Turrets
        {
            class MainTurret: MainTurret
            {
                soundElevation[]={"a3\sounds_f\vehicles\armor\noises\servo_tank_turret_06",4,1,50};
                soundServo[]={"a3\sounds_f\vehicles\armor\noises\servo_tank_turret_06",2,1,100};
                soundServoVertical[]={"a3\sounds_f\vehicles\armor\noises\servo_tank_turret_06",2,1,100};
                gunnerInAction="Disabled";
                gunnerAction="Disabled";
                optics=1;
                turretInfoType = "RscWeaponZeroing";
                gunnerOpticsModel = "\ffaa_estatico\2Dscope_Avenger";
                weapons[]={"ffaa_estatico_nasams"};
                magazines[]={"ffaa_6Rnd_AMRAAM"};
                gunnergetInAction="";
                gunnergetOutAction="";
                displayName="";
                class ViewOptics: viewOptics
                {
                    initAngleX=0;
                    minAngleX=-30;
                    maxAngleX=30;
                    initAngleY=0;
                    minAngleY=-100;
                    maxAngleY=100;
                    initFov=0.1242;
                    minFov=0.005;
                    maxFov=0.1242;
                    visionMode[]={"Normal","NVG","TI"};
                    thermalMode[]={2};
                };
                animationSourceBody = "MainTurret";
                animationSourceGun = "MainGun";
                
                body = "MainTurret";
                gun = "MainGun";
                gunBeg="spice rakety";
                gunEnd="konec rakety";
                maxHorizontalRotSpeed=2.4000001;
                maxVerticalRotSpeed=2.4000001;
                initElev=0;
                minTurn=-180;
                maxTurn=180;
                minElev = -1;
                maxElev = 42;
                initTurn=0;
                dontCreateAI = 0;
                gunnerForceOptics=1;
                memoryPointCamera = "eye";
                memoryPointGunnerOptics = "eye";
            };
        };
        class AnimationSources
        {
            class Revolving
            {
                source="revolving";
                weapon="ffaa_estatico_nasams";
            };
            class connected
            {
                source = "user";
                initPhase = -1;
                animPeriod = 0.1;
            };
        };
        soundGetOut[]={"A3\sounds_f\dummysound",0.00099999993,1,5};
        soundGetIn[]={"A3\sounds_f\dummysound",0.00031622773,1,5};
        class assembleInfo
        {
            primary=0;
            base="";
            assembleTo="";
            dissasembleTo[]={};
            displayName="";
        };        
        hiddenSelections[]={"camo_launcher"};
        hiddenSelectionsTextures[]={"\ffaa_estatico\data\nasams_co.paa"};
        class UserActions
        {
            class Rearmar
            {
                displayName="$STR_FFAA_NASAMS_REARMAR";
                displayNameDefault = "<img image='\a3\UI_F\data\IGUI\Cfg\Actions\reammo_ca.paa' size='1.8' shadow=2 />";
                position="STA_axis";
                radius=5;
                condition="alive(this) && ((this ammo ""ffaa_estatico_nasams"")<6)";
                statement="[this,0] call ffaa_fnc_lanzador_nasams_support";
                onlyforplayer = 0;
                priority = 4.800000;
            };
            class Reparar
            {
                displayName="$STR_FFAA_NASAMS_REPARAR";
                displayNameDefault = "<img image='\a3\UI_F\data\IGUI\Cfg\Actions\repair_ca.paa' size='1.8' shadow=2 />";
                position="STA_axis";
                radius=5;
                condition="alive(this) && ((damage this)>0.1)";
                statement="[this,1] call ffaa_fnc_lanzador_nasams_support";
                onlyforplayer = 0;
                priority = 4.800000;
            };
            class Desconectar
            {
                displayName="$STR_FFAA_M250_FORCEDISCONNECT";
                displayNameDefault = "<img image='\a3\UI_F\data\IGUI\Cfg\Actions\ico_off_ca.paa' size='1.8' shadow=2 />";
                position="STA_axis";
                radius=1;
                condition="alive(this) && (!isNull (this getVariable ""connectedto""))";
                statement="this call ffaa_fnc_nasams_disconnect";
                onlyforplayer = 0;
                priority = 4.800000;
            };
        };
        class Eventhandlers : Eventhandlers
        {
            init = "(_this select 0) spawn ffaa_fnc_lanzador_nasams_init;";
        };
    };


CfgWeapons:

 

class missiles_Zephyr;
    class ffaa_estatico_nasams: missiles_Zephyr
    {
        scope = 2;
        dlc = "FFAAMOD";
        author="$STR_FFAA_AUTOR_FFAAMOD";
        displayName = "$STR_FFAA_LANZADOR_NASAMS";
        magazines[] = {"ffaa_6Rnd_AMRAAM"};
        sounds[] = {"StandardSound"};
        class StandardSound
        {
            begin1[] = {"A3\Sounds_F\weapons\Rockets\missile_2", 1.12202, 1.3, 1000};
            soundBegin[] = {"begin1", 1};
            soundsetshot[] = {"ffaa_NASAMS_Shot_SoundSet","Static_Launcher_Titan_ATAA_Tail_SoundSet"};
        };
        soundFly[] = {"A3\Sounds_F\weapons\Rockets\rocket_fly_2", db5, 1.5, 2000};
        reloadTime = 3;
        magazineReloadTime = 3;
        minRange = 100;
        minRangeProbab = 0.7;
        midRange = 5000;
        midRangeProbab = 0.95;
        maxRange = 12000;
        maxRangeProbab = 0.6;
        class GunParticles
        {
            class FirstEffect
            {
                effectName = "MLRSFired";
                positionName = "efecto_1_pos";
                directionName = "efecto_1_dir";
            };
        };
    };


CfgMagazines:

 

class 4Rnd_GAA_missiles;
    class ffaa_6Rnd_AMRAAM: 4Rnd_GAA_missiles
    {
        scope = 2;
        displayName = "$STR_FFAA_LANZADOR_AIM120";
        displayNameShort = "AA LRange";
        count = 6;
        ammo = "ffaa_estatico_m_amraam";
        maxLeadSpeed = 1000;
        initSpeed = 20;
        sound[] = {"A3\Sounds_F\weapons\Rockets\missile_2", 1.25893, 1, 1000};
        soundFly[] = {"A3\Sounds_F\weapons\Rockets\rocket_fly_2", db5, 1.5, 1500};
        soundHit[] = {"", 1.25893, 1, 1};
        reloadSound[] = {"", 0.000316228, 1, 20};
        nameSound = "missiles";
    };


CfgAmmo:

 

class M_Zephyr;
    class ffaa_estatico_m_amraam: M_Zephyr
    {
        initTime = 0.4;
        maneuvrability = 75;
        hit = 480;
        indirectHit = 80;
        indirectHitRange = 10;
        timeToLive = 45;
        thrustTime = 45;
        thrust = 425;
        maxControlRange = 12000;
        cmImmunity = 0.95;
    };



This is how I have in O2:
c6fdf1323e3d124a70d63d9fb15d2114.png

 

 

701349c639709dc6653410665c1c8d2f.gif

6b0a432bdc86e57ab98496c3b858a4af.gif

  • Like 1

Share this post


Link to post
Share on other sites

Hi, auto-reply as I got it working.

At first, proxy weapon missile tech isn't supported for TankX simulation. It will only work in airplane and helicopter simulation. So, BI did a function workaround (BIS_fnc_missileLaunchPositionFix) to "teleport" the missile when it's being spawned to a memory point which is positioned into the right place animated according to revolving source.
This function has to be called in Fired Eventhandler, with [vehicle,proyectile,selection to adjust missile's position to,type of proyectile] as arguments.


Additionally, In my static weapon I've added a GunParticle effect (MLRSFired) with its point accordinly positioned into the right place.

In my example, "efecto_1" acting as the "main bone", this bone is animated every time revolving source changes. "missile_move" is attached to "efecto_1" so when "efecto_1" is moved "missile_move" will do it too.
 

"efecto_1","otochlaven",
"missile_move","efecto_1",

c6a24fa1e19b9edfbadab89461217168.gif

Red box is named as "missile_move" (which will be the point where I want the missile to spawn). Blue box is efecto_1_dir and green box is efecto_1_pos.

Now it will be spawned properly:

692f7503e0931e7512ffef7f23e51522.gif

 

Greetings!

  • Like 2

Share this post


Link to post
Share on other sites

Hello and thank you for this, any chance to see the model.cfg revolving animation part please?

it could help me with the mammoth missiles pods configs without using eventhandlers scripts.

Share this post


Link to post
Share on other sites

Yes, In fact I edited a little bit the source addon therefore I can upload it here helping anyone who are doing something like this.
Source files

  • Thanks 1

Share this post


Link to post
Share on other sites

Just a note, it's better imo to use pylons for something like atm since those are working on all simulation types + there is ability to change magazines on fly

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×