mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
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
|
//Unarmed Boats
|
||||||
class Category_49 {
|
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_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 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"};};
|
class Fishing_Boat_DZE {type = "trade_any_boat";buy[] = {4,"ItemGoldBar10oz"};sell[] = {2,"ItemGoldBar10oz"};};
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class Category_48 {
|
|||||||
|
|
||||||
//Unarmed Boats
|
//Unarmed Boats
|
||||||
class Category_49 {
|
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_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 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"};};
|
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\smallboat.hpp"
|
||||||
#include "Boat\JetSkiYanahui.hpp"
|
#include "Boat\JetSkiYanahui.hpp"
|
||||||
#include "Boat\Seafox.hpp"
|
#include "Boat\Seafox.hpp"
|
||||||
|
#include "Boat\Submarine.hpp"
|
||||||
|
|
||||||
//Epoch Parachute
|
//Epoch Parachute
|
||||||
#include "Parachute.hpp"
|
#include "Parachute.hpp"
|
||||||
|
|||||||
@@ -32,23 +32,23 @@ if (Z_SingleCurrency) then {
|
|||||||
"<img image='%1' size='3' align='center'/><br />" +
|
"<img image='%1' size='3' align='center'/><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%9: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%9: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%12: </t><t color='#ffffff' size='0.7'>%6 %4</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%12: </t><t color='#ffffff' size='0.7'>%6 %7</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%5 %4</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%14: </t><t color='#ffffff' size='0.7'><img image='%13'/> %8</t><br />",
|
"<t color='#bcbcbc' size='0.7'>%14: </t><t color='#ffffff' size='0.7'><img image='%13'/> %8</t><br />",
|
||||||
_picture,
|
_picture,
|
||||||
_display,
|
_display,
|
||||||
_class,
|
_class,
|
||||||
CurrencyName,
|
CurrencyName,
|
||||||
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
||||||
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {"";},
|
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
CurrencyName,
|
if (_buyPrice >= 0) then {CurrencyName} else {""},
|
||||||
_transportMaxMagazines,
|
_transportMaxMagazines,
|
||||||
localize "STR_EPOCH_NAME",
|
localize "STR_EPOCH_NAME",
|
||||||
localize "STR_EPOCH_CLASS",
|
localize "STR_EPOCH_CLASS",
|
||||||
localize "STR_EPOCH_PLAYER_292",
|
localize "STR_EPOCH_PLAYER_292",
|
||||||
localize "STR_EPOCH_PLAYER_291",
|
localize "STR_EPOCH_PLAYER_291",
|
||||||
"\z\addons\dayz_code\gui\gear\gear_ui_slots_items_white.paa",
|
"\z\addons\dayz_code\gui\gear\gear_ui_slots_items_white.paa",
|
||||||
localize "STR_EPOCH_CARGO_SPACE"
|
localize "STR_EPOCH_CARGO_SPACE"
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
_picSell = "";
|
_picSell = "";
|
||||||
@@ -60,6 +60,8 @@ if (Z_SingleCurrency) then {
|
|||||||
if (_buyPrice >= 0) then {
|
if (_buyPrice >= 0) then {
|
||||||
_picBuy = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'picture');
|
_picBuy = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'picture');
|
||||||
_buyCurrency = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'displayName');
|
_buyCurrency = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'displayName');
|
||||||
|
} else {
|
||||||
|
_buyCurrency = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
_formattedText = format [
|
_formattedText = format [
|
||||||
@@ -74,7 +76,7 @@ if (Z_SingleCurrency) then {
|
|||||||
_class,
|
_class,
|
||||||
_buyCurrency,
|
_buyCurrency,
|
||||||
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
||||||
if (_buyPrice >= 0) then {_buyPrice} else {"";},
|
if (_buyPrice >= 0) then {_buyPrice} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
_sellCurrency,
|
_sellCurrency,
|
||||||
_transportMaxMagazines,
|
_transportMaxMagazines,
|
||||||
localize "STR_EPOCH_NAME",
|
localize "STR_EPOCH_NAME",
|
||||||
|
|||||||
@@ -57,19 +57,20 @@ if (Z_SingleCurrency) then {
|
|||||||
"<img image='%1' size='3' align='center'/><br />" +
|
"<img image='%1' size='3' align='center'/><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%8: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%8: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%9: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%9: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%6 %7</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%6 %12</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />",
|
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />",
|
||||||
_picture,
|
_picture,
|
||||||
_display,
|
_display,
|
||||||
_class,
|
_class,
|
||||||
'lazy',
|
'lazy',
|
||||||
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
||||||
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {"";},
|
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
CurrencyName,
|
CurrencyName,
|
||||||
localize "STR_EPOCH_NAME",
|
localize "STR_EPOCH_NAME",
|
||||||
localize "STR_EPOCH_CLASS",
|
localize "STR_EPOCH_CLASS",
|
||||||
localize "STR_EPOCH_PLAYER_292",
|
localize "STR_EPOCH_PLAYER_292",
|
||||||
localize "STR_EPOCH_PLAYER_291"
|
localize "STR_EPOCH_PLAYER_291",
|
||||||
|
if (_buyPrice >= 0) then {CurrencyName} else {""}
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
_picSell = "";
|
_picSell = "";
|
||||||
@@ -81,7 +82,10 @@ if (Z_SingleCurrency) then {
|
|||||||
if (_buyPrice >= 0) then {
|
if (_buyPrice >= 0) then {
|
||||||
_picBuy = getText (configFile >> "CfgMagazines" >> _buyCurrency >> "picture");
|
_picBuy = getText (configFile >> "CfgMagazines" >> _buyCurrency >> "picture");
|
||||||
_buyCurrency = getText (configFile >> "CfgMagazines" >> _buyCurrency >> "displayName");
|
_buyCurrency = getText (configFile >> "CfgMagazines" >> _buyCurrency >> "displayName");
|
||||||
|
} else {
|
||||||
|
_buyCurrency = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
_formattedText = format [
|
_formattedText = format [
|
||||||
"<img image='%1' size='3' align='center'/><br />" +
|
"<img image='%1' size='3' align='center'/><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
||||||
@@ -93,7 +97,7 @@ if (Z_SingleCurrency) then {
|
|||||||
_class,
|
_class,
|
||||||
'lazy',
|
'lazy',
|
||||||
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
||||||
if (_buyPrice >= 0) then {_buyPrice} else {"";},
|
if (_buyPrice >= 0) then {_buyPrice} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
_sellCurrency,
|
_sellCurrency,
|
||||||
_picSell,
|
_picSell,
|
||||||
_buyCurrency,
|
_buyCurrency,
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ if (Z_SingleCurrency) then {
|
|||||||
"<img image='%1' size='3' /><br />" +
|
"<img image='%1' size='3' /><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%13: </t><t color='#ffffff' size='0.7'>%6 %7</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%13: </t><t color='#ffffff' size='0.7'>%6 %27</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%12: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%12: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%14: </t><t color='#ffffff' size='0.7'><img image='%15'/> %8 <img image='%16'/> %9 <img image='%26'/> %4</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%14: </t><t color='#ffffff' size='0.7'><img image='%15'/> %8 <img image='%16'/> %9 <img image='%26'/> %4</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%17: </t><t color='#ffffff' size='0.7'>%18 </t><t color='#bcbcbc' size='0.7'>%24: </t><t color='#ffffff' size='0.7'>%25</t><br />" + // Armor / Seats
|
"<t color='#bcbcbc' size='0.7'>%17: </t><t color='#ffffff' size='0.7'>%18 </t><t color='#bcbcbc' size='0.7'>%24: </t><t color='#ffffff' size='0.7'>%25</t><br />" + // Armor / Seats
|
||||||
@@ -127,7 +127,7 @@ if (Z_SingleCurrency) then {
|
|||||||
_class,
|
_class,
|
||||||
_transportmaxBackpacks,
|
_transportmaxBackpacks,
|
||||||
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
||||||
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {"";},
|
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
CurrencyName,
|
CurrencyName,
|
||||||
_transportMaxWeapons,
|
_transportMaxWeapons,
|
||||||
_transportMaxMagazines,
|
_transportMaxMagazines,
|
||||||
@@ -147,7 +147,8 @@ if (Z_SingleCurrency) then {
|
|||||||
_maxSpeed,
|
_maxSpeed,
|
||||||
localize "STR_EPOCH_SEATS",
|
localize "STR_EPOCH_SEATS",
|
||||||
_seats,
|
_seats,
|
||||||
"\z\addons\dayz_code\gui\gear\gear_ui_slots_backpacks_white.paa"
|
"\z\addons\dayz_code\gui\gear\gear_ui_slots_backpacks_white.paa",
|
||||||
|
if (_buyPrice >= 0) then {CurrencyName} else {""}
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
_picSell = "";
|
_picSell = "";
|
||||||
@@ -159,6 +160,8 @@ if (Z_SingleCurrency) then {
|
|||||||
if (_buyPrice >= 0) then {
|
if (_buyPrice >= 0) then {
|
||||||
_picBuy = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'picture');
|
_picBuy = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'picture');
|
||||||
_buyCurrency = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'displayName');
|
_buyCurrency = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'displayName');
|
||||||
|
} else {
|
||||||
|
_buyCurrency = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
_formattedText = format [
|
_formattedText = format [
|
||||||
@@ -175,7 +178,7 @@ if (Z_SingleCurrency) then {
|
|||||||
_class,
|
_class,
|
||||||
_transportmaxBackpacks,
|
_transportmaxBackpacks,
|
||||||
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
||||||
if (_buyPrice >= 0) then {_buyPrice} else {"";},
|
if (_buyPrice >= 0) then {_buyPrice} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
_buyCurrency,
|
_buyCurrency,
|
||||||
_transportMaxWeapons,
|
_transportMaxWeapons,
|
||||||
_transportMaxMagazines,
|
_transportMaxMagazines,
|
||||||
|
|||||||
@@ -66,19 +66,20 @@ if (Z_SingleCurrency) then {
|
|||||||
"<img image='%1' size='3' align='center' /><br />" +
|
"<img image='%1' size='3' align='center' /><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%8: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%8: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%9: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%9: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%6 %7</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%6 %12</t><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />",
|
"<t color='#bcbcbc' size='0.7'>%10: </t><t color='#ffffff' size='0.7'>%5 %7</t><br />",
|
||||||
_picture,
|
_picture,
|
||||||
_display,
|
_display,
|
||||||
_class,
|
_class,
|
||||||
_magText,
|
_magText,
|
||||||
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
if (_sellPrice >= 0) then {[_sellPrice] call BIS_fnc_numberText;} else {"";},
|
||||||
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {"";},
|
if (_buyPrice >= 0) then {[_buyPrice] call BIS_fnc_numberText;} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
CurrencyName,
|
CurrencyName,
|
||||||
localize "STR_EPOCH_NAME",
|
localize "STR_EPOCH_NAME",
|
||||||
localize "STR_EPOCH_CLASS",
|
localize "STR_EPOCH_CLASS",
|
||||||
localize "STR_EPOCH_PLAYER_292",
|
localize "STR_EPOCH_PLAYER_292",
|
||||||
localize "STR_EPOCH_PLAYER_291"
|
localize "STR_EPOCH_PLAYER_291",
|
||||||
|
if (_buyPrice >= 0) then {CurrencyName} else {""}
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
_picSell = "";
|
_picSell = "";
|
||||||
@@ -90,7 +91,10 @@ if (Z_SingleCurrency) then {
|
|||||||
if (_buyPrice >= 0) then {
|
if (_buyPrice >= 0) then {
|
||||||
_picBuy = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'picture');
|
_picBuy = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'picture');
|
||||||
_buyCurrency = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'displayName');
|
_buyCurrency = getText (configFile >> 'CfgMagazines' >> _buyCurrency >> 'displayName');
|
||||||
|
} else {
|
||||||
|
_buyCurrency = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
_formattedText = format [
|
_formattedText = format [
|
||||||
"<img image='%1' size='3' align='center' /><br />" +
|
"<img image='%1' size='3' align='center' /><br />" +
|
||||||
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
"<t color='#bcbcbc' size='0.7'>%11: </t><t color='#ffffff' size='0.7'>%2</t><br />" +
|
||||||
@@ -102,7 +106,7 @@ if (Z_SingleCurrency) then {
|
|||||||
_class,
|
_class,
|
||||||
_magText,
|
_magText,
|
||||||
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
if (_sellPrice >= 0) then {_sellPrice} else {"";},
|
||||||
if (_buyPrice >= 0) then {_buyPrice} else {"";},
|
if (_buyPrice >= 0) then {_buyPrice} else {localize "STR_EPOCH_TRADE_UNBUYABLE";},
|
||||||
_sellCurrency,
|
_sellCurrency,
|
||||||
_buyCurrency,
|
_buyCurrency,
|
||||||
_picSell,
|
_picSell,
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ Opens player inventory to save
|
|||||||
_magazineArray = [] call player_countMagazines;
|
_magazineArray = [] call player_countMagazines;
|
||||||
|
|
||||||
if ((count _magazineArray) > 0) then {
|
if ((count _magazineArray) > 0) then {
|
||||||
PVDZ_plr_Save = [player, if (player isKindOf "PZombie_VB") then {nil} else {_magazineArray},dayz_onBack];
|
PVDZ_plr_Save = [player, if (player isKindOf "PZombie_VB") then {nil} else {_magazineArray},dayz_onBack,weapons player];
|
||||||
publicVariableServer "PVDZ_plr_Save";
|
publicVariableServer "PVDZ_plr_Save";
|
||||||
};
|
};
|
||||||
|
|
||||||
//diag_log format["Player_forceSave with magazines: %1",_magazineArray];
|
//diag_log format["Player_forceSave with magazines: %1",_magazineArray];
|
||||||
|
|
||||||
dayz_lastSave = diag_tickTime;
|
dayz_lastSave = diag_tickTime;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Email: N/A
|
Email: N/A
|
||||||
Creation date: 2020-12-30 17:20:00
|
Creation date: 2020-12-30 17:20:00
|
||||||
Last modified time: 2020-12-30 17:34:00
|
Last modified time: 2021-03-08 14:04:00
|
||||||
Description:
|
Description:
|
||||||
Requests a simple save for the player object.
|
Requests a simple save for the player object.
|
||||||
Example:
|
Example:
|
||||||
@@ -13,5 +13,5 @@
|
|||||||
Nothing
|
Nothing
|
||||||
*/
|
*/
|
||||||
|
|
||||||
PVDZ_plr_Save = [player,nil,dayz_onBack];
|
PVDZ_plr_Save = [player,nil,dayz_onBack,weapons player];
|
||||||
publicVariableServer "PVDZ_plr_Save";
|
publicVariableServer "PVDZ_plr_Save";
|
||||||
@@ -114,6 +114,7 @@ class DefaultEventhandlers {
|
|||||||
#include "Configs\CfgGlasses.hpp"
|
#include "Configs\CfgGlasses.hpp"
|
||||||
#include "Configs\CfgArma.hpp"
|
#include "Configs\CfgArma.hpp"
|
||||||
#include "Configs\CfgRecoils.hpp"
|
#include "Configs\CfgRecoils.hpp"
|
||||||
|
#include "Configs\CfgParticles.hpp"
|
||||||
//#include "Configs\RadioProtocol.hpp"
|
//#include "Configs\RadioProtocol.hpp"
|
||||||
//#include "gui\padlock\padlock_ui.hpp"
|
//#include "gui\padlock\padlock_ui.hpp"
|
||||||
|
|
||||||
|
|||||||
@@ -13471,6 +13471,11 @@
|
|||||||
<German>Motorrad M1030 (Grün)</German>
|
<German>Motorrad M1030 (Grün)</German>
|
||||||
<Russian>Мотоцикл M1030 (Зелёный)</Russian>
|
<Russian>Мотоцикл M1030 (Зелёный)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_VEH_NAME_SUBMARINE">
|
||||||
|
<English>Submarine</English>
|
||||||
|
<German>U-Boot</German>
|
||||||
|
<Russian>Подводная лодка</Russian>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_VEH_NAME_RHIB_M2">
|
<Key ID="STR_VEH_NAME_RHIB_M2">
|
||||||
<English>RHIB (M2)</English>
|
<English>RHIB (M2)</English>
|
||||||
<Russian>НЛЖК (M2)</Russian>
|
<Russian>НЛЖК (M2)</Russian>
|
||||||
@@ -13478,7 +13483,7 @@
|
|||||||
<Key ID="STR_VEH_NAME_RHIB_MK19">
|
<Key ID="STR_VEH_NAME_RHIB_MK19">
|
||||||
<English>RHIB (MK 19)</English>
|
<English>RHIB (MK 19)</English>
|
||||||
<Russian>НЛЖК (MK 19)</Russian>
|
<Russian>НЛЖК (MK 19)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_VEH_NAME_PBX">
|
<Key ID="STR_VEH_NAME_PBX">
|
||||||
<English>PBX Rubber Boat</English>
|
<English>PBX Rubber Boat</English>
|
||||||
<Russian>Моторная лодка ПВХ</Russian>
|
<Russian>Моторная лодка ПВХ</Russian>
|
||||||
@@ -28943,6 +28948,11 @@
|
|||||||
<German>Etwas Wechselgeld ist in deinem Inventar verborgen. Reduziere die Gegenstände in deinem Inventar, um das Wechselgeld sichtbar zu machen!</German>
|
<German>Etwas Wechselgeld ist in deinem Inventar verborgen. Reduziere die Gegenstände in deinem Inventar, um das Wechselgeld sichtbar zu machen!</German>
|
||||||
<Russian>Некоторые изменения скрыты в вашем инвентаре. Уменьшите количество предметов в инвентаре, чтобы увидеть изменения!</Russian>
|
<Russian>Некоторые изменения скрыты в вашем инвентаре. Уменьшите количество предметов в инвентаре, чтобы увидеть изменения!</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_EPOCH_TRADE_UNBUYABLE">
|
||||||
|
<English>Unbuyable</English>
|
||||||
|
<German>Nicht kaufbar</German>
|
||||||
|
<Russian>Невозможно купить</Russian>
|
||||||
|
</Key>
|
||||||
|
|
||||||
<!-- PLOT MANAGEMENT BELOW -->
|
<!-- PLOT MANAGEMENT BELOW -->
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
local _character = _this select 0;
|
local _character = _this select 0;
|
||||||
local _magazines = _this select 1;
|
local _magazines = _this select 1;
|
||||||
local _dayz_onBack = _this select 2;
|
local _dayz_onBack = _this select 2;
|
||||||
|
local _weapons = _this select 3;
|
||||||
local _characterID = _character getVariable ["characterID","0"];
|
local _characterID = _character getVariable ["characterID","0"];
|
||||||
local _playerUID = getPlayerUID _character;
|
local _playerUID = getPlayerUID _character;
|
||||||
local _charPos = getPosATL _character;
|
local _charPos = getPosATL _character;
|
||||||
@@ -53,7 +54,7 @@ local _charPosLen = count _charPos;
|
|||||||
local _magTemp = [];
|
local _magTemp = [];
|
||||||
|
|
||||||
if (!isNil "_magazines") then {
|
if (!isNil "_magazines") then {
|
||||||
_playerGear = [weapons _character,_magazines,_dayz_onBack];
|
_playerGear = [_weapons,_magazines,_dayz_onBack];
|
||||||
_character setVariable["ServerMagArray",[_magazines,_dayz_onBack], false];
|
_character setVariable["ServerMagArray",[_magazines,_dayz_onBack], false];
|
||||||
} else {
|
} else {
|
||||||
//check Magazines everytime they aren't sent by player_forceSave
|
//check Magazines everytime they aren't sent by player_forceSave
|
||||||
@@ -78,7 +79,7 @@ if (!isNil "_magazines") then {
|
|||||||
_magazines = _magTemp - ["0"];
|
_magazines = _magTemp - ["0"];
|
||||||
_magazines = [_magazines, (_lastMagazines select 1)];
|
_magazines = [_magazines, (_lastMagazines select 1)];
|
||||||
_character setVariable["ServerMagArray",_magazines, false];
|
_character setVariable["ServerMagArray",_magazines, false];
|
||||||
_playerGear = [weapons _character,_magazines select 0,_magazines select 1];
|
_playerGear = [_weapons,_magazines select 0,_magazines select 1];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -88,8 +88,8 @@ server_obj_dam = {
|
|||||||
_array set [count _array,[(_hit select 1),0]];
|
_array set [count _array,[(_hit select 1),0]];
|
||||||
};
|
};
|
||||||
} count _hitpoints;
|
} count _hitpoints;
|
||||||
|
|
||||||
if (_allFixed && {!_totalDmg}) then {_object setDamage 0;};
|
if (_allFixed && !_totalDmg) then {_object setDamage 0;};
|
||||||
|
|
||||||
if (_forced) then {
|
if (_forced) then {
|
||||||
if (_object in needUpdate_objects) then {needUpdate_objects = needUpdate_objects - [_object];};
|
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],
|
["RHIB2Turret_DZE",_Ratio1],
|
||||||
["Smallboat_1_DZE",_Ratio3],
|
["Smallboat_1_DZE",_Ratio3],
|
||||||
["Smallboat_2_DZE",_Ratio3],
|
["Smallboat_2_DZE",_Ratio3],
|
||||||
["Zodiac_DZE",_Ratio3]
|
["Zodiac_DZE",_Ratio3],
|
||||||
|
["Submarine_DZE",_Ratio3]
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user