Jump to content

six_ten

Member
  • Content Count

    370
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by six_ten


  1. I have a script that pushes my sloop (sailing vessel) in the wind; the engine works but its power is reduced so most thrust must come from wind. If you sail into the wind, you can move forward slowly, a couple of km/hr. If you sail with the wind at your back or sides, you can move up to 20 km/hr or so. This works now. To make it more realistic I want to do the following:

    1. Get the wind direction relative to the ship direction and set the angle of the yards, boom and gaff (the parts that hold the sails onto the mast). For this I think I need a custom AnimationSource controller, right? At the moment the angle of the boom, gaff and yards is set by the rudder just to see how it looks. I would like to have this independently controlled by the captain, but for the sake of new players and AI it seems best to automatically set the best angle. I don't know how to do the math to convert windDir and shipDir to the angle of difference between them. One the math is done, how do I send that to an animationsource so that it will rotate them?

    2. Taking the result of the above, the angle of difference between wind and ship, multiply (?) that by the square yardage of sails remaining (enemies can shoot and destroy rigging and sails) and use that number to set the velocity of the ship. Currently you can shoot out the Boom and Gaff, which hold the MainSail. Is the correct expression "isDestroyed" when they are hidden and replaced with damaged versions? I want to assign a value for each sail, based on number of square yards, and when one is destroyed, deduct that amount from a multiplier that feeds into the ship velocity.

    1794 Steel diagram

    http://i.imgur.com/8MvjAzO.jpg


  2. I'll ask again. Do you plan to implement horses?

    Are you now able to post some SS or, even better, a vid?

    Been playing Napoleonic Wars lately so I'm really interested in your mod.

    Thanks.

    Plan to implement horses? Yes. If someone builds and animates them I'll be thrilled to be able to create the uniforms, tack, etc. and add Dragoons, Cavalry, officers on horseback, dispatch riders, and allow players to easily hitch up to wagons and artillery limbers and move them around the battlefield. But as important as they are they're not going to be in for a year or longer unless someone else creates them.

    As it is I've posted a number of questions asking for help on the other priorities which are as yet unanswered. After a decade of ARMA every modder still has to reinvent the wheel when it comes to melee of any kind, so getting a tomahawk, spontoon, bayonet, and sword is taking a huge effort. At the moment I'm trying to write a script for getting the wind to work on my sailing ships, and starting to try to figure out how to get an anchor to work on them.

    If you create a horse addon I'll be happy to modify and add it.

    I'll post some screens or video later tonight or tomorrow for you.

    • Like 1

  3. This is now working well. My cannons attach, the gunners appear, and the guns fire and animate correctly.

    However, a problem remains:

    When I am the driver of the boat the cannons and gunners appear to be outside the ship, that is, they seem to be drawn first, then the boat.

    Driver view, guns drawn before ship, incorrect.

    GqSrrRF.jpg

    Walking on deck, first person, correct.

    8Poir7J.jpg

    From the gunner's point of view, the sides of the ship are drawn first, then the guns, so they do not appear to stick through the gunports, but look like they're totally inside the ship.

    First Person Gunner View, ship drawn before guns, incorrect.

    2t2j9zo.jpg

    How do I fix this so they look like they're in proper position on the deck?


  4. BadLuckBurt I hope you'll post your results here. What I really want is to change the sun and moon altitude and azimuth to match the results from the USNO calculator for a place in Virginia in 1776, well outside teh range of the stock lighting settings.


  5. I'm at the point with my Black Powder mod that I'm ready to add bayonets to my muskets. I haven't yet tried it but I think this is a possible approach and I'd like to get some feedback and ideas from those more experienced than me.

    -- as a starting point, modify one of the weapon attachments, like a suppressor or laser sight, replacing it with a bayonet model. Now the bayonet can be added and removed from the musket.

    -- add a memory point at the tip of the bayonet model and a second one further in, if the first point contacts a player then the blade scratches him and he takes light damage, if the first point then the second point hits him, he is penetrated and takes much more damage

    -- taking a cue from the campfire, where just being within a meter or so causes damage, create an eventhandler for the attached bayonet to cause damage if the Tip memory point is within a few centimeters of a player

    -- make it so that if bayonet is attached, left mouse button fires the normal bullet, right mouse button fires an animation to thrust the weapon forward.

    -- if bayonet is detached I'd like it to be "holstered" on the player's side. I've made custom uniform models for all my characters, so it is possible to add attachment points, or even move the NVG slot for example to the hip.

    Does this make sense as the best and simplest way to create a working attachable bayonet?

    Edit:

    At http://forums.bistudio.com/showthread.php?178148-razor-wire-to-cause-damage I found an example that seems close to what I was thinking about (though I want mine built-in not external scripts) but one of the posters warns that too many instances will cause problems. Since every musket will be capable of using a bayonet, whatever method I use has to be low-impact on performance.

    if using the editor; give the wire the name "barbWire" and put this in it's Init:

    this execVM"barbwiredamage.sqf";

    then create a file called barbwiredamage.sqf, save it in the root of your mission folder and put this inside it:

    Private [ "_distance" ];
    while (alive player) do {
    sleep 1;
    _distance = player distanceSqr barbWire;
    if (_distance < 0.1) then { sleep 0.5; player setDamage 0.05; };
    } else { hint"W00ps, you died. I should stop executing this script."; };

    Now you have one barbwire that will give you the thing you want. But if you are going to put a shitload (more than 30) razor wires in your mission, it would be better not to use this method. Something to do with script spam.


  6. I'd like to combine the door open action for a pair of doors. I've followed some older threads with information about this, but keep getting errors when I try what they did. Can someone help me rewrite this so I can open and close the doors together? I based my building on the Test_House in Samples_F.

      class OpenDoor_1
      {
       displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />"; 
    // This is displayed in the center of the screen just below crosshair. In this case it's an icon, not a text.
       displayName = "Open Door"; 
    // Label of the action used in the action menu itself.
       position = Door_1and2_trigger; 
    // Point in Memory lod in p3d around which the action is available.
       priority = 0.4; 
    // Priority coefficient used for sorting action in the action menu.
       radius = 2.5; 
    // Range around the above defined point in which you need to be to access the action.
       onlyForPlayer = false; 
    // Defines if the action is available only to players or AI as well.
    
       condition = ((this animationPhase 'Door_1_rot') < 0.5) && ((this animationPhase 'Hitzone_2_hide') < 0.99999); 
       // Condition for showing the action in action menu. In this case it checks if the door is closed and if the part of the house in which the door is located hasn't been destroyed yet).
       statement = ([this, 'Door_1_rot'] execVM "\ART\ART_Arch\Scripts\DoorNoHandle_open.sqf"); 
       // Action taken when this action is selected in the action menu. In this case it runs a script that opens the door.
      };
      class CloseDoor_1: OpenDoor_1
      {
       displayName = "Close Door";
       priority = 0.2;
       condition = ((this animationPhase 'Door_1_rot') >= 0.5) && ((this animationPhase 'Hitzone_2_hide') < 0.99999); 
    // Checks if the door is currently open and not destroyed.
       statement = ([this, 'Door_1_rot'] execVM "\ART\ART_Arch\Scripts\DoorNoHandle_close.sqf");
      };
      class OpenDoor_2: OpenDoor_1
      {
       position = Door_1and2_trigger;
       condition = ((this animationPhase 'Door_2_rot') < 0.5) && ((this animationPhase 'Hitzone_2_hide') < 0.99999);
       statement = ([this, 'Door_2_rot'] execVM "\ART\ART_Arch\Scripts\DoorNoHandle_open.sqf");
      };
      class CloseDoor_2: CloseDoor_1
      {
       position = Door_1and2_trigger;
       condition = ((this animationPhase 'Door_2_rot') >= 0.5) && ((this animationPhase 'Hitzone_2_hide') < 0.99999);
       statement = ([this, 'Door_2_rot'] execVM "\ART\ART_Arch\Scripts\DoorNoHandle_close.sqf");
      };
    


  7. Hm i wonder why you didnt get it to work with just the config...

    I cannot (and after weeks of trying) get the optics for the gunners to look in the direction of the cannon.

    Yesterday I rebuilt the gundeck using your method (which was the way I used to do it) but no matter what i can't get the damned gunners to look in the right direction, and the cannons will not fire correctly.

    If I post my model and config could you take a look at it? I still can't get the scripts to work either, so now I don't even have that as a backup method.


  8. Has anyone been able to get the helis in Samples_F to work? I ran the folder through pboProject and got a number of errors, first being line 260, in Useractions --> Doors

    displayNameDefault = <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />; /// what is displayed under the cursor (icon in this case)

    adding quotation marks stopped that error,

    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />"; /// what is displayed under the cursor (icon in this case)

    but more kept coming up, like an incorect proxy reference to cargo_01 in the p3d, and others. After finally getting it to pack without error, placing the helis in the editor, and running it, the rotors don't turn, the doors won't open, and I can't shoot from the cargo_turret position (which was the only reason I got the heli going).

    All I really want is to see how to set up the cargo so I can have players firing from the deck of my sloop.


  9. I have been reconstructing my files since they were destroyed by a trojan, and now for some reason my script version has stopped working.

    As it is now, no flags, no guns and no rigging appear. Also the boarding script is broken.

    What have I missed? Any idea why this is broken?

    model.cfg

    
    class Rotation
    {
    type = "rotation";
    memory = 1;
    minValue = 0;
    maxValue = 1;
    angle0 = 0;
    angle1 = 1;
    };
    
    
    
    class CfgSkeletons
    {
    class Default
    {
     isDiscrete = 1;
     skeletonInherit = "";
     skeletonBones[] = {};
    };
    
    class Vehicle: Default {};
    
    class Ship: Vehicle
    {
     skeletonInherit="Vehicle";
     skeletonBones[]={};
    };
    
    class civilian_boatSkeleton: Ship
    {
     skeletonInherit = "ship";
     skeletonBones[] = 
     {
    
    
    
      "Compass",
      "", 
      "drivingWheel",
      "",   
      "Rudder",
      "",  
      "damageHide",
      "",
    ///////////////////////////////////////////////////////////////////   
    
      "Rudder_unhide","Rudder",
      "Rudder_hide","Rudder"
    
    ///////////////////////////////////////////////////////////////////  
     };
    };
    };      
    class CfgModels
    {
    class Rotation;
    
    class Default
    {
     sectionsInherit="";
     sections[] = {};
     skeletonName = "";
    }; 
    
    class Vehicle: Default
    {
     sections[] =
     {
      "zasleh"
     };
    };
    
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    //    END SLOOP BASE BEGIN SLOOP BERMUDA
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    class Sloop_Bermuda: Vehicle
    {
     skeletonName = "civilian_boatSkeleton";
     sections[] = 
     {
      "camo",
      "Hull",
      "zbytek",
      "Compass", 
      "drivingWheel", 
      "Rudder"
     };
    
     class Animations
     {
      // destruct START
      class damageHide
      {
       type="hide";
       source="damage";
       selection="damageHide";
       hideValue=1.0;
      };
    
      class damageHideVez:damageHide
      {
       selection="OtocVez";
      };
    
      class damageHideHlaven:damageHide
      {
       selection="OtocHlaven";
      };
    /////////////////////////////////////////////////////////////////////// 
    
      class Rudder_destruct
      {
       type="hide";
       selection="Rudder_hide";
       source="HitRudder";
       minValue = 0; // upravit na 0.99
       maxValue = 1; // upravit na 1.0
       hidevalue = 0.99999;
      };   
    
      class Rudder_destruct_unhide
      {
       type="hide";
       selection="Rudder_unhide";
       source="HitRudder";
       minValue = 0; 
       maxValue = 1; 
       hidevalue = 0.00000;
       UnHidevalue = 1.00000;
      };
    ///////////////////////////////////////////////////////////////////////   
     class Compass
      {
       type="rotation";
       source="direction";
       selection="Compass";
       axis="Compass_Axis";
       memory=1;
       minValue=-3.141590;
       maxValue=3.141590;
       angle0=-3.141593;
       angle1=3.141593;
      };   
    
      class drivingWheel
      {
       type = "rotation";
       source = "drivingWheel";
       selection = "drivingWheel";
       axis = "drivingWheel_Axis";
       memory = 1;
       minValue = -1;
       maxValue = 1;
       angle0 = -2;
       angle1 = 2;
      };
      class Rudder: drivingWheel
      {
       selection = "Rudder_hide";
       axis = "Rudder_Axis";
       angle0 = 1.308997;
       angle1 = -1.308997;
      };
     };
    };
    };
    
    

    config.cpp

    ////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////
    #define _ARMA_
    //ndefs=5
    enum {
    StabilizedInAxesNone = 0,
    StabilizedInAxisX = 1,
    StabilizedInAxisY = 2,
    StabilizedInAxesBoth = 3,
    StabilizedInAxesXYZ = 4
    };
    //Class ART_Water : config.bin{
    class CfgPatches
    {
    class ART_Water
    {
     units[] = {"Sloop","Sloop_Rigging_Ratlines","Sloop_Merchant","Sloop_American","Sloop_Militia","Sloop_British","Sloop_Loyalist"};
     weapons[] = {"Cannon_Half_pdr","Cannon_Four_pdr"};
     requiredVersion = 0.1;
     requiredAddons[] = {"A3_Boat_F","ART_Base","ART_Weapons"};
     magazines[] = {};
     ammo[] = {};
    };
    };
    class DefaultEventhandlers;
    class CfgVehicles
    {
    class Land_PierLadder_F;
    class Sloop_Rigging_Ratlines: Land_PierLadder_F
    {
     scope = 2;
     displayName = "Ratlines";
     vehicleClass = "1776_Seamanship";
     mapSize = 0.01;
     Icon = "\ART\ART_Fortification\Data\UI\map_Tent_BellOfArms_CA.paa";
     model = "\ART\ART_Water\Sloop_Rigging_Ratlines.p3d";
     armor = 150;
     ladders[] = {{ "P_Ratline_Start","P_Ratline_End" },{ "S_Ratline_Start","S_Ratline_End" }};
    };
    
    class Ship;
    class Ship_F: Ship
    {
     class ViewPilot;
     class AnimationSources;
     class Eventhandlers;
     class HitPoints
     {
      class HitRudder
      {
       armor = 0.00125;
       material = -1;
       name = "Rudder";
       visual = "";
       passThrough = 0.0;
       explosionShielding = 0;
       radius = 0.1;
      };
      class HitHull
      {
       armor = 1;
       material = 50;
       name = "Hull";
       visual = "zbytek";
       passThrough = 1;
       explosionShielding = 1;
      };
      class HitWaterline
      {
       armor = 1;
       material = 50;
       name = "Waterline";
       visual = "zbytek";
       passThrough = 1;
       explosionShielding = 1;
      };
      class HitMainMast
      {
       armor = 1.2;
       material = 60;
       name = "MainMast";
       visual = "";
       passThrough = 1;
       radius = 0.1;
      };
      class HitBowsprit
      {
       armor = 1;
       material = 50;
       name = "Bowsprit";
       visual = "zbytek";
       passThrough = 1;
       explosionShielding = 1;
      };
     };
    };
    
    class Sloop_Bermuda: Ship_F
    {
     class NewTurret;
     class Turrets;
     class ViewOptics;
     class EventHandlers;
     side = 3;
     faction = "CIV_F";
     vehicleClass = "1776_Seamanship";
     displayName = "Bermuda Sloop";
     model = "\ART\ART_Water\Sloop_Bermuda.p3d";
     picture = "\A3\Weapons_F\Data\placeholder_co.paa";
     Icon = "\ART\ART_Water\Data\UI\map_sloop_ca.paa";
     mapSize = 19.8;
     cost = 20000;
     accuracy = 0.5;
     collisionEffect = "collisionEffect";
     class HitPoints: HitPoints
     {
      class HitRudder: HitRudder
      {
       armor = 0.00125;
       material = 60;
       name = "Rudder";
       visual = "zbytek";
       passThrough = 1;
       radius = 0.5;
      };
      class HitHull
      {
       armor = 1;
       material = 50;
       name = "Hull";
       visual = "zbytek";
       passThrough = 1;
       explosionShielding = 1;
      };
      class HitWaterline
      {
       armor = 1;
       material = 50;
       name = "Waterline";
       visual = "zbytek";
       passThrough = 1;
       explosionShielding = 1;
      };
      class HitMainMast
      {
       armor = 1.2;
       material = 60;
       name = "MainMast";
       visual = "zbytek";
       passThrough = 1;
       radius = 0.1;
      };
      class HitBowsprit
      {
       armor = 1;
       material = 50;
       name = "Bowsprit";
       visual = "zbytek";
       passThrough = 1;
       explosionShielding = 1;
      };
     };
     class AnimationSources
     {
      class HitRudder
      {
       source = "Hit";
       hitpoint = "HitRudder";
       raw = 1;
      };
      class Proxy
      {
       source = "user";
       animPeriod = 1;
       initPhase = 0;
      };
     };
     leftEngineEffect = "LEngEffectsSmall";
     rightEngineEffect = "REngEffectsSmall";
     simulation = "shipx";
     maxSpeed = 80;
     overSpeedBrakeCoef = 0.8;
     enginePower = 1235;
     engineShiftY = 1.1;
     waterLeakiness = 10.0;
     turnCoef = 1.5;
     thrustDelay = 0.25;
     waterLinearDampingCoefY = 2;
     waterLinearDampingCoefX = 2.0;
     waterAngularDampingCoef = 1.2;
     waterResistanceCoef = 0.015;
     rudderForceCoef = 2.0;
     rudderForceCoefAtMaxSpeed = 2.0;
     idleRpm = 200;
     redRpm = 1200;
     class complexGearbox
     {
      GearboxRatios[] = {"R1",-0.782,"N",0,"D1",2.0,"D2",1.85,"D3",1.75};
      TransmissionRatios[] = {"High",1.0};
      gearBoxMode = "auto";
      moveOffGear = 1;
      driveString = "D";
      neutralString = "N";
      reverseString = "R";
     };
     brakeDistance = 3;
     driverAction = "driver_boat01";
     driverLeftHandAnimName = "drivingWheel";
     driverRightHandAnimName = "drivingWheel";
     cargoAction[] = {"passenger_low01"};
     cargoIsCoDriver[] = {0};
     ejectDeadDriver = 0;
     transportSoldier = 24;
    
     class TransportItems
     {
      class _xx_FirstAidKit
      {
       name = "FirstAidKit";
       count = 6;
      };
     };
    
     armor = 2000;
     damageResistance = 0.00882;
     attenuationEffectType = "OpenCarAttenuation";
     insideSoundCoef = 1;
     soundEngineOnInt[] = {"a3\Sounds_F\vehicles\boat\Motor_Boat\engine_start","db-5",1.0};
     soundEngineOnExt[] = {"a3\Sounds_F\vehicles\boat\Motor_Boat\engine_start","db-5",1.0,300};
     soundEngineOffInt[] = {"a3\Sounds_F\vehicles\boat\Motor_Boat\engine_stop","db-5",1.0};
     soundEngineOffExt[] = {"a3\Sounds_F\vehicles\boat\Motor_Boat\engine_stop","db-5",1.0,300};
     buildCrash0[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_01","db0",1,200};
     buildCrash1[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_02","db0",1,200};
     buildCrash2[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_03","db0",1,200};
     buildCrash3[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_04","db0",1,200};
     soundBuildingCrash[] = {"buildCrash0",0.25,"buildCrash1",0.25,"buildCrash2",0.25,"buildCrash3",0.25};
     WoodCrash0[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_01","db0",1,200};
     WoodCrash1[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_02","db0",1,200};
     WoodCrash2[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_03","db0",1,200};
     WoodCrash3[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_04","db0",1,200};
     WoodCrash4[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_05","db0",1,200};
     WoodCrash5[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_06","db0",1,200};
     soundWoodCrash[] = {"woodCrash0",0.166,"woodCrash1",0.166,"woodCrash2",0.166,"woodCrash3",0.166,"woodCrash4",0.166,"woodCrash5",0.166};
     ArmorCrash0[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_01","db0",1,200};
     ArmorCrash1[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_02","db0",1,200};
     ArmorCrash2[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_03","db0",1,200};
     ArmorCrash3[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_04","db0",1,200};
     soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash2",0.25,"ArmorCrash3",0.25};
    
     class Sounds
     {
      class IdleOut
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\Motor_Boat\engine_idle","db-7",1.0,300};
       frequency = "0.95 + ((rpm/1000) factor[(100/1000),(250/1000)])*0.15";
       volume = "engineOn*(((rpm/1000) factor[(100/1000),(150/1000)])* ((rpm/1000) factor[(270/1000),(200/1000)]))";
      };
      class Engine
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\Motor_Boat\engine_1","db-4",1.0,350};
       frequency = "0.85 + ((rpm/1000) factor[(200/1000),(370/1000)])*0.2";
       volume = "engineOn*(((rpm/1000) factor[(190/1000),(250/1000)])* ((rpm/1000) factor[(380/1000),(280/1000)]))";
      };
      class EngineMidOut
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\Motor_Boat\engine_3","db-2",1.0,380};
       frequency = "0.85 + ((rpm/1000) factor[(280/1000),(480/1000)])*0.2";
       volume = "engineOn*(((rpm/1000) factor[(250/1000),(350/1000)])* ((rpm/1000) factor[(480/1000),(390/1000)]))";
      };
      class EngineMaxOut2
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\Motor_Boat\engine_4","db-1",1.0,440};
       frequency = "0.86 + ((rpm/1000) factor[(380/1000),(580/1000)])*0.2";
       volume = "engineOn*(((rpm/1000) factor[(370/1000),(440/1000)])* ((rpm/1000) factor[(585/1000),(495/1000)]))";
      };
      class EngineMaxOut3
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\Motor_Boat\engine_5","db0",1.0,500};
       frequency = "0.85 + ((rpm/1000) factor[(490/1000),(800/1000)])*0.2";
       volume = "engineOn*(((rpm/1000) factor[(460/1000),(550/1000)])* ((rpm/1000) factor[(780/1000),(620/1000)]))";
      };
      class EngineMaxOut4
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\Motor_Boat\engine_6","db2",1.0,550};
       frequency = "0.85 + ((rpm/1000) factor[(650/1000),(1000/1000)])*0.2";
       volume = "engineOn*((rpm/1000) factor[(600/1000),(800/1000)])";
      };
      class WaternoiseOutW0
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\SFX\voda-o-bok-lodi-0-speed1","db-3",1.0,150};
       frequency = "1";
       volume = "(speed factor[4, 1])";
      };
      class WaternoiseOutW1
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\SFX\voda-o-bok-lodi-20-speed","db-2",1.0,250};
       frequency = "1";
       volume = "((speed factor[2, 6]) min (speed factor[6, 4]))";
      };
      class WaternoiseOutW2
      {
       sound[] = {"A3\Sounds_F\vehicles\boat\SFX\voda-o-bok-lodi-50-speed","db0",1.0,350};
       frequency = "1";
       volume = "(speed factor[3, 9])";
      };
     };
    
     class Reflectors{};
     class Damage
     {
      tex[] = {};
      mat[] = {"ART\ART_Water\Data\Sloop_Hull.rvmat","ART\ART_Water\Data\Sloop_Hull_damage.rvmat","ART\ART_Water\Data\Sloop_Hull_destruct.rvmat","ART\ART_Water\Data\Sloop_Rig.rvmat","ART\ART_Water\Data\Sloop_Rig_damage.rvmat","ART\ART_Water\Data\Sloop_Rig_destruct.rvmat"};
     };
    
     extCameraPosition[] = {0,10.0,-18.0};
     rightFastWaterEffect = "RFastWaterEffects";
     waterEffectSpeed = 5;
     engineEffectSpeed = 5;
     waterFastEffectSpeed = 15;
    
     class UserActions
     {
      class BoardTheVessel
      {
       displayName = "Board the Vessel";
       position = "zamerny";
       onlyforplayer = 1;
       radius = 10;
       condition = "not (player in this)";
       statement = "[this, player] execVM ""\ART\ART_Water\Scripts\Boarding.sqf""";
      };
     };
    
     hiddenSelections[] = {"Camo_Hull","Camo_Rig"};
     hiddenSelectionsTextures[] = {"\ART\ART_Water\Data\Sloop_Hull_CO.paa","\ART\ART_Water\Data\Sloop_Rig_CO.paa"};
    };
    
    class Sloop_American: Sloop_Bermuda
    {
     scope = 2;
     displayName = "American Navy Sloop";
     side = 1;
     faction = "UnitedStates";
     crew = "Pvt2dVirginiaRegt_1777";
     class AnimationSources: AnimationSources
     {
      class Proxy: Proxy
      {
       initPhase = 1;
      };
     };
     hiddenSelectionsTextures[] = {"\ART\ART_Water\Data\Sloop_Hull_CO.paa"};
     class EventHandlers
     {
      init = "[_this select 0] execVM ""\ART\ART_Water\Scripts\Rigging_Init.sqf"";";
     };
    };
    
    };
    //};
    
    

    Rigging_Init.sqf

    
    //----------------------------------------
    //script by Gnat
    //mp fix by armatech
    //----------------------------------------
    // if you use it, credit me as appropraite
    //----------------------------------------
    _ship = _this select 0;
    if (!local _ship) exitWith {};
    //_xx = 10 preloadObject "RHIB";
    //_xx = 10 preloadObject "RHIB2Turret";
    //_xx = 10 preloadObject "Stinger_Pod";
    //Get var form ship
    _check = _ship getVariable "boatsloaded";
    //Check is var is empty/not set
    if(isnil ("_check"))then
    {
    //load ships and set var
    //Broadcasts ships loaded
    
    _ship setVariable ["boatsloaded", 99,true];
    
    //run boat loading scripts
    _ladder = "Sloop_Rigging_Ratlines" createvehicle[0,0,0];
    _ladder attachto [_ship,[0.0,-3.25,-2.35]];
    _flag = "Flag_US_Navy" createvehicle[0,0,0];  
    _flag attachto [_ship,[0.0,-4.9,11.0]]; 
    ////////////////////////////////////////////////////////////////////////////////////
    ///  Begin Gundeck
    ////////////////////////////////////////////////////////////////////////////////////
    ///  Port
    
    _P1Cannon = "Gun_Swivel_Halfpdr" createvehicle[0,0,0];
    createVehicleCrew  _P1Cannon; 
    _P1Cannon attachto [_ship,[0,0,0],"P1Gun"];
    _P1Cannon setDir -45;
    
    _P2Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _P3Cannon; 
    _P2Cannon attachto [_ship,[0,0,0],"P2Gun"];
    _P2Cannon setDir -70;
    _P3Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _P3Cannon; 
    _P3Cannon attachto [_ship,[0,0,0],"P3Gun"];
    _P3Cannon setDir -90;
    _P4Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _P4Cannon; 
    _P4Cannon attachto [_ship,[0,0,0],"P4Gun"];
    _P4Cannon setDir -90;
    
    _P5Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _P5Cannon; 
    _P5Cannon attachto [_ship,[0,0,0],"P5Gun"];
    _P5Cannon setDir -90;
    _P6Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _P6Cannon; 
    _P6Cannon attachto [_ship,[0,0,0],"P6Gun"];
    _P6Cannon setDir -90;
    
    /// Starboard 
    _S1Cannon = "Gun_Swivel_Halfpdr" createvehicle[0,0,0];
    createVehicleCrew  _S1Cannon; 
    _S1Cannon attachto [_ship,[0,0,0],"S1Gun"];
    _S1Cannon setDir 45;
    _S2Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _S2Cannon; 
    _S2Cannon attachto [_ship,[0,0,0],"S2Gun"];
    _S2Cannon setDir 70;
    
    _S3Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _S3Cannon; 
    _S3Cannon attachto [_ship,[0,0,0],"S3Gun"];
    _S3Cannon setDir 90;
    _S4Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _S4Cannon; 
    _S4Cannon attachto [_ship,[0,0,0],"S4Gun"];
    _S4Cannon setDir 90; 
    
    _S5Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _S5Cannon; 
    _S5Cannon attachto [_ship,[0,0,0],"S5Gun"];
    _S5Cannon setDir 90;
    
    _S6Cannon = "Gun_Naval_4pdr" createvehicle[0,0,0];
    createVehicleCrew  _S6Cannon; 
    _S6Cannon attachto [_ship,[0,0,0],"S6Gun"];
    _S6Cannon setDir 90;
    
    
    ////////////////////////////////////////////////////////////////////////////////////
    ///  End Gundeck
    ////////////////////////////////////////////////////////////////////////////////////
    };
    
    
    
    

×