mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
Add submarine
Thx @Helion4 for the model
This commit is contained in:
26
SQF/dayz_code/Configs/CfgParticles.hpp
Normal file
26
SQF/dayz_code/Configs/CfgParticles.hpp
Normal file
@@ -0,0 +1,26 @@
|
||||
//need to remove the spray, submarine is not a speedboat,
|
||||
//so create an empty particle effect
|
||||
class CfgCloudlets
|
||||
{
|
||||
class Default;
|
||||
class subpart: Default
|
||||
{
|
||||
interval = 0;
|
||||
sizeCoef = 0;
|
||||
colorCoef[] = {1,1,1,1};
|
||||
animationName = "";
|
||||
animationSpeedCoef = 0;
|
||||
lifetime = 0;
|
||||
position[] = {0,0,0};
|
||||
};
|
||||
};
|
||||
|
||||
//need to remove the spray, submarine is not a speedboat
|
||||
class subspray
|
||||
{
|
||||
class subspray
|
||||
{
|
||||
simulation = "particles";
|
||||
type = "subpart";
|
||||
};
|
||||
};
|
||||
@@ -8,6 +8,7 @@ class Category_48 {
|
||||
|
||||
//Unarmed Boats
|
||||
class Category_49 {
|
||||
class Submarine_DZE {type = "trade_any_boat";buy[] = {2,"ItemBriefcase100oz"};sell[] = {1,"ItemBriefcase100oz"};};
|
||||
class Smallboat_1_DZE {type = "trade_any_boat";buy[] = {2,"ItemGoldBar10oz"};sell[] = {1,"ItemGoldBar10oz"};};
|
||||
class Smallboat_2_DZE {type = "trade_any_boat";buy[] = {2,"ItemGoldBar10oz"};sell[] = {1,"ItemGoldBar10oz"};};
|
||||
class Fishing_Boat_DZE {type = "trade_any_boat";buy[] = {4,"ItemGoldBar10oz"};sell[] = {2,"ItemGoldBar10oz"};};
|
||||
|
||||
@@ -8,6 +8,7 @@ class Category_48 {
|
||||
|
||||
//Unarmed Boats
|
||||
class Category_49 {
|
||||
class Submarine_DZE {type = "trade_any_boat";buy[] = {20000,"worth"};sell[] = {10000,"worth"};};
|
||||
class Smallboat_1_DZE {type = "trade_any_boat";buy[] = {2000,"worth"};sell[] = {1000,"worth"};};
|
||||
class Smallboat_2_DZE {type = "trade_any_boat";buy[] = {2000,"worth"};sell[] = {1000,"worth"};};
|
||||
class Fishing_Boat_DZE {type = "trade_any_boat";buy[] = {4000,"worth"};sell[] = {2000,"worth"};};
|
||||
|
||||
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;
|
||||
};
|
||||
@@ -707,6 +707,7 @@ class CfgVehicles
|
||||
#include "Boat\smallboat.hpp"
|
||||
#include "Boat\JetSkiYanahui.hpp"
|
||||
#include "Boat\Seafox.hpp"
|
||||
#include "Boat\Submarine.hpp"
|
||||
|
||||
//Epoch Parachute
|
||||
#include "Parachute.hpp"
|
||||
|
||||
@@ -114,6 +114,7 @@ class DefaultEventhandlers {
|
||||
#include "Configs\CfgGlasses.hpp"
|
||||
#include "Configs\CfgArma.hpp"
|
||||
#include "Configs\CfgRecoils.hpp"
|
||||
#include "Configs\CfgParticles.hpp"
|
||||
//#include "Configs\RadioProtocol.hpp"
|
||||
//#include "gui\padlock\padlock_ui.hpp"
|
||||
|
||||
|
||||
@@ -88,8 +88,8 @@ server_obj_dam = {
|
||||
_array set [count _array,[(_hit select 1),0]];
|
||||
};
|
||||
} count _hitpoints;
|
||||
|
||||
if (_allFixed && {!_totalDmg}) then {_object setDamage 0;};
|
||||
|
||||
if (_allFixed && !_totalDmg) then {_object setDamage 0;};
|
||||
|
||||
if (_forced) then {
|
||||
if (_object in needUpdate_objects) then {needUpdate_objects = needUpdate_objects - [_object];};
|
||||
|
||||
@@ -216,7 +216,8 @@ if (toLower worldName in ["caribou","chernarus","cmr_ovaron","dayznogova","dingo
|
||||
["RHIB2Turret_DZE",_Ratio1],
|
||||
["Smallboat_1_DZE",_Ratio3],
|
||||
["Smallboat_2_DZE",_Ratio3],
|
||||
["Zodiac_DZE",_Ratio3]
|
||||
["Zodiac_DZE",_Ratio3],
|
||||
["Submarine_DZE",_Ratio3]
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user