0.3.9.0509

[Added] Starting to add support for Tanoa. (more loot positions and
world interaction configs still needed)
[Changed] move vehicle EH init before setdamage.
[Changed] add extra debug to load vehicles.
[Changed] Tool: buildings without loot pos script now uses mission
config and terrain objects command.
[Fixed] take into account trader stored per class vehicle limits when
spawning new vehicles.
This commit is contained in:
vbawol 2016-06-12 08:29:10 -05:00
parent 70c7df8c4f
commit e97c17ce12
42 changed files with 3728 additions and 14 deletions

Binary file not shown.

View File

@ -9195,6 +9195,552 @@ class CfgBuildingLootPos
};
// Tanoa Start
class Land_Slum_01_F : Default {
shelfPos[] = {
{ {5.25391,1.71436,0.658049}, 84.7501 }
};
fridgePos[] = {
{ {5.03906,-1.99072,0.658049}, 176.525 }
};
bedPos[] = {
{ {1.07031,1.3623,0.658049}, 269.404 }
};
couchPos[] = {
{ {1.93359,-1.15479,0.658049}, 89.0329 }
};
cookerPos[] = {
{ {3.92383,-1.99268,0.658049}, 181.256 }
};
chairPos[] = {
{ {5.05859,0.463379,0.658049}, 90.9162 }
};
filingPos[] = {
{ {-0.882813,-0.362793,0.658049}, 267.887 }
};
};
class Land_Shed_03_F : Default {
shelfPos[] = {
{ {-2.01563,-0.980957,-0.751299}, 269.311 }
};
toolRackPos[] = {
{ {2.14844,2.00049,-0.751299}, 0.999977 }
};
shoeboxPos[] = {
{ {0.509766,1.26611,0.0687008}, 45.1 }
};
palletPos[] = {
{ {1.64063,0.697266,-0.731299}, 95.1 }
};
};
class Land_Slum_02_F : Default {
bedPos[] = {
{ {1.22852,-3.61572,0.172568}, 90.4497 }
};
couchPos[] = {
{ {1.55273,3.08984,0.172568}, 357.823 }
};
chairPos[] = {
{ {-2.19727,4.18018,0.172568}, 330.547 }
};
tablePos[] = {
{ {-2.22461,-2.31494,0.172568}, 270.659 }
};
freezerPos[] = {
{ {-1.76563,-4.21729,0.172568}, 178.06 }
};
};
class Land_House_Native_02_F : Default {
bedPos[] = {
{ {0.9375,1.75684,-2.37989}, 272.018 },
{ {-3.10547,-1.17676,-2.39065}, 181.605 }
};
couchPos[] = {
{ {-0.34375,-0.958984,-9.34442}, 88.1513 },
{ {-0.556641,-1.53369,-2.39481}, 93.8058 }
};
chairPos[] = {
{ {1.99609,-2.19531,-2.40153}, 124.93 }
};
tablePos[] = {
{ {-2.42383,2.229,-2.38727}, 3.42621 }
};
};
class Land_House_Small_03_F : Default {
shelfPos[] = {
{ {-1.22559,4.9668,-1.32402}, 0 }
};
fridgePos[] = {
{ {-3.01465,-1.84375,-1.32402}, 173 }
};
bedPos[] = {
{ {-3.58789,3.50586,-1.32402}, 360 }
};
couchPos[] = {
{ {1.82227,1.22754,-1.33284}, 0 }
};
wardrobePos[] = {
{ {-5.9375,1.37109,-1.32402}, 270 }
};
cookerPos[] = {
{ {-4.34082,-1.72656,-1.32402}, 178 }
};
chairPos[] = {
{ {2.62207,-1.78809,-1.33284}, 128 }
};
filingPos[] = {
{ {2.71094,4.85059,-1.32402}, 80 }
};
shoeboxPos[] = {
{ {-0.546875,-1.90332,-1.32402}, 220 }
};
};
class Land_House_Native_01_F : Default {
shelfPos[] = {
{ {-0.728516,-2.77393,-3.09498}, 179.287 }
};
bedPos[] = {
{ {0.015625,2.1377,-3.09498}, 267.599 }
};
couchPos[] = {
{ {2.50391,-1.8877,-3.09498}, 89.2346 }
};
chairPos[] = {
{ {-4.26367,2.45264,-3.09498}, 314.553 },
{ {-4.18945,-2.64697,-3.09498}, 230.264 }
};
tablePos[] = {
{ {4.14258,2.20703,-3.09498}, 86.9606 }
};
};
class Land_Shed_05_F : Default {
shelfPos[] = {
{ {0.584961,-2.53516,-0.917485}, 179 },
{ {2.10938,-2.5376,-0.885151}, 180 }
};
toolRackPos[] = {
{ {-2.91504,0.525391,-1.18515}, 271 }
};
shoeboxPos[] = {
{ {2.6543,1.2959,-0.917485}, 179 }
};
palletPos[] = {
{ {-2.04883,0.546875,-0.917485}, 239 }
};
};
class Land_Shed_04_F : Default {
shoeboxPos[] = {
{ {-0.276367,0.746094,-0.730756}, 20 }
};
};
class Land_Addon_05_F : Default {
shoeboxPos[] = {
{ {-2.1875,-8.24023,-1.5455}, 20 }
};
palletPos[] = {
{ {3.5293,-9.71973,-10}, 350 }
};
cabinetPos[] = {
{ {0.197266,8.04199,-0.245499}, 270 }
};
};
class Land_Shed_06_F : Default {
palletPos[] = {
{ {0.900391,-3.4082,-10}, 150 },
{ {3.21875,3.33691,-10}, 240 }
};
};
class Land_House_Small_04_F : Default {
fridgePos[] = {
{ {0.599609,3.83398,-0.817202}, 88 }
};
couchPos[] = {
{ {-1.0459,-3.00391,-0.879978}, 170 }
};
wardrobePos[] = {
{ {2.64111,-0.519531,-0.879978}, 349 }
};
cookerPos[] = {
{ {0.489746,2.70313,-0.817202}, 88 }
};
chairPos[] = {
{ {-3.22803,3.57813,-0.879978}, 93 },
{ {-1.81592,-5.86133,-0.879978}, 350 }
};
filingPos[] = {
{ {3.86328,-0.421875,-0.817202}, 4.99998 }
};
freezerPos[] = {
{ {0.489746,1.13086,-0.979978}, 83 }
};
};
class Land_House_Small_01_F : Default {
fridgePos[] = {
{ {1.35645,1.26563,-0.711113}, 270 }
};
bedPos[] = {
{ {-0.301758,2.41602,-0.711113}, 0 },
{ {-5.28613,2.12988,-0.711113}, 181 }
};
couchPos[] = {
{ {5.02441,-1.78613,-0.711113}, 3 }
};
wardrobePos[] = {
{ {-3.15137,3.43164,-0.711113}, 0 }
};
cookerPos[] = {
{ {1.47168,2.39844,-0.711113}, 274 }
};
chairPos[] = {
{ {-5.77539,-3.21094,-0.711113}, 230 }
};
filingPos[] = {
{ {1.37012,-3.65039,-0.711113}, 260 }
};
tablePos[] = {
{ {-2.49512,-3.42383,-0.711113}, 180 }
};
lockerPos[] = {
{ {1.37012,-2.08496,-0.711113}, 269 }
};
shoeboxPos[] = {
{ {5.11621,3.51172,-0.711113}, 330 }
};
freezerPos[] = {
{ {2.83594,3.32129,-0.711113}, 0 }
};
};
class Land_Shop_Town_04_F : Default {
filingPos[] = {
{ {-2.57227,7.74902,-2.47962}, 160 }
};
tablePos[] = {
{ {-0.00585938,-5.6123,-2.43639}, 7.00001 }
};
shoeboxPos[] = {
{ {3.9082,-5.51563,-2.43639}, 30 }
};
};
class Land_Shop_Town_01_F : Default {
shelfPos[] = {
{ {-0.230469,3.29053,-3.27726}, 90 }
};
fridgePos[] = {
{ {-4.0918,5.69189,-3.27726}, 0 }
};
couchPos[] = {
{ {-3.29492,-2.98584,-3.27726}, 180 }
};
chairPos[] = {
{ {4.00586,-1.50049,-3.27726}, 60 }
};
filingPos[] = {
{ {1.95313,-1.27393,-3.27726}, 340 },
{ {2.74023,-1.27441,-3.27726}, 9.99994 }
};
tablePos[] = {
{ {2.83008,-3.90283,-3.27726}, 180 }
};
palletPos[] = {
{ {-3.70313,1.3208,-3.27726}, 190 }
};
freezerPos[] = {
{ {-2.94531,5.59961,-3.27726}, 0 }
};
};
class Land_House_Small_05_F : Default {
bedPos[] = {
{ {-2.17871,4.17773,-1.08628}, 270 }
};
couchPos[] = {
{ {-2.03711,-0.123047,-1.08628}, 90 }
};
wardrobePos[] = {
{ {1.28809,2.62012,-1.08628}, 96 }
};
chairPos[] = {
{ {-3.27539,-2.1377,-1.08628}, 340 }
};
};
class Land_Slum_05_F : Default {
shoeboxPos[] = {
{ {-0.156738,-4.78711,0.0666714}, 340 }
};
};
class Land_WaterTower_01_F : Default {
shoeboxPos[] = {
{ {0.326172,0.492188,3.83657}, 343 }
};
};
class Land_Shed_02_F : Default {
shelfPos[] = {
{ {-1.08301,-0.931641,-0.853716}, 184 }
};
shoeboxPos[] = {
{ {1.39258,-0.668945,-0.853716}, 134 }
};
palletPos[] = {
{ {0.96582,1.17871,-0.853716}, 360 }
};
freezerPos[] = {
{ {-1.03418,2.05859,-0.853716}, 360 }
};
};
class Land_House_Small_06_F : Default {
shelfPos[] = {
{ {-1.25879,-5.12598,-1.00433}, 180 }
};
bedPos[] = {
{ {1.31641,-3.91016,-1.00433}, 0.999985 }
};
couchPos[] = {
{ {-2.30176,0.980469,-1.00433}, 270 }
};
chairPos[] = {
{ {-0.439453,3.0625,-1.00503}, 170 },
{ {-3.89941,3.2666,-1.00503}, 190 }
};
filingPos[] = {
{ {-4.15234,1.86719,-1.00503}, 360 }
};
tablePos[] = {
{ {-4.20703,-3.69238,-1.00433}, 270 }
};
shoeboxPos[] = {
{ {1.64063,1.83301,-1.00433}, 310 }
};
};
class Land_Shop_Town_02_F : Default {
shoeboxPos[] = {
{ {-5.40625,6.30664,-2.15892}, 100 }
};
palletPos[] = {
{ {-2.86523,-4.47754,-2.14134}, 100 }
};
freezerPos[] = {
{ {1.40332,-3.96875,-2.14405}, 7 }
};
};
class Land_House_Small_02_F : Default {
fridgePos[] = {
{ {-3.88184,5.76367,-0.748837}, 359 }
};
bedPos[] = {
{ {-0.28125,-4.79785,-0.748837}, 0 },
{ {-3.46777,-4.79102,-0.748837}, 180 }
};
couchPos[] = {
{ {-0.484375,2.29688,-0.748837}, 0 }
};
wardrobePos[] = {
{ {-3.2041,0.615234,-0.748837}, 180 }
};
cookerPos[] = {
{ {-2.75586,5.69043,-0.748837}, 359 }
};
tablePos[] = {
{ {-3.56055,-0.798828,-0.748837}, 350 }
};
shoeboxPos[] = {
{ {0.357422,-0.501953,-0.748837}, 350 }
};
freezerPos[] = {
{ {-0.652344,5.69824,-0.748837}, 1.99997 }
};
};
class Land_Shed_01_F : Default {
filingPos[] = {
{ {1.42285,1.47559,-0.931513}, 350 }
};
freezerPos[] = {
{ {-1.77344,1.41309,-0.931513}, 9.99995 }
};
cabinetPos[] = {
{ {0.115234,1.83984,0.21385}, 90 }
};
};
class Land_Shop_Town_03_F : Default {
shelfPos[] = {
{ {0.864258,0.563477,-3.12776}, 0 },
{ {2.90137,0.589844,-3.12776}, 0 },
{ {-6.33594,-2.21094,-3.12776}, 270 },
{ {-6.39063,-4.15137,-3.12776}, 270 }
};
fridgePos[] = {
{ {5.53223,7.76563,-3.12776}, 0 }
};
couchPos[] = {
{ {0.0869141,-4.16504,-3.12776}, 180 }
};
cookerPos[] = {
{ {4.52539,7.6748,-3.12776}, 0 }
};
chairPos[] = {
{ {-5.86816,0.150391,-3.12776}, 310 }
};
filingPos[] = {
{ {2.05469,1.57422,-3.12776}, 180 },
{ {2.9375,1.5293,-3.12776}, 160 },
{ {-3.66406,-6.05957,-3.12776}, 179 }
};
tablePos[] = {
{ {-0.3125,7.65527,-3.12776}, 0 }
};
lockerPos[] = {
{ {-6.18066,6.2627,-3.12776}, 270 }
};
toolRackPos[] = {
{ {0.198242,4.85742,-3.12776}, 180 }
};
shoeboxPos[] = {
{ {-0.901367,-0.350586,-3.12776}, 350 }
};
palletPos[] = {
{ {-2.46289,-0.205078,-3.12776}, 0 },
{ {5.70898,-5.57129,-3.12776}, 0 }
};
freezerPos[] = {
{ {6.17578,0.0576172,-3.12776}, 90 }
};
cabinetPos[] = {
{ {-5.32715,8.04883,-1.71284}, 90 }
};
};
class Land_Addon_03_F : Default {
palletPos[] = {
{ {-1.4248,-6.35352,-10}, 129 }
};
};
class Land_MetalShelter_01_F : Default {
palletPos[] = {
{ {1.09033,-3.78711,-10}, 219 },
{ {-0.870117,5.29102,-10}, 129 }
};
};
class Land_MetalShelter_02_F : Default {
palletPos[] = {
{ {3.93555,-1.65918,-10}, 169 },
{ {-0.0859375,7.17285,-10}, 169 }
};
};
class Land_Slum_03_F : Default {
shelfPos[] = {
{ {0.338867,6.85938,-0.651794}, 87 }
};
fridgePos[] = {
{ {-0.0244141,-1.3252,-0.651794}, 180 }
};
bedPos[] = {
{ {-0.658203,3.54785,-0.651794}, 0 }
};
couchPos[] = {
{ {2.02246,2.97363,-0.651794}, 179 }
};
wardrobePos[] = {
{ {-4.66406,6.22168,-0.651794}, 250 }
};
cookerPos[] = {
{ {0.0136719,1.4209,-0.651794}, 78 }
};
chairPos[] = {
{ {-4.56445,2.78223,-0.651794}, 220 },
{ {5.11914,7.11035,-0.651794}, 60 }
};
filingPos[] = {
{ {1.20703,-1.32129,-0.451795}, 178 }
};
tablePos[] = {
{ {5.24902,1.26953,-0.651794}, 90 }
};
shoeboxPos[] = {
{ {-3.74512,-1.3291,-0.651794}, 50 }
};
freezerPos[] = {
{ {-1.34277,-1.23926,-0.651794}, 180 }
};
};
class Land_Supermarket_01_F : Default {
limit = 6;
shelfPos[] = {
{ {7.64648,9.40625,-1.50003}, 90 },
{ {-5.44336,11.3174,-1.50003}, 270 }
};
fridgePos[] = {
{ {7.4541,8.25293,-1.50003}, 90 }
};
filingPos[] = {
{ {7.33008,2.6748,-1.50003}, 90 },
{ {-5.30859,7.14551,-1.50003}, 180 }
};
lockerPos[] = {
{ {7.45508,11.6025,-1.50003}, 90 }
};
shoeboxPos[] = {
{ {1.94336,-0.0195313,-0.604303}, 70 },
{ {-2.12598,-0.510742,-0.249176}, 70 },
{ {-1.76465,6.97363,-0.954569}, 0 },
{ {-0.787109,-7.65137,-0.519948}, 70 },
{ {6.39746,-8.38379,-0.604303}, 0 },
{ {2.74609,13.0088,-0.964099}, 0 }
};
palletPos[] = {
{ {-3.33301,12.2793,-1.50003}, 0 }
};
freezerPos[] = {
{ {1.66504,-2.0127,-1.50003}, 270 },
{ {-5.13867,-4.80469,-1.50003}, 270 }
};
cabinetPos[] = {
{ {5.44238,3.73242,-0.411002}, 180 }
};
};
class Land_Shop_City_04_F : Default {
shoeboxPos[] = {
{ {-0.371094,-9.38672,-3.86604}, 340 }
};
palletPos[] = {
{ {8.04004,2.60254,-10}, 360 }
};
};
class Land_Addon_04_F : Default {
shelfPos[] = {
{ {-0.568359,-1.52441,0.313654}, 180 }
};
fridgePos[] = {
{ {-1.32617,-7.26465,0.295511}, 180 }
};
couchPos[] = {
{ {-2.7666,0.267578,0.313654}, 180 }
};
cookerPos[] = {
{ {-3.54883,-5.06836,0.315461}, 270 }
};
chairPos[] = {
{ {4.83691,-1.95801,0.313654}, 260 },
{ {3.29785,-7.03223,0.295511}, 160 },
{ {-5.05273,-7.73633,0.315461}, 90 }
};
tablePos[] = {
{ {1.59961,-7.15234,0.295511}, 180 }
};
shoeboxPos[] = {
{ {1.36914,1.98438,0.313654}, 210 }
};
freezerPos[] = {
{ {-0.391602,-2.87891,0.295511}, 90 }
};
};
// Tanoa Stop

View File

@ -1 +1 @@
build=502;
build=509;

View File

@ -1 +1 @@
build=502;
build=509;

View File

@ -73,6 +73,18 @@ for "_i" from 0 to _maxTraderLimit do {
if (_x isKindOf "Air" || _x isKindOf "Ship" || _x isKindOf "LandVehicle" || _x isKindOf "Tank") then {
if (EPOCH_storedVehicleCount <= _storedVehicleLimit) then {
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + _currentStock;
// Count how many of this vehicle are in stock at any trader.
if !(_x in EPOCH_traderStoredVehicles) then {
EPOCH_traderStoredVehicles pushBack _x;
EPOCH_traderStoredVehiclesCnt pushBack _currentStock;
} else {
_indexStock = EPOCH_traderStoredVehicles find _x;
if (_indexStock != -1) then {
_existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock;
EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + _currentStock)];
};
};
} else {
_toBeRemoved pushBack _forEachIndex;
};

View File

@ -67,6 +67,8 @@ for "_i" from 1 to _maxVehicleLimit do {
_vehicle = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"];
_allVehicles pushBack _vehicle;
_vehicle call EPOCH_server_setVToken;
_vehicle call EPOCH_server_vehicleInit;
_vehicle setVectorDirAndUp _worldspace;
_vehicle setposATL _location;
_vehicle setDamage _damage;
@ -92,8 +94,6 @@ for "_i" from 1 to _maxVehicleLimit do {
_vehicle setFuel (_arr select 4);
_vehicle call EPOCH_server_vehicleInit;
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
_availableColorsConfig = (_cfgBaseBuilding >> _class >> "availableColors");
if (isArray(_availableColorsConfig)) then {
@ -241,11 +241,17 @@ for "_i" from 1 to _maxVehicleLimit do {
_vehicle enableSimulationGlobal false;
};
} else {
diag_log format["DEBUG: invalid vehicle position array %1",_location];
};
} else {
diag_log format["DEBUG: vehicle destroyed already (%2) or invalid vehicle class: %1",_class, _damage];
};
} else {
diag_log format["DEBUG: invalid vehicle data count: %1 != %2",_arrNum,_dataFormatCount];
};
} else {
diag_log format["DEBUG: invalid vehicle data: %1",_response];
};
};

View File

@ -147,6 +147,14 @@ _allowedVehiclesListArray = [];
{
_x params ["_vehClass","_velimit"];
_vehicleCount = {typeOf _x == _vehClass} count vehicles;
// Load how many of this vehicle are in stock at any trader.
_indexStock = EPOCH_traderStoredVehicles find _vehClass;
if (_indexStock != -1) then {
_existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock;
_vehicleCount = _vehicleCount + _existingStock;
};
for "_i" from 1 to (_velimit-_vehicleCount) do {
_allowedVehiclesListArray pushBack _vehClass;
};

View File

@ -23,6 +23,8 @@ EPOCH_defaultVars_SEPXVar = compileFinal str(EPOCH_defaultVars);
EPOCH_group_upgrade_lvl_SEPXVar = EPOCH_group_upgrade_lvl;
EPOCH_staticTraderLocations = [];
EPOCH_staticNPCTraderPos = [];
EPOCH_traderStoredVehicles = [];
EPOCH_traderStoredVehiclesCnt = [];
_configArray = [
["serverRestart", false],

View File

@ -1 +1 @@
build=502;
build=509;

View File

@ -1 +1 @@
build=502;
build=509;

View File

@ -220,4 +220,5 @@ class CfgEpoch
#include "configs\maps\Utes.h"
#include "configs\maps\Woodland_ACR.h"
#include "configs\maps\Napf.h"
#include "configs\maps\tanoa.h"
};

View File

@ -0,0 +1,42 @@
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Epoch gamemode server Side map specific configs for altis.
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_settngs/configs/maps/altis.h
*/
class Tanoa : Default
{
worldSize = 0; // 0 = default to worldSize command
plantLimit = 10;
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
vehicleSpawnTypes[] = {
{"FlatAreaCity",1},
{"FlatAreaCitySmall",1},
{"NameCity",2},
{"NameVillage",1},
{"NameCityCapital",4},
{"Airport",5}
};
traderBlds[] = { "Land_Kiosk_blueking_F", "Land_FuelStation_Build_F", "Land_CarService_F", "Land_i_Garage_V1_F", "Land_i_Shed_Ind_F", "Land_i_Shop_01_V1_F" };
containerPos[] = {};
telePos[] = {
// N [-0.286865,8.17383,-10.3098]
// S [-0.415527,-7.05298,-10.3098]
// E [13.5127,0.410156,-10.3098]
// W [-14.4316,0.112793,-10.3098]
{ "Transport_C_EPOCH", { -0.286865,8.17383,-10.3098 }, "", "north" }
};
propsPos[] = {};
staticNpcPos[] = {};
// Prefered locations for vehicles
class whitelistedVehiclePos {};
};

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -2,12 +2,10 @@
EP_notSetup = [];
EP_setup = [];
_all = nearestObjects [player, ["building"], 20000];
_all = nearestTerrainObjects [player, [], 40000, false];
{
_typeOf = typeof _x;
if !(isClass(configfile >> "CfgBuildingLootPos" >> _typeOf)) then {
if !(isClass(getMissionConfig "CfgBuildingLootPos" >> _typeOf)) then {
if !(_typeOf in EP_notSetup) then {
EP_notSetup pushBack _typeOf;
};
@ -17,5 +15,4 @@ _all = nearestObjects [player, ["building"], 20000];
};
}
} foreach _all;

View File

@ -1 +1 @@
502
509