mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
Add submarine
Thx @Helion4 for the model
This commit is contained in:
281
SQF/dayz_code/Configs/CfgVehicles/Boat/Submarine.hpp
Normal file
281
SQF/dayz_code/Configs/CfgVehicles/Boat/Submarine.hpp
Normal file
@@ -0,0 +1,281 @@
|
||||
class ship;
|
||||
class Submarine: ship
|
||||
{
|
||||
scope = 0;
|
||||
class HitPoints;
|
||||
class ViewPilot;
|
||||
};
|
||||
|
||||
class Submarine_DZE_base: Submarine
|
||||
{
|
||||
displayName = "Submarine";
|
||||
model = "\z\addons\dayz_epoch_v\vehicles\sub\epoch_sub_01.p3d";
|
||||
picture = "\ca\water\data\ico\pbx_CA.paa";
|
||||
Icon = "\Ca\water\Data\map_ico\icomap_rubber_CA.paa";
|
||||
mapSize = 6;
|
||||
vehicleClass = "DayZ Epoch Vehicles";
|
||||
//vehicle characteristics
|
||||
maxSpeed = 125;
|
||||
brakeDistance = 20;
|
||||
armor = 20;
|
||||
damageResistance = 0.00318;
|
||||
crewVulnerable = 1;
|
||||
castDriverShadow = 0;
|
||||
castCargoShadow = 0;
|
||||
supplyRadius = 5;
|
||||
hasGunner = 0;
|
||||
enableManualFire = 0;
|
||||
weapons[] = {};
|
||||
magazines[] = {};
|
||||
precision = 10;
|
||||
enableGPS = false;
|
||||
memoryPointsGetInDriver = "pos driver";
|
||||
memoryPointsGetInDriverDir = "pos driver dir";
|
||||
memoryPointsGetInCargo = "pos cargo";
|
||||
memoryPointsGetInCargoDir = "pos cargo dir";
|
||||
//need to remove the spray, submarine is not a speedboat
|
||||
leftWaterEffect = "subspray";
|
||||
rightWaterEffect = "subspray";
|
||||
leftEngineEffect = "subspray";
|
||||
rightEngineEffect = "subspray";
|
||||
destrType = DestructWreck;
|
||||
class DestructionEffects;
|
||||
//driverForceOptics = 1;
|
||||
//driverOpticsModel = "\ca\Tracked\optika_M1A1_commander";
|
||||
|
||||
//based on fishing boat
|
||||
transportMaxMagazines = 500;
|
||||
transportMaxWeapons = 50;
|
||||
transportMaxBackpacks = 10;
|
||||
// unitInfoType = UnitInfoCar; //By default no hud information
|
||||
//crew
|
||||
getInAction = GetInLow;
|
||||
getOutAction = GetOutLow;
|
||||
transportSoldier = 3;
|
||||
typicalCargo[] = {RU_Soldier,RU_Soldier_AR,RU_Soldier_AR};
|
||||
driverAction = PBX_Driver;
|
||||
cargoAction[] = {Truck_Cargo04,Truck_Cargo01,Truck_Cargo01};
|
||||
// FB_Cargo01,FB_Cargo02,FB_Cargo03,FB_Cargo03,FB_Cargo03,FB_Cargo03,FB_Cargo04
|
||||
cargoGetInAction[] = {"GetInLow"};
|
||||
cargoGetOutAction[] = {"GetOutLow"};
|
||||
extCameraPosition[] = {0,4.0,-14.0};
|
||||
|
||||
//ensure no turrets active
|
||||
class turrets{};
|
||||
//anim sources
|
||||
class AnimationSources
|
||||
{
|
||||
class dive
|
||||
{
|
||||
AnimPeriod = 12;
|
||||
source = "user";
|
||||
InitPhase = 0;
|
||||
};
|
||||
class peri_trans
|
||||
{
|
||||
AnimPeriod = 3;
|
||||
source = "user";
|
||||
InitPhase = 0;
|
||||
};
|
||||
class IndicatorSonar
|
||||
{
|
||||
AnimPeriod = 1;
|
||||
source = "user";
|
||||
InitPhase = 0;
|
||||
};
|
||||
};
|
||||
//in vehicle actions
|
||||
class UserActions
|
||||
{
|
||||
class dive
|
||||
{
|
||||
displayName = "Dive";
|
||||
displayNameDefault = "";
|
||||
onlyforplayer = true;
|
||||
position = "zamerny";
|
||||
radius = 1;
|
||||
priority = 99;
|
||||
condition = "(player == (driver this)) && {(surfaceIsWater position this) && {(((getPosATL this) select 2) > 10) && (this animationphase ""dive"" <= 0.5)}}";
|
||||
statement = "this animate [""dive"", 1]";
|
||||
};
|
||||
class surface : dive
|
||||
{
|
||||
displayName = "Surface";
|
||||
condition = "(player == (driver this)) && {(this animationphase ""dive"" > 0.5)}";
|
||||
statement = "this animate [""dive"", 0];";
|
||||
};
|
||||
/*
|
||||
class periscope_up
|
||||
{
|
||||
displayName = "Periscope Up";
|
||||
displayNameDefault = "";
|
||||
onlyforplayer = true;
|
||||
position = "zamerny";
|
||||
radius = 3;
|
||||
priority = 99;
|
||||
condition = "(player == driver this) && (this animationphase ""peri_trans"" < 0.5)";
|
||||
statement = "this animate [""peri_trans"", 1]";
|
||||
};
|
||||
class periscope_down : periscope_up
|
||||
{
|
||||
displayName = "Periscope Down";
|
||||
condition = "(player == driver this) && (this animationphase ""peri_trans"" > 0.5)";
|
||||
statement = "this animate [""peri_trans"", 0];";
|
||||
};
|
||||
*/
|
||||
};
|
||||
//damage
|
||||
class HitPoints: HitPoints
|
||||
{
|
||||
class HitHull
|
||||
{
|
||||
armor = 0.85;
|
||||
material = -1;
|
||||
name = "telo";
|
||||
visual = "zbytek";
|
||||
passThrough = 1;
|
||||
};
|
||||
class HitEngine
|
||||
{
|
||||
armor = 1.2;
|
||||
material = 60;
|
||||
name = "motor";
|
||||
visual = "zbytek";
|
||||
passThrough = 1;
|
||||
};
|
||||
};
|
||||
class Damage
|
||||
{
|
||||
tex[] = {};
|
||||
mat[] =
|
||||
{
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_01.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_01_damage.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_01_destruct.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_02.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_02_damage.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_02_destruct.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_03.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_03_damage.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_03_destruct.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_details.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_details_damage.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_details_destruct.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_int.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_int_damage.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_int_destruct.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_shell.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_shell_damage.rvmat",
|
||||
"z\addons\dayz_epoch_v\vehicles\sub\data\sub_shell_destruct.rvmat"
|
||||
};
|
||||
};
|
||||
//sounds
|
||||
insideSoundCoef = 1;
|
||||
soundEngineOnInt[] = {"ca\sounds\vehicles\water\rhib\ext-boat-start-01", db-20, 1.0};
|
||||
soundEngineOnExt[] = {"ca\sounds\vehicles\water\rhib\ext-boat-start-01", db0, 1.0, 150};
|
||||
soundEngineOffInt[] = {"ca\sounds\vehicles\water\rhib\ext-boat-stop-01", db-20, 1.0};
|
||||
soundEngineOffExt[] = {"ca\sounds\vehicles\water\rhib\ext-boat-stop-01", db0, 1.0, 150};
|
||||
class Sounds
|
||||
{
|
||||
class Engine
|
||||
{
|
||||
sound[] = {"ca\sounds\vehicles\water\rhib\ext-boat-engine-low-01", db0, 0.9, 300};
|
||||
frequency = "(randomizer*0.05+0.95)*rpm";
|
||||
volume = "engineOn*(rpm factor[0.5, 0.1])";
|
||||
};
|
||||
class EngineHighOut
|
||||
{
|
||||
sound[] = {"ca\sounds\vehicles\water\rhib\ext-boat-engine-high-01", db0, 0.8, 300};
|
||||
frequency = "(randomizer*0.05+0.95)*rpm";
|
||||
volume = "engineOn*(rpm factor[0.4, 1.3])";
|
||||
};
|
||||
class IdleOut
|
||||
{
|
||||
sound[] = {"ca\sounds\vehicles\water\rhib\ext-boat-engine-idle-03", db-5, 1.0, 150};
|
||||
frequency = "1";
|
||||
volume = "engineOn*(rpm factor[0.3, 0])";
|
||||
};
|
||||
class WaternoiseOutW0
|
||||
{
|
||||
sound[] = {"ca\sounds\vehicles\water\water_sfx\ext-water-noise-nospeed", db-8, 1.0, 100};
|
||||
frequency = "1";
|
||||
volume = "(speed factor[7, 0])";
|
||||
};
|
||||
class WaternoiseOutW1
|
||||
{
|
||||
sound[] = {"ca\sounds\vehicles\water\water_sfx\ext-boat-lospd-noise-02", db-8, 1.0, 100};
|
||||
frequency = "1";
|
||||
volume = "((speed factor[2, 12]) min (speed factor[12, 2]))";
|
||||
};
|
||||
class WaternoiseOutW2
|
||||
{
|
||||
sound[] = {"ca\sounds\vehicles\water\water_sfx\ext-boat-hispd-noise-02", db-8, 1.0, 100};
|
||||
frequency = "1";
|
||||
volume = "(speed factor[9, 18.7])";
|
||||
};
|
||||
};
|
||||
class ViewPilot: ViewPilot
|
||||
{
|
||||
initFov = 0.7;
|
||||
minFov = 0.25;
|
||||
maxFov = 1.4;
|
||||
initAngleX = 0;
|
||||
minAngleX = -65;
|
||||
maxAngleX = 85; //Rg
|
||||
initAngleY = 0;
|
||||
minAngleY = -150;
|
||||
maxAngleY = 150; //Rg
|
||||
};
|
||||
//searchlight
|
||||
class Reflectors
|
||||
{
|
||||
class main_reflector
|
||||
{
|
||||
color[] = {0.8, 0.8, 0.9, 1.0};
|
||||
ambient[] = {0.1, 0.1, 0.1, 1.0};
|
||||
position = "light";
|
||||
direction = "lightEnd";
|
||||
hitpoint = "light";
|
||||
selection = "light";
|
||||
size = 1.0;
|
||||
brightness = 5.0;
|
||||
};
|
||||
};
|
||||
//blinkers
|
||||
class MarkerLights
|
||||
{
|
||||
class RedStill
|
||||
{
|
||||
name = "red_light";
|
||||
color[] = {1.0, 0.1, 0.1, 1};
|
||||
ambient[] = {0.1, 0.01, 0.01, 1};
|
||||
brightness = 0.01;
|
||||
blinking = false;
|
||||
};
|
||||
class GreenStill
|
||||
{
|
||||
name = "green_light";
|
||||
color[] = {0.1, 1.0, 0.1, 1};
|
||||
ambient[] = {0.01, 0.1, 0.01, 1};
|
||||
brightness = 0.01;
|
||||
blinking = false;
|
||||
};
|
||||
class WhiteStill
|
||||
{
|
||||
name = "white_light";
|
||||
color[] = {1.0, 1.0, 1.0, 1};
|
||||
ambient[] = {0.1, 0.1, 0.1, 1};
|
||||
brightness = 0.01;
|
||||
blinking = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Submarine_DZE: Submarine_DZE_base
|
||||
{
|
||||
scope = 2;
|
||||
displayName = $STR_VEH_NAME_SUBMARINE;
|
||||
transportMaxMagazines = 360;
|
||||
transportMaxWeapons = 80;
|
||||
transportMaxBackpacks = 20;
|
||||
};
|
||||
Reference in New Issue
Block a user