diff --git a/Examples/Example Mission File/Exile.Altis/$PREFIX$ b/Examples/Example Mission File/Exile.Altis/$PREFIX$ new file mode 100644 index 0000000..fff59a5 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/$PREFIX$ @@ -0,0 +1 @@ +Exile.Altis \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/CfgExileCustomCode.cpp b/Examples/Example Mission File/Exile.Altis/CfgExileCustomCode.cpp new file mode 100644 index 0000000..d905f43 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/CfgExileCustomCode.cpp @@ -0,0 +1,37 @@ +ExileServer_system_database_connect = "Exile_Server_Overrides\ExileServer_system_database_connect.sqf"; +ExileServer_world_initialize = "Exile_Server_Overrides\ExileServer_world_initialize.sqf"; +ExileServer_util_time_uptime = "Exile_Server_Overrides\ExileServer_util_time_uptime.sqf"; +ExileServer_util_time_currentTime = "Exile_Server_Overrides\ExileServer_util_time_currentTime.sqf"; +ExileServer_util_time_addTime = "Exile_Server_Overrides\ExileServer_util_time_addTime.sqf"; +ExileServer_system_trading_network_wasteDumpRequest = "Exile_Server_Overrides\ExileServer_system_trading_network_wasteDumpRequest.sqf"; +ExileServer_system_trading_network_sellItemRequest = "Exile_Server_Overrides\ExileServer_system_trading_network_sellItemRequest.sqf"; +ExileServer_system_trading_network_purchaseVehicleSkinRequest = "Exile_Server_Overrides\ExileServer_system_trading_network_purchaseVehicleSkinRequest.sqf"; +ExileServer_system_trading_network_purchaseVehicleRequest = "Exile_Server_Overrides\ExileServer_system_trading_network_purchaseVehicleRequest.sqf"; +ExileServer_system_trading_network_purchaseItemRequest = "Exile_Server_Overrides\ExileServer_system_trading_network_purchaseItemRequest.sqf"; +ExileServer_system_territory_network_territoryUpgradeRequest = "Exile_Server_Overrides\ExileServer_system_territory_network_territoryUpgradeRequest.sqf"; +ExileServer_system_territory_network_restoreFlagRequest = "Exile_Server_Overrides\ExileServer_system_territory_network_restoreFlagRequest.sqf"; +ExileServer_system_territory_network_purchaseTerritory = "Exile_Server_Overrides\ExileServer_system_territory_network_purchaseTerritory.sqf"; +ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest = "Exile_Server_Overrides\ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest.sqf"; +ExileServer_system_territory_network_payFlagRansomRequest = "Exile_Server_Overrides\ExileServer_system_territory_network_payFlagRansomRequest.sqf"; +ExileServer_system_territory_network_flagStolenRequest = "Exile_Server_Overrides\ExileServer_system_territory_network_flagStolenRequest.sqf"; +ExileServer_system_territory_maintenance_recalculateDueDate = "Exile_Server_Overrides\ExileServer_system_territory_maintenance_recalculateDueDate.sqf"; +ExileServer_system_territory_database_insert = "Exile_Server_Overrides\ExileServer_system_territory_database_insert.sqf"; +ExileServer_system_database_query_selectSingleField = "Exile_Server_Overrides\ExileServer_system_database_query_selectSingleField.sqf"; +ExileServer_system_database_query_selectSingle = "Exile_Server_Overrides\ExileServer_system_database_query_selectSingle.sqf"; +ExileServer_system_database_query_selectFull = "Exile_Server_Overrides\ExileServer_system_database_query_selectFull.sqf"; +ExileServer_system_database_query_insertSingle = "Exile_Server_Overrides\ExileServer_system_database_query_insertSingle.sqf"; +ExileServer_system_database_query_fireAndForget = "Exile_Server_Overrides\ExileServer_system_database_query_fireAndForget.sqf"; +ExileServer_system_database_handleBig = "Exile_Server_Overrides\ExileServer_system_database_handleBig.sqf"; +ExileServer_object_vehicle_database_load = "Exile_Server_Overrides\ExileServer_object_vehicle_database_load.sqf"; +ExileServer_object_vehicle_createPersistentVehicle = "Exile_Server_Overrides\ExileServer_object_vehicle_createPersistentVehicle.sqf"; +ExileServer_object_vehicle_createNonPersistentVehicle = "Exile_Server_Overrides\ExileServer_object_vehicle_createNonPersistentVehicle.sqf"; +ExileServer_object_player_event_onMpKilled = "Exile_Server_Overrides\ExileServer_object_player_event_onMpKilled.sqf"; +ExileServer_object_player_database_load = "Exile_Server_Overrides\ExileServer_object_player_database_load.sqf"; +ExileServer_object_player_createBambi = "Exile_Server_Overrides\ExileServer_object_player_createBambi.sqf"; +ExileServer_object_container_database_update = "Exile_Server_Overrides\ExileServer_object_container_database_update.sqf"; +ExileServer_object_container_database_load = "Exile_Server_Overrides\ExileServer_object_container_database_load.sqf"; +ExileServer_object_container_database_insert = "Exile_Server_Overrides\ExileServer_object_container_database_insert.sqf"; +ExileServer_object_container_createContainer = "Exile_Server_Overrides\ExileServer_object_container_createContainer.sqf"; +ExileServer_object_construction_database_load = "Exile_Server_Overrides\ExileServer_object_construction_database_load.sqf"; +ExileServer_object_construction_database_insert = "Exile_Server_Overrides\ExileServer_object_construction_database_insert.sqf"; +ExileClient_util_string_scalarToString = "Exile_Client_Overrides\ExileClient_util_string_scalarToString.sqf"; \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Client_Overrides/ExileClient_util_string_scalarToString.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Client_Overrides/ExileClient_util_string_scalarToString.sqf new file mode 100644 index 0000000..9d71608 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Client_Overrides/ExileClient_util_string_scalarToString.sqf @@ -0,0 +1,16 @@ +/** + * ExileClient_util_string_scalarToString + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private "_arr"; +if (_this isEqualTo 0) exitWith {"0"}; +_arr = toArray str abs (_this % 1); +_arr set [0, 32]; +toString (toArray str (abs (_this - _this % 1) * _this / abs _this) + _arr - [32]) diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_construction_database_insert.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_construction_database_insert.sqf new file mode 100644 index 0000000..c7cd572 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_construction_database_insert.sqf @@ -0,0 +1,39 @@ +/** + * ExileServer_object_construction_database_insert + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_constructionObject","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message","_constructionID"]; +_constructionObject = _this; +_position = getPosATL _constructionObject; +_vectorDirection = vectorDir _constructionObject; +_vectorUp = vectorUp _constructionObject; +_territoryFlag = _constructionObject call ExileClient_util_world_getTerritoryAtPosition; +_territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']}; +_data = +[ + typeOf _constructionObject, + _constructionObject getVariable ["ExileOwnerUID", ""], + _position select 0, + _position select 1, + _position select 2, + _vectorDirection select 0, + _vectorDirection select 1, + _vectorDirection select 2, + _vectorUp select 0, + _vectorUp select 1, + _vectorUp select 2, + _territoryID +]; +_extDB2Message = ["insertConstruction", _data] call ExileServer_util_extDB2_createMessage; +_constructionID = _extDB2Message call ExileServer_system_database_query_insertSingle; +_constructionObject setVariable ["ExileDatabaseID", _constructionID]; +_constructionObject setVariable ["ExileTerritoryID", _territoryID]; +_constructionObject enableDynamicSimulation true; +_constructionID \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_construction_database_load.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_construction_database_load.sqf new file mode 100644 index 0000000..f27c3bb --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_construction_database_load.sqf @@ -0,0 +1,47 @@ +/** + * ExileServer_object_construction_database_load + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_constructionID","_data","_position","_vectorDirection","_vectorUp","_constructionObject","_damageLevel","_public","_pinCode"]; +_constructionID = _this; +_data = format ["loadConstruction:%1", _constructionID] call ExileServer_system_database_query_selectSingle; +_position = [_data select 4, _data select 5, _data select 6]; +_vectorDirection = [_data select 7, _data select 8, _data select 9]; +_vectorUp = [_data select 10, _data select 11, _data select 12]; +_constructionObject = createVehicle [(_data select 1), _position, [], 0, "CAN_COLLIDE"]; +_constructionObject setPosATL _position; +_constructionObject setVectorDirAndUp [_vectorDirection, _vectorUp]; +_constructionObject setVariable ["ExileDatabaseID", (_data select 0)]; +_constructionObject setVariable ["ExileOwnerUID", (_data select 2)]; +_constructionObject setVariable ["ExileIsPersistent", true]; +_constructionObject setVariable ["ExileTerritoryID", (_data select 15)]; +_damageLevel = (_data select 17); +_public = _damageLevel > 0; +_constructionObject setVariable ["ExileConstructionDamage",_damageLevel,_public]; +if(_public)then +{ + _constructionObject call ExileServer_util_setDamageTexture; +}; +_pinCode = _data select 14; +if !(_pinCode isEqualTo "000000") then +{ + _constructionObject setVariable ["ExileAccessCode", _pinCode]; + _constructionObject setVariable ["ExileIsLocked", (_data select 13), true]; +}; +if (typeOf _constructionObject in ["Exile_Construction_ConcreteDoor_Static", "Exile_Construction_ConcreteGate_Static", "Exile_Construction_WoodGate_Static", "Exile_Construction_WoodDoor_Static", "Exile_Construction_ConcreteWindowHatch_Static", "Exile_Construction_WoodGate_Reinforced_Static", "Exile_Construction_WoodDoor_Reinforced_Static", "Exile_Construction_ConcreteFloorHatch_Static"]) then +{ + _constructionObject enableDynamicSimulation true; +}; +_constructionObject setVelocity [0, 0, 0]; +_constructionObject setPosATL _position; +_constructionObject setVelocity [0, 0, 0]; +_constructionObject setVectorDirAndUp [_vectorDirection, _vectorUp]; +_constructionObject setVelocity [0, 0, 0]; +_constructionObject \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_createContainer.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_createContainer.sqf new file mode 100644 index 0000000..6de5de3 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_createContainer.sqf @@ -0,0 +1,30 @@ +/** + * ExileServer_object_container_createContainer + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_className","_position","_direction","_containerObject"]; +_className = _this select 0; +_position = _this select 1; +_direction = _this select 2; +_containerObject = createVehicle [_className, _position, [], 0, "CAN_COLLIDE"]; +clearBackpackCargoGlobal _containerObject; +clearItemCargoGlobal _containerObject; +clearMagazineCargoGlobal _containerObject; +clearWeaponCargoGlobal _containerObject; +_containerObject setDir _direction; +_containerObject setPosATL _position; +_containerObject setVariable ["ExileIsPersistent", true]; +_containerObject setVariable ["ExileIsContainer", true]; +if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then +{ + _containerObject setVariable ["ExileIsLocked", -1,true]; +}; +_containerObject enableDynamicSimulation true; +_containerObject \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_insert.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_insert.sqf new file mode 100644 index 0000000..92e8318 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_insert.sqf @@ -0,0 +1,91 @@ +/** + * ExileServer_object_container_database_insert + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_containerObject","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message","_containerID","_cargoContainers"]; +_containerObject = _this; +_position = getPosATL _containerObject; +_vectorDirection = vectorDir _containerObject; +_vectorUp = vectorUp _containerObject; +_territoryFlag = _containerObject call ExileClient_util_world_getTerritoryAtPosition; +_territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']}; +if !(ExileContainerCargo isEqualTo []) then +{ + _data = + [ + typeOf _containerObject, + _containerObject getVariable ["ExileOwnerUID", ""], + _position select 0, + _position select 1, + _position select 2, + _vectorDirection select 0, + _vectorDirection select 1, + _vectorDirection select 2, + _vectorUp select 0, + _vectorUp select 1, + _vectorUp select 2, + ExileContainerCargo select 0, + ExileContainerCargo select 1, + ExileContainerCargo select 2, + ExileContainerCargo select 3, + ExileContainerCargo select 4, + "0000", + _territoryID + ]; +} else +{ + _data = + [ + typeOf _containerObject, + _containerObject getVariable ["ExileOwnerUID", ""], + _position select 0, + _position select 1, + _position select 2, + _vectorDirection select 0, + _vectorDirection select 1, + _vectorDirection select 2, + _vectorUp select 0, + _vectorUp select 1, + _vectorUp select 2, + [], + [], + [], + [], + 0, + "0000", + _territoryID + ]; +}; +_extDB2Message = ["insertContainer", _data] call ExileServer_util_extDB2_createMessage; +_containerID = _extDB2Message call ExileServer_system_database_query_insertSingle; +if !(ExileContainerCargo isEqualTo []) then +{ + [_containerObject, (_data select 11)] call ExileServer_util_fill_fillItems; + [_containerObject, (_data select 12)] call ExileServer_util_fill_fillMagazines; + [_containerObject, (_data select 13)] call ExileServer_util_fill_fillWeapons; + _cargoContainers = format ["loadContainerCargo:%1", _containerID] call ExileServer_system_database_query_selectSingle; + if !(_cargoContainers isEqualTo []) then + { + [_containerObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers; + }; + ExileContainerCargo = []; +}; +_containerObject setVariable ["ExileDatabaseID", _containerID]; +_containerObject setVariable ["ExileIsPersistent", true]; +_containerObject setVariable ["ExileIsContainer", true]; +_containerObject setVariable ["ExileAccessCode","0000"]; +_containerObject setVariable ["ExileTerritoryID", _territoryID]; +_containerObject setVariable ["ExileMoney", parseNumber (_data select 15), true]; +_containerObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; (_this select 0) call ExileServer_object_container_event_onMpKilled; }]; +if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then +{ + _containerObject setVariable ["ExileIsLocked",-1,true]; +}; +_containerID diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_load.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_load.sqf new file mode 100644 index 0000000..821090a --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_load.sqf @@ -0,0 +1,45 @@ +/** + * ExileServer_object_container_database_load + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_containerID","_data","_position","_vectorDirection","_vectorUp","_abandoned","_containerObject","_cargoContainers"]; +_containerID = _this; +_data = format ["loadContainer:%1", _containerID] call ExileServer_system_database_query_selectSingle; +_position = [_data select 4, _data select 5, _data select 6]; +_vectorDirection = [_data select 7, _data select 8, _data select 9]; +_vectorUp = [_data select 10, _data select 11, _data select 12]; +_abandoned = _data select 18; +_containerObject = [(_data select 1), _position, 0] call ExileServer_object_container_createContainer; +_containerObject setVectorDirAndUp [_vectorDirection, _vectorUp]; +_containerObject setVariable ["ExileDatabaseID", _containerID]; +_containerObject setVariable ["ExileOwnerUID", (_data select 2),true]; +_containerObject setVariable ["ExileAccessCode",(_data select 16)]; +_containerObject setVariable ["ExileTerritoryID", (_data select 17)]; +_containerObject setVariable ["ExileMoney", (_data select 20), true]; +if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then +{ + _containerObject setVariable ["ExileIsLocked",(_data select 3),true]; +}; +[_containerObject, (_data select 13)] call ExileServer_util_fill_fillItems; +[_containerObject, (_data select 14)] call ExileServer_util_fill_fillMagazines; +[_containerObject, (_data select 15)] call ExileServer_util_fill_fillWeapons; +_cargoContainers = format ["loadContainerCargo:%1", _containerID] call ExileServer_system_database_query_selectSingle; +if !(_cargoContainers isEqualTo []) then +{ + [_containerObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers; +}; +if !(_abandoned isEqualTo "") then +{ + format ["ExileServer - Adding Container %1 to Abandonded Safes", _containerID] call ExileClient_util_log; + ExileAbandondedSafes pushBack _containerObject; +}; +_containerObject enableDynamicSimulation true; +_containerObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; (_this select 0) call ExileServer_object_container_event_onMpKilled; }]; +_containerObject diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_update.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_update.sqf new file mode 100644 index 0000000..ec7293d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_container_database_update.sqf @@ -0,0 +1,46 @@ +/** + * ExileServer_object_container_database_update + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_containerObject","_containerID","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message"]; +_containerObject= _this; +_containerID = _containerObject getVariable ["ExileDatabaseID", -1]; +if (_containerID > -1) then +{ + _position = getPosATL _containerObject; + _vectorDirection = vectorDir _containerObject; + _vectorUp = vectorUp _containerObject; + _territoryFlag = _containerObject call ExileClient_util_world_getTerritoryAtPosition; + _territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']}; + _containerObject setVariable ["ExileTerritoryID", _territoryID]; + _data = + [ + _containerObject getVariable ["ExileIsLocked",-1], + _position select 0, + _position select 1, + _position select 2, + _vectorDirection select 0, + _vectorDirection select 1, + _vectorDirection select 2, + _vectorUp select 0, + _vectorUp select 1, + _vectorUp select 2, + _containerObject call ExileServer_util_getItemCargo, + magazinesAmmoCargo _containerObject, + weaponsItemsCargo _containerObject, + _containerObject call ExileServer_util_getObjectContainerCargo, + _territoryID, + _containerObject getVariable ["ExileMoney", 0], + _containerID + ]; + _extDB2Message = ["updateContainer", _data] call ExileServer_util_extDB2_createMessage; + _extDB2Message call ExileServer_system_database_query_fireAndForget; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_createBambi.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_createBambi.sqf new file mode 100644 index 0000000..7c66bff --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_createBambi.sqf @@ -0,0 +1,153 @@ +/** + * ExileServer_object_player_createBambi + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_requestingPlayer","_spawnLocationMarkerName","_bambiPlayer","_accountData","_direction","_position","_spawnAreaPosition","_spawnAreaRadius","_clanID","_clanData","_clanGroup","_player","_devFriendlyMode","_devs","_parachuteNetID","_spawnType","_parachuteObject"]; +_sessionID = _this select 0; +_requestingPlayer = _this select 1; +_spawnLocationMarkerName = _this select 2; +_bambiPlayer = _this select 3; +_accountData = _this select 4; +_direction = random 360; +if ((count ExileSpawnZoneMarkerPositions) isEqualTo 0) then +{ + _position = call ExileClient_util_world_findCoastPosition; + if ((toLower worldName) isEqualTo "namalsk") then + { + while {(_position distance2D [76.4239, 107.141, 0]) < 100} do + { + _position = call ExileClient_util_world_findCoastPosition; + }; + }; +} +else +{ + _spawnAreaPosition = getMarkerPos _spawnLocationMarkerName; + _spawnAreaRadius = getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "spawnZoneRadius"); + _position = [_spawnAreaPosition, _spawnAreaRadius] call ExileClient_util_math_getRandomPositionInCircle; + while {surfaceIsWater _position} do + { + _position = [_spawnAreaPosition, _spawnAreaRadius] call ExileClient_util_math_getRandomPositionInCircle; + }; +}; +_name = name _requestingPlayer; +_clanID = (_accountData select 3); +if !((typeName _clanID) isEqualTo "SCALAR") then +{ + _clanID = -1; + _clanData = []; +} +else +{ + _clanData = missionNamespace getVariable [format ["ExileServer_clan_%1",_clanID],[]]; + if(isNull (_clanData select 5))then + { + _clanGroup = createGroup independent; + _clanData set [5,_clanGroup]; + _clanGroup setGroupIdGlobal [_clanData select 0]; + missionNameSpace setVariable [format ["ExileServer_clan_%1",_clanID],_clanData]; + } + else + { + _clanGroup = (_clanData select 5); + }; + [_player] joinSilent _clanGroup; +}; +_bambiPlayer setPosATL [_position select 0,_position select 1,0]; +_bambiPlayer disableAI "FSM"; +_bambiPlayer disableAI "MOVE"; +_bambiPlayer disableAI "AUTOTARGET"; +_bambiPlayer disableAI "TARGET"; +_bambiPlayer disableAI "CHECKVISIBLE"; +_bambiPlayer setDir _direction; +_bambiPlayer setName _name; +_bambiPlayer setVariable ["ExileMoney", 0, true]; +_bambiPlayer setVariable ["ExileScore", (_accountData select 0)]; +_bambiPlayer setVariable ["ExileKills", (_accountData select 1)]; +_bambiPlayer setVariable ["ExileDeaths", (_accountData select 2)]; +_bambiPlayer setVariable ["ExileClanID", _clanID]; +_bambiPlayer setVariable ["ExileClanData", _clanData]; +_bambiPlayer setVariable ["ExileHunger", 100]; +_bambiPlayer setVariable ["ExileThirst", 100]; +_bambiPlayer setVariable ["ExileTemperature", 37]; +_bambiPlayer setVariable ["ExileWetness", 0]; +_bambiPlayer setVariable ["ExileAlcohol", 0]; +_bambiPlayer setVariable ["ExileName", _name]; +_bambiPlayer setVariable ["ExileOwnerUID", getPlayerUID _requestingPlayer]; +_bambiPlayer setVariable ["ExileIsBambi", true]; +_bambiPlayer setVariable ["ExileXM8IsOnline", false, true]; +_bambiPlayer setVariable ["ExileLocker", (_accountData select 4), true]; +_devFriendlyMode = getNumber (configFile >> "CfgSettings" >> "ServerSettings" >> "devFriendyMode"); +if (_devFriendlyMode isEqualTo 1) then +{ + _devs = getArray (configFile >> "CfgSettings" >> "ServerSettings" >> "devs"); + { + if ((getPlayerUID _requestingPlayer) isEqualTo (_x select 0))exitWith + { + if((name _requestingPlayer) isEqualTo (_x select 1))then + { + _bambiPlayer setVariable ["ExileMoney", 500000, true]; + _bambiPlayer setVariable ["ExileScore", 100000]; + }; + }; + } + forEach _devs; +}; +_parachuteNetID = ""; +if ((getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "parachuteSpawning")) isEqualTo 1) then +{ + _position set [2, getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "parachuteDropHeight")]; + if ((getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "haloJump")) isEqualTo 1) then + { + _bambiPlayer addBackpackGlobal "B_Parachute"; + _bambiPlayer setPosATL _position; + _spawnType = 2; + } + else + { + _parachuteObject = createVehicle ["Steerable_Parachute_F", _position, [], 0, "CAN_COLLIDE"]; + _parachuteObject setDir _direction; + _parachuteObject setPosATL _position; + _parachuteObject enableSimulationGlobal true; + _parachuteNetID = netId _parachuteObject; + _spawnType = 1; + }; +} +else +{ + _spawnType = 0; +}; +if((canTriggerDynamicSimulation _player) isEqualTo false) then +{ + _player triggerDynamicSimulation true; +}; +_bambiPlayer addMPEventHandler ["MPKilled", {_this call ExileServer_object_player_event_onMpKilled}]; +_bambiPlayer call ExileServer_object_player_database_insert; +_bambiPlayer call ExileServer_object_player_database_update; +[ + _sessionID, + "createPlayerResponse", + [ + _bambiPlayer, + _parachuteNetID, + str (_accountData select 0), + (_accountData select 1), + (_accountData select 2), + 100, + 100, + 0, + (getNumber (configFile >> "CfgSettings" >> "BambiSettings" >> "protectionDuration")) * 60, + _clanData, + _spawnType + ] +] +call ExileServer_system_network_send_to; +[_sessionID, _bambiPlayer] call ExileServer_system_session_update; +true \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_database_load.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_database_load.sqf new file mode 100644 index 0000000..0358e1a --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_database_load.sqf @@ -0,0 +1,250 @@ +/** + * ExileServer_object_player_database_load + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_data","_oldPlayerObject","_playerUID","_sessionID","_position","_direction","_player","_clanID","_clanName","_clanData","_clanGroup","_devFriendlyMode","_devs","_requestingPlayer","_bambiPlayer","_headgear","_goggles","_binocular","_primaryWeapon","_handgunWeapon","_secondaryWeapon","_currentWeapon","_uniform","_vest","_backpack","_uniformContainer","_vestContainer","_backpackContainer","_assignedItems"]; +_data = _this select 0; +_oldPlayerObject = _this select 1; +_playerUID = _this select 2; +_sessionID = _this select 3; +_name = name _oldPlayerObject; +_position = [_data select 11, _data select 12, _data select 13]; +_direction = _data select 10; +_player = (createGroup independent) createUnit ["Exile_Unit_Player", _position, [], 0, "CAN_COLLIDE"]; +_player setDir _direction; +_player setPosATL _position; +_player disableAI "FSM"; +_player disableAI "MOVE"; +_player disableAI "AUTOTARGET"; +_player disableAI "TARGET"; +_player disableAI "CHECKVISIBLE"; +_clanID = (_data select 42); +_clanName = (_data select 43); +if !((typeName _clanID) isEqualTo "SCALAR") then +{ + _clanID = -1; + _clanData = []; +} +else +{ + _clanData = missionnamespace getVariable [format ["ExileServer_clan_%1",_clanID],[]]; + if(isNull (_clanData select 5))then + { + _clanGroup = createGroup independent; + _clanData set [5,_clanGroup]; + _clanGroup setGroupIdGlobal [_clanData select 0]; + missionNameSpace setVariable [format ["ExileServer_clan_%1",_clanID],_clanData]; + } + else + { + _clanGroup = (_clanData select 5); + }; + [_player] joinSilent _clanGroup; +}; +_player setDamage (_data select 3); +_player setName _name; +_player setVariable ["ExileMoney", (_data select 38), true]; +_player setVariable ["ExileScore", (_data select 39)]; +_player setVariable ["ExileKills", (_data select 40)]; +_player setVariable ["ExileDeaths", (_data select 41)]; +_player setVariable ["ExileClanID", _clanID]; +_player setVariable ["ExileClanData", _clanData]; +_player setVariable ["ExileName", _name]; +_player setVariable ["ExileOwnerUID", _playerUID]; +_player setVariable ["ExileDatabaseID", _data select 0]; +_player setVariable ["ExileHunger", _data select 4]; +_player setVariable ["ExileThirst", _data select 5]; +_player setVariable ["ExileAlcohol", _data select 6]; +_player setVariable ["ExileTemperature", _data select 44]; +_player setVariable ["ExileWetness", _data select 45]; +_player setVariable ["ExileIsBambi", false]; +_player setVariable ["ExileXM8IsOnline", false, true]; +_player setOxygenRemaining (_data select 7); +_player setBleedingRemaining (_data select 8); +_player setVariable ["ExileLocker", (_data select 46), true]; +[_player, _data select 9] call ExileClient_util_player_applyHitPointMap; +_devFriendlyMode = getNumber (configFile >> "CfgSettings" >> "ServerSettings" >> "devFriendyMode"); +if (_devFriendlyMode isEqualTo 1) then +{ + _devs = getArray (configFile >> "CfgSettings" >> "ServerSettings" >> "devs"); + { + if ((getPlayerUID _requestingPlayer) isEqualTo (_x select 0))exitWith + { + if((name _requestingPlayer) isEqualTo (_x select 1))then + { + _bambiPlayer setVariable ["ExileMoney", 500000, true]; + _bambiPlayer setVariable ["ExileScore", 100000]; + }; + }; + } + forEach _devs; +}; +_player call ExileClient_util_playerCargo_clear; +_headgear = _data select 23; +if (_headgear != "") then +{ + _player addHeadgear _headgear; +}; +_goggles = _data select 20; +if (_goggles != "") then +{ + _player addGoggles _goggles; +}; +_binocular = _data select 24; +if (_binocular != "") then +{ + _player addWeaponGlobal _binocular; +}; +_primaryWeapon = _data select 26; +if (_primaryWeapon != "") then +{ + _player addWeaponGlobal _primaryWeapon; + removeAllPrimaryWeaponItems _player; + { + if (_x != "") then + { + _player addPrimaryWeaponItem _x; + }; + } + forEach (_data select 27); +}; +_handgunWeapon = _data select 22; +if (_handgunWeapon != "") then +{ + _player addWeaponGlobal _handgunWeapon; + removeAllHandgunItems _player; + { + if (_x != "") then + { + _player addHandgunItem _x; + }; + } + forEach (_data select 21); +}; +_secondaryWeapon = _data select 28; +if (_secondaryWeapon != "") then +{ + _player addWeaponGlobal _secondaryWeapon; + { + if (_x != "") then + { + _player addSecondaryWeaponItem _x; + }; + } + forEach (_data select 29); +}; + _currentWeapon = _data select 19; +if (_currentWeapon != "") then +{ + _player selectWeapon _currentWeapon; +}; +{ + _player addWeaponItem [_x select 0, [_x select 1, _x select 2, _x select 3]]; +} +forEach (_data select 25); +_uniform = _data select 30; +_vest = _data select 34; +_backpack = _data select 15; +if (_uniform != "") then +{ + _player forceAddUniform _uniform; +}; +if (_vest != "") then +{ + _player addVest _vest; +}; +if (_backpack != "") then +{ + _player addBackpackGlobal _backpack; +}; +_uniformContainer = uniformContainer _player; +if !(isNil "_uniformContainer") then +{ + { + _uniformContainer addWeaponCargoGlobal _x; + } + forEach (_data select 33); + { + _uniformContainer addMagazineAmmoCargo [_x select 0, 1, _x select 1]; + } + forEach (_data select 32); + { + _uniformContainer addItemCargoGlobal _x; + } + forEach (_data select 31); +}; +_vestContainer = vestContainer _player; +if !(isNil "_vestContainer") then +{ + { + _vestContainer addWeaponCargoGlobal _x; + } + forEach (_data select 37); + { + _vestContainer addMagazineAmmoCargo [_x select 0, 1, _x select 1]; + } + forEach (_data select 36); + { + _vestContainer addItemCargoGlobal _x; + } + forEach (_data select 35); +}; +_backpackContainer = backpackContainer _player; +if !(isNil "_backpackContainer") then +{ + { + _backpackContainer addWeaponCargoGlobal _x; + } + forEach (_data select 18); + { + _backpackContainer addMagazineAmmoCargo [_x select 0, 1, _x select 1]; + } + forEach (_data select 17); + { + _backpackContainer addItemCargoGlobal _x; + } + forEach (_data select 16); +}; +_assignedItems = _data select 14; +if !(_assignedItems isEqualTo []) then +{ + { + _player linkItem _x; + } + forEach _assignedItems; +}; +_player addMPEventHandler ["MPKilled", {_this call ExileServer_object_player_event_onMpKilled}]; +if((canTriggerDynamicSimulation _player) isEqualTo false) then +{ + _player triggerDynamicSimulation true; +}; +if (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "thermalVision") isEqualTo 0) then +{ + _player addEventHandler ["WeaponAssembled", {(_this select 1) disableTIEquipment true;}]; +}; +[ + _sessionID, + "loadPlayerResponse", + [ + (netId _player), + str (_player getVariable ["ExileScore", 0]), + (_player getVariable ["ExileKills", 0]), + (_player getVariable ["ExileDeaths", 0]), + (_player getVariable ["ExileHunger", 100]), + (_player getVariable ["ExileThirst", 100]), + (_player getVariable ["ExileAlcohol", 0]), + (_player getVariable ["ExileClanData", []]), + (_player getVariable ["ExileTemperature", 0]), + (_player getVariable ["ExileWetness", 0]) + ] +] +call ExileServer_system_network_send_to; +[_sessionID, _player] call ExileServer_system_session_update; +true \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_event_onMpKilled.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_event_onMpKilled.sqf new file mode 100644 index 0000000..70d163e --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_player_event_onMpKilled.sqf @@ -0,0 +1,194 @@ +/** + * ExileServer_object_player_event_onMpKilled + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_victim","_killer","_countDeath","_countKill","_killSummary","_killingPlayer","_killType","_oldVictimRespect","_newVictimRespect","_oldKillerRespect","_newKillerRespect","_systemChat","_modifyVictimRespect","_respectLoss","_perks","_minRespectTransfer","_respectTransfer","_perkNames","_killerStatsNeedUpdate","_newKillerFrags","_victimStatsNeedUpdate","_newVictimDeaths","_victimPosition"]; +_victim = _this select 0; +_killer = _this select 1; +if (!isServer || hasInterface || isNull _victim) exitWith {}; +_victim setVariable ["ExileDiedAt", time]; +if !(isPlayer _victim) exitWith {}; +_victim setVariable ["ExileIsDead", true]; +_victim setVariable ["ExileName", name _victim, true]; +_countDeath = false; +_countKill = false; +_killSummary = []; +_killingPlayer = _killer call ExileServer_util_getFragKiller; +_killType = [_victim, _killer, _killingPlayer] call ExileServer_util_getFragType; +_oldVictimRespect = _victim getVariable ["ExileScore", 0]; +_newVictimRespect = _oldVictimRespect; +_oldKillerRespect = 0; +if !(isNull _killingPlayer) then +{ + _oldKillerRespect = _killingPlayer getVariable ["ExileScore", 0]; +}; +_newKillerRespect = _oldKillerRespect; +switch (_killType) do +{ + default + { + _countDeath = true; + _systemChat = format ["%1 died for an unknown reason!", name _victim]; + _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "unlucky"))); + }; + case 1: + { + _countDeath = true; + _modifyVictimRespect = true; + _systemChat = format ["%1 commited suicide!", name _victim]; + _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "suicide"))); + }; + case 2: + { + _countDeath = true; + _countKill = false; + _systemChat = format ["%1 died while playing Russian Roulette!", name _victim]; + _newVictimRespect = _oldVictimRespect; + _victim call ExileServer_system_russianRoulette_event_onPlayerDied; + }; + case 3: + { + _countDeath = true; + _countKill = false; + _systemChat = format ["%1 crashed to death!", name _victim]; + _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "crash"))); + }; + case 4: + { + _countDeath = true; + _countKill = false; + _systemChat = format ["%1 was killed by an NPC!", name _victim]; + _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "npc"))); + }; + case 5: + { + _countDeath = false; + _countKill = false; + _systemChat = format ["%1 was team-killed by %2!", name _victim, name _killingPlayer]; + _respectLoss = round ((abs _oldKillerRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "friendyFire"))); + _newKillerRespect = _oldKillerRespect - _respectLoss; + _killSummary pushBack ["FRIENDLY FIRE", -1 * _respectLoss]; + }; + case 6: + { + _countDeath = false; + _countKill = false; + _systemChat = format ["%1 was killed by %2! (BAMBI SLAYER)", name _victim, name _killingPlayer]; + _respectLoss = round ((abs _oldKillerRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "bambiKill"))); + _newKillerRespect = _oldKillerRespect - _respectLoss; + _killSummary pushBack ["BAMBI SLAYER", -1 * _respectLoss]; + }; + case 7: + { + _countDeath = true; + _countKill = true; + _perks = [_victim, _killer, _killingPlayer] call ExileServer_util_getFragPerks; + _minRespectTransfer = getNumber (configFile >> "CfgSettings" >> "Respect" >> "minRespectTransfer"); + _respectTransfer = round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "frag"))); + if (_respectTransfer < _minRespectTransfer) then + { + _respectTransfer = _minRespectTransfer; + }; + _newVictimRespect = _oldVictimRespect - _respectTransfer; + _newKillerRespect = _oldKillerRespect + _respectTransfer; + _killSummary pushBack ["ENEMY FRAGGED", _respectTransfer]; + if (_perks isEqualTo []) then + { + _systemChat = format ["%1 was killed by %2!", name _victim, name _killingPlayer]; + } + else + { + _perkNames = []; + { + _perkNames pushBack (_x select 0); + _killSummary pushBack _x; + _newKillerRespect = _newKillerRespect + (_x select 1); + } + forEach _perks; + _systemChat = format ["%1 was killed by %2! (%3)", name _victim, name _killingPlayer, _perkNames joinString ", "]; + }; + }; +}; +if !(isNull _killingPlayer) then +{ + if !(_killSummary isEqualTo []) then + { + [_killingPlayer, "showFragRequest", [_killSummary]] call ExileServer_system_network_send_to; + }; +}; +if !(isNull _killingPlayer) then +{ + _killerStatsNeedUpdate = false; + if (_countKill) then + { + _newKillerFrags = _killingPlayer getVariable ["ExileKills", 0]; + _newKillerFrags = _newKillerFrags + 1; + _killerStatsNeedUpdate = true; + _killingPlayer setVariable ["ExileKills", _newKillerFrags]; + format["addAccountKill:%1", getPlayerUID _killingPlayer] call ExileServer_system_database_query_fireAndForget; + }; + if !(_newKillerRespect isEqualTo _oldKillerRespect) then + { + _killingPlayer setVariable ["ExileScore", _newKillerRespect]; + _killerStatsNeedUpdate = true; + format["setAccountScore:%1:%2", _newKillerRespect, getPlayerUID _killingPlayer] call ExileServer_system_database_query_fireAndForget; + }; + if (_killerStatsNeedUpdate) then + { + _killingPlayer call ExileServer_object_player_sendStatsUpdate; + }; +}; +_victimStatsNeedUpdate = false; +if (_countDeath) then +{ + _newVictimDeaths = _victim getVariable ["ExileDeaths", 0]; + _newVictimDeaths = _newVictimDeaths + 1; + _victim setVariable ["ExileDeaths", _newVictimDeaths]; + _victimStatsNeedUpdate = true; + format["addAccountDeath:%1", getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget; +}; +if !(_newVictimRespect isEqualTo _oldVictimRespect) then +{ + _victim setVariable ["ExileScore", _newVictimRespect]; + _victimStatsNeedUpdate = true; + format["setAccountScore:%1:%2", _newVictimRespect, getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget; +}; +if (_victimStatsNeedUpdate) then +{ + _victim call ExileServer_object_player_sendStatsUpdate; +}; +if ((vehicle _victim) isEqualTo _victim) then +{ + if !(underwater _victim) then + { + if !(_victim call ExileClient_util_world_isInTraderZone) then + { + _victim call ExileServer_object_flies_spawn; + }; + }; +}; +if !(_systemChat isEqualTo "") then +{ + if ((getNumber (configFile >> "CfgSettings" >> "KillFeed" >> "showKillFeed")) isEqualTo 1) then + { + ["systemChatRequest", [_systemChat]] call ExileServer_system_network_send_broadcast; + }; +}; +if !(_systemChat isEqualTo "") then +{ + if ((getNumber (configFile >> "CfgSettings" >> "Logging" >> "deathLogging")) isEqualTo 1) then + { + "extDB3" callExtension format["1:DEATH:%1", _systemChat]; + }; +}; +_victimPosition = getPos _victim; +format["insertPlayerHistory:%1:%2:%3:%4:%5", getPlayerUID _victim, name _victim, _victimPosition select 0, _victimPosition select 1, _victimPosition select 2] call ExileServer_system_database_query_fireAndForget; +format["deletePlayer:%1", _victim getVariable ["ExileDatabaseId", -1]] call ExileServer_system_database_query_fireAndForget; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_createNonPersistentVehicle.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_createNonPersistentVehicle.sqf new file mode 100644 index 0000000..26101dc --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_createNonPersistentVehicle.sqf @@ -0,0 +1,22 @@ +/** + * ExileServer_object_vehicle_createNonPersistentVehicle + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_className","_position","_direction","_usePositionATL","_vehicleObject"]; +_className = _this select 0; +_position = _this select 1; +_direction = _this select 2; +_usePositionATL = _this select 3; +_vehicleObject = [_className, _position, _direction, _usePositionATL] call ExileServer_object_vehicle_carefulCreateVehicle; +_vehicleObject setVariable ["ExileIsPersistent", false]; +_vehicleObject addEventHandler ["GetIn", {_this call ExileServer_object_vehicle_event_onGetIn}]; +_vehicleObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; _this call ExileServer_object_vehicle_event_onMPKilled;}]; +_vehicleObject enableDynamicSimulation true; +_vehicleObject \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_createPersistentVehicle.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_createPersistentVehicle.sqf new file mode 100644 index 0000000..9ad945d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_createPersistentVehicle.sqf @@ -0,0 +1,25 @@ +/** + * ExileServer_object_vehicle_createPersistentVehicle + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_className","_position","_direction","_usePositionATL","_pinCode","_vehicleObject"]; +_className = _this select 0; +_position = _this select 1; +_direction = _this select 2; +_usePositionATL = _this select 3; +_pinCode = _this select 4; +_vehicleObject = [_className, _position, _direction, _usePositionATL] call ExileServer_object_vehicle_carefulCreateVehicle; +_vehicleObject setVariable ["ExileIsPersistent", true]; +_vehicleObject setVariable ["ExileAccessCode", _pinCode]; +_vehicleObject addEventHandler ["GetOut", {_this call ExileServer_object_vehicle_event_onGetOut}]; +_vehicleObject addEventHandler ["GetIn", {_this call ExileServer_object_vehicle_event_onGetIn}]; +_vehicleObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; _this call ExileServer_object_vehicle_event_onMPKilled;}]; +_vehicleObject enableDynamicSimulation true; +_vehicleObject \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_database_load.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_database_load.sqf new file mode 100644 index 0000000..66661ec --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_object_vehicle_database_load.sqf @@ -0,0 +1,82 @@ +/** + * ExileServer_object_vehicle_database_load + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_vehicleID","_data","_position","_vectorDirection","_vectorUp","_pinCode","_texture","_vehicleObject","_lock","_unlockInSafeZonesAfterRestart","_isLocked","_hitpoints","_cargoContainers"]; +_vehicleID = _this; +_data = format ["loadVehicle:%1", _vehicleID] call ExileServer_system_database_query_selectSingle; +_position = [_data select 8, _data select 9, _data select 10]; +_vectorDirection = [_data select 11, _data select 12, _data select 13]; +_vectorUp = [_data select 14, _data select 15, _data select 16]; +_pinCode = _data select 20; +_texture = _data select 21; +_vehicleObject = [(_data select 1), _position, [_vectorDirection, _vectorUp], true,_pinCode] call ExileServer_object_vehicle_createPersistentVehicle; +_vehicleObject setVariable ["ExileDatabaseID", _vehicleID]; +_vehicleObject setVariable ["ExileOwnerUID", (_data select 3)]; +_vehicleObject setVariable ["ExileMoney", (_data select 23), true]; +_lock = (_data select 4); +_unlockInSafeZonesAfterRestart = (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "unlockInSafeZonesAfterRestart")) isEqualTo 1; +_isLocked = (_lock isEqualTo -1); +if (_isLocked) then +{ + if (_unlockInSafeZonesAfterRestart) then + { + if (_position call ExileClient_util_world_isInTraderZone) then + { + _isLocked = false; + }; + }; +}; +if (_isLocked) then +{ + _vehicleObject setVariable ["ExileIsLocked", -1]; + _vehicleObject lock 2; + _vehicleObject enableRopeAttach false; +} +else +{ + _vehicleObject setVariable ["ExileIsLocked", 0]; + _vehicleObject lock 0; + _vehicleObject enableRopeAttach true; +}; +_vehicleObject setFuel (_data select 5); +_vehicleObject setDamage (_data select 6); +_hitpoints = _data select 7; +if ((typeName _hitpoints) isEqualTo "ARRAY") then +{ + { + _vehicleObject setHitPointDamage [_x select 0, _x select 1]; + } + forEach _hitpoints; +}; +[_vehicleObject, (_data select 17)] call ExileServer_util_fill_fillItems; +[_vehicleObject, (_data select 18)] call ExileServer_util_fill_fillMagazines; +[_vehicleObject, (_data select 19)] call ExileServer_util_fill_fillWeapons; +_cargoContainers = format ["loadVehicleContainer:%1", _vehicleID] call ExileServer_system_database_query_selectSingle; +if ((typeName _cargoContainers) isEqualTo "ARRAY") then +{ + if !(_cargoContainers isEqualTo []) then + { + [_vehicleObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers; + }; +}; +if !(_texture isEqualTo "") then +{ + { + _vehicleObject setObjectTextureGlobal [_forEachIndex, _texture select _forEachIndex]; + } + forEach _texture; +}; +_vehicleObject enableDynamicSimulation true; +if (_vehicleObject call ExileClient_util_world_isInTraderZone) then +{ + _vehicleObject allowDamage false; +}; +_vehicleObject \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_connect.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_connect.sqf new file mode 100644 index 0000000..f8f0a69 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_connect.sqf @@ -0,0 +1,62 @@ +/** + * ExileServer_system_database_connect + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_isConnected","_error","_result"]; +_isConnected = false; +_error_locked = false; +ExileServerDatabaseSessionId = ""; +ExileServerRconSessionID = ""; +try +{ + _result = "extDB3" callExtension "9:VERSION"; + format ["Installed extDB3 version: %1", _result] call ExileServer_util_log; + if ((parseNumber _result) < 1.027) then + { + throw format ["Error Required extDB3 Version 1.027 or higher: %1", _result]; + }; + _result = parseSimpleArray ("extDB3" callExtension "9:ADD_DATABASE:exile"); + if (_result select 0 isEqualTo 0) then + { + throw format ["Could not add database: %1", _result]; + }; + "Connected to database!" call ExileServer_util_log; + ExileServerDatabaseSessionId = "SQL"; //str(round(random(999999))); + _result = parseSimpleArray ("extDB3" callExtension "9:ADD_DATABASE_PROTOCOL:exile:SQL_CUSTOM:SQL:exile.ini"); + if ((_result select 0) isEqualTo 0) then + { + throw format ["Failed to initialize database protocol: %1", _result]; + }; + ExileServerStartTime = (parseSimpleArray ("extDB3" callExtension "9:LOCAL_TIME")) select 1; + "Database protocol initialized!" call ExileServer_util_log; + "extDB3" callExtension "9:ADD_PROTOCOL:LOG:TRADING:Exile_TradingLog"; + "extDB3" callExtension "9:ADD_PROTOCOL:LOG:DEATH:Exile_DeathLog"; + "extDB3" callExtension "9:ADD_PROTOCOL:LOG:TERRITORY:Exile_TerritoryLog"; + "extDB3" callExtension "9:LOCK"; + _isConnected = true; +} +catch +{ + if (!_error_locked) then + { + "MySQL connection error!" call ExileServer_util_log; + "Make sure [Database] in the extdb3-conf.ini is set to [exile] unless you have a different database setup!!!!!" call ExileServer_util_log; + "Please have a look at @extDB3/logs/ to find out what went wrong." call ExileServer_util_log; + format ["MySQL Error: %1", _exception] call ExileServer_util_log; + "Server will shutdown now :(" call ExileServer_util_log; + //"extDB3" callExtension "9:SHUTDOWN"; Not implemented in extDB3 + } + else + { + format ["extDB3: %1", _exception] call ExileServer_util_log; + "Check your server rpt for errors, your mission might be stuck a loop restarting" call ExileServer_util_log; + }; +}; +_isConnected diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_handleBig.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_handleBig.sqf new file mode 100644 index 0000000..46eff40 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_handleBig.sqf @@ -0,0 +1,21 @@ +/** + * ExileServer_system_database_handleBig + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_key","_result","_pipe"]; +_key = _this; +_result = ""; +while{true} do +{ + _pipe = "extDB3" callExtension format["5:%1", _key]; + if(_pipe isEqualTo "") exitWith {}; + _result = _result + _pipe; +}; +call (compile _result) diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_fireAndForget.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_fireAndForget.sqf new file mode 100644 index 0000000..329f0d8 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_fireAndForget.sqf @@ -0,0 +1,16 @@ +/** + * ExileServer_system_database_query_fireAndForget + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_parameters","_query"]; +_parameters = _this; +_query = [1, "SQL",_parameters] joinString ":"; +"extDB3" callExtension _query; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_insertSingle.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_insertSingle.sqf new file mode 100644 index 0000000..3ee0dff --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_insertSingle.sqf @@ -0,0 +1,16 @@ +/** + * ExileServer_system_database_query_insertSingle + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_parameters","_query","_result"]; +_parameters = _this; +_query = [0, "SQL",_parameters] joinString ":"; +_result = parseSimpleArray ("extDB3" callExtension _query); +(_result select 1) select 0 diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectFull.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectFull.sqf new file mode 100644 index 0000000..6e6cb76 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectFull.sqf @@ -0,0 +1,27 @@ +/** + * ExileServer_system_database_query_selectFull + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_parameters","_query","_result"]; +_parameters = _this; +_query = [0, "SQL",_parameters] joinString ":"; +_result = parseSimpleArray ("extDB3" callExtension _query); +switch (_result select 0) do +{ + case 0: + { + (format["Database Error: %1", (_result select 1)]) call ExileServer_util_log; + }; + case 2: + { + _result = (_result select 1) call ExileServer_system_database_handleBig; + }; +}; +_result select 1 diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectSingle.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectSingle.sqf new file mode 100644 index 0000000..ce92086 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectSingle.sqf @@ -0,0 +1,27 @@ +/** + * ExileServer_system_database_query_selectSingle + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_parameters","_query","_result"]; +_parameters = _this; +_query = [0, "SQL",_parameters] joinString ":"; +_result = parseSimpleArray ("extDB3" callExtension _query); +switch (_result select 0) do +{ + case 0: + { + (format["Database Error: %1", (_result select 1)]) call ExileServer_util_log; + }; + case 2: + { + _result = (_result select 1) call ExileServer_system_database_handleBig; + }; +}; +(_result select 1) select 0 diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectSingleField.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectSingleField.sqf new file mode 100644 index 0000000..e74f0f8 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_database_query_selectSingleField.sqf @@ -0,0 +1,27 @@ +/** + * ExileServer_system_database_query_selectSingleField + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_parameters","_query","_result"]; +_parameters = _this; +_query = [0,"SQL",_parameters] joinString ":"; +_result = parseSimpleArray ("extDB3" callExtension _query); +switch (_result select 0) do +{ + case 0: + { + (format["Database Error: %1", (_result select 1)]) call ExileServer_util_log; + }; + case 2: + { + _result = (_result select 1) call ExileServer_system_database_handleBig; + }; +}; +((_result select 1) select 0) select 0 diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_database_insert.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_database_insert.sqf new file mode 100644 index 0000000..9c661f7 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_database_insert.sqf @@ -0,0 +1,40 @@ +/** + * ExileServer_system_territory_database_insert + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_flagObject","_territoryName","_flagTexture","_territorySize","_owner","_position","_build","_moderators","_data","_extDB2Message","_territoryID"]; +_flagObject = _this select 0; +_territoryName = _this select 1; +_flagTexture = _this select 2; +_territorySize = ((getArray(missionConfigFile >> "CfgTerritories" >> "prices")) select 0)select 1; +_owner = _flagObject getVariable ["ExileOwnerUID",""]; +_position = getPosATL _flagObject; +_build_rights = _flagObject getVariable ["ExileTerritoryBuildRights",[]]; +_moderators = _flagObject getVariable ["ExileTerritoryModerators",[]]; +_data = +[ + _owner, + _territoryName, + _position select 0, + _position select 1, + _position select 2, + _territorySize, + 1, + _flagTexture, + 0, + _build_rights, + _moderators, + "" +]; +_extDB2Message = ["createTerritory", _data] call ExileServer_util_extDB2_createMessage; +_territoryID = _extDB2Message call ExileServer_system_database_query_insertSingle; +_flagObject setVariable ["ExileDatabaseID",_territoryID]; +_flagObject setVariable ["ExileFlagTexture",_flagTexture]; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_maintenance_recalculateDueDate.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_maintenance_recalculateDueDate.sqf new file mode 100644 index 0000000..79c881d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_maintenance_recalculateDueDate.sqf @@ -0,0 +1,19 @@ +/** + * ExileServer_system_territory_maintenance_recalculateDueDate + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_flag","_currentTimestamp","_flagBuild","_maintenancePeriod","_maintenancePeriodDueDate"]; +_flag = _this; +_currentTimestamp = call ExileServer_util_time_currentTime; +_flagBuild = _flag getVariable ["ExileTerritoryLastPayed", _currentTimestamp]; +_maintenancePeriod = getNumber(configFile >> "CfgSettings" >> "GarbageCollector" >> "Database" >> "territoryLifeTime"); +_maintenancePeriodDueDate = parseSimpleArray ("extDB3" callExtension format["9:DATEADD:%1:[%2,0,0,0]",_flagBuild,_maintenancePeriod]); +_flag setVariable ["ExileTerritoryMaintenanceDue", _maintenancePeriodDueDate select 1, true]; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_flagStolenRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_flagStolenRequest.sqf new file mode 100644 index 0000000..f452aed --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_flagStolenRequest.sqf @@ -0,0 +1,54 @@ +/** + * ExileServer_system_territory_network_flagStolenRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_flag","_playerObject","_databaseID","_level","_flagPosition","_spawnRadius","_weaponHolderPosition","_weaponHolder","_logging","_territoryLog"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_flag = _parameters select 0; +try +{ + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw "Player Object NULL"; + }; + if ((_flag getVariable ["ExileFlagStolen", 0]) isEqualTo 1) then + { + throw "Flag already stolen!"; + }; + if ((_playerObject distance2D _flag) > 5) then + { + throw "You are too far away!"; + }; + _databaseID = _flag getVariable ["ExileDatabaseID",0]; + _level = _flag getVariable ["ExileTerritoryLevel",_level]; + _flagPosition = getPosATL _flag; + _flagPosition set[2, 0]; + _spawnRadius = 3; + _weaponHolderPosition = getPosATL _playerObject; + _weaponHolder = createVehicle ["GroundWeaponHolder", _weaponHolderPosition, [], 0, "CAN_COLLIDE"]; + _weaponHolder setPosATL _weaponHolderPosition; + _weaponHolder addMagazineCargoGlobal [format["Exile_Item_FlagStolen%1", _level], 1]; + _flag setVariable ["ExileFlagStolen", 1, true]; + format["flagStolen:%1:%2",getPlayerUID _playerObject,_databaseID] call ExileServer_system_database_query_fireAndForget; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging"); + if (_logging isEqualTo 1) then + { + _territoryLog = format ["PLAYER ( %1 ) %2 STOLE A LEVEL %3 FLAG FROM TERRITORY #%4",getPlayerUID _playerObject,_playerObject,_level,_databaseID]; + "extDB3" callExtension format["1:TERRITORY:%1",_territoryLog]; + }; + _flag call ExileServer_system_xm8_sendFlagStolen; +} +catch +{ + [_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to steal!", _exception]]] call ExileServer_system_network_send_to; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_payFlagRansomRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_payFlagRansomRequest.sqf new file mode 100644 index 0000000..a91f1ba --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_payFlagRansomRequest.sqf @@ -0,0 +1,79 @@ +/** + * ExileServer_system_territory_network_payFlagRansomRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_flagNetID","_flag","_playerObject","_buildRights","_playerUID","_level","_itemClassName","_flagFee","_playerMoney","_logging","_databaseID","_territoryLog"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_flagNetID = _parameters select 0; +try +{ + _flag = objectFromNetid _flagNetID; + if (isNull _flag) then + { + throw "Territory not found!"; + }; + if ((_flag getVariable ["ExileFlagStolen", 1]) isEqualTo 0) then + { + throw "Flag not stolen!"; + }; + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw "You do not exist!"; + }; + if !(alive _playerObject) then + { + throw "You are dead!"; + }; + _buildRights = _flag getVariable ["ExileTerritoryBuildRights", []]; + _playerUID = getPlayerUID _playerObject; + if !(_playerUID in _buildRights) then + { + throw "Missing build rights!"; + }; + _level = _flag getVariable ["ExileTerritoryLevel", 0]; + _itemClassName = format["Exile_Item_FlagStolen%1", _level]; + if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then + { + throw "Flag price not found!"; + }; + _flagFee = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "price"); + if (_flagFee <= 0) then + { + throw "Invalid flag price!"; + }; + _playerMoney = _playerObject getVariable ["ExileMoney", 0]; + if (_playerMoney < _flagFee) then + { + throw "You are too poor!"; + }; + if !(_playerObject canAdd _itemClassName) then + { + throw "Inventory is full!"; + }; + _playerMoney = _playerMoney - _flagFee; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format ["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + _playerObject addItem _itemClassName; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging"); + if (_logging isEqualTo 1) then + { + _databaseID = _flag getVariable ["ExileDatabaseID",0]; + _territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS FOR THE RANSOM OF TERRITORY #%4 | PLAYER TOTAL POP TABS: %5", _playerUID, _playerObject, _flagFee, _databaseID, _playerMoney]; + "extDB3" callExtension format["1:TERRITORY:%1", _territoryLog]; + }; + [_sessionID, "toastRequest", ["SuccessTitleOnly", ["Random paid!"]]] call ExileServer_system_network_send_to; +} +catch +{ + [_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to pay!", _exception]]] call ExileServer_system_network_send_to; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest.sqf new file mode 100644 index 0000000..4b9ecae --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest.sqf @@ -0,0 +1,64 @@ +/** + * ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_flagNetID","_playerObject","_flagObject","_flagStolen","_territoryDatabaseID","_radius","_level","_objectsInTerritory","_popTabAmountPerObject","_totalPopTabAmount","_playerPopTabs","_currentTimestamp","_logging","_territoryLog"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_flagNetID = _parameters select 0; +try +{ + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw "Invalid player object"; + }; + _flagObject = objectFromNetId _flagNetID; + if (isNull _flagObject) then + { + throw "Invalid flag object"; + }; + _flagStolen = _flagObject getVariable ["ExileFlagStolen", 0]; + if (_flagStolen isEqualTo 1) then + { + throw "Flag stolen!"; + }; + _territoryDatabaseID = _flagObject getVariable ["ExileDatabaseID", 0]; + _radius = _flagObject getVariable ["ExileTerritorySize", 15]; + _level = _flagObject getVariable ["ExileTerritoryLevel", 1]; + _objectsInTerritory = _flagObject getVariable ["ExileTerritoryNumberOfConstructions", 0]; + _popTabAmountPerObject = getNumber (missionConfigFile >> "CfgTerritories" >> "popTabAmountPerObject"); + _totalPopTabAmount = _level * _popTabAmountPerObject * _objectsInTerritory; + _playerPopTabs = _playerObject getVariable ["ExileMoney", 0]; + if (_playerPopTabs < _totalPopTabAmount) then + { + throw "You do not have enough pop tabs!"; + }; + _playerPopTabs = _playerPopTabs - _totalPopTabAmount; + _playerObject setVariable ["ExileMoney", _playerPopTabs, true]; + format["setPlayerMoney:%1:%2", _playerPopTabs, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + _currentTimestamp = call ExileServer_util_time_currentTime; + _flagObject setVariable ["ExileTerritoryLastPayed", _currentTimestamp]; + _flagObject call ExileServer_system_territory_maintenance_recalculateDueDate; + format["maintainTerritory:%1", _territoryDatabaseID] call ExileServer_system_database_query_fireAndForget; + [_sessionID, "toastRequest", ["SuccessTitleOnly", ["Protection money paid!"]]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging"); + if (_logging isEqualTo 1) then + { + _territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO PROTECT TERRITORY #%4 | PLAYER TOTAL POP TABS: %5",getPlayerUID _playerObject,_playerObject,_totalPopTabAmount,_territoryDatabaseID,_playerPopTabs]; + "extDB3" callExtension format["1:TERRITORY:%1",_territoryLog]; + }; + _flagObject call ExileServer_system_xm8_sendProtectionMoneyPaid; +} +catch +{ + [_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to pay!", _exception]]] call ExileServer_system_network_send_to; + _exception call ExileServer_util_log; +}; diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_purchaseTerritory.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_purchaseTerritory.sqf new file mode 100644 index 0000000..27de463 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_purchaseTerritory.sqf @@ -0,0 +1,46 @@ +/** + * ExileServer_system_territory_network_purchaseTerritory + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_player","_price","_playerMoney","_logging","_territoryLog"]; +_sessionID = _this select 0; +try +{ + _player = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _player) then + { + throw 1; + }; + if !(alive _player) then + { + throw 2; + }; + _price = ((getArray(missionConfigFile >> "CfgTerritories" >> "prices")) select 0) select 0; + _playerMoney = _player getVariable ["ExileMoney", 0]; + if (_price > _playerMoney) then + { + throw 3; + }; + _playerMoney = _playerMoney - _price; + _player setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _player getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + [_sessionID, "purchaseTerritoryResponse" , [0]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging"); + if (_logging isEqualTo 1) then + { + _territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO PURCHASE A TERRITORY FLAG | PLAYER TOTAL POP TABS: %4",getPlayerUID _player,_player,_price,_playerMoney]; + "extDB3" callExtension format["1:TERRITORY:%1",_territoryLog]; + }; +} +catch +{ + [_sessionID, "purchaseTerritoryResponse" , [_exception]] call ExileServer_system_network_send_to; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_restoreFlagRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_restoreFlagRequest.sqf new file mode 100644 index 0000000..32d4973 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_restoreFlagRequest.sqf @@ -0,0 +1,71 @@ +/** + * ExileServer_system_territory_network_restoreFlagRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_flagNetID","_flag","_playerObject","_buildRights","_playerUID","_level","_itemClassName","_territoryDatabaseID","_flagTexture","_logging"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_flagNetID = _parameters select 0; +try +{ + _flag = objectFromNetid _flagNetID; + if (isNull _flag) then + { + throw "Territory not found!"; + }; + if ((_flag getVariable ["ExileFlagStolen", 1]) isEqualTo 0) then + { + throw "Flag is not stolen!"; + }; + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw "You do not exist!"; + }; + if !(alive _playerObject) then + { + throw "You are dead! Didn't you know that?"; + }; + if ((_playerObject distance2D _flag) > 4) then + { + throw "You are too far away."; + }; + _buildRights = _flag getVariable ["ExileTerritoryBuildRights", []]; + _playerUID = getPlayerUID _playerObject; + if !(_playerUID in _buildRights) then + { + throw "Missing build rights."; + }; + _level = _flag getVariable ["ExileTerritoryLevel", 0]; + _itemClassName = format["Exile_Item_FlagStolen%1", _level]; + if !(_itemClassName in (magazines _playerObject)) then + { + throw format ["You need a level %1 flag.", _level]; + }; + _playerObject removeItem _itemClassName; + _territoryDatabaseID = _flag getVariable ["ExileDatabaseID", 0]; + format["flagRestore:%1", _territoryDatabaseID] call ExileServer_system_database_query_fireAndForget; + _flag setVariable ["ExileFlagStolen", 0, true]; + _flag setFlagOwner objNull; + _flagTexture = _flag getVariable "ExileFlagTexture"; + _flag setFlagTexture _flagTexture; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging"); + if (_logging isEqualTo 1) then + { + "extDB3" callExtension format ["1:TERRITORY:PLAYER ( %1 ) %2 RESTORED THE FLAG OF TERRITORY #%3", _playerUID, _playerObject, _territoryDatabaseID]; + }; + [_sessionID, "toastRequest", ["SuccessTitleAndText", ["Flag has been restored!", "You can now maintain and build on our territory again."]]] call ExileServer_system_network_send_to; + _flag call ExileServer_system_xm8_sendFlagRestored; +} +catch +{ + [_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to restore!", _exception]]] call ExileServer_system_network_send_to; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_territoryUpgradeRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_territoryUpgradeRequest.sqf new file mode 100644 index 0000000..b2c24a2 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_territory_network_territoryUpgradeRequest.sqf @@ -0,0 +1,72 @@ +/** + * ExileServer_system_territory_network_territoryUpgradeRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_flag","_playerObject","_databaseID","_moderators","_level","_territoryConfig","_territoryLevels","_territoryPrice","_territoryRange","_playerMoney","_logging","_territoryLog"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_flag = _parameters select 0; +try +{ + if (isNull _flag) then + { + throw "Invalid flag object"; + }; + if ((_flag getVariable ["ExileFlagStolen", 0]) isEqualTo 1) then + { + throw "Flag is stolen!"; + }; + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw "Player Object NULL"; + }; + _databaseID = _flag getVariable ["ExileDatabaseID",0]; + _moderators = _flag getVariable ["ExileTerritoryModerators",[]]; + if !((getPlayerUID _playerObject) in _moderators) then + { + throw "No upgrade Access!"; + }; + _level = _flag getVariable ["ExileTerritoryLevel",_level]; + _territoryConfig = getArray(missionConfigFile >> "CfgTerritories" >> "Prices"); + _territoryLevels = count _territoryConfig; + if (_territoryLevels < (_level + 1)) then + { + throw "This territory has already the highest level."; + }; + _territoryPrice = (_territoryConfig select _level) select 0; + _territoryRange = (_territoryConfig select _level) select 1; + _playerMoney = _playerObject getVariable ["ExileMoney",0]; + if (_playerMoney < _territoryPrice) then + { + throw "Not enough pop tabs!"; + }; + _playerMoney = _playerMoney - _territoryPrice; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + _flag setVariable ["ExileTerritoryLevel",_level + 1, true]; + _flag setVariable ["ExileTerritorySize",_territoryRange, true]; + format ["setTerritoryLevel:%1:%2",_level + 1,_databaseID] call ExileServer_system_database_query_fireAndForget; + format ["setTerritorySize:%1:%2",_territoryRange,_databaseID] call ExileServer_system_database_query_fireAndForget; + _flag call ExileServer_system_territory_updateNearContainers; + _flag call ExileServer_system_territory_updateNearConstructions; + [_sessionID, "toastRequest", ["SuccessTitleAndText", ["Territory upgraded!", format ["Your territory has reached level %1 and now has a new radius of %2 meters.", _level + 1, _territoryRange]]]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging"); + if (_logging isEqualTo 1) then + { + _territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO UPGRADE TERRITORY #%4 TO LEVEL %5 | PLAYER TOTAL POP TABS: %6",getPlayerUID _playerObject,_playerObject,_territoryPrice,_databaseID,(_level + 1),_playerMoney]; + "extDB3" callExtension format["1:TERRITORY:%1",_territoryLog]; + }; +} +catch +{ + [_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to upgrade!", _exception]]] call ExileServer_system_network_send_to; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseItemRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseItemRequest.sqf new file mode 100644 index 0000000..3a177bb --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseItemRequest.sqf @@ -0,0 +1,82 @@ +/** + * ExileServer_system_trading_network_purchaseItemRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_salesPrice","_playerMoney","_playerRespect","_quality","_requiredRespect","_logging","_traderLog","_responseCode"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_itemClassName = _parameters select 0; +_quantity = _parameters select 1; +_containerType = _parameters select 2; +_containerNetID = _parameters select 3; +try +{ + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (_playerObject getVariable ["ExileMutex",false]) then + { + throw 12; + }; + _playerObject setVariable ["ExileMutex",true]; + _vehicleObject = objNull; + if (isNull _playerObject) then + { + throw 1; + }; + if !(alive _playerObject) then + { + throw 2; + }; + if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then + { + throw 3; + }; + _salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "price"); + if (_salesPrice <= 0) then + { + throw 4; + }; + _playerMoney = _playerObject getVariable ["ExileMoney", 0]; + if (_playerMoney < _salesPrice) then + { + throw 5; + }; + _playerRespect = _playerObject getVariable ["ExileScore", 0]; + _quality = getNumber(missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "quality"); + _requiredRespect = getNumber(missionConfigFile >> "CfgTrading" >> "requiredRespect" >> format["Level%1",_quality]); + if (_playerRespect < _requiredRespect) then + { + throw 14; + }; + _playerMoney = _playerMoney - _salesPrice; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + [_sessionID, "purchaseItemResponse", [0, _salesPrice, _itemClassName, 1, _containerType, _containerNetID]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging"); + if (_logging isEqualTo 1) then + { + _traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED ITEM %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",getPlayerUID _playerObject,_playerObject,_itemClassName,_salesPrice,_playerMoney]; + "extDB3" callExtension format["1:TRADING:%1",_traderLog]; + }; + if !(_vehicleObject isEqualTo objNull) then + { + _vehicleObject call ExileServer_object_vehicle_database_update; + } + else + { + _playerObject call ExileServer_object_player_database_update; + }; +} +catch +{ + _responseCode = _exception; + [_sessionID, "purchaseItemResponse", [_responseCode, 0, "", 0, 0, ""]] call ExileServer_system_network_send_to; +}; +_playerObject setVariable ["ExileMutex",false]; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseVehicleRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseVehicleRequest.sqf new file mode 100644 index 0000000..12b4dcd --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseVehicleRequest.sqf @@ -0,0 +1,90 @@ +/** + * ExileServer_system_trading_network_purchaseVehicleRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_vehicleClass","_pinCode","_playerObject","_salesPrice","_playerMoney","_position","_vehicleObject","_logging","_traderLog","_responseCode"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_vehicleClass = _parameters select 0; +_pinCode = _parameters select 1; +try +{ + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw 1; + }; + if !(alive _playerObject) then + { + throw 2; + }; + if (_playerObject getVariable ["ExileMutex",false]) then + { + throw 12; + }; + _playerObject setVariable ["ExileMutex", true]; + if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _vehicleClass) ) then + { + throw 3; + }; + _salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _vehicleClass >> "price"); + if (_salesPrice <= 0) then + { + throw 4; + }; + _playerMoney = _playerObject getVariable ["ExileMoney", 0]; + if (_playerMoney < _salesPrice) then + { + throw 5; + }; + if !((count _pinCode) isEqualTo 4) then + { + throw 11; + }; + if (_vehicleClass isKindOf "Ship") then + { + _position = [(getPosATL _playerObject), 100, 20] call ExileClient_util_world_findWaterPosition; + _vehicleObject = [_vehicleClass, _position, (random 360), false, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle; + } + else + { + _position = (getPos _playerObject) findEmptyPosition [10, 250, _vehicleClass]; + if (_position isEqualTo []) then + { + throw 13; + }; + _vehicleObject = [_vehicleClass, _position, (random 360), true, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle; + }; + _vehicleObject setVariable ["ExileOwnerUID", (getPlayerUID _playerObject)]; + _vehicleObject setVariable ["ExileIsLocked",0]; + _vehicleObject lock 0; + _vehicleObject call ExileServer_object_vehicle_database_insert; + _vehicleObject call ExileServer_object_vehicle_database_update; + _playerMoney = _playerMoney - _salesPrice; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + [_sessionID, "purchaseVehicleResponse", [0, netId _vehicleObject, _salesPrice]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging"); + if (_logging isEqualTo 1) then + { + _traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED VEHICLE %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",getPlayerUID _playerObject,_playerObject,_vehicleClass,_salesPrice,_playerMoney]; + "extDB3" callExtension format["1:TRADING:%1",_traderLog]; + }; +} +catch +{ + _responseCode = _exception; + [_sessionID, "purchaseVehicleResponse", [_responseCode, "", 0]] call ExileServer_system_network_send_to; +}; +if !(isNull _playerObject) then +{ + _playerObject setVariable ["ExileMutex", false]; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseVehicleSkinRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseVehicleSkinRequest.sqf new file mode 100644 index 0000000..13d375d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_purchaseVehicleSkinRequest.sqf @@ -0,0 +1,93 @@ +/** + * ExileServer_system_trading_network_purchaseVehicleSkinRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_vehicleNetID","_skinTextures","_playerObject","_vehicleObject","_vehicleParentClass","_salesPrice","_skinVariations","_availableSkinTexture","_playerMoney","_skinMaterials","_skinClassName","_vehicleID","_logging","_traderLog","_responseCode"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_vehicleNetID = _parameters select 0; +_skinTextures = _parameters select 1; +try +{ + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw 1; + }; + if !(alive _playerObject) then + { + throw 2; + }; + if(_playerObject getVariable ["ExileMutex",false]) then + { + throw 12; + }; + _playerObject setVariable ["ExileMutex",true]; + _vehicleObject = objectFromNetId _vehicleNetID; + if (isNull _vehicleObject) then + { + throw 6; + }; + _vehicleParentClass = configName (inheritsFrom (configFile >> "CfgVehicles" >> (typeOf _vehicleObject))); + if !(isClass (missionConfigFile >> "CfgVehicleCustoms" >> _vehicleParentClass) ) then + { + throw 7; + }; + _salesPrice = -1; + _skinVariations = getArray(missionConfigFile >> "CfgVehicleCustoms" >> _vehicleParentClass >> "skins"); + { + _availableSkinTexture = _x select 3; + if (_availableSkinTexture isEqualTo _skinTextures) exitWith + { + _salesPrice = _x select 1; + }; + } + forEach _skinVariations; + if (_salesPrice <= 0) then + { + throw 4; + }; + _playerMoney = _playerObject getVariable ["ExileMoney", 0]; + if (_playerMoney < _salesPrice) then + { + throw 5; + }; + _skinMaterials = getArray(configFile >> "CfgVehicles" >> _skinClassName >> "hiddenSelectionsMaterials"); + { + _vehicleObject setObjectTextureGlobal [_forEachIndex, _skinTextures select _forEachIndex]; + } + forEach _skinTextures; + { + _vehicleObject setObjectMaterial [_forEachIndex, _x]; + } + forEach _skinMaterials; + _vehicleID = _vehicleObject getVariable ["ExileDatabaseID", -1]; + format["updateVehicleSkin:%1:%2", _skinTextures, _vehicleID] call ExileServer_system_database_query_fireAndForget; + _playerMoney = _playerMoney - _salesPrice; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + [_sessionID, "purchaseVehicleSkinResponse", [0, _salesPrice]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging"); + if (_logging isEqualTo 1) then + { + _traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED VEHICLE SKIN %3 (%4) FOR %5 POPTABS | PLAYER TOTAL MONEY: %6",getPlayerUID _playerObject,_playerObject,_skinTextures,_vehicleParentClass,_salesPrice,_playerMoney]; + "extDB3" callExtension format["1:TRADING:%1",_traderLog]; + }; +} +catch +{ + _responseCode = _exception; + [_sessionID, "purchaseVehicleSkinResponse", [_responseCode, 0]] call ExileServer_system_network_send_to; +}; +if !(isNull _playerObject) then +{ + _playerObject setVariable ["ExileMutex", false]; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_sellItemRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_sellItemRequest.sqf new file mode 100644 index 0000000..ed124bd --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_sellItemRequest.sqf @@ -0,0 +1,133 @@ +/** + * ExileServer_system_trading_network_sellItemRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_sellPrice","_playerMoney","_noRespectItems","_playerRespect","_respectGain","_logging","_playerMoneyString","_traderLog","_responseCode"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_itemClassName = _parameters select 0; +_quantity = _parameters select 1; +_containerType = _parameters select 2; +_containerNetID = _parameters select 3; +try +{ + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw 1; + }; + if !(alive _playerObject) then + { + throw 2; + }; + if(_playerObject getVariable ["ExileMutex",false]) then + { + throw 12; + }; + _playerObject setVariable ["ExileMutex",true]; + _vehicleObject = objNull; + if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then + { + throw 3; + }; + _sellPrice = _itemClassName call ExileClient_util_gear_calculateSellPrice; + if (_containerType isEqualTo 1) then + { + if (_itemClassName isEqualTo (primaryWeapon _playerObject)) then + { + { + { + if !(_x isEqualTo "") then + { + _sellPrice = _sellPrice + (_x call ExileClient_util_gear_calculateSellPrice); + }; + } + forEach _x; + } + forEach + [ + primaryWeaponItems _playerObject, + primaryWeaponMagazine _playerObject + ]; + }; + if (_itemClassName isEqualTo (handgunWeapon _playerObject)) then + { + { + { + if !(_x isEqualTo "") then + { + _sellPrice = _sellPrice + (_x call ExileClient_util_gear_calculateSellPrice); + }; + } + forEach _x; + } + forEach + [ + handgunItems _playerObject, + handgunMagazine _playerObject + ]; + }; + }; + if (_sellPrice <= 0) then + { + throw 4; + }; + _playerMoney = _playerObject getVariable ["ExileMoney", 0]; + _playerMoney = _playerMoney + _sellPrice; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + _noRespectItems = + [ + "Exile_Item_FlagStolen1", + "Exile_Item_FlagStolen2", + "Exile_Item_FlagStolen3", + "Exile_Item_FlagStolen4", + "Exile_Item_FlagStolen5", + "Exile_Item_FlagStolen6", + "Exile_Item_FlagStolen7", + "Exile_Item_FlagStolen8", + "Exile_Item_FlagStolen9", + "Exile_Item_FlagStolen10" + ]; + _playerRespect = _playerObject getVariable ["ExileScore", 0]; + if !(_itemClassName in _noRespectItems) then + { + _respectGain = _sellPrice * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor"); + _playerRespect = floor (_playerRespect + _respectGain); + _playerObject setVariable ["ExileScore", _playerRespect]; + format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget; + }; + [_sessionID, "sellItemResponse", [0, _sellPrice, _itemClassName, 1, _containerType, _containerNetID, str _playerRespect]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging"); + if (_logging isEqualTo 1) then + { + _playerMoneyString = _playerMoney call ExileClient_util_string_exponentToString; + _traderLog = format ["PLAYER: ( %1 ) %2 SOLD ITEM %3 FOR %4 POPTABS AND %5 RESPECT | PLAYER TOTAL MONEY: %6",getPlayerUID _playerObject,_playerObject,_itemClassName,_sellPrice,_respectGain,_playerMoneyString]; + "extDB3" callExtension format["1:TRADING:%1",_traderLog]; + }; + if !(_vehicleObject isEqualTo objNull) then + { + _vehicleObject call ExileServer_object_vehicle_database_update; + } + else + { + _playerObject call ExileServer_object_player_database_update; + }; +} +catch +{ + _responseCode = _exception; + [_sessionID, "sellItemResponse", [_responseCode, 0, "", 0, 0, "", ""]] call ExileServer_system_network_send_to; +}; +if !(isNull _playerObject) then +{ + _playerObject setVariable ["ExileMutex", false]; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_wasteDumpRequest.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_wasteDumpRequest.sqf new file mode 100644 index 0000000..a4781db --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_system_trading_network_wasteDumpRequest.sqf @@ -0,0 +1,85 @@ +/** + * ExileServer_system_trading_network_wasteDumpRequest + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_sessionID","_parameters","_vehicleNetID","_mode","_vehicleObject","_vehicleDBID","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_logging","_traderLog","_responseCode"]; +_sessionID = _this select 0; +_parameters = _this select 1; +_vehicleNetID = _parameters select 0; +_mode = _parameters select 1; +try +{ + _vehicleObject = objectFromNetId _vehicleNetID; + _vehicleDBID = _vehicleObject getVariable "ExileDatabaseID"; + if (isNull _vehicleObject) then + { + throw 6; + }; + if (_vehicleObject getVariable ["ExileMutex", false]) then + { + throw 12; + }; + _vehicleObject setVariable ["ExileMutex", true]; + _playerObject = _sessionID call ExileServer_system_session_getPlayerObject; + if (isNull _playerObject) then + { + throw 1; + }; + if !(alive _playerObject) then + { + throw 2; + }; + if !((owner _vehicleObject) isEqualTo (owner _playerObject)) then + { + throw 6; + }; + _cargo = _vehicleObject call ExileClient_util_containerCargo_list; + _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice; + clearBackpackCargoGlobal _vehicleObject; + clearItemCargoGlobal _vehicleObject; + clearMagazineCargoGlobal _vehicleObject; + clearWeaponCargoGlobal _vehicleObject; + if (_mode isEqualTo 2) then + { + _revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice); + _vehicleObject call ExileServer_object_vehicle_remove; + deleteVehicle _vehicleObject; + } + else + { + _vehicleObject call ExileServer_object_vehicle_database_update; + }; + _playerMoney = _playerObject getVariable ["ExileMoney", 0]; + _playerMoney = _playerMoney + _revenue; + _playerObject setVariable ["ExileMoney", _playerMoney, true]; + format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget; + _respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor"); + _playerRespect = _playerObject getVariable ["ExileScore", 0]; + _playerRespect = floor (_playerRespect + _respectGain); + _playerObject setVariable ["ExileScore", _playerRespect]; + format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget; + [_sessionID, "wasteDumpResponse", [0, _revenue, str _playerRespect]] call ExileServer_system_network_send_to; + _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging"); + if (_logging isEqualTo 1) then + { + _traderLog = format ["PLAYER: ( %1 ) %2 SOLD ITEM: %3 (ID# %4) with Cargo %5 FOR %6 POPTABS AND %7 RESPECT | PLAYER TOTAL MONEY: %8",getPlayerUID _playerObject,_playerObject,typeOf _vehicleObject,_vehicleDBID,_cargo,_revenue,_respectGain,_playerMoney]; + "extDB3" callExtension format["1:TRADING:%1",_traderLog]; + }; +} +catch +{ + _responseCode = _exception; + [_sessionID, "wasteDumpResponse", [_responseCode, 0, ""]] call ExileServer_system_network_send_to; +}; +if (!isNull _vehicleObject) then +{ + _vehicleObject setVariable ["ExileMutex", false]; +}; +true diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_addTime.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_addTime.sqf new file mode 100644 index 0000000..39ee53d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_addTime.sqf @@ -0,0 +1,15 @@ +/** + * ExileServer_util_time_addTime + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_time1","_time2"]; +_time1 = _this select 0; +_time2 = _this select 1; +(parseSimpleArray ("extDB3" callExtension format ["9:TIMEDIFF:MINUTES:%1:%2",_time1,_time2])) select 1 diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_currentTime.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_currentTime.sqf new file mode 100644 index 0000000..7a0efad --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_currentTime.sqf @@ -0,0 +1,12 @@ +/** + * ExileServer_util_time_currentTime + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +(parseSimpleArray ("extDB3" callExtension "9:LOCAL_TIME")) select 1 diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_uptime.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_uptime.sqf new file mode 100644 index 0000000..5a6239b --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_util_time_uptime.sqf @@ -0,0 +1,12 @@ +/** + * ExileServer_util_time_uptime + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +(parseNumber ("extDB3" callExtension "9:UPTIME:MINUTES")) diff --git a/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_world_initialize.sqf b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_world_initialize.sqf new file mode 100644 index 0000000..2e0910d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/Exile_Server_Overrides/ExileServer_world_initialize.sqf @@ -0,0 +1,22 @@ +/** + * ExileServer_world_initialize + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ +enableDynamicSimulationSystem true; +"Initializing game world..." call ExileServer_util_log; +call ExileServer_World_loadAllClans; +call ExileServer_World_loadAllTerritories; +call ExileServer_world_loadAllDatabaseConstructions; +call ExileServer_world_loadAllDatabaseVehicles; +call ExileServer_world_loadAllDatabaseContainers; +call ExileServer_system_xm8_sendProtectionMoneyDue; +call ExileServer_world_spawnSpawnZoneVehicles; +call ExileServer_world_spawnVehicles; +"Game world initialized! Let the fun begin!" call ExileServer_util_log; +true \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/config.cpp b/Examples/Example Mission File/Exile.Altis/config.cpp new file mode 100644 index 0000000..c2c16b2 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/config.cpp @@ -0,0 +1,6314 @@ +/** + * config + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + + +class CfgClans +{ + /* + Defines the amount of pop tabs needed to register a new clan + + Default: 20,000 + */ + registrationFee = 20000; + + /* + A list of all characters allowed in a clan *name* + + NOTE: + */ + clanNameAlphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ._-!:\\/"; + + /* + + Maximum markers per clan + + */ + maximumIcons = 20; + + /* + Maximum number of characters on a Marker in a presistent system + + Note: MAX 255! + + */ + maximumIconText = 50; + + /* + + Maximum poly markers per clan + + */ + maximumPolys = 10; + + + /* + + Maximum points in poly + */ + maximumPolyNode = 10; +}; +class Exile_AbstractCraftingRecipe +{ + name = ""; + pictureItem = ""; + returnedItems[] = {}; + components[] = {}; // Required components + tools[] = {}; // Required tools (matches, gas cooker etc.) + requiredInteractionModelGroup = ""; // See CfgInteractionModels + requiresOcean = 0; // isSurfaceWater test + requiresFire = 0; // inflamed object nearby + requiresConcreteMixer = 0; // Check if concrete mixer is nearby +}; + +class CfgCraftingRecipes +{ + +class BreachingChargeBigMomma: Exile_AbstractCraftingRecipe +{ + name = "Breaching Charge (Big Momma)"; + pictureItem = "Exile_Item_BreachingCharge_BigMomma"; + returnedItems[] = + { + {1, "Exile_Item_BreachingCharge_BigMomma"} + }; + tools[] = + { + "Exile_Item_Foolbox" + }; + components[] = + { + {3, "Exile_Item_BreachingCharge_Metal"}, + {1, "Exile_Item_MobilePhone"}, + {1, "Exile_Item_DuctTape"}, + {1, "Exile_Item_ZipTie"} + }; +}; + +class BreachingChargeMetal: Exile_AbstractCraftingRecipe +{ + name = "Breaching Charge (Metal)"; + pictureItem = "Exile_Item_BreachingCharge_Metal"; + returnedItems[] = + { + {1, "Exile_Item_BreachingCharge_Metal"} + }; + tools[] = + { + "Exile_Item_Foolbox" + }; + components[] = + { + {1, "Exile_Item_DuctTape"}, + {1, "SatchelCharge_Remote_Mag"} + }; +}; + +class BreachingChargeWood: Exile_AbstractCraftingRecipe +{ + name = "Breaching Charge (Wood)"; + pictureItem = "Exile_Item_BreachingCharge_Wood"; + returnedItems[] = + { + {1, "Exile_Item_BreachingCharge_Wood"} + }; + tools[] = + { + "Exile_Item_Foolbox" + }; + components[] = + { + {1, "Exile_Item_DuctTape"}, + {1, "DemoCharge_Remote_Mag"} + }; +}; + +class CookBBQSandwich: Exile_AbstractCraftingRecipe +{ + name = "Cook BBQ Sandwich"; + pictureItem = "Exile_Item_BBQSandwich_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_BBQSandwich_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_BBQSandwich"} + }; +}; + +class CookCatFood: Exile_AbstractCraftingRecipe +{ + name = "Cook Cat Food"; + pictureItem = "Exile_Item_CatFood_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_CatFood_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_CatFood"} + }; +}; + +class CookChristmasTinner: Exile_AbstractCraftingRecipe +{ + name = "Cook Christmas Tinner"; + pictureItem = "Exile_Item_ChristmasTinner_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_ChristmasTinner_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_ChristmasTinner"} + }; +}; +class CookCoffee: Exile_AbstractCraftingRecipe +{ + name = "Brew Coffee"; + pictureItem = "Exile_Item_PlasticBottleCoffee"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleCoffee"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_PlasticBottleFreshWater"}, + {1, "Exile_Item_InstantCoffee"} + }; +}; +class CookDogFood: Exile_AbstractCraftingRecipe +{ + name = "Cook Dog Food"; + pictureItem = "Exile_Item_DogFood_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_DogFood_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_DogFood"} + }; +}; + +class CookGloriousKnakworst: Exile_AbstractCraftingRecipe +{ + name = "Cook Glorious Knakworst"; + pictureItem = "Exile_Item_GloriousKnakworst_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_GloriousKnakworst_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_GloriousKnakworst"} + }; +}; + +class CookMacasCheese: Exile_AbstractCraftingRecipe +{ + name = "Cook Macas Cheese"; + pictureItem = "Exile_Item_MacasCheese_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_MacasCheese_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_MacasCheese"} + }; +}; + +class CookPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe +{ + name = "Cook Dirty Water"; + pictureItem = "Exile_Item_PlasticBottleFreshWater"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleFreshWater"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_PlasticBottleDirtyWater"} + }; +}; +class CookPlasticBottleSaltWater: Exile_AbstractCraftingRecipe +{ + name = "Cook Salt Water"; + pictureItem = "Exile_Item_PlasticBottleFreshWater"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleFreshWater"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_PlasticBottleSaltWater"} + }; +}; + +class CookSausageGravy: Exile_AbstractCraftingRecipe +{ + name = "Cook Sausage Gravy"; + pictureItem = "Exile_Item_SausageGravy_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_SausageGravy_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_SausageGravy"} + }; +}; + +class CookSurstromming: Exile_AbstractCraftingRecipe +{ + name = "Cook Surströmming"; + pictureItem = "Exile_Item_Surstromming_Cooked"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_Surstromming_Cooked"} + }; + tools[] = + { + "Exile_Item_CookingPot" + }; + components[] = + { + {1, "Exile_Item_Surstromming"} + }; +}; + +class CraftBandage: Exile_AbstractCraftingRecipe +{ + name = "Craft Bandage"; + pictureItem = "Exile_Item_Bandage"; + returnedItems[] = + { + {1, "Exile_Item_Bandage"} + }; + components[] = + { + {4, "Exile_Item_ToiletPaper"} + }; +}; + +class CraftConcreteDoorway: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Doorway"; + pictureItem = "Exile_Item_ConcreteDoorwayKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteDoorwayKit"}, + {3, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {3, "Exile_Item_Cement"}, + {3, "Exile_Item_Sand"}, + {3, "Exile_Item_MetalPole"}, + {3, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftConcreteFloor: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Floor"; + pictureItem = "Exile_Item_ConcreteFloorKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteFloorKit"}, + {2, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {2, "Exile_Item_Cement"}, + {2, "Exile_Item_Sand"}, + {2, "Exile_Item_MetalPole"}, + {2, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftConcreteFloorPort: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Floor Port"; + pictureItem = "Exile_Item_ConcreteFloorPortKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteFloorPortKit"}, + {3, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {3, "Exile_Item_Cement"}, + {3, "Exile_Item_Sand"}, + {3, "Exile_Item_MetalPole"}, + {3, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftConcreteGate: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Gate"; + pictureItem = "Exile_Item_ConcreteGateKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteGateKit"}, + {4, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {4, "Exile_Item_Cement"}, + {4, "Exile_Item_Sand"}, + {4, "Exile_Item_MetalPole"}, + {4, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftConcretStairs: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Stairs"; + pictureItem = "Exile_Item_ConcreteStairsKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteStairsKit"}, + {1, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {1, "Exile_Item_Cement"}, + {1, "Exile_Item_Sand"}, + {1, "Exile_Item_MetalPole"}, + {1, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftConcretSupport: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Support"; + pictureItem = "Exile_Item_ConcreteSupportKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteSupportKit"}, + {1, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {1, "Exile_Item_Cement"}, + {1, "Exile_Item_Sand"}, + {1, "Exile_Item_MetalPole"}, + {1, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftConcreteWall: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Wall"; + pictureItem = "Exile_Item_ConcreteWallKit"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_ConcreteWallKit"}, + {2, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {2, "Exile_Item_Cement"}, + {2, "Exile_Item_Sand"}, + {2, "Exile_Item_MetalPole"}, + {2, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftFirePlace: Exile_AbstractCraftingRecipe +{ + name = "Craft Fire Place"; + pictureItem = "Exile_Item_CampFireKit"; + returnedItems[] = + { + {1, "Exile_Item_CampFireKit"} + }; + components[] = + { + {2, "Exile_Item_WoodLog"} + }; +}; +class CraftFloodLight: Exile_AbstractCraftingRecipe +{ + name = "Craft Flood Light"; + pictureItem = "Exile_Item_FloodLightKit"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_FloodLightKit"} + }; + components[] = + { + {1, "Exile_Item_MetalPole"}, + {1, "Exile_Item_LightBulb"}, + {1, "Exile_Item_ExtensionCord"} + }; +}; +class CraftFortificationUpgrade: Exile_AbstractCraftingRecipe +{ + name = "Craft Fortification Upgrade"; + pictureItem = "Exile_Item_MetalBoard"; //<< CHANGE IT + requiresFire = 1; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_FortificationUpgrade"} + }; + components[] = + { + {2, "Exile_Item_MetalPole"}, + {4, "Exile_Item_MetalBoard"} + }; + tools[] = {"Exile_Item_Grinder"}; +}; +class CraftHBarrier5Kit: Exile_AbstractCraftingRecipe +{ + name = "Craft H-barrier (5 Blocks)"; + pictureItem = "Exile_Item_HBarrier5Kit"; + requiredInteractionModelGroup = "WorkBench"; + tools[] = + { + "Exile_Item_Pliers" + }; + returnedItems[] = + { + {1, "Exile_Item_HBarrier5Kit"} + }; + components[] = + { + {3, "Exile_Item_SandBagsKit_Long"}, + {2, "Exile_Item_MetalWire"} + }; +}; +class CraftMetalBoard: Exile_AbstractCraftingRecipe +{ + name = "Craft Metal Board"; + pictureItem = "Exile_Item_MetalBoard"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_MetalBoard"} + }; + components[] = + { + {2, "Exile_Item_JunkMetal"} + }; + tools[] = {"Exile_Item_Grinder"}; +}; +class CraftMetalHedgehog: Exile_AbstractCraftingRecipe +{ + name = "Craft Metal Hedgehog"; + pictureItem = "Exile_Item_MetalHedgehogKit"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_MetalHedgehogKit"} + }; + components[] = + { + {4, "Exile_Item_MetalPole"} + }; + tools[] = {"Exile_Item_Grinder"}; +}; +class CraftMetalPole: Exile_AbstractCraftingRecipe +{ + name = "Craft Metal Pole"; + pictureItem = "Exile_Item_MetalPole"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_MetalPole"} + }; + components[] = + { + {4, "Exile_Item_JunkMetal"} + }; + tools[] = {"Exile_Item_Grinder"}; +}; +class CraftPortableGenerator: Exile_AbstractCraftingRecipe +{ + name = "Craft Portable Generator"; + pictureItem = "Exile_Item_PortableGeneratorKit"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_PortableGeneratorKit"} + }; + components[] = + { + {4, "Exile_Item_MetalBoard"}, + {1, "Exile_Item_FuelCanisterFull"}, + {1, "Exile_Item_ExtensionCord"} + }; +}; +/*class CraftRazorWireKit: Exile_AbstractCraftingRecipe +{ + name = "Craft Razor Wire Kit Kit"; + pictureItem = "Exile_Item_RazorWireKit_Long"; + requiredInteractionModelGroup = "WorkBench"; + tools[] = + { + "Exile_Item_Grinder", + "Exile_Item_Pliers", + "Exile_Item_Screwdriver" + }; + returnedItems[] = + { + {1, "Exile_Item_RazorWireKit_Long"} + }; + components[] = + { + {2, "Exile_Item_MetalPole"}, + {4, "Exile_Item_MetalWire"}, + {1, "Exile_Item_MetalScrews"} + }; +};*/ +class CraftRepairKitConcrete: Exile_AbstractCraftingRecipe +{ + name = "Craft Concrete Repair Kit"; + pictureItem = "Exile_Item_Cement"; + requiresConcreteMixer = true; + returnedItems[] = + { + {1, "Exile_Item_RepairKitConcrete"}, + {1, "Exile_Item_WaterCanisterEmpty"}, + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {4, "Exile_Item_Cement"}, + {2, "Exile_Item_Sand"}, + {1, "Exile_Item_WaterCanisterDirtyWater"}, + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class CraftRepairKitMetal: Exile_AbstractCraftingRecipe +{ + name = "Craft Metal Repair Kit"; + pictureItem = "Exile_Item_RepairKitMetal"; + requiresFire = 0; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_RepairKitMetal"} + }; + components[] = + { + {4, "Exile_Item_MetalBoard"} + }; + tools[] = + { + "Exile_Item_Foolbox", + "Exile_Item_Grinder" + }; +}; +class CraftRepairKitWood: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Repair Kit"; + pictureItem = "Exile_Item_RepairKitWood"; + requiresFire = 0; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_RepairKitWood"} + }; + components[] = + { + {4, "Exile_Item_WoodPlank"} + }; + tools[] = + { + "Exile_Item_Foolbox" + }; +}; +class CraftSandBagsKitCorner: Exile_AbstractCraftingRecipe +{ + name = "Craft Sandbags Kit (Corner)"; + pictureItem = "Exile_Item_SandBagsKit_Corner"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_SandBagsKit_Corner"} + }; + components[] = + { + {3, "Exile_Item_Sand"} + }; +}; +class CraftSandBagsKitLong: Exile_AbstractCraftingRecipe +{ + name = "Craft Sand Bags Kit (Long)"; + pictureItem = "Exile_Item_SandBagsKit_Long"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_SandBagsKit_Long"} + }; + components[] = + { + {6, "Exile_Item_Sand"} + }; +}; +class CraftStorageCrate: Exile_AbstractCraftingRecipe +{ + name = "Craft Storage Crate"; + pictureItem = "Exile_Item_StorageCrateKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_StorageCrateKit"} + }; + components[] = + { + {5, "Exile_Item_WoodPlank"} + }; +}; +class CraftWaterBarrel: Exile_AbstractCraftingRecipe +{ + name = "Craft Water Barrel"; + pictureItem = "Exile_Item_WaterBarrelKit"; + requiredInteractionModelGroup = "WorkBench"; + requiresFire = 1; + returnedItems[] = + { + {1, "Exile_Item_WaterBarrelKit"} + }; + components[] = + { + {20, "Exile_Item_PlasticBottleEmpty"} + }; +}; +class CraftWireFenceKit: Exile_AbstractCraftingRecipe +{ + name = "Craft Wire Fence Kit"; + pictureItem = "Exile_Item_WireFenceKit"; + requiredInteractionModelGroup = "WorkBench"; + tools[] = + { + "Exile_Item_Grinder", + "Exile_Item_Pliers", + "Exile_Item_Screwdriver" + }; + returnedItems[] = + { + {1, "Exile_Item_WireFenceKit"} + }; + components[] = + { + {4, "Exile_Item_MetalPole"}, + {6, "Exile_Item_MetalWire"}, + {1, "Exile_Item_MetalScrews"} + }; +}; +class CraftWoodDoorWay: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Doorway"; + pictureItem = "Exile_Item_WoodDoorwayKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodDoorwayKit"} + }; + components[] = + { + {6, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodFloor: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Floor"; + pictureItem = "Exile_Item_WoodFloorKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodFloorKit"} + }; + components[] = + { + {4, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodFloorPort: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Floor Port"; + pictureItem = "Exile_Item_WoodFloorPortKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodFloorPortKit"} + }; + components[] = + { + {6, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodGate: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Gate"; + pictureItem = "Exile_Item_WoodGateKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodGateKit"} + }; + components[] = + { + {8, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodPlank: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Plank"; + pictureItem = "Exile_Item_WoodPlank"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodPlank"} + }; + components[] = + { + {2, "Exile_Item_WoodLog"} + }; + tools[] = {"Exile_Item_Handsaw"}; +}; +class CraftWoodStairs: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Stairs"; + pictureItem = "Exile_Item_WoodStairsKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodStairsKit"} + }; + components[] = + { + {6, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodSupport: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Support"; + pictureItem = "Exile_Item_WoodSupportKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodSupportKit"} + }; + components[] = + { + {6, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodWall: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Wall"; + pictureItem = "Exile_Item_WoodWallKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodWallKit"} + }; + components[] = + { + {4, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodWallHalf: Exile_AbstractCraftingRecipe +{ + name = "Craft 1/2 Wood Wall"; + pictureItem = "Exile_Item_WoodWallHalfKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodWallHalfKit"} + }; + components[] = + { + {2, "Exile_Item_WoodPlank"} + }; +}; +class CraftWoodWindow: Exile_AbstractCraftingRecipe +{ + name = "Craft Wood Window"; + pictureItem = "Exile_Item_WoodWindowKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodWindowKit"} + }; + components[] = + { + {6, "Exile_Item_WoodPlank"} + }; +}; +class CraftWorkBench: Exile_AbstractCraftingRecipe +{ + name = "Craft Work Bench"; + pictureItem = "Exile_Item_WorkBenchKit"; + returnedItems[] = + { + {1, "Exile_Item_WorkBenchKit"} + }; + components[] = + { + {4, "Exile_Item_WoodLog"} + }; +}; +class EmptyFuelCanister: Exile_AbstractCraftingRecipe +{ + name = "Empty Fuel Canister"; + pictureItem = "Exile_Item_FuelCanisterEmpty"; + returnedItems[] = + { + {1, "Exile_Item_FuelCanisterEmpty"} + }; + components[] = + { + {1, "Exile_Item_FuelCanisterFull"} + }; +}; +class EmptyPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe +{ + name = "Empty Dirty Water"; + pictureItem = "Exile_Item_PlasticBottleEmpty"; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleEmpty"} + }; + components[] = + { + {1, "Exile_Item_PlasticBottleDirtyWater"} + }; +}; +class EmptyPlasticBottleSaltWater: Exile_AbstractCraftingRecipe +{ + name = "Empty Salt Water"; + pictureItem = "Exile_Item_PlasticBottleEmpty"; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleEmpty"} + }; + components[] = + { + {1, "Exile_Item_PlasticBottleSaltWater"} + }; +}; +class FillEmptyPlasticBottleWithDirtyWater: Exile_AbstractCraftingRecipe +{ + name = "Fill Dirty Water"; + pictureItem = "Exile_Item_PlasticBottleDirtyWater"; + requiredInteractionModelGroup = "WaterSource"; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleDirtyWater"} + }; + components[] = + { + {1, "Exile_Item_PlasticBottleEmpty"} + }; +}; +class FillEmptyPlasticBottleWithFreshWater: Exile_AbstractCraftingRecipe +{ + name = "Fill Fresh Water"; + pictureItem = "Exile_Item_PlasticBottleFreshWater"; + requiredInteractionModelGroup = "CleanWaterSource"; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleFreshWater"} + }; + components[] = + { + {1, "Exile_Item_PlasticBottleEmpty"} + }; +}; +class FillEmptyPlasticBottleWithSaltWater: Exile_AbstractCraftingRecipe +{ + name = "Fill Salt Water"; + pictureItem = "Exile_Item_PlasticBottleSaltWater"; + requiresOcean = 1; + returnedItems[] = + { + {1, "Exile_Item_PlasticBottleSaltWater"} + }; + components[] = + { + {1, "Exile_Item_PlasticBottleEmpty"} + }; +}; +class FillEmptyWaterCanisterWithDirtyWater: Exile_AbstractCraftingRecipe +{ + name = "Fill Dirty Water"; + pictureItem = "Exile_Item_WaterCanisterDirtyWater"; + requiredInteractionModelGroup = "WaterSource"; + returnedItems[] = + { + {1, "Exile_Item_WaterCanisterDirtyWater"} + }; + components[] = + { + {1, "Exile_Item_WaterCanisterEmpty"} + }; +}; +class FillFuelCanister: Exile_AbstractCraftingRecipe +{ + name = "Fill Fuel Canister"; + pictureItem = "Exile_Item_FuelCanisterFull"; + requiredInteractionModelGroup = "FuelSource"; + returnedItems[] = + { + {1, "Exile_Item_FuelCanisterFull"} + }; + components[] = + { + {1, "Exile_Item_FuelCanisterEmpty"} + }; +}; +class UpgradeToConcreteDoor: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Concrete Door"; + pictureItem = "Exile_Item_ConcreteDoorKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_ConcreteDoorKit"} + }; + components[] = + { + {1, "Exile_Item_ConcreteDoorwayKit"}, + {2, "Exile_Item_MetalPole"}, + {4, "Exile_Item_MetalBoard"} + }; +}; +class UpgradeToConcreteFloorPort: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Concrete Floor Port"; + pictureItem = "Exile_Item_ConcreteFloorPortKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_ConcreteFloorPortKit"} + }; + components[] = + { + {1, "Exile_Item_ConcreteFloorKit"}, + {2, "Exile_Item_MetalPole"}, + {4, "Exile_Item_MetalBoard"} + }; +}; +class UpgradeToConcreteGate: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Concrete Gate"; + pictureItem = "Exile_Item_ConcreteGateKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_ConcreteGateKit"} + }; + components[] = + { + {1, "Exile_Item_ConcreteWallKit"}, + {2, "Exile_Item_MetalPole"}, + {4, "Exile_Item_MetalBoard"} + }; +}; +class UpgradeToConcreteWindow: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Concrete Window"; + pictureItem = "Exile_Item_ConcreteWindowKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_ConcreteWindowKit"} + }; + components[] = + { + {1, "Exile_Item_ConcreteWallKit"}, + {2, "Exile_Item_MetalPole"}, + {4, "Exile_Item_MetalBoard"} + }; +}; +class UpgradeToWoodDoor: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Wood Door"; + pictureItem = "Exile_Item_WoodDoorKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodDoorKit"} + }; + components[] = + { + {1, "Exile_Item_WoodDoorwayKit"}, + {2, "Exile_Item_WoodPlank"} + }; +}; +class UpgradeToWoodFloorPort: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Wood Floor Port"; + pictureItem = "Exile_Item_WoodFloorPortKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodFloorPortKit"} + }; + components[] = + { + {1, "Exile_Item_WoodFloorKit"}, + {2, "Exile_Item_WoodPlank"} + }; +}; +class UpgradeToWoodGate: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Wood Gate"; + pictureItem = "Exile_Item_WoodGateKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodGateKit"} + }; + components[] = + { + {1, "Exile_Item_WoodWallKit"}, + {4, "Exile_Item_WoodPlank"} + }; +}; +class UpgradeToWoodWall: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Wood Wall"; + pictureItem = "Exile_Item_WoodWallHalfKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodWallKit"} + }; + components[] = + { + {2, "Exile_Item_WoodWallHalfKit"} + }; +}; +class UpgradeToWoodWindow: Exile_AbstractCraftingRecipe +{ + name = "Upgrade to Wood Window"; + pictureItem = "Exile_Item_WoodWindowKit"; + requiredInteractionModelGroup = "WorkBench"; + returnedItems[] = + { + {1, "Exile_Item_WoodWindowKit"} + }; + components[] = + { + {1, "Exile_Item_WoodWallKit"}, + {2, "Exile_Item_WoodPlank"} + }; +}; +}; +class CfgExileArsenal +{ + class Exile_Uniform_BambiOverall { quality = 1; price = 1; sellPrice = 1; }; + + /////////////////////////////////////////////////////////////////////////////// + // Civillian Clothing + /////////////////////////////////////////////////////////////////////////////// + class U_C_Journalist { quality = 1; price = 20; }; + class U_C_Poloshirt_blue { quality = 1; price = 20; }; + class U_C_Poloshirt_burgundy { quality = 1; price = 20; }; + class U_C_Poloshirt_salmon { quality = 1; price = 20; }; + class U_C_Poloshirt_stripped { quality = 1; price = 20; }; + class U_C_Poloshirt_tricolour { quality = 1; price = 20; }; + class U_C_Poor_1 { quality = 1; price = 20; }; + class U_C_Poor_2 { quality = 1; price = 20; }; + class U_C_Poor_shorts_1 { quality = 1; price = 20; }; + class U_C_Scientist { quality = 1; price = 20; }; + class U_OrestesBody { quality = 1; price = 40; }; + class U_Rangemaster { quality = 1; price = 40; }; + class U_NikosAgedBody { quality = 1; price = 40; }; + class U_NikosBody { quality = 1; price = 40; }; + class U_Competitor { quality = 1; price = 40; }; + + /////////////////////////////////////////////////////////////////////////////// + // Soldier Uniforms + /////////////////////////////////////////////////////////////////////////////// + class U_B_CombatUniform_mcam { quality = 2; price = 40; }; + class U_B_CombatUniform_mcam_tshirt { quality = 2; price = 40; }; + class U_B_CombatUniform_mcam_vest { quality = 2; price = 40; }; + class U_B_CombatUniform_mcam_worn { quality = 2; price = 40; }; + class U_B_CTRG_1 { quality = 2; price = 40; }; + class U_B_CTRG_2 { quality = 2; price = 40; }; + class U_B_CTRG_3 { quality = 2; price = 40; }; + class U_I_CombatUniform { quality = 2; price = 40; }; + class U_I_CombatUniform_shortsleeve { quality = 2; price = 40; }; + class U_I_CombatUniform_tshirt { quality = 2; price = 40; }; + class U_I_OfficerUniform { quality = 2; price = 40; }; + class U_O_CombatUniform_ocamo { quality = 2; price = 40; }; + class U_O_CombatUniform_oucamo { quality = 2; price = 40; }; + class U_O_OfficerUniform_ocamo { quality = 3; price = 80; }; + class U_B_SpecopsUniform_sgg { quality = 3; price = 80; }; + class U_O_SpecopsUniform_blk { quality = 3; price = 80; }; + class U_O_SpecopsUniform_ocamo { quality = 3; price = 80; }; + class U_I_G_Story_Protagonist_F { quality = 3; price = 100; }; + class Exile_Uniform_Woodland { quality = 3; price = 150; }; + + /////////////////////////////////////////////////////////////////////////////// + // Guerilla Uniforms + /////////////////////////////////////////////////////////////////////////////// + class U_C_HunterBody_grn { quality = 2; price = 40; }; + class U_IG_Guerilla1_1 { quality = 2; price = 40; }; + class U_IG_Guerilla2_1 { quality = 2; price = 60; }; + class U_IG_Guerilla2_2 { quality = 2; price = 40; }; + class U_IG_Guerilla2_3 { quality = 2; price = 40; }; + class U_IG_Guerilla3_1 { quality = 2; price = 40; }; + class U_BG_Guerilla2_1 { quality = 2; price = 40; }; + class U_IG_Guerilla3_2 { quality = 2; price = 40; }; + class U_BG_Guerrilla_6_1 { quality = 2; price = 60; }; + class U_BG_Guerilla1_1 { quality = 2; price = 40; }; + class U_BG_Guerilla2_2 { quality = 2; price = 40; }; + class U_BG_Guerilla2_3 { quality = 2; price = 40; }; + class U_BG_Guerilla3_1 { quality = 2; price = 40; }; + class U_BG_leader { quality = 3; price = 40; }; + class U_IG_leader { quality = 3; price = 40; }; + class U_I_G_resistanceLeader_F { quality = 3; price = 100; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ghillie Suits + /////////////////////////////////////////////////////////////////////////////// + class U_B_FullGhillie_ard { quality = 4; price = 150; }; + class U_B_FullGhillie_lsh { quality = 4; price = 150; }; + class U_B_FullGhillie_sard { quality = 4; price = 150; }; + class U_B_GhillieSuit { quality = 3; price = 100; }; + class U_I_FullGhillie_ard { quality = 4; price = 150; }; + class U_I_FullGhillie_lsh { quality = 4; price = 150; }; + class U_I_FullGhillie_sard { quality = 4; price = 150; }; + class U_I_GhillieSuit { quality = 3; price = 100; }; + class U_O_FullGhillie_ard { quality = 6; price = 150; }; + class U_O_FullGhillie_lsh { quality = 6; price = 150; }; + class U_O_FullGhillie_sard { quality = 6; price = 150; }; + class U_O_GhillieSuit { quality = 5; price = 100; }; + + /////////////////////////////////////////////////////////////////////////////// + // Wet Suits + /////////////////////////////////////////////////////////////////////////////// + class U_I_Wetsuit { quality = 3; price = 80; }; + class U_O_Wetsuit { quality = 3; price = 80; }; + class U_B_Wetsuit { quality = 3; price = 80; }; + class U_B_survival_uniform { quality = 3; price = 80; }; + + /////////////////////////////////////////////////////////////////////////////// + // Bandolliers + /////////////////////////////////////////////////////////////////////////////// + class V_BandollierB_blk { quality = 1; price = 20; }; + class V_BandollierB_cbr { quality = 1; price = 20; }; + class V_BandollierB_khk { quality = 1; price = 20; }; + class V_BandollierB_oli { quality = 1; price = 20; }; + class V_BandollierB_rgr { quality = 1; price = 20; }; + + /////////////////////////////////////////////////////////////////////////////// + // Chestrigs + /////////////////////////////////////////////////////////////////////////////// + class V_Chestrig_blk { quality = 1; price = 30; }; + class V_Chestrig_khk { quality = 1; price = 30; }; + class V_Chestrig_oli { quality = 1; price = 30; }; + class V_Chestrig_rgr { quality = 1; price = 30; }; + + /////////////////////////////////////////////////////////////////////////////// + // Vests + /////////////////////////////////////////////////////////////////////////////// + class V_Press_F { quality = 1; price = 10; }; + class V_Rangemaster_belt { quality = 1; price = 6; }; + class V_TacVest_blk { quality = 2; price = 50; }; + class V_TacVest_blk_POLICE { quality = 3; price = 50; }; + class V_TacVest_brn { quality = 2; price = 50; }; + class V_TacVest_camo { quality = 2; price = 50; }; + class V_TacVest_khk { quality = 2; price = 50; }; + class V_TacVest_oli { quality = 2; price = 50; }; + class V_TacVestCamo_khk { quality = 2; price = 50; }; + class V_TacVestIR_blk { quality = 2; price = 50; }; + class V_I_G_resistanceLeader_F { quality = 2; price = 50; }; + + /////////////////////////////////////////////////////////////////////////////// + // Harnesses + /////////////////////////////////////////////////////////////////////////////// + class V_HarnessO_brn { quality = 1; price = 40; }; + class V_HarnessO_gry { quality = 1; price = 40; }; + class V_HarnessOGL_brn { quality = 1; price = 30; }; + class V_HarnessOGL_gry { quality = 1; price = 30; }; + class V_HarnessOSpec_brn { quality = 1; price = 40; }; + class V_HarnessOSpec_gry { quality = 1; price = 40; }; + + /////////////////////////////////////////////////////////////////////////////// + // Plate Carriers + /////////////////////////////////////////////////////////////////////////////// + class V_PlateCarrier1_blk { quality = 1; price = 80; }; + class V_PlateCarrier1_rgr { quality = 1; price = 80; }; + class V_PlateCarrier2_rgr { quality = 2; price = 100; }; + class V_PlateCarrier3_rgr { quality = 2; price = 100; }; + class V_PlateCarrierGL_blk { quality = 6; price = 500; }; + class V_PlateCarrierGL_mtp { quality = 6; price = 500; }; + class V_PlateCarrierGL_rgr { quality = 6; price = 500; }; + class V_PlateCarrierH_CTRG { quality = 2; price = 100; }; + class V_PlateCarrierIA1_dgtl { quality = 2; price = 80; }; + class V_PlateCarrierIA2_dgtl { quality = 2; price = 100; }; + class V_PlateCarrierIAGL_dgtl { quality = 3; price = 400; }; + class V_PlateCarrierIAGL_oli { quality = 3; price = 400; }; + class V_PlateCarrierL_CTRG { quality = 2; price = 100; }; + class V_PlateCarrierSpec_blk { quality = 5; price = 200; }; + class V_PlateCarrierSpec_mtp { quality = 5; price = 200; }; + class V_PlateCarrierSpec_rgr { quality = 5; price = 200; }; + + /////////////////////////////////////////////////////////////////////////////// + // Caps + /////////////////////////////////////////////////////////////////////////////// + class H_Cap_blk { quality = 1; price = 6; }; + class H_Cap_blk_Raven { quality = 1; price = 6; }; + class H_Cap_blu { quality = 1; price = 6; }; + class H_Cap_brn_SPECOPS { quality = 1; price = 6; }; + class H_Cap_grn { quality = 1; price = 6; }; + class H_Cap_headphones { quality = 1; price = 6; }; + class H_Cap_khaki_specops_UK { quality = 1; price = 6; }; + class H_Cap_oli { quality = 1; price = 6; }; + class H_Cap_press { quality = 1; price = 6; }; + class H_Cap_red { quality = 1; price = 6; }; + class H_Cap_tan { quality = 1; price = 6; }; + class H_Cap_tan_specops_US { quality = 1; price = 6; }; + + /////////////////////////////////////////////////////////////////////////////// + // Glasses + /////////////////////////////////////////////////////////////////////////////// + class G_Spectacles { quality = 1; price = 6; }; + class G_Spectacles_Tinted { quality = 1; price = 6; }; + class G_Combat { quality = 1; price = 6; }; + class G_Lowprofile { quality = 1; price = 6; }; + class G_Shades_Black { quality = 1; price = 6; }; + class G_Shades_Green { quality = 1; price = 6; }; + class G_Shades_Red { quality = 1; price = 6; }; + class G_Squares { quality = 1; price = 6; }; + class G_Squares_Tinted { quality = 1; price = 6; }; + class G_Sport_BlackWhite { quality = 1; price = 6; }; + class G_Sport_Blackyellow { quality = 1; price = 6; }; + class G_Sport_Greenblack { quality = 1; price = 6; }; + class G_Sport_Checkered { quality = 1; price = 6; }; + class G_Sport_Red { quality = 1; price = 6; }; + class G_Tactical_Black { quality = 1; price = 6; }; + class G_Aviator { quality = 1; price = 6; }; + class G_Lady_Mirror { quality = 1; price = 6; }; + class G_Lady_Dark { quality = 1; price = 6; }; + class G_Lady_Red { quality = 1; price = 6; }; + class G_Lady_Blue { quality = 1; price = 6; }; + class G_Diving { quality = 1; price = 6; }; + class G_B_Diving { quality = 1; price = 6; }; + class G_O_Diving { quality = 1; price = 6; }; + class G_I_Diving { quality = 1; price = 6; }; + class G_Goggles_VR { quality = 1; price = 6; }; + class G_Balaclava_blk { quality = 2; price = 10; }; + class G_Balaclava_oli { quality = 2; price = 10; }; + class G_Balaclava_combat { quality = 2; price = 10; }; + class G_Balaclava_lowprofile { quality = 2; price = 10; }; + class G_Bandanna_blk { quality = 1; price = 6; }; + class G_Bandanna_oli { quality = 1; price = 6; }; + class G_Bandanna_khk { quality = 1; price = 6; }; + class G_Bandanna_tan { quality = 1; price = 6; }; + class G_Bandanna_beast { quality = 1; price = 6; }; + class G_Bandanna_shades { quality = 1; price = 6; }; + class G_Bandanna_sport { quality = 1; price = 6; }; + class G_Bandanna_aviator { quality = 1; price = 6; }; + class G_Shades_Blue { quality = 1; price = 6; }; + class G_Sport_Blackred { quality = 1; price = 6; }; + class G_Tactical_Clear { quality = 1; price = 6; }; + class G_Balaclava_TI_blk_F { quality = 2; price = 15; }; + class G_Balaclava_TI_tna_F { quality = 2; price = 15; }; + class G_Balaclava_TI_G_blk_F { quality = 2; price = 15; }; + class G_Balaclava_TI_G_tna_F { quality = 2; price = 15; }; + class G_Combat_Goggles_tna_F { quality = 1; price = 6; }; + + /////////////////////////////////////////////////////////////////////////////// + // Military Caps + /////////////////////////////////////////////////////////////////////////////// + class H_MilCap_blue { quality = 1; price = 8; }; + class H_MilCap_dgtl { quality = 1; price = 8; }; + class H_MilCap_mcamo { quality = 1; price = 8; }; + class H_MilCap_ocamo { quality = 1; price = 8; }; + class H_MilCap_oucamo { quality = 1; price = 8; }; + class H_MilCap_rucamo { quality = 1; price = 8; }; + + /////////////////////////////////////////////////////////////////////////////// + // Beanies + /////////////////////////////////////////////////////////////////////////////// + class H_Watchcap_blk { quality = 1; price = 6; }; + class H_Watchcap_camo { quality = 1; price = 6; }; + class H_Watchcap_khk { quality = 1; price = 6; }; + class H_Watchcap_sgg { quality = 1; price = 6; }; + + /////////////////////////////////////////////////////////////////////////////// + // Bandannas + /////////////////////////////////////////////////////////////////////////////// + class H_Bandanna_camo { quality = 1; price = 4; }; + class H_Bandanna_cbr { quality = 1; price = 4; }; + class H_Bandanna_gry { quality = 1; price = 4; }; + class H_Bandanna_khk { quality = 1; price = 4; }; + class H_Bandanna_khk_hs { quality = 1; price = 4; }; + class H_Bandanna_mcamo { quality = 1; price = 4; }; + class H_Bandanna_sgg { quality = 1; price = 4; }; + class H_Bandanna_surfer { quality = 1; price = 4; }; + + /////////////////////////////////////////////////////////////////////////////// + // Boonie Hats + /////////////////////////////////////////////////////////////////////////////// + class H_Booniehat_dgtl { quality = 1; price = 6; }; + class H_Booniehat_dirty { quality = 1; price = 6; }; + class H_Booniehat_grn { quality = 1; price = 6; }; + class H_Booniehat_indp { quality = 1; price = 6; }; + class H_Booniehat_khk { quality = 1; price = 6; }; + class H_Booniehat_khk_hs { quality = 1; price = 6; }; + class H_Booniehat_mcamo { quality = 1; price = 6; }; + class H_Booniehat_tan { quality = 1; price = 6; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hats + /////////////////////////////////////////////////////////////////////////////// + class H_Hat_blue { quality = 1; price = 6; }; + class H_Hat_brown { quality = 1; price = 6; }; + class H_Hat_camo { quality = 1; price = 6; }; + class H_Hat_checker { quality = 1; price = 6; }; + class H_Hat_grey { quality = 1; price = 6; }; + class H_Hat_tan { quality = 1; price = 6; }; + class H_StrawHat { quality = 1; price = 6; }; + class H_StrawHat_dark { quality = 1; price = 6; }; + class Exile_Headgear_SantaHat { quality = 1; price = 10; }; + class Exile_Headgear_SafetyHelmet { quality = 1; price = 20; }; + + /////////////////////////////////////////////////////////////////////////////// + // Berets + /////////////////////////////////////////////////////////////////////////////// + class H_Beret_02 { quality = 2; price = 6; }; + class H_Beret_blk { quality = 2; price = 6; }; + class H_Beret_blk_POLICE { quality = 2; price = 6; }; + class H_Beret_brn_SF { quality = 2; price = 6; }; + class H_Beret_Colonel { quality = 3; price = 8; }; + class H_Beret_grn { quality = 2; price = 6; }; + class H_Beret_grn_SF { quality = 2; price = 6; }; + class H_Beret_ocamo { quality = 2; price = 6; }; + class H_Beret_red { quality = 2; price = 6; }; + + /////////////////////////////////////////////////////////////////////////////// + // Shemags + /////////////////////////////////////////////////////////////////////////////// + class H_Shemag_khk { quality = 1; price = 10; }; + class H_Shemag_olive { quality = 1; price = 10; }; + class H_Shemag_olive_hs { quality = 1; price = 10; }; + class H_Shemag_tan { quality = 1; price = 10; }; + class H_ShemagOpen_khk { quality = 1; price = 10; }; + class H_ShemagOpen_tan { quality = 1; price = 10; }; + class H_TurbanO_blk { quality = 1; price = 10; }; + + /////////////////////////////////////////////////////////////////////////////// + // Light Helmets + /////////////////////////////////////////////////////////////////////////////// + class H_HelmetB_light { quality = 2; price = 20; }; + class H_HelmetB_light_black { quality = 2; price = 20; }; + class H_HelmetB_light_desert { quality = 2; price = 20; }; + class H_HelmetB_light_grass { quality = 2; price = 20; }; + class H_HelmetB_light_sand { quality = 2; price = 20; }; + class H_HelmetB_light_snakeskin { quality = 2; price = 20; }; + + /////////////////////////////////////////////////////////////////////////////// + // Helmets + /////////////////////////////////////////////////////////////////////////////// + class H_HelmetIA { quality = 3; price = 40; }; + class H_HelmetIA_camo { quality = 3; price = 40; }; + class H_HelmetIA_net { quality = 3; price = 40; }; + class H_HelmetB { quality = 3; price = 60; }; + class H_HelmetB_black { quality = 3; price = 60; }; + class H_HelmetB_camo { quality = 3; price = 80; }; // This one is awesome! + class H_HelmetB_desert { quality = 3; price = 60; }; + class H_HelmetB_grass { quality = 3; price = 60; }; + class H_HelmetB_paint { quality = 3; price = 60; }; + class H_HelmetB_plain_blk { quality = 3; price = 60; }; + class H_HelmetB_sand { quality = 3; price = 60; }; + class H_HelmetB_snakeskin { quality = 3; price = 60; }; + + /////////////////////////////////////////////////////////////////////////////// + // Spec Ops Helmets + /////////////////////////////////////////////////////////////////////////////// + class H_HelmetSpecB { quality = 4; price = 80; }; + class H_HelmetSpecB_blk { quality = 4; price = 80; }; + class H_HelmetSpecB_paint1 { quality = 4; price = 80; }; + class H_HelmetSpecB_paint2 { quality = 4; price = 80; }; + + /////////////////////////////////////////////////////////////////////////////// + // Super Helmets + /////////////////////////////////////////////////////////////////////////////// + class H_HelmetO_ocamo { quality = 5; price = 150; }; + class H_HelmetO_oucamo { quality = 5; price = 150; }; + class H_HelmetSpecO_blk { quality = 5; price = 100; }; + class H_HelmetSpecO_ocamo { quality = 5; price = 100; }; + class H_HelmetLeaderO_ocamo { quality = 5; price = 200; }; + class H_HelmetLeaderO_oucamo { quality = 5; price = 200; }; + + /////////////////////////////////////////////////////////////////////////////// + // Pointer Attachments + /////////////////////////////////////////////////////////////////////////////// + class acc_flashlight { quality = 1; price = 4; }; + class acc_pointer_IR { quality = 1; price = 10; }; + + /////////////////////////////////////////////////////////////////////////////// + // Bitpod Attachments + /////////////////////////////////////////////////////////////////////////////// + class bipod_01_F_blk { quality = 2; price = 10; }; + class bipod_01_F_mtp { quality = 2; price = 10; }; + class bipod_01_F_snd { quality = 2; price = 10; }; + class bipod_02_F_blk { quality = 2; price = 10; }; + class bipod_02_F_hex { quality = 2; price = 10; }; + class bipod_02_F_tan { quality = 2; price = 10; }; + class bipod_03_F_blk { quality = 2; price = 10; }; + class bipod_03_F_oli { quality = 2; price = 10; }; + + /////////////////////////////////////////////////////////////////////////////// + // Muzzle Attachments + /////////////////////////////////////////////////////////////////////////////// + class muzzle_snds_338_black { quality = 5; price = 50; }; + class muzzle_snds_338_green { quality = 5; price = 50; }; + class muzzle_snds_338_sand { quality = 5; price = 50; }; + class muzzle_snds_93mmg { quality = 4; price = 50; }; + class muzzle_snds_93mmg_tan { quality = 4; price = 50; }; + class muzzle_snds_acp { quality = 1; price = 10; }; + class muzzle_snds_B { quality = 3; price = 20; }; + class muzzle_snds_H { quality = 2; price = 20; }; + class muzzle_snds_H_MG { quality = 2; price = 20; }; + class muzzle_snds_H_SW { quality = 2; price = 20; }; + class muzzle_snds_L { quality = 1; price = 10; }; + class muzzle_snds_M { quality = 1; price = 10; }; + + /////////////////////////////////////////////////////////////////////////////// + // UAVS + /////////////////////////////////////////////////////////////////////////////// + class I_UavTerminal { quality = 4; price = 750; }; + class I_UAV_01_backpack_F { quality = 4; price = 3000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Static MGs + /////////////////////////////////////////////////////////////////////////////// + class O_HMG_01_weapon_F { quality = 4; price = 5000; }; + class O_HMG_01_support_F { quality = 4; price = 1000; }; + // Does not seem to work with HMG01, only the lower version does + //class O_HMG_01_support_high_F { quality = QUALITY_LEVEL_9000; price = 5000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Optic Attachments + /////////////////////////////////////////////////////////////////////////////// + class optic_Aco { quality = 1; price = 70; }; + class optic_ACO_grn { quality = 1; price = 70; }; + class optic_ACO_grn_smg { quality = 1; price = 70; }; + class optic_Aco_smg { quality = 1; price = 70; }; + class optic_AMS { quality = 5; price = 300; }; + class optic_AMS_khk { quality = 5; price = 300; }; + class optic_AMS_snd { quality = 5; price = 300; }; + class optic_Arco { quality = 1; price = 100; }; + class optic_DMS { quality = 2; price = 150; }; + class optic_Hamr { quality = 3; price = 200; }; + class optic_Holosight { quality = 1; price = 50; }; + class optic_Holosight_smg { quality = 1; price = 50; }; + class optic_KHS_blk { quality = 4; price = 300; }; + class optic_KHS_hex { quality = 4; price = 300; }; + class optic_KHS_old { quality = 4; price = 300; }; + class optic_KHS_tan { quality = 4; price = 300; }; + class optic_LRPS { quality = 5; price = 300; }; + class optic_MRCO { quality = 1; price = 100; }; + class optic_MRD { quality = 1; price = 10; }; + class optic_Nightstalker { quality = 6; price = 1000; }; + class optic_NVS { quality = 4; price = 500; }; + class optic_SOS { quality = 2; price = 200; }; + //class optic_tws { quality = QUALITY_LEVEL_9000; price = 1500; }; + //class optic_tws_mg { quality = QUALITY_LEVEL_9000; price = 1500; }; + class optic_Yorris { quality = 1; price = 10; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hardware + /////////////////////////////////////////////////////////////////////////////// + class Exile_Item_Rope { quality = 1; price = 20; }; + class Exile_Item_DuctTape { quality = 1; price = 300; }; + class Exile_Item_ExtensionCord { quality = 1; price = 40; }; + class Exile_Item_FuelCanisterEmpty { quality = 1; price = 40; }; + class Exile_Item_JunkMetal { quality = 1; price = 400; }; + class Exile_Item_LightBulb { quality = 1; price = 20; }; + class Exile_Item_MetalBoard { quality = 1; price = 600; }; + //class Exile_Item_MetalHedgehogKit { quality = 1; price = 1200; }; + class Exile_Item_SafeKit { quality = 4; price = 25000; }; + class Exile_Item_CodeLock { quality = 1; price = 5000; }; + //class Exile_Item_Laptop { quality = 2; price = 9000; }; + //class Exile_Item_BaseCameraKit { quality = 2; price = 5000; }; + class Exile_Item_CamoTentKit { quality = 1; price = 250; }; + class Exile_Item_MetalPole { quality = 1; price = 800; }; + //class Exile_Item_MetalScrews { quality = 1; price = 100; }; + //class Exile_Item_MetalWire { quality = 1; price = 100; }; + //class Exile_Item_Cement { quality = 1; price = 20; }; + //class Exile_Item_Sand { quality = 1; price = 20; }; + //class Exile_Item_CarWheel { quality = 1; price = 1000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Food + /////////////////////////////////////////////////////////////////////////////// + class Exile_Item_EMRE { quality = 3; price = 54; }; //75, 60 + class Exile_Item_GloriousKnakworst { quality = 3; price = 40; }; //60, 30 + class Exile_Item_Surstromming { quality = 3; price = 34; }; //55, 25 + class Exile_Item_SausageGravy { quality = 3; price = 30; }; //50, 25 + class Exile_Item_Catfood { quality = 2; price = 24; }; //40, 40 + class Exile_Item_ChristmasTinner { quality = 3; price = 20; }; //40, 60 + class Exile_Item_BBQSandwich { quality = 3; price = 20; }; //40, 60 + class Exile_Item_MacasCheese { quality = 3; price = 20; }; //40, 60 + class Exile_Item_Dogfood { quality = 2; price = 18; }; //30, 30 + class Exile_Item_BeefParts { quality = 2; price = 18; }; //30, 30 + class Exile_Item_Cheathas { quality = 2; price = 18; }; //30, 30 + class Exile_Item_Noodles { quality = 1; price = 14; }; //25, 50 + class Exile_Item_SeedAstics { quality = 1; price = 12; }; //20, 40 + class Exile_Item_Raisins { quality = 1; price = 10; }; //15, 30 + class Exile_Item_Moobar { quality = 1; price = 8; }; //10, 30 + class Exile_Item_InstantCoffee { quality = 1; price = 20; }; //5, 10 + class Exile_Item_Can_Empty { quality = 1; price = 1; sellPrice = 1; }; + + /////////////////////////////////////////////////////////////////////////////// + // Drinks + /////////////////////////////////////////////////////////////////////////////// + class Exile_Item_PlasticBottleCoffee { quality = 3; price = 70; sellPrice = 10; };//100, 60 + class Exile_Item_PowerDrink { quality = 3; price = 60; }; //95, 10 + class Exile_Item_PlasticBottleFreshWater { quality = 2; price = 50; sellPrice = 4; }; //80, 15 + class Exile_Item_Beer { quality = 1; price = 50; }; //75, 30 + class Exile_Item_EnergyDrink { quality = 1; price = 40; }; //75, 20 + class Exile_Item_ChocolateMilk { quality = 1; price = 25; }; //75, 20 + class Exile_Item_MountainDupe { quality = 1; price = 30; }; //50, 20 + class Exile_Item_PlasticBottleEmpty { quality = 1; price = 4; }; + + /////////////////////////////////////////////////////////////////////////////// + // First Aid + /////////////////////////////////////////////////////////////////////////////// + class Exile_Item_InstaDoc { quality = 5; price = 1250; }; + class Exile_Item_Vishpirin { quality = 3; price = 300; }; + class Exile_Item_Bandage { quality = 2; price = 100; }; + class Exile_Item_Heatpack { quality = 1; price = 50; }; + + //class Exile_Item_Defibrillator { quality = 1; price = 7500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Tools + /////////////////////////////////////////////////////////////////////////////// + class Exile_Item_Matches { quality = 1; price = 60; }; + class Exile_Item_CookingPot { quality = 2; price = 80; }; + class Exile_Melee_Axe { quality = 2; price = 100; }; + class Exile_Melee_SledgeHammmer { quality = 3; price = 500; }; + class Exile_Item_CanOpener { quality = 1; price = 80; }; + class Exile_Item_Handsaw { quality = 2; price = 500; }; + class Exile_Item_Pliers { quality = 2; price = 350; }; + class Exile_Item_Grinder { quality = 2; price = 1250; }; + class Exile_Item_Foolbox { quality = 2; price = 4000; }; + //class Exile_Item_CordlessScrewdriver { quality = 1; price = 750; }; + //class Exile_Item_FireExtinguisher { quality = 1; price = 650; }; + //class Exile_Item_Hammer { quality = 1; price = 600; }; + //class Exile_Item_OilCanister { quality = 1; price = 1750; }; + //class Exile_Item_Screwdriver { quality = 1; price = 250; }; + //class Exile_Item_Shovel { quality = 1; price = 700; }; + //class Exile_Item_Wrench { quality = 1; price = 250; }; + //class Exile_Item_SleepingMat { quality = 1; price = 1250; }; + //class Exile_Item_ToiletPaper { quality = 1; price = 5; }; + //class Exile_Item_ZipTie { quality = 1; price = 250; }; + + /////////////////////////////////////////////////////////////////////////////// + // Navigation + /////////////////////////////////////////////////////////////////////////////// + class ItemWatch { quality = 1; price = 2; }; + class ItemGPS { quality = 2; price = 40; }; + class ItemMap { quality = 1; price = 6; }; + class ItemCompass { quality = 1; price = 6; }; + class ItemRadio { quality = 1; price = 40; }; + class Binocular { quality = 1; price = 40; }; + class Rangefinder { quality = 3; price = 200; }; + class Laserdesignator { quality = 6; price = 750; }; + class Laserdesignator_02 { quality = 6; price = 750; }; + class Laserdesignator_03 { quality = 6; price = 750; }; + class NVGoggles { quality = 2; price = 100; }; + class NVGoggles_INDEP { quality = 2; price = 100; }; + class NVGoggles_OPFOR { quality = 2; price = 100; }; + class Exile_Item_XM8 { quality = 2; price = 20; }; + class Exile_Item_MobilePhone { quality = 6; price = 500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Watch out for a Walter fart! He has gas! + /////////////////////////////////////////////////////////////////////////////// + class Exile_Headgear_GasMask { quality = 4; price = 500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Rebreather + /////////////////////////////////////////////////////////////////////////////// + class V_RebreatherB { quality = 2; price = 250; }; + class V_RebreatherIA { quality = 2; price = 250; }; + class V_RebreatherIR { quality = 2; price = 250; }; + + /////////////////////////////////////////////////////////////////////////////// + // Pilot Stuff + /////////////////////////////////////////////////////////////////////////////// + class B_Parachute { quality = 3; price = 150; }; + class H_CrewHelmetHeli_B { quality = 3; price = 150; }; + class H_CrewHelmetHeli_I { quality = 3; price = 150; }; + class H_CrewHelmetHeli_O { quality = 3; price = 150; }; + class H_HelmetCrew_I { quality = 3; price = 100; }; + class H_HelmetCrew_B { quality = 3; price = 100; }; + class H_HelmetCrew_O { quality = 3; price = 100; }; + class H_PilotHelmetHeli_B { quality = 4; price = 100; }; + class H_PilotHelmetHeli_I { quality = 4; price = 100; }; + class H_PilotHelmetHeli_O { quality = 4; price = 100; }; + class U_B_HeliPilotCoveralls { quality = 4; price = 80; }; + class U_B_PilotCoveralls { quality = 2; price = 60; }; + class U_I_HeliPilotCoveralls { quality = 2; price = 60; }; + class U_I_pilotCoveralls { quality = 2; price = 60; }; + class U_O_PilotCoveralls { quality = 2; price = 60; }; + class H_PilotHelmetFighter_B { quality = 5; price = 150; }; + class H_PilotHelmetFighter_I { quality = 5; price = 150; }; + class H_PilotHelmetFighter_O { quality = 5; price = 150; }; + + /////////////////////////////////////////////////////////////////////////////// + // Backpacks + /////////////////////////////////////////////////////////////////////////////// + class B_HuntingBackpack { quality = 3; price = 70; }; + class B_OutdoorPack_blk { quality = 1; price = 80; }; + class B_OutdoorPack_blu { quality = 1; price = 80; }; + class B_OutdoorPack_tan { quality = 1; price = 80; }; + class B_AssaultPack_blk { quality = 1; price = 90; }; + class B_AssaultPack_cbr { quality = 1; price = 90; }; + class B_AssaultPack_dgtl { quality = 1; price = 90; }; + class B_AssaultPack_khk { quality = 1; price = 90; }; + class B_AssaultPack_mcamo { quality = 1; price = 90; }; + class B_AssaultPack_rgr { quality = 1; price = 90; }; + class B_AssaultPack_sgg { quality = 1; price = 90; }; + class B_FieldPack_blk { quality = 2; price = 120; }; + class B_FieldPack_cbr { quality = 2; price = 120; }; + class B_FieldPack_ocamo { quality = 2; price = 120; }; + class B_FieldPack_oucamo { quality = 2; price = 120; }; + class B_TacticalPack_blk { quality = 2; price = 150; }; + class B_TacticalPack_rgr { quality = 2; price = 150; }; + class B_TacticalPack_ocamo { quality = 2; price = 150; }; + class B_TacticalPack_mcamo { quality = 2; price = 150; }; + class B_TacticalPack_oli { quality = 2; price = 150; }; + class B_Kitbag_cbr { quality = 3; price = 200; }; + class B_Kitbag_mcamo { quality = 3; price = 200; }; + class B_Kitbag_sgg { quality = 3; price = 200; }; + class B_Bergen_blk { quality = 3; price = 200; }; + class B_Bergen_mcamo { quality = 3; price = 200; }; + class B_Bergen_rgr { quality = 3; price = 200; }; + class B_Bergen_sgg { quality = 3; price = 200; }; + class B_Carryall_cbr { quality = 4; price = 300; }; + class B_Carryall_khk { quality = 4; price = 300; }; + class B_Carryall_mcamo { quality = 4; price = 300; }; + class B_Carryall_ocamo { quality = 4; price = 300; }; + class B_Carryall_oli { quality = 4; price = 300; }; + class B_Carryall_oucamo { quality = 4; price = 300; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ammunition + /////////////////////////////////////////////////////////////////////////////// + class 100Rnd_65x39_caseless_mag { quality = 2; price = 30; }; + class 100Rnd_65x39_caseless_mag_Tracer { quality = 2; price = 40; }; + class 10Rnd_127x54_Mag { quality = 4; price = 30; }; + // Broken in Arma + class 10Rnd_338_Mag { quality = 5; price = 30; }; + + class 10Rnd_762x54_Mag { quality = 3; price = 30; }; + //class 10Rnd_762x51_Mag { quality = 1; price = 30; }; + class 10Rnd_93x64_DMR_05_Mag { quality = 4; price = 40; }; + class 11Rnd_45ACP_Mag { quality = 1; price = 8; }; + class 150Rnd_762x54_Box { quality = 3; price = 20; }; + class 150Rnd_762x54_Box_Tracer { quality = 3; price = 30; }; + class 16Rnd_9x21_Mag { quality = 1; price = 20; }; + class 200Rnd_65x39_cased_Box { quality = 2; price = 30; }; + class 200Rnd_65x39_cased_Box_Tracer { quality = 2; price = 30; }; + class 150Rnd_93x64_Mag { quality = 6; price = 50; }; + class 130Rnd_338_Mag { quality = 5; price = 40; }; + class 20Rnd_556x45_UW_mag { quality = 1; price = 20; }; + class 20Rnd_762x51_Mag { quality = 2; price = 20; }; + class 30Rnd_45ACP_Mag_SMG_01 { quality = 1; price = 10; }; + class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green { quality = 1; price = 10; }; + class 30Rnd_45ACP_Mag_SMG_01_Tracer_Yellow { quality = 1; price = 10; }; + class 30Rnd_45ACP_Mag_SMG_01_Tracer_Red { quality = 1; price = 10; }; + class 30Rnd_556x45_Stanag { quality = 1; price = 20; }; + class 30Rnd_556x45_Stanag_Tracer_Green { quality = 1; price = 20; }; + class 30Rnd_556x45_Stanag_green { quality = 1; price = 20; }; + class 30Rnd_556x45_Stanag_Tracer_Red { quality = 1; price = 20; }; + class 30Rnd_556x45_Stanag_Tracer_Yellow { quality = 1; price = 20; }; + class 30Rnd_556x45_Stanag_red { quality = 1; price = 20; }; + class 30Rnd_65x39_caseless_green { quality = 2; price = 20; }; + class 30Rnd_65x39_caseless_green_mag_Tracer { quality = 2; price = 30; }; + class 30Rnd_65x39_caseless_mag { quality = 2; price = 20; }; + class 30Rnd_65x39_caseless_mag_Tracer { quality = 2; price = 30; }; + class 30Rnd_9x21_Mag { quality = 1; price = 40; }; + class 30Rnd_9x21_Yellow_Mag { quality = 1; price = 40; }; + class 30Rnd_9x21_Green_Mag { quality = 1; price = 40; }; + class 30Rnd_9x21_Red_Mag { quality = 1; price = 40; }; + class 5Rnd_127x108_APDS_Mag { quality = 6; price = 50; }; + class 5Rnd_127x108_Mag { quality = 6; price = 40; }; + class 6Rnd_45ACP_Cylinder { quality = 1; price = 8; }; + class 6Rnd_GreenSignal_F { quality = 1; price = 30; }; + class 6Rnd_RedSignal_F { quality = 1; price = 30; }; + class 7Rnd_408_Mag { quality = 6; price = 10; }; + class 9Rnd_45ACP_Mag { quality = 1; price = 6; }; + + // Price for bullet cam magazines is normal magazine price + 20 pop tabs per bullet + class Exile_Magazine_5Rnd_127x108_Bullet_Cam_Mag { quality = 6; price = 40 + 5 * 20; }; + class Exile_Magazine_10Rnd_93x64_DMR_05_Bullet_Cam_Mag { quality = 6; price = 40 + 10 * 20; }; + class Exile_Magazine_7Rnd_408_Bullet_Cam_Mag { quality = 6; price = 10 + 7 * 20; }; + class Exile_Magazine_10Rnd_338_Bullet_Cam_Mag { quality = 6; price = 30 + 10 * 20; }; + + /////////////////////////////////////////////////////////////////////////////// + // Flares + /////////////////////////////////////////////////////////////////////////////// + class Chemlight_blue { quality = 1; price = 2; }; + class Chemlight_green { quality = 1; price = 2; }; + class Chemlight_red { quality = 1; price = 2; }; + class FlareGreen_F { quality = 1; price = 6; }; + class FlareRed_F { quality = 1; price = 6; }; + class FlareWhite_F { quality = 1; price = 6; }; + class FlareYellow_F { quality = 1; price = 6; }; + class UGL_FlareGreen_F { quality = 2; price = 8; }; + class UGL_FlareRed_F { quality = 2; price = 8; }; + class UGL_FlareWhite_F { quality = 2; price = 8; }; + class UGL_FlareYellow_F { quality = 2; price = 8; }; + class 3Rnd_UGL_FlareGreen_F { quality = 3; price = 8*3; }; + class 3Rnd_UGL_FlareRed_F { quality = 3; price = 8*3; }; + class 3Rnd_UGL_FlareWhite_F { quality = 3; price = 8*3; }; + class 3Rnd_UGL_FlareYellow_F { quality = 3; price = 8*3; }; + + /////////////////////////////////////////////////////////////////////////////// + // Smokes + /////////////////////////////////////////////////////////////////////////////// + class SmokeShell { quality = 1; price = 6; }; + class SmokeShellBlue { quality = 1; price = 6; }; + class SmokeShellGreen { quality = 1; price = 6; }; + class SmokeShellOrange { quality = 1; price = 6; }; + class SmokeShellPurple { quality = 1; price = 6; }; + class SmokeShellRed { quality = 1; price = 6; }; + class SmokeShellYellow { quality = 1; price = 6; }; + class 1Rnd_Smoke_Grenade_shell { quality = 2; price = 8; }; + class 1Rnd_SmokeBlue_Grenade_shell { quality = 2; price = 8; }; + class 1Rnd_SmokeGreen_Grenade_shell { quality = 2; price = 8; }; + class 1Rnd_SmokeOrange_Grenade_shell { quality = 2; price = 8; }; + class 1Rnd_SmokePurple_Grenade_shell { quality = 2; price = 8; }; + class 1Rnd_SmokeRed_Grenade_shell { quality = 2; price = 8; }; + class 1Rnd_SmokeYellow_Grenade_shell { quality = 2; price = 8; }; + class 3Rnd_Smoke_Grenade_shell { quality = 3; price = 8*3; }; + class 3Rnd_SmokeBlue_Grenade_shell { quality = 3; price = 8*3; }; + class 3Rnd_SmokeGreen_Grenade_shell { quality = 3; price = 8*3; }; + class 3Rnd_SmokeOrange_Grenade_shell { quality = 3; price = 8*3; }; + class 3Rnd_SmokePurple_Grenade_shell { quality = 3; price = 8*3; }; + class 3Rnd_SmokeRed_Grenade_shell { quality = 3; price = 8*3; }; + class 3Rnd_SmokeYellow_Grenade_shell { quality = 3; price = 8*3; }; + + /////////////////////////////////////////////////////////////////////////////// + // Explosives + /////////////////////////////////////////////////////////////////////////////// + class HandGrenade { quality = 3; price = 40; }; + class MiniGrenade { quality = 2; price = 30; }; + class B_IR_Grenade { quality = 1; price = 50; }; + class O_IR_Grenade { quality = 1; price = 50; }; + class I_IR_Grenade { quality = 1; price = 50; }; + class 1Rnd_HE_Grenade_shell { quality = 2; price = 70; }; + class 3Rnd_HE_Grenade_shell { quality = 3; price = 70*3; }; + class APERSBoundingMine_Range_Mag { quality = 3; price = 500; }; + class APERSMine_Range_Mag { quality = 3; price = 600; }; + class APERSTripMine_Wire_Mag { quality = 3; price = 300; }; + class ClaymoreDirectionalMine_Remote_Mag { quality = 3; price = 350; }; + class DemoCharge_Remote_Mag { quality = 4; price = 700; }; + class IEDLandBig_Remote_Mag { quality = 3; price = 600; }; + class IEDLandSmall_Remote_Mag { quality = 3; price = 300; }; + class IEDUrbanBig_Remote_Mag { quality = 3; price = 800; }; + class IEDUrbanSmall_Remote_Mag { quality = 3; price = 400; }; + class SatchelCharge_Remote_Mag { quality = 5; price = 1000; }; + class SLAMDirectionalMine_Wire_Mag { quality = 3; price = 700; }; + + /////////////////////////////////////////////////////////////////////////////// + // Pistols + /////////////////////////////////////////////////////////////////////////////// + class hgun_ACPC2_F { quality = 1; price = 50; }; + class hgun_P07_F { quality = 1; price = 50; }; + class hgun_Pistol_heavy_01_F { quality = 2; price = 80; }; + class hgun_Pistol_heavy_02_F { quality = 2; price = 80; }; + class hgun_Pistol_Signal_F { quality = 1; price = 100; }; + class hgun_Rook40_F { quality = 1; price = 50; }; + + /////////////////////////////////////////////////////////////////////////////// + // Sub Machine Guns + /////////////////////////////////////////////////////////////////////////////// + class hgun_PDW2000_F { quality = 1; price = 100; }; + class SMG_01_F { quality = 1; price = 150; }; + class SMG_02_F { quality = 1; price = 150; }; + + /////////////////////////////////////////////////////////////////////////////// + // Light Machine Guns + /////////////////////////////////////////////////////////////////////////////// + class arifle_MX_SW_Black_F { quality = 2; price = 250; }; + class arifle_MX_SW_F { quality = 2; price = 250; }; + class LMG_Mk200_F { quality = 2; price = 300; }; + class LMG_Zafir_F { quality = 3; price = 350; }; + class MMG_01_hex_F { quality = 6; price = 800; }; + class MMG_01_tan_F { quality = 6; price = 800; }; + class MMG_02_black_F { quality = 6; price = 450; }; + class MMG_02_camo_F { quality = 5; price = 450; }; + class MMG_02_sand_F { quality = 5; price = 450; }; + + /////////////////////////////////////////////////////////////////////////////// + // Assault Rifles + /////////////////////////////////////////////////////////////////////////////// + class arifle_Katiba_C_F { quality = 2; price = 150; }; + class arifle_Katiba_F { quality = 2; price = 150; }; + class arifle_Katiba_GL_F { quality = 2; price = 200; }; + class arifle_Mk20_F { quality = 1; price = 150; }; + class arifle_Mk20_GL_F { quality = 1; price = 200; }; + class arifle_Mk20_GL_plain_F { quality = 1; price = 200; }; + class arifle_Mk20_plain_F { quality = 1; price = 150; }; + class arifle_Mk20C_F { quality = 1; price = 150; }; + class arifle_Mk20C_plain_F { quality = 1; price = 150; }; + class arifle_MX_Black_F { quality = 2; price = 450; }; + class arifle_MX_F { quality = 2; price = 450; }; + class arifle_MX_GL_Black_F { quality = 2; price = 450; }; + class arifle_MX_GL_F { quality = 2; price = 450; }; + class arifle_MXC_Black_F { quality = 2; price = 350; }; + class arifle_MXC_F { quality = 2; price = 350; }; + class arifle_SDAR_F { quality = 1; price = 650; }; + class arifle_TRG20_F { quality = 1; price = 250; }; + class arifle_TRG21_F { quality = 1; price = 250; }; + class arifle_TRG21_GL_F { quality = 1; price = 350; }; + + /////////////////////////////////////////////////////////////////////////////// + // Sniper Rifles + /////////////////////////////////////////////////////////////////////////////// + class arifle_MXM_Black_F { quality = 2; price = 550; }; + class arifle_MXM_F { quality = 2; price = 550; }; + class srifle_DMR_01_F { quality = 3; price = 600; }; + class srifle_DMR_02_camo_F { quality = 3; price = 800; }; + class srifle_DMR_02_F { quality = 3; price = 800; }; + class srifle_DMR_02_sniper_F { quality = 3; price = 800; }; + class srifle_DMR_03_F { quality = 3; price = 750; }; + class srifle_DMR_03_khaki_F { quality = 3; price = 750; }; + class srifle_DMR_03_multicam_F { quality = 3; price = 750; }; + class srifle_DMR_03_tan_F { quality = 3; price = 750; }; + class srifle_DMR_03_woodland_F { quality = 3; price = 750; }; + class srifle_DMR_04_F { quality = 4; price = 700; }; + class srifle_DMR_04_Tan_F { quality = 4; price = 700; }; + class srifle_DMR_05_blk_F { quality = 4; price = 850; }; + class srifle_DMR_05_hex_F { quality = 4; price = 850; }; + class srifle_DMR_05_tan_f { quality = 4; price = 850; }; + class srifle_DMR_06_camo_F { quality = 5; price = 800; }; + class srifle_DMR_06_olive_F { quality = 5; price = 800; }; + class srifle_EBR_F { quality = 3; price = 700; }; + class srifle_GM6_camo_F { quality = 6; price = 900; }; + class srifle_GM6_F { quality = 6; price = 900; }; + class srifle_LRR_camo_F { quality = 6; price = 850; }; + class srifle_LRR_F { quality = 6; price = 850; }; + + /////////////////////////////////////////////////////////////////////////////// + // ArmA 2 Weapons + /////////////////////////////////////////////////////////////////////////////// + class Exile_Weapon_AK107 { quality = 1; price = 300; }; + class Exile_Weapon_AK107_GL { quality = 2; price = 400; }; + class Exile_Weapon_AK74 { quality = 2; price = 350; }; + class Exile_Weapon_AK74_GL { quality = 2; price = 400; }; + class Exile_Weapon_AK47 { quality = 3; price = 500; }; + class Exile_Weapon_AKM { quality = 3; price = 500; }; + class Exile_Weapon_AKS { quality = 3; price = 500; }; + class Exile_Weapon_AKS_Gold { quality = 3; price = 550; }; + class Exile_Weapon_DMR { quality = 3; price = 650; }; + class Exile_Weapon_LeeEnfield { quality = 1; price = 250; }; + class Exile_Weapon_CZ550 { quality = 2; price = 400; }; + class Exile_Weapon_SVD { quality = 4; price = 800; }; + class Exile_Weapon_SVDCamo { quality = 4; price = 850; }; + class Exile_Weapon_VSSVintorez { quality = 3; price = 600; }; + class Exile_Weapon_RPK { quality = 2; price = 250; }; + class Exile_Weapon_PK { quality = 3; price = 300; }; + class Exile_Weapon_PKP { quality = 3; price = 350; }; + class Exile_Weapon_Colt1911 { quality = 1; price = 100; }; + class Exile_Weapon_Makarov { quality = 1; price = 100; }; + class Exile_Weapon_Taurus { quality = 1; price = 100; }; + class Exile_Weapon_TaurusGold { quality = 1; price = 150; }; + class Exile_Weapon_M1014 { quality = 2; price = 200; }; + + /////////////////////////////////////////////////////////////////////////////// + // ArmA 2 Ammunition + /////////////////////////////////////////////////////////////////////////////// + class Exile_Magazine_30Rnd_762x39_AK { quality = 3; price = 20; }; + class Exile_Magazine_30Rnd_545x39_AK { quality = 1; price = 20; }; + class Exile_Magazine_30Rnd_545x39_AK_Green { quality = 1; price = 20; }; + class Exile_Magazine_30Rnd_545x39_AK_Red { quality = 1; price = 20; }; + class Exile_Magazine_30Rnd_545x39_AK_White { quality = 1; price = 20; }; + class Exile_Magazine_30Rnd_545x39_AK_Yellow { quality = 1; price = 20; }; + class Exile_Magazine_45Rnd_545x39_RPK_Green { quality = 1; price = 20; }; + class Exile_Magazine_75Rnd_545x39_RPK_Green { quality = 1; price = 20; }; + class Exile_Magazine_20Rnd_762x51_DMR { quality = 3; price = 20; }; + class Exile_Magazine_20Rnd_762x51_DMR_Yellow { quality = 3; price = 20; }; + class Exile_Magazine_20Rnd_762x51_DMR_Red { quality = 3; price = 20; }; + class Exile_Magazine_20Rnd_762x51_DMR_Green { quality = 3; price = 20; }; + class Exile_Magazine_10Rnd_303 { quality = 1; price = 20; }; + class Exile_Magazine_100Rnd_762x54_PK_Green { quality = 3; price = 20; }; + class Exile_Magazine_7Rnd_45ACP { quality = 1; price = 20; }; + class Exile_Magazine_8Rnd_9x18 { quality = 1; price = 20; }; + class Exile_Magazine_6Rnd_45ACP { quality = 1; price = 20; }; + class Exile_Magazine_5Rnd_22LR { quality = 1; price = 20; }; + class Exile_Magazine_10Rnd_762x54 { quality = 1; price = 20; }; + class Exile_Magazine_10Rnd_9x39 { quality = 1; price = 20; }; + class Exile_Magazine_20Rnd_9x39 { quality = 1; price = 20; }; + class Exile_Magazine_8Rnd_74Slug { quality = 1; price = 20; }; + class Exile_Magazine_8Rnd_74Pellets { quality = 1; price = 20; }; // broken? + + /////////////////////////////////////////////////////////////////////////////// + // Apex Items & Weapons + /////////////////////////////////////////////////////////////////////////////// + class hgun_Pistol_01_F { quality = 1; price = 65; }; + class hgun_P07_khk_F { quality = 1; price = 65; }; + class SMG_05_F { quality = 1; price = 150; }; + class LMG_03_F { quality = 2; price = 300; }; + class arifle_MX_khk_F { quality = 2; price = 450; }; + class arifle_MX_GL_khk_F { quality = 2; price = 500; }; + class arifle_MXC_khk_F { quality = 2; price = 350; }; + class arifle_MXM_khk_F { quality = 2; price = 500; }; + class srifle_LRR_tna_F { quality = 6; price = 850; }; + class srifle_GM6_ghex_F { quality = 6; price = 900; }; + class srifle_DMR_07_blk_F { quality = 4; price = 750; }; + class srifle_DMR_07_hex_F { quality = 4; price = 750; }; + class srifle_DMR_07_ghex_F { quality = 4; price = 750; }; + class arifle_AK12_F { quality = 3; price = 650; }; + class arifle_AK12_GL_F { quality = 3; price = 700; }; + class arifle_AKM_F { quality = 3; price = 400; }; + class arifle_AKM_FL_F { quality = 3; price = 400; }; + class arifle_AKS_F { quality = 3; price = 350; }; + class arifle_ARX_blk_F { quality = 5; price = 900; }; + class arifle_ARX_ghex_F { quality = 5; price = 900; }; + class arifle_ARX_hex_F { quality = 5; price = 900; }; + class arifle_CTAR_blk_F { quality = 2; price = 450; }; + class arifle_CTAR_hex_F { quality = 2; price = 450; }; + class arifle_CTAR_ghex_F { quality = 2; price = 450; }; + class arifle_CTAR_GL_blk_F { quality = 2; price = 450; }; + class arifle_CTARS_blk_F { quality = 2; price = 450; }; + class arifle_CTARS_ghex_F { quality = 2; price = 450; }; + class arifle_CTARS_hex_F { quality = 2; price = 450; }; + class arifle_SPAR_01_blk_F { quality = 1; price = 400; }; + class arifle_SPAR_01_khk_F { quality = 1; price = 400; }; + class arifle_SPAR_01_snd_F { quality = 1; price = 400; }; + class arifle_SPAR_01_GL_blk_F { quality = 1; price = 500; }; + class arifle_SPAR_01_GL_khk_F { quality = 1; price = 500; }; + class arifle_SPAR_01_GL_snd_F { quality = 1; price = 500; }; + class arifle_SPAR_02_blk_F { quality = 2; price = 550; }; + class arifle_SPAR_02_khk_F { quality = 2; price = 550; }; + class arifle_SPAR_02_snd_F { quality = 2; price = 550; }; + class arifle_SPAR_03_blk_F { quality = 3; price = 600; }; + class arifle_SPAR_03_khk_F { quality = 3; price = 600; }; + class arifle_SPAR_03_snd_F { quality = 3; price = 600; }; + class muzzle_snds_H_khk_F { quality = 2; price = 50; }; + class muzzle_snds_H_snd_F { quality = 2; price = 50; }; + class muzzle_snds_58_blk_F { quality = 1; price = 20; }; + class muzzle_snds_m_khk_F { quality = 1; price = 15; }; + class muzzle_snds_m_snd_F { quality = 1; price = 15; }; + class muzzle_snds_B_khk_F { quality = 3; price = 50; }; + class muzzle_snds_B_snd_F { quality = 3; price = 50; }; + class muzzle_snds_58_wdm_F { quality = 1; price = 20; }; + class muzzle_snds_65_TI_blk_F { quality = 2; price = 75; }; + class muzzle_snds_65_TI_hex_F { quality = 2; price = 75; }; + class muzzle_snds_65_TI_ghex_F { quality = 2; price = 75; }; + class muzzle_snds_H_MG_blk_F { quality = 2; price = 20; }; + class muzzle_snds_H_MG_khk_F { quality = 2; price = 20; }; + class optic_Arco_blk_F { quality = 1; price = 100; }; + class optic_Arco_ghex_F { quality = 1; price = 100; }; + class optic_DMS_ghex_F { quality = 2; price = 150; }; + class optic_Hamr_khk_F { quality = 3; price = 200; }; + class optic_ERCO_blk_F { quality = 1; price = 125; }; + class optic_ERCO_khk_F { quality = 1; price = 125; }; + class optic_ERCO_snd_F { quality = 1; price = 125; }; + class optic_SOS_khk_F { quality = 2; price = 200; }; + class optic_LRPS_tna_F { quality = 5; price = 300; }; + class optic_LRPS_ghex_F { quality = 5; price = 300; }; + class optic_Holosight_blk_F { quality = 1; price = 50; }; + class optic_Holosight_khk_F { quality = 1; price = 50; }; + class optic_Holosight_smg_blk_F { quality = 1; price = 50; }; + class bipod_01_F_khk { quality = 2; price = 10; }; + class O_NVGoggles_hex_F { quality = 3; price = 150; }; + class O_NVGoggles_urb_F { quality = 3; price = 150; }; + class O_NVGoggles_ghex_F { quality = 3; price = 150; }; + class NVGoggles_tna_F { quality = 2; price = 100; }; + //class NVGogglesB_blk_F { quality = 1; price = 1000; }; //Normal NightV but fullscreen thermal + //class NVGogglesB_grn_F { quality = 1; price = 1000; }; //Normal NightV but fullscreen thermal + //class NVGogglesB_gry_F { quality = 1; price = 1000; }; //Normal NightV but fullscreen thermal + //class Laserdesignator_01_khk_F { quality = 1; price = 1000; }; //Thermal + //class Laserdesignator_02_ghex_F { quality = 1; price = 1000; }; //Thermal + class U_B_T_Soldier_F { quality = 2; price = 40; }; + class U_B_T_Soldier_AR_F { quality = 2; price = 40; }; + class U_B_T_Soldier_SL_F { quality = 2; price = 40; }; + class U_B_T_Sniper_F { quality = 3; price = 100; }; + class U_B_T_FullGhillie_tna_F { quality = 4; price = 150; }; + class U_B_CTRG_Soldier_F { quality = 2; price = 40; }; + class U_B_CTRG_Soldier_2_F { quality = 2; price = 40; }; + class U_B_CTRG_Soldier_3_F { quality = 2; price = 40; }; + class U_B_GEN_Soldier_F { quality = 2; price = 35; }; + class U_B_GEN_Commander_F { quality = 2; price = 35; }; + class U_O_T_Soldier_F { quality = 2; price = 40; }; + class U_O_T_Officer_F { quality = 3; price = 40; }; + class U_O_T_Sniper_F { quality = 3; price = 100; }; + class U_O_T_FullGhillie_tna_F { quality = 4; price = 150; }; + class U_O_V_Soldier_Viper_F { quality = 4; price = 150; }; + class U_O_V_Soldier_Viper_hex_F { quality = 4; price = 150; }; + class U_I_C_Soldier_Para_1_F { quality = 2; price = 30; }; + class U_I_C_Soldier_Para_2_F { quality = 2; price = 30; }; + class U_I_C_Soldier_Para_3_F { quality = 2; price = 30; }; + class U_I_C_Soldier_Para_4_F { quality = 2; price = 30; }; + class U_I_C_Soldier_Para_5_F { quality = 2; price = 30; }; + class U_I_C_Soldier_Bandit_1_F { quality = 1; price = 15; }; + class U_I_C_Soldier_Bandit_2_F { quality = 1; price = 15; }; + class U_I_C_Soldier_Bandit_3_F { quality = 1; price = 15; }; + class U_I_C_Soldier_Bandit_4_F { quality = 1; price = 15; }; + class U_I_C_Soldier_Bandit_5_F { quality = 1; price = 15; }; + class U_I_C_Soldier_Camo_F { quality = 2; price = 30; }; + class U_C_man_sport_1_F { quality = 1; price = 10; }; + class U_C_man_sport_2_F { quality = 1; price = 10; }; + class U_C_man_sport_3_F { quality = 1; price = 10; }; + class U_C_Man_casual_1_F { quality = 1; price = 10; }; + class U_C_Man_casual_2_F { quality = 1; price = 10; }; + class U_C_Man_casual_3_F { quality = 1; price = 10; }; + class U_C_Man_casual_4_F { quality = 1; price = 10; }; + class U_C_Man_casual_5_F { quality = 1; price = 10; }; + class U_C_Man_casual_6_F { quality = 1; price = 10; }; + class U_B_CTRG_Soldier_urb_1_F { quality = 2; price = 40; }; + class U_B_CTRG_Soldier_urb_2_F { quality = 2; price = 40; }; + class U_B_CTRG_Soldier_urb_3_F { quality = 2; price = 40; }; + class H_Helmet_Skate { quality = 2; price = 20; }; + class H_HelmetB_TI_tna_F { quality = 4; price = 100; }; + //class H_HelmetO_ViperSP_hex_F { quality = 4; price = 1000; }; //Themal + //class H_HelmetO_ViperSP_ghex_F { quality = 4; price = 1000; }; //Themal + class H_HelmetB_tna_F { quality = 3; price = 50; }; + class H_HelmetB_Enh_tna_F { quality = 4; price = 100; }; + class H_HelmetB_Light_tna_F { quality = 2; price = 20; }; + class H_HelmetSpecO_ghex_F { quality = 5; price = 100; }; + class H_HelmetLeaderO_ghex_F { quality = 5; price = 175; }; + class H_HelmetO_ghex_F { quality = 5; price = 75; }; + class H_HelmetCrew_O_ghex_F { quality = 3; price = 75; }; + class H_MilCap_tna_F { quality = 1; price = 8; }; + class H_MilCap_ghex_F { quality = 1; price = 8; }; + class H_Booniehat_tna_F { quality = 1; price = 4; }; + class H_Beret_gen_F { quality = 2; price = 12; }; + class H_MilCap_gen_F { quality = 1; price = 10; }; + class H_Cap_oli_Syndikat_F { quality = 1; price = 6; }; + class H_Cap_tan_Syndikat_F { quality = 1; price = 6; }; + class H_Cap_blk_Syndikat_F { quality = 1; price = 6; }; + class H_Cap_grn_Syndikat_F { quality = 1; price = 6; }; + class H_FakeHeadgear_Syndikat_F { quality = 1; price = 6; }; + class V_TacChestrig_grn_F { quality = 1; price = 15; }; + class V_TacChestrig_oli_F { quality = 1; price = 15; }; + class V_TacChestrig_cbr_F { quality = 1; price = 15; }; + class V_PlateCarrier1_tna_F { quality = 3; price = 50; }; + class V_PlateCarrier2_tna_F { quality = 3; price = 60; }; + class V_PlateCarrierSpec_tna_F { quality = 5; price = 100; }; + class V_PlateCarrierGL_tna_F { quality = 6; price = 500; }; + class V_HarnessO_ghex_F { quality = 2; price = 50; }; + class V_HarnessOGL_ghex_F { quality = 1; price = 30; }; + class V_BandollierB_ghex_F { quality = 1; price = 10; }; + class V_TacVest_gen_F { quality = 1; price = 25; }; + class V_PlateCarrier1_rgr_noflag_F { quality = 2; price = 50; }; + class V_PlateCarrier2_rgr_noflag_F { quality = 2; price = 60; }; + class B_Bergen_Base_F { quality = 5; price = 400; }; + class B_Bergen_mcamo_F { quality = 5; price = 400; }; + class B_Bergen_dgtl_F { quality = 5; price = 400; }; + class B_Bergen_hex_F { quality = 5; price = 400; }; + class B_Bergen_tna_F { quality = 5; price = 400; }; + class B_AssaultPack_tna_F { quality = 1; price = 90; }; + class B_Carryall_ghex_F { quality = 4; price = 300; }; + class B_FieldPack_ghex_F { quality = 2; price = 120; }; + class B_ViperHarness_base_F { quality = 3; price = 250; }; + class B_ViperHarness_blk_F { quality = 3; price = 250; }; + class B_ViperHarness_ghex_F { quality = 3; price = 250; }; + class B_ViperHarness_hex_F { quality = 3; price = 250; }; + class B_ViperHarness_khk_F { quality = 3; price = 250; }; + class B_ViperHarness_oli_F { quality = 3; price = 250; }; + class B_ViperLightHarness_base_F { quality = 2; price = 200; }; + class B_ViperLightHarness_blk_F { quality = 2; price = 200; }; + class B_ViperLightHarness_ghex_F { quality = 2; price = 200; }; + class B_ViperLightHarness_hex_F { quality = 2; price = 200; }; + class B_ViperLightHarness_khk_F { quality = 2; price = 200; }; + class B_ViperLightHarness_oli_F { quality = 2; price = 200; }; + + class 30Rnd_9x21_Mag_SMG_02 {quality = 1; price = 10; }; + class 30Rnd_9x21_Mag_SMG_02_Tracer_Red {quality = 1; price = 15; }; + class 30Rnd_9x21_Mag_SMG_02_Tracer_Yellow {quality = 1; price = 15; }; + class 30Rnd_9x21_Mag_SMG_02_Tracer_Green {quality = 1; price = 15; }; + class 30Rnd_580x42_Mag_F {quality = 2; price = 15; }; + class 30Rnd_580x42_Mag_Tracer_F {quality = 2; price = 15; }; + class 100Rnd_580x42_Mag_F {quality = 2; price = 15; }; + class 100Rnd_580x42_Mag_Tracer_F {quality = 2; price = 15; }; + class 20Rnd_650x39_Cased_Mag_F {quality = 4; price = 20; }; + class 10Rnd_50BW_Mag_F {quality = 5; price = 35; }; + class 150Rnd_556x45_Drum_Mag_F {quality = 2; price = 75; }; + class 150Rnd_556x45_Drum_Mag_Tracer_F {quality = 2; price = 75; }; + class 30Rnd_762x39_Mag_F {quality = 3; price = 25; }; + class 30Rnd_762x39_Mag_Green_F {quality = 3; price = 25; }; + class 30Rnd_762x39_Mag_Tracer_F {quality = 3; price = 25; }; + class 30Rnd_762x39_Mag_Tracer_Green_F {quality = 3; price = 25; }; + class 30Rnd_545x39_Mag_F {quality = 1; price = 10; }; + class 30Rnd_545x39_Mag_Green_F {quality = 1; price = 10; }; + class 30Rnd_545x39_Mag_Tracer_F {quality = 1; price = 10; }; + class 30Rnd_545x39_Mag_Tracer_Green_F {quality = 1; price = 10; }; + class 200Rnd_556x45_Box_F {quality = 1; price = 90; }; + class 200Rnd_556x45_Box_Red_F {quality = 1; price = 90; }; + class 200Rnd_556x45_Box_Tracer_F {quality = 1; price = 90; }; + class 200Rnd_556x45_Box_Tracer_Red_F {quality = 1; price = 90; }; + class 10Rnd_9x21_Mag {quality = 1; price = 10; }; + + /////////////////////////////////////////////////////////////////////////////// + // BIKES + /////////////////////////////////////////////////////////////////////////////// + class Exile_Bike_OldBike { quality = 1; price = 40; }; + class Exile_Bike_MountainBike { quality = 1; price = 50; }; + + /////////////////////////////////////////////////////////////////////////////// + // QUAD BIKES + /////////////////////////////////////////////////////////////////////////////// + class Exile_Bike_QuadBike_Black { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Blue { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Red { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_White { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Nato { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Csat { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Fia { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Guerilla01 { quality = 1; price = 2500; }; + class Exile_Bike_QuadBike_Guerilla02 { quality = 1; price = 2500; }; + + /////////////////////////////////////////////////////////////////////////////// + // KARTS + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Kart_BluKing { quality = 1; price = 1100; }; + class Exile_Car_Kart_RedStone { quality = 1; price = 1100; }; + class Exile_Car_Kart_Vrana { quality = 1; price = 1100; }; + class Exile_Car_Kart_Green { quality = 1; price = 1100; }; + class Exile_Car_Kart_Blue { quality = 1; price = 1100; }; + class Exile_Car_Kart_Orange { quality = 1; price = 1100; }; + class Exile_Car_Kart_White { quality = 1; price = 1100; }; + class Exile_Car_Kart_Yellow { quality = 1; price = 1100; }; + class Exile_Car_Kart_Black { quality = 1; price = 1100; }; + + /////////////////////////////////////////////////////////////////////////////// + // MOTOR BOATS + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_MotorBoat_Police { quality = 1; price = 700; }; + class Exile_Boat_MotorBoat_Orange { quality = 1; price = 700; }; + class Exile_Boat_MotorBoat_White { quality = 1; price = 700; }; + + /////////////////////////////////////////////////////////////////////////////// + // RUBBER DUCKS + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_RubberDuck_CSAT { quality = 1; price = 500; }; + class Exile_Boat_RubberDuck_Digital { quality = 1; price = 500; }; + class Exile_Boat_RubberDuck_Orange { quality = 1; price = 500; }; + class Exile_Boat_RubberDuck_Blue { quality = 1; price = 500; }; + class Exile_Boat_RubberDuck_Black { quality = 1; price = 500; }; + + /////////////////////////////////////////////////////////////////////////////// + // SDV + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_SDV_CSAT { quality = 2; price = 11000; }; + class Exile_Boat_SDV_Digital { quality = 2; price = 11000; }; + class Exile_Boat_SDV_Grey { quality = 2; price = 11000; }; + + /////////////////////////////////////////////////////////////////////////////// + // UH-1H Huey + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Huey_Green { quality = 2; price = 21000; }; + class Exile_Chopper_Huey_Desert { quality = 2; price = 21000; }; + class Exile_Chopper_Huey_Armed_Green { quality = 2; price = 25000; }; + class Exile_Chopper_Huey_Armed_Desert { quality = 2; price = 25000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hellcat + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Hellcat_Green { quality = 3; price = 27500; }; + class Exile_Chopper_Hellcat_FIA { quality = 3; price = 27500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hummingbird + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Hummingbird_Green { quality = 3; price = 23000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hummingbird (Civillian) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Hummingbird_Civillian_Blue { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Red { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_ION { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_BlueLine { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Digital { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Elliptical { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Furious { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_GrayWatcher { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Jeans { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Light { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Shadow { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Sheriff { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Speedy { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Sunset { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Vrana { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Wasp { quality = 1; price = 17000; }; + class Exile_Chopper_Hummingbird_Civillian_Wave { quality = 1; price = 17000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Huron + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Huron_Black { quality = 5; price = 50000; }; + class Exile_Chopper_Huron_Green { quality = 5; price = 50000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Mohawk + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Mohawk_FIA { quality = 4; price = 45000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Orca + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Orca_CSAT { quality = 3; price = 28000; }; + class Exile_Chopper_Orca_Black { quality = 3; price = 28000; }; + class Exile_Chopper_Orca_BlackCustom { quality = 3; price = 28000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Taru + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Taru_Transport_CSAT { quality = 3; price = 17000; }; + class Exile_Chopper_Taru_Transport_Black { quality = 3; price = 17000; }; + + class Exile_Chopper_Taru_CSAT { quality = 4; price = 33000; }; + class Exile_Chopper_Taru_Black { quality = 4; price = 33000; }; + + class Exile_Chopper_Taru_Covered_CSAT { quality = 4; price = 43000; }; + class Exile_Chopper_Taru_Covered_Black { quality = 4; price = 43000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Cessna + /////////////////////////////////////////////////////////////////////////////// + class Exile_Plane_Cessna { quality = 1; price = 16500; }; + + /////////////////////////////////////////////////////////////////////////////// + // An-2 + /////////////////////////////////////////////////////////////////////////////// + class Exile_Plane_AN2_Green { quality = 2; price = 17000; }; + class Exile_Plane_AN2_White { quality = 2; price = 17000; }; + class Exile_Plane_AN2_Stripe { quality = 2; price = 17000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hatchback + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Hatchback_Beige { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Green { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Blue { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_BlueCustom { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_BeigeCustom { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Yellow { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Grey { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Black { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Dark { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Rusty1 { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Rusty2 { quality = 3; price = 12000; }; + class Exile_Car_Hatchback_Rusty3 { quality = 3; price = 12000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Golf + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Golf_Red { quality = 1; price = 8000; }; + class Exile_Car_Golf_Black { quality = 1; price = 8000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ikarus + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ikarus_Blue { quality = 1; price = 17000; }; + class Exile_Car_Ikarus_Red { quality = 1; price = 17000; }; + class Exile_Car_Ikarus_Party { quality = 1; price = 17000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ural (Open) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ural_Open_Blue { quality = 2; price = 25000; }; + class Exile_Car_Ural_Open_Yellow { quality = 2; price = 25000; }; + class Exile_Car_Ural_Open_Worker { quality = 2; price = 25000; }; + class Exile_Car_Ural_Open_Military { quality = 2; price = 25000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ural (Covered) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ural_Covered_Blue { quality = 2; price = 28000; }; + class Exile_Car_Ural_Covered_Yellow { quality = 2; price = 28000; }; + class Exile_Car_Ural_Covered_Worker { quality = 2; price = 28000; }; + class Exile_Car_Ural_Covered_Military { quality = 2; price = 28000; }; + + /////////////////////////////////////////////////////////////////////////////// + // V3S + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_V3S_Open { quality = 2; price = 28000; }; + class Exile_Car_V3S_Covered { quality = 2; price = 28000; }; + + /////////////////////////////////////////////////////////////////////////////// + // SUVXL + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_SUVXL_Black { quality = 3; price = 20000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Tractor + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Tractor_Red { quality = 1; price = 2000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Tractor (Old) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_OldTractor_Red { quality = 1; price = 1200; }; + + /////////////////////////////////////////////////////////////////////////////// + // Tow Tractor + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_TowTractor_White { quality = 1; price = 1800; }; + + /////////////////////////////////////////////////////////////////////////////// + // Octavius + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Octavius_White { quality = 2; price = 6000; }; + class Exile_Car_Octavius_Black { quality = 2; price = 6000; }; + + /////////////////////////////////////////////////////////////////////////////// + // UAZ + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_UAZ_Green { quality = 2; price = 7000; }; + + /////////////////////////////////////////////////////////////////////////////// + // UAZ (Open) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_UAZ_Open_Green { quality = 2; price = 8000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Land Rover + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_LandRover_Red { quality = 3; price = 11000; }; + class Exile_Car_LandRover_Urban { quality = 3; price = 11000; }; + class Exile_Car_LandRover_Green { quality = 3; price = 11000; }; + class Exile_Car_LandRover_Sand { quality = 3; price = 11000; }; + class Exile_Car_LandRover_Desert { quality = 3; price = 11000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Land Rover (Ambulance) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_LandRover_Ambulance_Green { quality = 3; price = 12000; }; + class Exile_Car_LandRover_Ambulance_Desert { quality = 3; price = 12000; }; + class Exile_Car_LandRover_Ambulance_Sand { quality = 3; price = 12000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Lada + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Lada_Green { quality = 2; price = 6000; }; + class Exile_Car_Lada_Taxi { quality = 2; price = 6000; }; + class Exile_Car_Lada_Red { quality = 2; price = 6000; }; + class Exile_Car_Lada_White { quality = 2; price = 6000; }; + class Exile_Car_Lada_Hipster { quality = 2; price = 6000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Volha + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Volha_Blue { quality = 2; price = 6000; }; + class Exile_Car_Volha_White { quality = 2; price = 6000; }; + class Exile_Car_Volha_Black { quality = 2; price = 6000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hatchback (Sport) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Hatchback_Sport_Red { quality = 4; price = 14000; }; + class Exile_Car_Hatchback_Sport_Blue { quality = 4; price = 14000; }; + class Exile_Car_Hatchback_Sport_Orange { quality = 4; price = 14000; }; + class Exile_Car_Hatchback_Sport_White { quality = 4; price = 14000; }; + class Exile_Car_Hatchback_Sport_Beige { quality = 4; price = 14000; }; + class Exile_Car_Hatchback_Sport_Green { quality = 4; price = 14000; }; + + /////////////////////////////////////////////////////////////////////////////// + // HEMMT + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_HEMMT { quality = 3; price = 48000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Hunter + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Hunter { quality = 5; price = 26500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ifrit + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ifrit { quality = 4; price = 23000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Offroad + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Offroad_Red { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Beige { quality = 3; price = 16000; }; + class Exile_Car_Offroad_White { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Blue { quality = 3; price = 16000; }; + class Exile_Car_Offroad_DarkRed { quality = 3; price = 16000; }; + class Exile_Car_Offroad_BlueCustom { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla01 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla02 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla03 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla04 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla05 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla06 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla07 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla08 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla09 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla10 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla11 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Guerilla12 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Rusty1 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Rusty2 { quality = 3; price = 16000; }; + class Exile_Car_Offroad_Rusty3 { quality = 3; price = 16000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Offroad (Armed) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Offroad_Armed_Guerilla01 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla02 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla03 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla04 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla05 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla06 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla07 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla08 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla09 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla10 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla11 { quality = 5; price = 25000; }; + class Exile_Car_Offroad_Armed_Guerilla12 { quality = 5; price = 25000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Offroad (Repair) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Offroad_Repair_Civillian { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Red { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Beige { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_White { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Blue { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_DarkRed { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_BlueCustom { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla01 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla02 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla03 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla04 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla05 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla06 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla07 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla08 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla09 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla10 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla11 { quality = 4; price = 12500; }; + class Exile_Car_Offroad_Repair_Guerilla12 { quality = 4; price = 12500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Strider + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Strider { quality = 6; price = 44000; }; + + /////////////////////////////////////////////////////////////////////////////// + // SUV + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_SUV_Red { quality = 3; price = 14000; }; + class Exile_Car_SUV_Black { quality = 3; price = 14000; }; + class Exile_Car_SUV_Grey { quality = 3; price = 14000; }; + class Exile_Car_SUV_Orange { quality = 3; price = 14000; }; + + /////////////////////////////////////////////////////////////////////////////// + // SUV (Armed) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_SUV_Armed_Black { quality = 4; price = 25000; }; + + /////////////////////////////////////////////////////////////////////////////// + // BRDM2 + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_BRDM2_HQ { quality = 5; price = 25000; }; + + /////////////////////////////////////////////////////////////////////////////// + // BTR40 + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_BTR40_MG_Green { quality = 6; price = 38000; }; + class Exile_Car_BTR40_MG_Camo { quality = 6; price = 38000; }; + class Exile_Car_BTR40_Green { quality = 2; price = 15000; }; + class Exile_Car_BTR40_Camo { quality = 2; price = 15000; }; + + /////////////////////////////////////////////////////////////////////////////// + // HMMWV + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_HMMWV_M134_Green { quality = 5; price = 33000; }; + class Exile_Car_HMMWV_M134_Desert { quality = 5; price = 33000; }; + class Exile_Car_HMMWV_M2_Green { quality = 6; price = 40000; }; + class Exile_Car_HMMWV_M2_Desert { quality = 6; price = 40000; }; + class Exile_Car_HMMWV_MEV_Green { quality = 3; price = 21000; }; + class Exile_Car_HMMWV_MEV_Desert { quality = 3; price = 21000; }; + class Exile_Car_HMMWV_UNA_Green { quality = 3; price = 21000; }; + class Exile_Car_HMMWV_UNA_Desert { quality = 3; price = 21000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Tempest + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Tempest { quality = 4; price = 48300; }; + + /////////////////////////////////////////////////////////////////////////////// + // Van + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Van_Black { quality = 2; price = 12000; }; + class Exile_Car_Van_White { quality = 2; price = 12000; }; + class Exile_Car_Van_Red { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla01 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla02 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla03 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla04 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla05 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla06 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla07 { quality = 2; price = 12000; }; + class Exile_Car_Van_Guerilla08 { quality = 2; price = 12000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Van (Box) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Van_Box_Black { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_White { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Red { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla01 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla02 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla03 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla04 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla05 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla06 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla07 { quality = 3; price = 17000; }; + class Exile_Car_Van_Box_Guerilla08 { quality = 3; price = 17000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Van (Fuel) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Van_Fuel_Black { quality = 3; price = 15000; }; + class Exile_Car_Van_Fuel_White { quality = 3; price = 15000; }; + class Exile_Car_Van_Fuel_Red { quality = 3; price = 15000; }; + class Exile_Car_Van_Fuel_Guerilla01 { quality = 3; price = 15000; }; + class Exile_Car_Van_Fuel_Guerilla02 { quality = 3; price = 15000; }; + class Exile_Car_Van_Fuel_Guerilla03 { quality = 3; price = 15000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Zamak + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Zamak { quality = 4; price = 43000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Water Scooter + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_WaterScooter { quality = 2; price = 800; }; + + /////////////////////////////////////////////////////////////////////////////// + // RHIB + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_RHIB { quality = 3; price = 1500; }; + + /////////////////////////////////////////////////////////////////////////////// + // Ceaser BTT + /////////////////////////////////////////////////////////////////////////////// + class Exile_Plane_Ceasar { quality = 2; price = 15000; }; + + /////////////////////////////////////////////////////////////////////////////// + // V-44 X Blackfish + /////////////////////////////////////////////////////////////////////////////// + class Exile_Plane_BlackfishInfantry { quality = 6; price = 60000; }; + class Exile_Plane_BlackfishVehicle { quality = 6; price = 60000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Prowler + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_ProwlerLight { quality = 3; price = 22000; }; + class Exile_Car_ProwlerUnarmed { quality = 3; price = 22000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Qilin + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_QilinUnarmed { quality = 3; price = 21000; }; + + /////////////////////////////////////////////////////////////////////////////// + // MB 4WD + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_MB4WD { quality = 2; price = 15000; }; + class Exile_Car_MB4WDOpen { quality = 2; price = 15000; }; + + /////////////////////////////////////////////////////////////////////////////// + // Flags + /////////////////////////////////////////////////////////////////////////////// + class Exile_Item_FlagStolen1 { quality = 1; price = 5000; sellPrice = 5000; }; + class Exile_Item_FlagStolen2 { quality = 1; price = 10000; sellPrice = 10000; }; + class Exile_Item_FlagStolen3 { quality = 1; price = 15000; sellPrice = 15000; }; + class Exile_Item_FlagStolen4 { quality = 1; price = 20000; sellPrice = 20000; }; + class Exile_Item_FlagStolen5 { quality = 1; price = 25000; sellPrice = 25000; }; + class Exile_Item_FlagStolen6 { quality = 1; price = 30000; sellPrice = 30000; }; + class Exile_Item_FlagStolen7 { quality = 1; price = 35000; sellPrice = 35000; }; + class Exile_Item_FlagStolen8 { quality = 1; price = 40000; sellPrice = 40000; }; + class Exile_Item_FlagStolen9 { quality = 1; price = 45000; sellPrice = 45000; }; + class Exile_Item_FlagStolen10 { quality = 1; price = 50000; sellPrice = 50000; }; +}; + + + +class CfgExileCustomCode +{ + #include "CfgExileCustomCode.cpp" +}; +class CfgExileEnvironment +{ + class Altis + { + class FireFlies + { + // 1 = enabled, 0 = disabled + enable = 0; + + // At this hour fire flies begin to spawn + startHour = 18; + + // At this hour fire flies stop spawning + endHour = 4; + }; + + class Anomalies + { + // 1 = enabled, 0 = disabled + enable = 0; + + // At this hour anomalies begin to spawn + startHour = 19; + + // At this hour anomalies stop spawning + endHour = 6; + }; + + class Breathing + { + // 1 = enabled, 0 = disabled + enable = 0; + }; + + class Snow + { + // 1 = enabled, 0 = disabled + enable = 0; + + // https://community.bistudio.com/wiki/surfaceType + surfaces[] = {}; + }; + + class Radiation + { + // 1 = enabled, 0 = disabled + enable = 1; + }; + + class Temperature + { + // Temperature in °C for the time of day, per hour + // Add the first index to the last index, so it is 25 indizes! + daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93}; + + // Temperature change in °C when it is 100% overcast + overcast = -2; + + // Temperature change in °C when it is 100% raining + rain = -5; + + // Temperature change in °C when it is 100% windy + wind = -1; + + // Temperature change per 100m altitude in °C + altitude = -0.5; + + // Difference from the daytime temperature to the water temperature + water = -5; + }; + }; + + class Namalsk: Altis + { + class FireFlies: FireFlies + { + enable = 1; + }; + + class Anomalies: Anomalies + { + enable = 1; + }; + + class Breathing: Breathing + { + enable = 1; + }; + + class Snow: Snow + { + enable = 1; + surfaces[] = {"#nam_snow"}; + }; + + class Radiation: Radiation + { + enable = 1; + contaminatedZones[] = + { + {{3960.14, 8454.75, 152.862}, 80, 140}, // Object A1 + {{4974.70, 6632.82, 4.74293}, 40, 150}, // Object A2 + {{6487.92, 9302.03, 36.0014}, 60, 110} // Sebjan Chemical Factory + }; + }; + + class Temperature: Temperature + { + daytimeTemperature[] = {-2.00,-1.77,-1.12,-0.10,1.24,2.78,4.40,6.00,7.46,8.65,9.50,9.90,9.90,9.50,8.65,7.46,6.00,4.40,2.78,1.24,-0.10,-1.12,-1.77,-2.00,-2.00}; + }; + }; + + class Tanoa: Altis + { + class FireFlies: FireFlies + { + enable = 0; + }; + + class Anomalies: Anomalies + { + enable = 0; + }; + + class Breathing: Breathing + { + enable = 0; + }; + + class Snow: Snow + { + enable = 0; + }; + + class Radiation: Radiation + { + enable = 1; + }; + + class Temperature: Temperature + { + daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93}; + }; + }; +}; +class CfgExileHUD +{ + class ShortItemNames + { + SmokeShell[] = {"WHITE", "SMOKE"}; + 1Rnd_Smoke_Grenade_shell[] = {"WHITE", "SMOKE"}; + 3Rnd_Smoke_Grenade_shell[] = {"WHITE", "SMOKE"}; + + SmokeShellBlue[] = {"BLUE", "SMOKE"}; + 1Rnd_SmokeBlue_Grenade_shell[] = {"BLUE", "SMOKE"}; + 3Rnd_SmokeBlue_Grenade_shell[] = {"BLUE", "SMOKE"}; + + SmokeShellGreen[] = {"GREEN", "SMOKE"}; + 1Rnd_SmokeGreen_Grenade_shell[] = {"GREEN", "SMOKE"}; + 3Rnd_SmokeGreen_Grenade_shell[] = {"GREEN", "SMOKE"}; + + SmokeShellOrange[] = {"ORANGE", "SMOKE"}; + 1Rnd_SmokeOrange_Grenade_shell[] = {"ORANGE", "SMOKE"}; + 3Rnd_SmokeOrange_Grenade_shell[] = {"ORANGE", "SMOKE"}; + + SmokeShellPurple[] = {"PURPLE", "SMOKE"}; + 1Rnd_SmokePurple_Grenade_shell[] = {"PURPLE", "SMOKE"}; + 3Rnd_SmokePurple_Grenade_shell[] = {"PURPLE", "SMOKE"}; + + SmokeShellRed[] = {"RED", "SMOKE"}; + 1Rnd_SmokeRed_Grenade_shell[] = {"RED", "SMOKE"}; + 3Rnd_SmokeRed_Grenade_shell[] = {"RED", "SMOKE"}; + + SmokeShellYellow[] = {"YELLOW", "SMOKE"}; + 1Rnd_SmokeYellow_Grenade_shell[] = {"YELLOW", "SMOKE"}; + 3Rnd_SmokeYellow_Grenade_shell[] = {"YELLOW", "SMOKE"}; + + UGL_FlareCIR_F[] = {"IR", "FLARE"}; + 3Rnd_UGL_FlareCIR_F[] = {"IR", "FLARE"}; + + UGL_FlareGreen_F[] = {"GREEN", "FLARE"}; + 3Rnd_UGL_FlareGreen_F[] = {"GREEN", "FLARE"}; + + UGL_FlareRed_F[] = {"RED", "FLARE"}; + 3Rnd_UGL_FlareRed_F[] = {"RED", "FLARE"}; + + UGL_FlareWhite_F[] = {"WHITE", "FLARE"}; + 3Rnd_UGL_FlareWhite_F[] = {"WHITE", "FLARE"}; + + UGL_FlareYellow_F[] = {"YELLOW", "FLARE"}; + 3Rnd_UGL_FlareYellow_F[] = {"YELLOW", "FLARE"}; + + Chemlight_blue[] = {"BLUE", "LIGHT"}; + Chemlight_green[] = {"GREEN", "LIGHT"}; + Chemlight_red[] = {"RED", "LIGHT"}; + Chemlight_yellow[] = {"YELLOW", "LIGHT"}; + + 1Rnd_HE_Grenade_shell[] = {"40MM"}; + 3Rnd_HE_Grenade_shell[] = {"40MM"}; + + O_IR_Grenade[] = {"IR"}; + I_IR_Grenade[] = {"IR"}; + B_IR_Grenade[] = {"IR"}; + + HandGrenade[] = {"RGO"}; + MiniGrenade[] = {"RGN"}; + + Exile_Item_ZipTie[] = {"ZIP", "TIE"}; + }; +}; +class CfgExileLootSettings +{ + /** + * Lifetime of loot in minutes. Synchronize this with + * the garbage collector settings of your server + * CfgSettings! + */ + lifeTime = 8; + + /** + * Interval in seconds when the client searches for + * new buildings to spawn loot in + */ + spawnInterval = 30; + + /** + * This is a percentage value to determine how many loot + * positions should contain loot when the system spawns loot. + * + * If a building has 20 positions defined, Exile will + * spawn loot in 10 random positions of them. + * + * This means smaller buildings spawn less loot and larger + * ones spawn more loot. + * + * You can also cap it at a maximum value. See below. + */ + maximumPositionCoverage = 30; + + /** + * Limit the number of loot positions per building. If the + * above percentage value exceeds this value, it will be capped. + * + * Example: Coverage is 50%. Building has 60 loot positions defined. + * This results in 30 loot positions and that is too much. So we + * cap this at 10 + */ + maximumNumberOfLootSpotsPerBuilding = 3; + + /** + * Exile spawns a random number of items per loot spot. This + * is the upper cap for that. So 3 means it could spawn 1, 2 + * or 3. + */ + maximumNumberOfItemsPerLootSpot = 2; + + /** + * Radius in meter to spawn loot AROUND each player. + * Do NOT touch this value if you dont know what you do. + * The higher the number, the higher the drop rates, the + * easier your server will lag. + * + * 50m = Minimum + * 200m = Maximum + */ + spawnRadius = 60; + + /** + * Defines the radius around trader cities where the system should + * not spawn loot. Set this to 0 if you want to have loot spawning + * in trader citites, ugh. + */ + minimumDistanceToTraderZones = 500; + + /** + * Defines the radius around territories where no loot spawns. + * This does not regard the actual size of a territory. So do not + * set this to a lower value than the maximum radius of a territory, + * which is 150m by default. + */ + minimumDistanceToTerritories = 150; +}; +class CfgExileMobileXM8 +{ + /** + * Add the 4 digit permission code here, so players can authorize + * your server to send them messages to their Mobile XM8 app. + */ + code = ""; +}; +class CfgExileMusic +{ + Ambient[] = {"ExileTrack03","ExileTrack04"}; + Combat[] = {"ExileTrack06","ExileTrack07"}; + Intro[] = {"ExileTrack02","ExileTrack03"}; +}; +class CfgExileParty +{ + showESP = 1; + allow3DMarkers = 1; +}; +class CfgExileRussianRoulette +{ + /* + Minimum amount to join a session of + russian roulette + */ + buyInAmount = 100; +}; +class CfgFlags +{ + class USA + { + name = "USA"; + texture = "\A3\Data_F\Flags\flag_us_co.paa"; + uids[] = {}; + }; +}; + +class ExileAbstractAction +{ + title = ""; + condition = "true"; + action = ""; + priority = 1.5; + showWindow = false; +}; + +/** + * Sort this by probability of occurence to speed things up a bit + */ +class CfgInteractionMenus +{ + class Car + { + targetType = 2; + target = "Car"; + + class Actions + { + class ScanLock: ExileAbstractAction + { + title = "Scan Lock"; + condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !ExilePlayerInSafezone && ((locked ExileClientInteractionObject) != 1)"; + action = "_this call ExileClient_object_lock_scan"; + }; + + // Locks a vehicle + class Lock: ExileAbstractAction + { + title = "Lock"; + condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)"; + action = "true spawn ExileClient_object_lock_toggle"; + }; + + // Unlocks a vehicle + class Unlock: ExileAbstractAction + { + title = "Unlock"; + condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)"; + action = "false spawn ExileClient_object_lock_toggle"; + }; + + // Repairs a vehicle to 100%. Requires Duckttape + class Repair: ExileAbstractAction + { + title = "Repair"; + condition = "true"; + action = "['RepairVehicle', _this select 0] call ExileClient_action_execute"; + }; + + // Hot-wires a vehicle + class Hotwire: ExileAbstractAction + { + title = "Hotwire"; + condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)"; + action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute"; + }; + + // Flips a vehicle so the player doesnt have to call an admin + // Check if vector up is fucked + class Flip: ExileAbstractAction + { + title = "Flip"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_flip"; + }; + + // Fills fuel from a can into a car + class Refuel: ExileAbstractAction + { + title = "Refuel"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_refuel"; + }; + + // Drains fuel from a car into an empty jerry can + class DrainFuel: ExileAbstractAction + { + title = "Drain Fuel"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_drain"; + }; + }; + }; + + class Air + { + target = "Air"; + targetType = 2; + + class Actions + { + class ScanLock: ExileAbstractAction + { + title = "Scan Lock"; + condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && ((locked ExileClientInteractionObject) != 1) && !ExilePlayerInSafezone"; + action = "_this call ExileClient_object_lock_scan"; + }; + + // Locks a vehicle + class Lock: ExileAbstractAction + { + title = "Lock"; + condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)"; + action = "true spawn ExileClient_object_lock_toggle"; + }; + + // Unlocks a vehicle + class Unlock: ExileAbstractAction + { + title = "Unlock"; + condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)"; + action = "false spawn ExileClient_object_lock_toggle"; + }; + + // Hot-wires a vehicle + class Hotwire: ExileAbstractAction + { + title = "Hotwire"; + condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)"; + action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute"; + }; + + // Repairs a vehicle to 100%. Requires Duckttape + class Repair: ExileAbstractAction + { + title = "Repair"; + condition = "true"; + action = "['RepairVehicle', _this select 0] call ExileClient_action_execute"; + }; + + // Flips a vehicle so the player doesnt have to call an admin + // Check if vector up is fucked + class Flip: ExileAbstractAction + { + title = "Flip"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_flip"; + }; + + // Fills fuel from a can into a car + class Refuel: ExileAbstractAction + { + title = "Refuel"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_refuel"; + }; + + // Drains fuel from a car into an empty jerry can + class DrainFuel: ExileAbstractAction + { + title = "Drain Fuel"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_drain"; + }; + + class RotateLeft: ExileAbstractAction + { + title = "Rotate Left"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "[ExileClientInteractionObject,-15] call ExileClient_object_vehicle_rotate"; + }; + + class RotateRight: ExileAbstractAction + { + title = "Rotate Right"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "[ExileClientInteractionObject,15] call ExileClient_object_vehicle_rotate"; + }; + }; + }; + + class Safe + { + targetType = 2; + target = "Exile_Container_Safe"; + + class Actions + { + class ScanLock: ExileAbstractAction + { + title = "Scan Lock"; + condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 1) && !ExilePlayerInSafezone"; + action = "_this call ExileClient_object_lock_scan"; + }; + + // Locks a vehicle + class Lock : ExileAbstractAction + { + title = "Lock"; + condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)"; + action = "true spawn ExileClient_object_lock_toggle"; + }; + + class Unlock : ExileAbstractAction + { + title = "Unlock"; + condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1)"; + action = "false spawn ExileClient_object_lock_toggle"; + }; + + class Pack : ExileAbstractAction + { + title = "Pack"; + condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)"; + action = "_this spawn ExileClient_object_container_pack"; + }; + + class SetPinCode : ExileAbstractAction + { + title = "Set PIN"; + condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)"; + action = "_this spawn ExileClient_object_lock_setPin"; + }; + }; + }; + + class Laptop + { + targetType = 2; + target = "Exile_Construction_Laptop_Static"; + + class Actions + { + class CameraSystem: ExileAbstractAction + { + title = "CCTV Access"; + condition = "((ExileClientInteractionObject animationPhase 'LaptopLidRotation') >= 0.5)"; + action = "_this call ExileClient_gui_baseCamera_show"; + }; + }; + }; + + class SupplyBox + { + targetType = 2; + target = "Exile_Container_SupplyBox"; + + class Actions + { + class Mount: ExileAbstractAction + { + title = "Mount"; + condition = "(isNull (attachedTo ExileClientInteractionObject)) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)"; + action = "_this call ExileClient_object_supplyBox_mount"; + }; + + class Install: ExileAbstractAction + { + title = "Install"; + condition = "isNull (attachedTo ExileClientInteractionObject) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)"; + action = "_this call ExileClient_object_supplyBox_install"; + }; + + class Unmount: ExileAbstractAction + { + title = "Unmount"; + condition = "!(isNull (attachedTo ExileClientInteractionObject)) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)"; + action = "_this call ExileClient_object_supplyBox_unmount"; + }; + }; + }; + + class Construction + { + targetType = 2; + target = "Exile_Construction_Abstract_Static"; + + class Actions + { + class ScanLock: ExileAbstractAction + { + title = "Scan Lock"; + condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 1)"; + action = "_this call ExileClient_object_lock_scan"; + }; + + class Unlock : ExileAbstractAction + { + title = "Unlock"; + condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1)"; + action = "false spawn ExileClient_object_lock_toggle"; + }; + + class Lock : ExileAbstractAction + { + title = "Lock"; + condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)"; + action = "true spawn ExileClient_object_lock_toggle"; + }; + + // Picks up the construction so you can move it + class Move: ExileAbstractAction + { + title = "Move"; + condition = "call ExileClient_util_world_isInOwnTerritory"; + action = "_this spawn ExileClient_object_construction_move"; + }; + + // Removes the construction. + class Deconstruct: ExileAbstractAction + { + title = "Remove"; + condition = "call ExileClient_util_world_isInOwnTerritory"; + action = "_this spawn ExileClient_object_construction_deconstruct"; + }; + + class AddALock : ExileAbstractAction + { + title = "Add a Lock"; + condition = "call ExileClient_object_construction_lockAddShow"; + action = "_this spawn ExileClient_object_construction_lockAdd"; + }; + + class Upgrade : ExileAbstractAction + { + title = "Upgrade"; + condition = "call ExileClient_object_construction_upgradeShow"; + action = "_this call ExileClient_object_construction_upgrade"; + }; + + class MakeBoom : ExileAbstractAction + { + title = "Plant charge"; + condition = "call ExileClient_system_breaching_condition"; + action = "_this call ExileClient_system_breaching_action"; + }; + + class Repair : ExileAbstractAction + { + title = "Repair"; + condition = "(!((ExileClientInteractionObject getVariable ['ExileConstructionDamage',0]) isEqualTo 0)) && (call ExileClient_util_world_isInOwnTerritory)"; + action = "_this call ExileClient_object_construction_repair"; + }; + + }; + }; + + /* + Tent, Storage crate etc. + */ + class Container + { + targetType = 2; + target = "Exile_Container_Abstract"; + + class Actions + { + class Pack + { + title = "Pack"; + condition = "!((typeOf ExileClientInteractionObject) isEqualTo 'Exile_Container_SupplyBox')"; + action = "_this spawn ExileClient_object_container_pack"; + }; + // Picks up the container so you can move it + class Move: ExileAbstractAction + { + title = "Move"; + condition = "(getNumber(configFile >> 'CfgVehicles' >> typeOf ExileClientInteractionObject >> 'exileIsLockable') isEqualTo 0) || ((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)"; + action = "_this spawn ExileClient_object_construction_move"; + }; + }; + }; + + class Flag + { + targetType = 2; + target = "Exile_Construction_Flag_Static"; + + class Actions + { + /* + class Manage : ExileAbstractAction + { + title = "Manage"; + condition = "true"; + action = "_this call ExileClient_gui_baseManagement_event_show"; + }; + */ + class StealFlag: ExileAbstractAction + { + title = "Steal Flag"; + condition = "((ExileClientInteractionObject getvariable ['ExileFlagStolen',1]) isEqualTo 0)"; + action = "['StealFlag', _this select 0] call ExileClient_action_execute"; + }; + + class RestoreFlag: ExileAbstractAction + { + title = "Restore Flag"; + condition = "((ExileClientInteractionObject getvariable ['ExileFlagStolen',0]) isEqualTo 1)"; + action = "['restoreFlagRequest', [netID ExileClientInteractionObject]] call ExileClient_system_network_send"; + }; + }; + }; + + class Boat + { + targetType = 2; + target = "Ship"; + + class Actions + { + // Locks a vehicle + class Lock: ExileAbstractAction + { + title = "Lock"; + condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)"; + action = "true spawn ExileClient_object_lock_toggle"; + }; + + // Unlocks a vehicle + class Unlock: ExileAbstractAction + { + title = "Unlock"; + condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)"; + action = "false spawn ExileClient_object_lock_toggle"; + }; + + // Hot-wires a vehicle + class Hotwire: ExileAbstractAction + { + title = "Hotwire"; + condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)"; + action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute"; + }; + + // Repairs a vehicle to 100%. Requires Duckttape + class Repair: ExileAbstractAction + { + title = "Repair"; + condition = "true"; + action = "['RepairVehicle', _this select 0] call ExileClient_action_execute"; + }; + + // Fills fuel from a can into a car + class Refuel: ExileAbstractAction + { + title = "Refuel"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_refuel"; + }; + + // Drains fuel from a car into an empty jerry can + class DrainFuel: ExileAbstractAction + { + title = "Drain Fuel"; + condition = "call ExileClient_object_vehicle_interaction_show"; + action = "_this call ExileClient_object_vehicle_drain"; + }; + + // Pushes a boat into look direction to move into water + class Push: ExileAbstractAction + { + title = "Fus Ro Dah!"; + condition = "((crew ExileClientInteractionObject) isEqualTo [])"; + action = "_this call ExileClient_object_vehicle_push"; + }; + }; + }; + + class Bikes + { + targetType = 2; + target = "Bicycle"; + + class Actions + { + class Flip: ExileAbstractAction + { + title = "Flip"; + condition = "true"; + action = "_this call ExileClient_object_vehicle_flip"; + }; + }; + }; + + class Player + { + targetType = 2; + target = "Exile_Unit_Player"; + + class Actions + { + class Free: ExileAbstractAction + { + title = "Free"; + condition = "(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['ExileIsHandcuffed', false]) && !ExileClientIsHandcuffed"; + action = "_this call ExileClient_object_handcuffs_free"; + }; + + class Search: ExileAbstractAction + { + title = "Search Gear"; + condition = "(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['ExileIsHandcuffed', false]) && !ExileClientIsHandcuffed"; + action = "_this call ExileClient_object_handcuffs_searchGear"; + }; + + class Identify: ExileAbstractAction + { + title = "Identify Body"; + condition = "!(alive ExileClientInteractionObject)"; + action = "_this call ExileClient_object_player_identifyBody"; + }; + + class HideCorpse: ExileAbstractAction + { + title = "Hide Body"; + condition = "!(alive ExileClientInteractionObject) && ('Exile_Melee_Shovel' isEqualTo (currentWeapon player))"; + action = "['HideBody', (_this select 0)] call ExileClient_action_execute"; + }; + }; + }; +}; +/** + * Classname is used for reference + * name is displayed in crafting requirements + * models is used for crafting and interaction menus + */ +class CfgInteractionModels +{ + class WaterSource + { + name = "Water tanks, barrels, coolers or pumps"; + models[] = + { + "barrelwater_f", + "barrelwater_grey_f", + "waterbarrel_f", + "watertank_f", + "stallwater_f", + "waterpump_01_f", + "water_source_f", + + // Namalsk + "wellpump", + "Land_jhad_stand_water", + "Land_Jbad_Misc_Well_L", + "Land_jbad_Fridge", + "Land_jbad_reservoir", + "Land_jbad_teapot", + "Land_KBud", + + //Tanoa + "watertank_01_f", + "watertank_02_f", + "watertank_03_f", + "watertank_04_f" + }; + }; + + class CleanWaterSource + { + name = "Water cooler"; + models[] = + { + "watercooler" + }; + }; + + class WorkBench + { + name = "Work Bench"; + models[] = + { + "workstand_f.p3d" + }; + }; + + class ShippingContainerSource + { + name = "Shipping Containers"; + models[] = + { + // Arma 3 + "CargoBox_V1_F", + "Cargo20_blue_F", + "Cargo20_brick_red_F", + "Cargo20_cyan_F", + "Cargo20_grey_F", + "Cargo20_light_blue_F", + "Cargo20_light_green_F", + "Cargo20_military_green_F", + "Cargo20_military_ruins_F", + "Cargo20_orange_F", + "Cargo20_red_F", + "Cargo20_sand_F", + "Cargo20_white_F", + "Cargo20_yellow_F", + "Cargo40_blue_F", + "Cargo40_brick_red_F", + "Cargo40_cyan_F", + "Cargo40_grey_F", + "Cargo40_light_blue_F", + "Cargo40_light_green_F", + "Cargo40_military_green_F", + "Cargo40_orange_F", + "Cargo40_red_F", + "Cargo40_sand_F", + "Cargo40_white_F", + "Cargo40_yellow_F", + + // Namalsk + "nam_container.p3d", + "misc_cargo1d.p3d", + "misc_cargo1b.p3d", + "misc_cargo1bo.p3d", + "misc_cargo2c.p3d", + "misc_cargo1ao.p3d", + + //Tanoa + "Land_ContainerLine_01_F", + "Land_ContainerLine_02_F", + "Land_ContainerLine_03_F", + + // Also allow wrecks + "wreck_" +/* + "wreck_bmp2_f.p3d", + "wreck_brdm2_f.p3d", + "wreck_car2_f.p3d", + "wreck_car3_f.p3d", + "wreck_car_f.p3d", + "wreck_cardismantled_f.p3d", + "wreck_hmmwv_f.p3d", + "wreck_hunter_f.p3d", + "wreck_offroad2_f.p3d", + "wreck_offroad_f.p3d", + "wreck_skodovka_f.p3d", + "wreck_slammer_f.p3d", + "wreck_slammer_hull_f.p3d", + "wreck_slammer_turret_f.p3d", + "wreck_t72_hull_f.p3d", + "wreck_t72_turret_f.p3d", + "wreck_truck_dropside_f.p3d", + "wreck_truck_f.p3d", + "wreck_uaz_f.p3d", + "wreck_ural_f.p3d" + "wreck_van_f.p3d", + */ + + + // TODO: Ask community for CUP/AiA model names + }; + }; + + class WoodSource + { + name = "Trees"; + models[] = + { + " t_", + " bo_t_", + + // A2 trees + " str_", + " Smrk_", + " les_", + " brg_" + }; + }; + + // TODO: Add https://community.bistudio.com/wikidata/images/thumb/6/60/Arma3_CfgVehicles_Land_Tank_rust_F.jpg/150px-Arma3_CfgVehicles_Land_Tank_rust_F.jpg + class FuelSource + { + name = "Fuel pumps, stations or barrels"; + models[] = + { + "fuelstation_feed_f.p3d", + "metalbarrel_f.p3d", + "flexibletank_01_f.p3d", + "fs_feed_f.p3d", + //Tanoa + "fuelstation_01_pump_f.p3d", + "fuelstation_02_pump_f.p3d" + }; + }; +}; +class CfgLocker +{ + numbersOnly = "0123456789"; + + maxDeposit = 10000; +}; + +class CfgPlayer +{ + // In minutes ammount of time it takes to go from 100 - 0 if stationary + hungerDecay = 90; + thirstDecay = 60; + + // Damage taken from 0 (health||thirst)/sec + healthDecay = 5.0; + + // Health regen if over BOTH + thirstRegen = 90; + hungerRegen = 90; + + // IF above meet recover HP%/MIN + recoveryPerMinute = 2; + + // Set custom aim precision coefficient for weapon sway + // https://community.bistudio.com/wiki/Arma_3_Stamina + // Set to -1 if you want to use Arma 3 default value + // setCustomAimCoef + customAimCoefficient = 0.5; + + // 0 or 1 + enableFatigue = 0; + enableStamina = 0; + + disableMapDrawing = 1; +}; +class CfgSlothMachine +{ + spinCost = 100; + Jackpot = 10100; + + chances[] = + { + {85, ""}, // 85% = Nothing + {95, "Level1"}, // 10% = 1pt + {96, "Level2"}, // 1% = 10pt + {97, "Level3"}, // 1% = 25pt + {98, "Level4"}, // 1% = 50pt + {99, "Level5"}, // 1% = 100pt + {100, "Jackpot"} // 1% = Jackpot + }; + + class Prizes + { + class Level1 + { + symbol = "\exile_assets\texture\item\Exile_Item_ToiletPaper.paa"; + prize = 101; + }; + + class Level2 + { + symbol = "\exile_assets\texture\item\Exile_Item_CockONut.paa"; + prize = 110; + }; + + class Level3 + { + symbol = "\exile_assets\texture\item\Exile_Item_Beer.paa"; + prize = 125; + }; + + class Level4 + { + symbol = "\exile_assets\texture\item\Exile_Item_Knife.paa"; + prize = 150; + }; + + class Level5 + { + symbol = "\exile_assets\texture\item\Exile_Item_Safe.paa"; + prize = 200; + }; + + class Jackpot + { + symbol = "\exile_assets\texture\item\Exile_Item_XmasPresent.paa"; + }; + }; +}; +class CfgTerritories +{ + // Base Cost / Radius + // Level 1 is allways for Pop Tabs, >= 2 for Respect + prices[] = + { + // Purchase Price Radius Number of Objects + {5000, 15, 30 }, // Level 1 + {10000, 30, 60 }, // Level 2 + {15000, 45, 90 }, // Level 3 + {20000, 60, 120 }, // Level 4 + {25000, 75, 150 }, // Level 5 + {30000, 90, 180 }, // Level 6 + {35000, 105, 210 }, // Level 7 + {40000, 120, 240 }, // Level 8 + {45000, 135, 270 }, // Level 9 + {50000, 150, 300 } // Level 10 + }; + + // A shortcut of the above maximum radius + maximumRadius = 150; + + // The above * 2 plus coverving the 20m you can move while placing things + minimumDistanceToOtherTerritories = 325; + + // Maximum number of territories a player can own + maximumNumberOfTerritoriesPerPlayer = 2; + + /** + * Defines the minimum distance to safe zones / trader cities where players + * cannot build territories + */ + minimumDistanceToTraderZones = 1000; + + /** + * Defines the minimum distance to spawn zones where players + * cannot build territories + */ + minimumDistanceToSpawnZones = 1000; + + // Amount of pop tabs per object to pay + popTabAmountPerObject = 10; +}; +class CfgTraderCategories +{ + class Community + { + name = "Community Items"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community2 + { + name = "Community Items 2"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community3 + { + name = "Community Items 3"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community4 + { + name = "Community Items 4"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community5 + { + name = "Community Items 5"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community6 + { + name = "Community Items 6"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community7 + { + name = "Community Items 7"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community8 + { + name = "Community Items 8"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community9 + { + name = "Community Items 9"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Community10 + { + name = "Community Items 10"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + // Add your items here <3 + }; + }; + + class Uniforms + { + name = "Uniforms"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa"; + items[] = + { + "U_C_Journalist", + "U_C_Poloshirt_blue", + "U_C_Poloshirt_burgundy", + "U_C_Poloshirt_salmon", + "U_C_Poloshirt_stripped", + "U_C_Poloshirt_tricolour", + "U_C_Poor_1", + "U_C_Poor_2", + "U_C_Poor_shorts_1", + "U_C_Scientist", + "U_OrestesBody", + "U_Rangemaster", + "U_NikosAgedBody", + "U_NikosBody", + "U_Competitor", + "U_B_CombatUniform_mcam", + "U_B_CombatUniform_mcam_tshirt", + "U_B_CombatUniform_mcam_vest", + "U_B_CombatUniform_mcam_worn", + "U_B_CTRG_1", + "U_B_CTRG_2", + "U_B_CTRG_3", + "U_I_CombatUniform", + "U_I_CombatUniform_shortsleeve", + "U_I_CombatUniform_tshirt", + "U_I_OfficerUniform", + "U_O_CombatUniform_ocamo", + "U_O_CombatUniform_oucamo", + "U_O_OfficerUniform_ocamo", + "U_B_SpecopsUniform_sgg", + "U_O_SpecopsUniform_blk", + "U_O_SpecopsUniform_ocamo", + "U_I_G_Story_Protagonist_F", + "Exile_Uniform_Woodland", + "U_C_HunterBody_grn", + "U_IG_Guerilla1_1", + "U_IG_Guerilla2_1", + "U_IG_Guerilla2_2", + "U_IG_Guerilla2_3", + "U_IG_Guerilla3_1", + "U_BG_Guerilla2_1", + "U_IG_Guerilla3_2", + "U_BG_Guerrilla_6_1", + "U_BG_Guerilla1_1", + "U_BG_Guerilla2_2", + "U_BG_Guerilla2_3", + "U_BG_Guerilla3_1", + "U_BG_leader", + "U_IG_leader", + "U_I_G_resistanceLeader_F", + /*"U_B_FullGhillie_ard", + "U_B_FullGhillie_lsh", + "U_B_FullGhillie_sard", + "U_B_GhillieSuit", + "U_I_FullGhillie_ard", + "U_I_FullGhillie_lsh", + "U_I_FullGhillie_sard", + "U_I_GhillieSuit", + "U_O_FullGhillie_ard", + "U_O_FullGhillie_lsh", + "U_O_FullGhillie_sard", + "U_O_GhillieSuit",*/ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit", + "U_B_survival_uniform", + "U_B_HeliPilotCoveralls", + "U_I_HeliPilotCoveralls", + "U_B_PilotCoveralls", + "U_I_pilotCoveralls", + "U_O_PilotCoveralls", + //Apex + "U_B_T_Soldier_F", + "U_B_T_Soldier_AR_F", + "U_B_T_Soldier_SL_F", + //"U_B_T_Sniper_F", + //"U_B_T_FullGhillie_tna_F", + "U_B_CTRG_Soldier_F", + "U_B_CTRG_Soldier_2_F", + "U_B_CTRG_Soldier_3_F", + "U_B_GEN_Soldier_F", + "U_B_GEN_Commander_F", + "U_O_T_Soldier_F", + "U_O_T_Officer_F", + //"U_O_T_Sniper_F", + //"U_O_T_FullGhillie_tna_F", + "U_O_V_Soldier_Viper_F", + "U_O_V_Soldier_Viper_hex_F", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Para_5_F", + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_5_F", + "U_I_C_Soldier_Camo_F", + "U_C_man_sport_1_F", + "U_C_man_sport_2_F", + "U_C_man_sport_3_F", + "U_C_Man_casual_1_F", + "U_C_Man_casual_2_F", + "U_C_Man_casual_3_F", + "U_C_Man_casual_4_F", + "U_C_Man_casual_5_F", + "U_C_Man_casual_6_F", + "U_B_CTRG_Soldier_urb_1_F", + "U_B_CTRG_Soldier_urb_2_F", + "U_B_CTRG_Soldier_urb_3_F" + }; + }; + + class Vests + { + name = "Vests"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\vest_ca.paa"; + items[] = + { + "V_Press_F", + "V_Rangemaster_belt", + "V_TacVest_blk", + "V_TacVest_blk_POLICE", + "V_TacVest_brn", + "V_TacVest_camo", + "V_TacVest_khk", + "V_TacVest_oli", + "V_TacVestCamo_khk", + "V_TacVestIR_blk", + "V_I_G_resistanceLeader_F", + "V_BandollierB_blk", + "V_BandollierB_cbr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_rgr", + "V_Chestrig_blk", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_rgr", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "V_HarnessOSpec_brn", + "V_HarnessOSpec_gry", + "V_PlateCarrier1_blk", + "V_PlateCarrier1_rgr", + "V_PlateCarrier2_rgr", + "V_PlateCarrier3_rgr", + "V_PlateCarrierGL_blk", + "V_PlateCarrierGL_mtp", + "V_PlateCarrierGL_rgr", + "V_PlateCarrierH_CTRG", + "V_PlateCarrierIA1_dgtl", + "V_PlateCarrierIA2_dgtl", + "V_PlateCarrierIAGL_dgtl", + "V_PlateCarrierIAGL_oli", + "V_PlateCarrierL_CTRG", + "V_PlateCarrierSpec_blk", + "V_PlateCarrierSpec_mtp", + "V_PlateCarrierSpec_rgr", + //Apex + "V_TacChestrig_grn_F", + "V_TacChestrig_oli_F", + "V_TacChestrig_cbr_F", + "V_PlateCarrier1_tna_F", + "V_PlateCarrier2_tna_F", + "V_PlateCarrierSpec_tna_F", + "V_PlateCarrierGL_tna_F", + "V_HarnessO_ghex_F", + "V_HarnessOGL_ghex_F", + "V_BandollierB_ghex_F", + "V_TacVest_gen_F", + "V_PlateCarrier1_rgr_noflag_F", + "V_PlateCarrier2_rgr_noflag_F" + }; + }; + + class Headgear + { + name = "Headgear"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\headgear_ca.paa"; + items[] = + { + "Exile_Headgear_SantaHat", + "Exile_Headgear_SafetyHelmet", + "H_Cap_blk", + "H_Cap_blk_Raven", + "H_Cap_blu", + "H_Cap_brn_SPECOPS", + "H_Cap_grn", + "H_Cap_headphones", + "H_Cap_khaki_specops_UK", + "H_Cap_oli", + "H_Cap_press", + "H_Cap_red", + "H_Cap_tan", + "H_Cap_tan_specops_US", + "H_Watchcap_blk", + "H_Watchcap_camo", + "H_Watchcap_khk", + "H_Watchcap_sgg", + "H_MilCap_blue", + "H_MilCap_dgtl", + "H_MilCap_mcamo", + "H_MilCap_ocamo", + "H_MilCap_oucamo", + "H_MilCap_rucamo", + "H_Bandanna_camo", + "H_Bandanna_cbr", + "H_Bandanna_gry", + "H_Bandanna_khk", + "H_Bandanna_khk_hs", + "H_Bandanna_mcamo", + "H_Bandanna_sgg", + "H_Bandanna_surfer", + "H_Booniehat_dgtl", + "H_Booniehat_dirty", + "H_Booniehat_grn", + "H_Booniehat_indp", + "H_Booniehat_khk", + "H_Booniehat_khk_hs", + "H_Booniehat_mcamo", + "H_Booniehat_tan", + "H_Hat_blue", + "H_Hat_brown", + "H_Hat_camo", + "H_Hat_checker", + "H_Hat_grey", + "H_Hat_tan", + "H_StrawHat", + "H_StrawHat_dark", + "H_Beret_02", + "H_Beret_blk", + "H_Beret_blk_POLICE", + "H_Beret_brn_SF", + "H_Beret_Colonel", + "H_Beret_grn", + "H_Beret_grn_SF", + "H_Beret_ocamo", + "H_Beret_red", + "H_Shemag_khk", + "H_Shemag_olive", + "H_Shemag_olive_hs", + "H_Shemag_tan", + "H_ShemagOpen_khk", + "H_ShemagOpen_tan", + "H_TurbanO_blk", + "H_HelmetB", + "H_HelmetB_black", + "H_HelmetB_camo", + "H_HelmetB_desert", + "H_HelmetB_grass", + "H_HelmetB_light", + "H_HelmetB_light_black", + "H_HelmetB_light_desert", + "H_HelmetB_light_grass", + "H_HelmetB_light_sand", + "H_HelmetB_light_snakeskin", + "H_HelmetB_paint", + "H_HelmetB_plain_blk", + "H_HelmetB_sand", + "H_HelmetB_snakeskin", + "H_HelmetCrew_B", + "H_HelmetCrew_I", + "H_HelmetCrew_O", + "H_HelmetIA", + "H_HelmetIA_camo", + "H_HelmetIA_net", + "H_HelmetLeaderO_ocamo", + "H_HelmetLeaderO_oucamo", + "H_HelmetO_ocamo", + "H_HelmetO_oucamo", + "H_HelmetSpecB", + "H_HelmetSpecB_blk", + "H_HelmetSpecB_paint1", + "H_HelmetSpecB_paint2", + "H_HelmetSpecO_blk", + "H_HelmetSpecO_ocamo", + "H_CrewHelmetHeli_B", + "H_CrewHelmetHeli_I", + "H_CrewHelmetHeli_O", + "H_HelmetCrew_I", + "H_HelmetCrew_B", + "H_HelmetCrew_O", + "H_PilotHelmetHeli_B", + "H_PilotHelmetHeli_I", + "H_PilotHelmetHeli_O", + //Apex + "H_Helmet_Skate", + "H_HelmetB_TI_tna_F", + //"H_HelmetO_ViperSP_hex_F", + //"H_HelmetO_ViperSP_ghex_F", + "H_HelmetB_tna_F", + "H_HelmetB_Enh_tna_F", + "H_HelmetB_Light_tna_F", + "H_HelmetSpecO_ghex_F", + "H_HelmetLeaderO_ghex_F", + "H_HelmetO_ghex_F", + "H_HelmetCrew_O_ghex_F", + "H_MilCap_tna_F", + "H_MilCap_ghex_F", + "H_Booniehat_tna_F", + "H_Beret_gen_F", + "H_MilCap_gen_F", + "H_Cap_oli_Syndikat_F", + "H_Cap_tan_Syndikat_F", + "H_Cap_blk_Syndikat_F", + "H_Cap_grn_Syndikat_F" + }; + }; + +class Glasses + { + name = "Glasses"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\Goggles_ca.paa"; + items[] = + { + "G_Spectacles", + "G_Spectacles_Tinted", + "G_Combat", + "G_Lowprofile", + "G_Shades_Black", + "G_Shades_Green", + "G_Shades_Red", + "G_Squares", + "G_Squares_Tinted", + "G_Sport_BlackWhite", + "G_Sport_Blackyellow", + "G_Sport_Greenblack", + "G_Sport_Checkered", + "G_Sport_Red", + "G_Tactical_Black", + "G_Aviator", + "G_Lady_Mirror", + "G_Lady_Dark", + "G_Lady_Red", + "G_Lady_Blue", + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving", + "G_Goggles_VR", + "G_Balaclava_blk", + "G_Balaclava_oli", + "G_Balaclava_combat", + "G_Balaclava_lowprofile", + "G_Bandanna_blk", + "G_Bandanna_oli", + "G_Bandanna_khk", + "G_Bandanna_tan", + "G_Bandanna_beast", + "G_Bandanna_shades", + "G_Bandanna_sport", + "G_Bandanna_aviator", + "G_Shades_Blue", + "G_Sport_Blackred", + "G_Tactical_Clear", + "G_Balaclava_TI_blk_F", + "G_Balaclava_TI_tna_F", + "G_Balaclava_TI_G_blk_F", + "G_Balaclava_TI_G_tna_F", + "G_Combat_Goggles_tna_F" + }; + }; + + class PointerAttachments + { + name = "Pointer Attachments"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "acc_flashlight", + "acc_pointer_IR" + }; + }; + + class BipodAttachments + { + name = "Bipod Attachments"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itembipod_ca.paa"; + items[] = + { + "bipod_01_F_blk", + "bipod_01_F_mtp", + "bipod_01_F_snd", + "bipod_02_F_blk", + "bipod_02_F_hex", + "bipod_02_F_tan", + "bipod_03_F_blk", + "bipod_03_F_oli", + //Apex + "bipod_01_F_khk" + }; + }; + + class MuzzleAttachments + { + name = "Suppressor Attachments"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemmuzzle_ca.paa"; + items[] = + { + "muzzle_snds_338_black", + "muzzle_snds_338_green", + "muzzle_snds_338_sand", + "muzzle_snds_93mmg", + "muzzle_snds_93mmg_tan", + "muzzle_snds_acp", + "muzzle_snds_B", + "muzzle_snds_H", + "muzzle_snds_H_MG", + "muzzle_snds_H_SW", + "muzzle_snds_L", + "muzzle_snds_M", + //Apex + "muzzle_snds_H_khk_F", + "muzzle_snds_H_snd_F", + "muzzle_snds_58_blk_F", + "muzzle_snds_m_khk_F", + "muzzle_snds_m_snd_F", + "muzzle_snds_B_khk_F", + "muzzle_snds_B_snd_F", + "muzzle_snds_58_wdm_F", + "muzzle_snds_65_TI_blk_F", + "muzzle_snds_65_TI_hex_F", + "muzzle_snds_65_TI_ghex_F", + "muzzle_snds_H_MG_blk_F", + "muzzle_snds_H_MG_khk_F" + }; + }; + + class UAVs + { + name = "Unmanned Aerial Vehicles"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\gps_ca.paa"; + items[] = + { + "I_UavTerminal", + "I_UAV_01_backpack_F" + }; + }; + + class StaticMGs + { + name = "Static Machine Guns"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "O_HMG_01_support_F", + //"O_HMG_01_support_high_F", // Does not seem to work with HMG01, only the lower version does + "O_HMG_01_weapon_F" + }; + }; + + class OpticAttachments + { + name = "Scopes"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemoptic_ca.paa"; + items[] = + { + "optic_Aco", + "optic_ACO_grn", + "optic_ACO_grn_smg", + "optic_Aco_smg", + "optic_AMS", + "optic_AMS_khk", + "optic_AMS_snd", + "optic_Arco", + "optic_DMS", + "optic_Hamr", + "optic_Holosight", + "optic_Holosight_smg", + "optic_KHS_blk", + "optic_KHS_hex", + "optic_KHS_old", + "optic_KHS_tan", + "optic_LRPS", + "optic_MRCO", + "optic_MRD", + "optic_Nightstalker", + "optic_NVS", + "optic_SOS", + //"optic_tws", + //"optic_tws_mg", + "optic_Yorris", + //Apex + "optic_Arco_blk_F", + "optic_Arco_ghex_F", + "optic_DMS_ghex_F", + "optic_Hamr_khk_F", + "optic_ERCO_blk_F", + "optic_ERCO_khk_F", + "optic_ERCO_snd_F", + "optic_SOS_khk_F", + "optic_LRPS_tna_F", + "optic_LRPS_ghex_F", + "optic_Holosight_blk_F", + "optic_Holosight_khk_F", + "optic_Holosight_smg_blk_F" + }; + }; + + class Hardware + { + name = "Hardware"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + + "Exile_Item_DuctTape", + "Exile_Item_ExtensionCord", + "Exile_Item_FuelCanisterEmpty", + "Exile_Item_JunkMetal", + "Exile_Item_LightBulb", + "Exile_Item_MetalBoard", + "Exile_Item_MetalPole", + "Exile_Item_SafeKit", + "Exile_Item_CamoTentKit", + "Exile_Item_CodeLock" + + /* + --Not for Sale-- + "Exile_Item_MetalScrews", + "Exile_Item_MetalWire", + "Exile_Item_Laptop", + "Exile_Item_BaseCameraKit", + "Exile_Item_MetalHedgehogKit", + "Exile_Item_Cement", + "Exile_Item_Sand", + "Exile_Item_MobilePhone", + --Unused-- + "Exile_Item_CordlessScrewdriver", + "Exile_Item_FireExtinguisher", + "Exile_Item_OilCanister", + "Exile_Item_Hammer", + "Exile_Item_Carwheel", + "Exile_Item_SleepingMat", + "Exile_Item_Defibrillator", + "Exile_Item_Wrench", + "Exile_Item_Rope" + */ + }; + }; + + class Food + { + name = "Fast Food"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Item_EMRE", + "Exile_Item_GloriousKnakworst", + "Exile_Item_Surstromming", + "Exile_Item_SausageGravy", + "Exile_Item_Catfood", + "Exile_Item_ChristmasTinner", + "Exile_Item_BBQSandwich", + "Exile_Item_MacasCheese", + "Exile_Item_Dogfood", + "Exile_Item_BeefParts", + "Exile_Item_Cheathas", + "Exile_Item_Noodles", + "Exile_Item_SeedAstics", + "Exile_Item_Raisins", + "Exile_Item_Moobar", + "Exile_Item_InstantCoffee" + }; + }; + + class Drinks + { + name = "Drinks"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Item_PlasticBottleCoffee", + "Exile_Item_PowerDrink", + "Exile_Item_PlasticBottleFreshWater", + "Exile_Item_Beer", + "Exile_Item_EnergyDrink", + "Exile_Item_ChocolateMilk", + "Exile_Item_MountainDupe", + "Exile_Item_PlasticBottleEmpty" + }; + }; + + class Tools + { + name = "Tools"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Item_Matches", + "Exile_Item_CookingPot", + "Exile_Item_CanOpener", + "Exile_Item_Handsaw", + "Exile_Item_Pliers", + "Exile_Item_Grinder", + "Exile_Item_Foolbox", + + /* + "Exile_Item_CordlessScrewdriver", + "Exile_Item_FireExtinguisher", + "Exile_Item_Hammer", + "Exile_Item_OilCanister", + "Exile_Item_Screwdriver", + "Exile_Item_Shovel", + "Exile_Item_Wrench", + "Exile_Item_SleepingMat", + "Exile_Item_ToiletPaper", + "Exile_Item_ZipTie", + */ + + "Binocular", + "Rangefinder", + /* + "Laserdesignator", + "Laserdesignator_02", + "Laserdesignator_03", + */ + "NVGoggles", + "NVGoggles_INDEP", + "NVGoggles_OPFOR", + "ItemGPS", + "ItemMap", + "ItemCompass", + "ItemRadio", + "ItemWatch", + "Exile_Item_XM8", + + //Apex + "O_NVGoggles_hex_F", + "O_NVGoggles_urb_F", + "O_NVGoggles_ghex_F", + "NVGoggles_tna_F" + }; + }; + + class FirstAid + { + name = "FirstAid"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Item_InstaDoc", + "Exile_Item_Bandage", + "Exile_Item_Vishpirin", + "Exile_Item_Heatpack" + + // Not available in 0.9.4! + //"Exile_Item_Defibrillator" + }; + }; + + class Navigation + { + name = "Special Environment"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "B_Parachute", + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR", + "Exile_Headgear_GasMask", + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + }; + }; + + class Backpacks + { + name = "Backpacks"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\backpack_ca.paa"; + items[] = + { + "B_AssaultPack_blk", + "B_AssaultPack_cbr", + "B_AssaultPack_dgtl", + "B_AssaultPack_khk", + "B_AssaultPack_mcamo", + "B_AssaultPack_rgr", + "B_AssaultPack_sgg", + "B_Bergen_blk", + "B_Bergen_mcamo", + "B_Bergen_rgr", + "B_Bergen_sgg", + "B_Carryall_cbr", + "B_Carryall_khk", + "B_Carryall_mcamo", + "B_Carryall_ocamo", + "B_Carryall_oli", + "B_Carryall_oucamo", + "B_FieldPack_blk", + "B_FieldPack_cbr", + "B_FieldPack_ocamo", + "B_FieldPack_oucamo", + "B_HuntingBackpack", + "B_Kitbag_cbr", + "B_Kitbag_mcamo", + "B_Kitbag_sgg", + "B_OutdoorPack_blk", + "B_OutdoorPack_blu", + "B_OutdoorPack_tan", + "B_TacticalPack_blk", + "B_TacticalPack_mcamo", + "B_TacticalPack_ocamo", + "B_TacticalPack_oli", + "B_TacticalPack_rgr", + //Apex + "B_Bergen_mcamo_F", + "B_Bergen_dgtl_F", + "B_Bergen_hex_F", + "B_Bergen_tna_F", + "B_AssaultPack_tna_F", + "B_Carryall_ghex_F", + "B_FieldPack_ghex_F", + "B_ViperHarness_blk_F", + "B_ViperHarness_ghex_F", + "B_ViperHarness_hex_F", + "B_ViperHarness_khk_F", + "B_ViperHarness_oli_F", + "B_ViperLightHarness_blk_F", + "B_ViperLightHarness_ghex_F", + "B_ViperLightHarness_hex_F", + "B_ViperLightHarness_khk_F", + "B_ViperLightHarness_oli_F" + }; + }; + + class Ammunition + { + name = "Ammunition"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\CargoMag_ca.paa"; + items[] = + { + "100Rnd_65x39_caseless_mag", + "100Rnd_65x39_caseless_mag_Tracer", + "10Rnd_127x54_Mag", + "10Rnd_338_Mag", + "10Rnd_762x54_Mag", + "10Rnd_93x64_DMR_05_Mag", + "11Rnd_45ACP_Mag", + //"130Rnd_338_Mag", SPMG + "150Rnd_762x54_Box", + "150Rnd_762x54_Box_Tracer", + //"150Rnd_93x64_Mag", // NAVID + "16Rnd_9x21_Mag", + "200Rnd_65x39_cased_Box", + "200Rnd_65x39_cased_Box_Tracer", + "20Rnd_556x45_UW_mag", + "20Rnd_762x51_Mag", + "30Rnd_45ACP_Mag_SMG_01", + "30Rnd_45ACP_Mag_SMG_01_tracer_green", + "30Rnd_45ACP_Mag_SMG_01_Tracer_Red", + "30Rnd_45ACP_Mag_SMG_01_Tracer_Yellow", + "30Rnd_556x45_Stanag", + "30Rnd_556x45_Stanag_Tracer_Green", + "30Rnd_556x45_Stanag_Tracer_Red", + "30Rnd_556x45_Stanag_Tracer_Yellow", + "30Rnd_65x39_caseless_green", + "30Rnd_65x39_caseless_green_mag_Tracer", + "30Rnd_65x39_caseless_mag", + "30Rnd_65x39_caseless_mag_Tracer", + "30Rnd_9x21_Mag", + "30Rnd_9x21_Yellow_Mag", + "30Rnd_9x21_Green_Mag", + "30Rnd_9x21_Red_Mag", + "5Rnd_127x108_APDS_Mag", + "5Rnd_127x108_Mag", + "6Rnd_45ACP_Cylinder", + "6Rnd_GreenSignal_F", + "6Rnd_RedSignal_F", + "7Rnd_408_Mag", + "9Rnd_45ACP_Mag", + "Exile_Magazine_30Rnd_762x39_AK", + "Exile_Magazine_30Rnd_545x39_AK_Green", + "Exile_Magazine_30Rnd_545x39_AK_Red", + "Exile_Magazine_30Rnd_545x39_AK_White", + "Exile_Magazine_30Rnd_545x39_AK_Yellow", + "Exile_Magazine_45Rnd_545x39_RPK_Green", + "Exile_Magazine_75Rnd_545x39_RPK_Green", + "Exile_Magazine_20Rnd_762x51_DMR", + "Exile_Magazine_20Rnd_762x51_DMR_Yellow", + "Exile_Magazine_20Rnd_762x51_DMR_Red", + "Exile_Magazine_20Rnd_762x51_DMR_Green", + "Exile_Magazine_10Rnd_303", + "Exile_Magazine_100Rnd_762x54_PK_Green", + "Exile_Magazine_7Rnd_45ACP", + "Exile_Magazine_8Rnd_9x18", + "Exile_Magazine_30Rnd_545x39_AK", + "Exile_Magazine_6Rnd_45ACP", + "Exile_Magazine_5Rnd_22LR", + "Exile_Magazine_10Rnd_762x54", + "Exile_Magazine_10Rnd_9x39", + "Exile_Magazine_20Rnd_9x39", + //"Exile_Magazine_8Rnd_74Pellets", + "Exile_Magazine_8Rnd_74Slug", + //Apex + "30Rnd_9x21_Mag_SMG_02", + "30Rnd_9x21_Mag_SMG_02_Tracer_Red", + "30Rnd_9x21_Mag_SMG_02_Tracer_Yellow", + "30Rnd_9x21_Mag_SMG_02_Tracer_Green", + "30Rnd_580x42_Mag_F", + "30Rnd_580x42_Mag_Tracer_F", + "100Rnd_580x42_Mag_F", + "100Rnd_580x42_Mag_Tracer_F", + "20Rnd_650x39_Cased_Mag_F", + "10Rnd_50BW_Mag_F", + "150Rnd_556x45_Drum_Mag_F", + "150Rnd_556x45_Drum_Mag_Tracer_F", + "30Rnd_762x39_Mag_F", + "30Rnd_762x39_Mag_Green_F", + "30Rnd_762x39_Mag_Tracer_F", + "30Rnd_762x39_Mag_Tracer_Green_F", + "30Rnd_545x39_Mag_F", + "30Rnd_545x39_Mag_Green_F", + "30Rnd_545x39_Mag_Tracer_F", + "30Rnd_545x39_Mag_Tracer_Green_F", + "200Rnd_556x45_Box_F", + "200Rnd_556x45_Box_Red_F", + "200Rnd_556x45_Box_Tracer_F", + "200Rnd_556x45_Box_Tracer_Red_F", + "10Rnd_9x21_Mag", + "Exile_Magazine_5Rnd_127x108_Bullet_Cam_Mag", + "Exile_Magazine_10Rnd_93x64_DMR_05_Bullet_Cam_Mag", + "Exile_Magazine_7Rnd_408_Bullet_Cam_Mag", + "Exile_Magazine_10Rnd_338_Bullet_Cam_Mag" + }; + }; + + class Flares + { + name = "Flares"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Chemlight_blue", + "Chemlight_green", + "Chemlight_red", + "FlareGreen_F", + "FlareRed_F", + "FlareWhite_F", + "FlareYellow_F", + "UGL_FlareGreen_F", + "UGL_FlareRed_F", + "UGL_FlareWhite_F", + "UGL_FlareYellow_F", + "3Rnd_UGL_FlareGreen_F", + "3Rnd_UGL_FlareRed_F", + "3Rnd_UGL_FlareWhite_F", + "3Rnd_UGL_FlareYellow_F" + }; + }; + + class Smokes + { + name = "Smokes"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "SmokeShell", + "SmokeShellBlue", + "SmokeShellGreen", + "SmokeShellOrange", + "SmokeShellPurple", + "SmokeShellRed", + "SmokeShellYellow", + "1Rnd_Smoke_Grenade_shell", + "1Rnd_SmokeBlue_Grenade_shell", + "1Rnd_SmokeGreen_Grenade_shell", + "1Rnd_SmokeOrange_Grenade_shell", + "1Rnd_SmokePurple_Grenade_shell", + "1Rnd_SmokeRed_Grenade_shell", + "1Rnd_SmokeYellow_Grenade_shell", + "3Rnd_Smoke_Grenade_shell", + "3Rnd_SmokeBlue_Grenade_shell", + "3Rnd_SmokeGreen_Grenade_shell", + "3Rnd_SmokeOrange_Grenade_shell", + "3Rnd_SmokePurple_Grenade_shell", + "3Rnd_SmokeRed_Grenade_shell", + "3Rnd_SmokeYellow_Grenade_shell" + }; + }; + + class Explosives + { + name = "Explosives"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\cargothrow_ca.paa"; + items[] = + { + "HandGrenade", + "MiniGrenade", + "B_IR_Grenade", + "O_IR_Grenade", + "I_IR_Grenade", + "1Rnd_HE_Grenade_shell", + "3Rnd_HE_Grenade_shell", + "APERSBoundingMine_Range_Mag", + "APERSMine_Range_Mag", + "APERSTripMine_Wire_Mag", + "ClaymoreDirectionalMine_Remote_Mag", + "DemoCharge_Remote_Mag", + "IEDLandBig_Remote_Mag", + "IEDLandSmall_Remote_Mag", + "IEDUrbanBig_Remote_Mag", + "IEDUrbanSmall_Remote_Mag", + "SatchelCharge_Remote_Mag", + "SLAMDirectionalMine_Wire_Mag" + }; + }; + + class Pistols + { + name = "Pistols"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\handgun_ca.paa"; + items[] = + { + "hgun_ACPC2_F", + "hgun_P07_F", + "hgun_Pistol_heavy_01_F", + "hgun_Pistol_heavy_02_F", + "hgun_Pistol_Signal_F", + "hgun_Rook40_F", + "Exile_Weapon_Colt1911", + "Exile_Weapon_Makarov", + "Exile_Weapon_Taurus", + "Exile_Weapon_TaurusGold", + //Apex + "hgun_Pistol_01_F", + "hgun_P07_khk_F" + }; + }; + + class SubMachineGuns + { + name = "Sub Machine Guns"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "hgun_PDW2000_F", + "SMG_01_F", + "SMG_02_F", + "SMG_05_F" + }; + }; + + class LightMachineGuns + { + name = "Light Machine Guns"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "arifle_MX_SW_Black_F", + "arifle_MX_SW_F", + "LMG_Mk200_F", + "LMG_Zafir_F", + "LMG_03_F", + "Exile_Weapon_RPK", + "Exile_Weapon_PK", + "Exile_Weapon_PKP" + + /* + "MMG_01_hex_F", + "MMG_01_tan_F", + "MMG_02_black_F", + "MMG_02_camo_F", + "MMG_02_sand_F" + */ + }; + }; + + class AssaultRifles + { + name = "Assault Rifles"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "arifle_Katiba_C_F", + "arifle_Katiba_F", + "arifle_Katiba_GL_F", + "arifle_Mk20_F", + "arifle_Mk20_GL_F", + "arifle_Mk20_GL_plain_F", + "arifle_Mk20_plain_F", + "arifle_Mk20C_F", + "arifle_Mk20C_plain_F", + "arifle_MX_Black_F", + "arifle_MX_F", + "arifle_MX_GL_Black_F", + "arifle_MX_GL_F", + "arifle_MXC_Black_F", + "arifle_MXC_F", + "arifle_SDAR_F", + "arifle_TRG20_F", + "arifle_TRG21_F", + "arifle_TRG21_GL_F", + "Exile_Weapon_AK107", + "Exile_Weapon_AK107_GL", + "Exile_Weapon_AK74", + "Exile_Weapon_AK74_GL", + "Exile_Weapon_AK47", + "Exile_Weapon_AKS_Gold", + //Apex + "arifle_AK12_F", + "arifle_AK12_GL_F", + "arifle_AKM_F", + "arifle_AKM_FL_F", + "arifle_AKS_F", + "arifle_ARX_blk_F", + "arifle_ARX_ghex_F", + "arifle_ARX_hex_F", + "arifle_CTAR_blk_F", + "arifle_CTAR_hex_F", + "arifle_CTAR_ghex_F", + "arifle_CTAR_GL_blk_F", + "arifle_CTARS_blk_F", + "arifle_CTARS_hex_F", + "arifle_CTARS_ghex_F", + "arifle_SPAR_01_blk_F", + "arifle_SPAR_01_khk_F", + "arifle_SPAR_01_snd_F", + "arifle_SPAR_01_GL_blk_F", + "arifle_SPAR_01_GL_khk_F", + "arifle_SPAR_01_GL_snd_F", + "arifle_SPAR_02_blk_F", + "arifle_SPAR_02_khk_F", + "arifle_SPAR_02_snd_F", + "arifle_SPAR_03_blk_F", + "arifle_SPAR_03_khk_F", + "arifle_SPAR_03_snd_F", + "arifle_MX_khk_F", + "arifle_MX_GL_khk_F", + "arifle_MXC_khk_F", + "arifle_MXM_khk_F" + }; + }; + + class Shotguns + { + name = "Shotguns"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Weapon_M1014" + }; + }; + + class SniperRifles + { + name = "Sniper Rifles"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "arifle_MXM_Black_F", + "arifle_MXM_F", + "srifle_DMR_01_F", + "srifle_DMR_02_camo_F", + "srifle_DMR_02_F", + "srifle_DMR_02_sniper_F", + "srifle_DMR_03_F", + "srifle_DMR_03_khaki_F", + "srifle_DMR_03_multicam_F", + "srifle_DMR_03_tan_F", + "srifle_DMR_03_woodland_F", + "srifle_DMR_04_F", + "srifle_DMR_04_Tan_F", + "srifle_DMR_05_blk_F", + "srifle_DMR_05_hex_F", + "srifle_DMR_05_tan_f", + "srifle_DMR_06_camo_F", + "srifle_DMR_06_olive_F", + "srifle_EBR_F", + "srifle_GM6_camo_F", + "srifle_GM6_F", + "srifle_LRR_camo_F", + "srifle_LRR_F", + "Exile_Weapon_CZ550", + "Exile_Weapon_SVD", + "Exile_Weapon_SVDCamo", + "Exile_Weapon_VSSVintorez", + "Exile_Weapon_DMR", + "Exile_Weapon_LeeEnfield", + //Apex + "srifle_LRR_tna_F", + "srifle_GM6_ghex_F", + "srifle_DMR_07_blk_F", + "srifle_DMR_07_hex_F", + "srifle_DMR_07_ghex_F" + }; + }; + + class Bikes + { + name = "Bikes"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Bike_OldBike", + "Exile_Bike_MountainBike" + }; + }; + + class Cars + { + name = "Cars"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Car_Kart_Black", + "Exile_Bike_QuadBike_Black", + "Exile_Car_OldTractor_Red", + "Exile_Car_TowTractor_White", + "Exile_Car_Tractor_Red", + "Exile_Car_UAZ_Green", + "Exile_Car_UAZ_Open_Green", + "Exile_Car_Octavius_White", + "Exile_Car_Golf_Red", + "Exile_Car_LandRover_Green", + "Exile_Car_LandRover_Ambulance_Green", + "Exile_Car_Lada_Green", + "Exile_Car_Volha_White", + "Exile_Car_Hatchback_Rusty1", + "Exile_Car_Hatchback_Rusty2", + "Exile_Car_Hatchback_Rusty3", + "Exile_Car_Hatchback_Sport_Red", + "Exile_Car_SUV_Red", + "Exile_Car_SUVXL_Black", + "Exile_Car_SUV_Armed_Black", + "Exile_Car_Offroad_Rusty1", + "Exile_Car_Offroad_Rusty2", + "Exile_Car_Offroad_Rusty3", + "Exile_Car_Offroad_Repair_Civillian", + "Exile_Car_Offroad_Armed_Guerilla01", + "Exile_Car_BRDM2_HQ", + "Exile_Car_BTR40_MG_Green", + "Exile_Car_BTR40_Green", + "Exile_Car_HMMWV_M134_Green", + "Exile_Car_HMMWV_M2_Green", + "Exile_Car_HMMWV_MEV_Green", + "Exile_Car_HMMWV_UNA_Green", + "Exile_Car_Strider", + "Exile_Car_Hunter", + "Exile_Car_Ifrit", + "Exile_Car_ProwlerLight", + "Exile_Car_ProwlerUnarmed", + "Exile_Car_QilinUnarmed", + "Exile_Car_MB4WD", + "Exile_Car_MB4WDOpen" + }; + }; + + class Trucks + { + name = "Trucks"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Car_Van_Black", + "Exile_Car_Van_Box_Black", + "Exile_Car_Van_Fuel_Black", + "Exile_Car_Ural_Open_Worker", + "Exile_Car_Ural_Covered_Worker", + "Exile_Car_V3S_Covered", + "Exile_Car_Zamak", + "Exile_Car_Tempest", + "Exile_Car_HEMMT", + "Exile_Car_Ikarus_Blue" + }; + }; + + class Choppers + { + name = "Helicopters"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Chopper_Hummingbird_Green", + "Exile_Chopper_Hummingbird_Civillian_Wasp", + "Exile_Chopper_Huey_Green", + "Exile_Chopper_Huey_Armed_Green", + "Exile_Chopper_Taru_Black", + "Exile_Chopper_Taru_Covered_Black", + "Exile_Chopper_Taru_Transport_Black", + "Exile_Chopper_Orca_BlackCustom", + "Exile_Chopper_Mohawk_FIA", + "Exile_Chopper_Huron_Black", + "Exile_Chopper_Hellcat_Green" + }; + }; + + class Boats + { + name = "Boats"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Boat_RubberDuck_CSAT", + "Exile_Boat_RubberDuck_Digital", + "Exile_Boat_RubberDuck_Orange", + "Exile_Boat_RubberDuck_Blue", + "Exile_Boat_RubberDuck_Black", + "Exile_Boat_MotorBoat_Police", + "Exile_Boat_MotorBoat_Orange", + "Exile_Boat_MotorBoat_White", + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey", + "Exile_Boat_WaterScooter", + "Exile_Boat_RHIB" + }; + }; + + class Planes + { + name = "Planes"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "Exile_Plane_Cessna", + "Exile_Plane_AN2_Green", + "Exile_Plane_Ceasar", + "Exile_Plane_BlackfishInfantry", + "Exile_Plane_BlackfishVehicle" + }; + }; + + class Diving + { + name = "Diving"; + icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\itemacc_ca.paa"; + items[] = + { + "G_B_Diving", + "G_O_Diving", + "G_I_Diving", + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR", + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + }; + }; +}; + +class CfgTraders +{ + /** + * Weapons, scopes, silencers, ammo + */ + class Exile_Trader_Armory + { + name = "ARMORY"; + showWeaponFilter = 1; + categories[] = + { + "PointerAttachments", + "BipodAttachments", + "MuzzleAttachments", + "OpticAttachments", + "Ammunition", + "Pistols", + "Shotguns", + "SubMachineGuns", + "LightMachineGuns", + "AssaultRifles", + "SniperRifles" + }; + }; + + /** + * Satchels, nades, UAVs, static MGs + */ + class Exile_Trader_SpecialOperations + { + name = "SPECIAL OPERATIONS"; + showWeaponFilter = 1; // for noob tubes + categories[] = + { + "Flares", + "Smokes", + "UAVs", + "StaticMGs", + "Explosives", + "Navigation" + }; + }; + + /** + * Uniforms, vests, helmets, backpacks + */ + class Exile_Trader_Equipment + { + name = "EQUIPMENT"; + showWeaponFilter = 0; + categories[] = + { + "Headgear", + "Glasses", + "Uniforms", + "Vests", + "Backpacks", + "FirstAid" + }; + }; + + /** + * Cans, cans, cans + */ + class Exile_Trader_Food + { + name = "FAST FOOD"; + showWeaponFilter = 0; + categories[] = + { + "Food", + "Drinks" + }; + }; + + /** + * Light bulbs, metal, etc. + */ + class Exile_Trader_Hardware + { + name = "HARDWARE"; + showWeaponFilter = 0; + categories[] = + { + "Hardware", + "Tools" + }; + }; + + /** + * Sells cars and general vehicles + */ + class Exile_Trader_Vehicle + { + name = "VEHICLE"; + showWeaponFilter = 0; + categories[] = + { + "Cars", + "Trucks" + }; + }; + + /** + * Sells choppers and planes + */ + class Exile_Trader_Aircraft + { + name = "AIRCRAFT"; + showWeaponFilter = 0; + categories[] = + { + "Choppers", + "Planes" + }; + }; + + /** + * Sells ships and boats + */ + class Exile_Trader_Boat + { + name = "BOAT"; + showWeaponFilter = 0; + categories[] = + { + "Boats" + }; + }; + + class Exile_Trader_Diving + { + name = "DIVERS"; + showWeaponFilter = 0; + categories[] = + { + "Diving" + }; + }; + + /** + * Sells Community Items + */ + class Exile_Trader_CommunityCustoms + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community" + }; + }; + + class Exile_Trader_CommunityCustoms2 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community2" + }; + }; + + class Exile_Trader_CommunityCustoms3 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community3" + }; + }; + + class Exile_Trader_CommunityCustoms4 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community4" + }; + }; + + class Exile_Trader_CommunityCustoms5 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community5" + }; + }; + + class Exile_Trader_CommunityCustoms6 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community6" + }; + }; + + class Exile_Trader_CommunityCustoms7 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community7" + }; + }; + + class Exile_Trader_CommunityCustoms8 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community8" + }; + }; + + class Exile_Trader_CommunityCustoms9 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community9" + }; + }; + + class Exile_Trader_CommunityCustoms10 + { + name = "COMMUNITY"; + showWeaponFilter = 0; + categories[] = + { + "Community10" + }; + }; +}; +class CfgTrading +{ + /* + * This factor defines the difference between sales/purchase price of + * items and vehicles. It is used if there is no sales price defined + * in CfgExileArsenal. + */ + sellPriceFactor = 0.5; + + rekeyPriceFactor = 0.1; + + class requiredRespect + { + Level1 = 0; + Level2 = 5000; + Level3 = 10000; + Level4 = 15000; + Level5 = 20000; + Level6 = 25000; + }; +}; +class CfgVehicleCustoms +{ + /////////////////////////////////////////////////////////////////////////////// + // QUAD BIKES + /////////////////////////////////////////////////////////////////////////////// + class Exile_Bike_QuadBike_Abstract + { + skins[] = + { + + {"Exile_Bike_QuadBike_Blue", 100, "Blue", {"\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_CIV_BLUE_CO.paa","\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_CIVBLUE_CO.paa"};}, + {"Exile_Bike_QuadBike_Red", 100, "Red", {"\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_CIV_RED_CO.paa","\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_CIVRED_CO.paa"};}, + {"Exile_Bike_QuadBike_White", 100, "White", {"\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_CIV_WHITE_CO.paa","\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_CIVWHITE_CO.paa"};}, + {"Exile_Bike_QuadBike_Nato", 150, "NATO", {"\A3\Soft_F\Quadbike_01\Data\Quadbike_01_co.paa","\A3\Soft_F\Quadbike_01\Data\Quadbike_01_wheel_co.paa"};}, + {"Exile_Bike_QuadBike_Csat", 150, "CSAT", {"\A3\Soft_F\Quadbike_01\Data\Quadbike_01_OPFOR_CO.paa","\A3\Soft_F\Quadbike_01\Data\Quadbike_01_wheel_OPFOR_CO.paa"};}, + {"Exile_Bike_QuadBike_Fia", 150, "FIA", {"\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_INDP_CO.paa","\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_INDP_CO.paa"};}, + {"Exile_Bike_QuadBike_Guerilla01", 150, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Quadbike_01\Data\Quadbike_01_IG_CO.paa","\A3\soft_f_gamma\Quadbike_01\Data\Quadbike_01_wheel_IG_CO.paa"};}, + {"Exile_Bike_QuadBike_Guerilla02", 150, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Quadbike_01\Data\Quadbike_01_INDP_Hunter_CO.paa","\A3\soft_f_gamma\Quadbike_01\Data\Quadbike_01_wheel_INDP_Hunter_CO.paa"};}, + {"Exile_Bike_QuadBike_Black", 100, "Black", {"\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_CIV_BLACK_CO.paa","\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_CIVBLACK_CO.paa"};}, + {"Exile_Bike_QuadBike_Black", 100, "Hex", {"\A3\Soft_f_Exp\Quadbike_01\data\Quadbike_01_ghex_CO.paa","\A3\Soft_f_Exp\Quadbike_01\data\Quadbike_01_wheel_ghex_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // MOTOR BOATS + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_MotorBoat_Abstract + { + skins[] = + { + {"Exile_Boat_MotorBoat_Police", 350, "Police", {"\a3\boat_f_gamma\Boat_Civil_01\data\Boat_Civil_01_ext_police_co.paa","\a3\boat_f_gamma\Boat_Civil_01\data\Boat_Civil_01_int_police_co.paa"};}, + {"Exile_Boat_MotorBoat_Orange", 300, "Orange", {"\a3\boat_f_gamma\Boat_Civil_01\data\Boat_Civil_01_ext_rescue_co.paa","\a3\boat_f_gamma\Boat_Civil_01\data\Boat_Civil_01_int_rescue_co.paa"};}, + {"Exile_Boat_MotorBoat_White", 300, "White", {"\a3\boat_f_gamma\Boat_Civil_01\data\Boat_Civil_01_ext_co.paa","\a3\boat_f_gamma\Boat_Civil_01\data\Boat_Civil_01_int_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // RUBBER DUCKS + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_RubberDuck_Abstract + { + skins[] = + { + {"Exile_Boat_RubberDuck_CSAT", 200, "CSAT", {"\A3\boat_F\Boat_Transport_01\data\Boat_Transport_01_OPFOR_CO.paa"};}, + {"Exile_Boat_RubberDuck_Digital", 200, "Digital",{"\A3\boat_F\Boat_Transport_01\data\Boat_Transport_01_INDP_CO.paa"};}, + {"Exile_Boat_RubberDuck_Orange", 150, "Orange", {"\A3\boat_F\Boat_Transport_01\data\Boat_Transport_01_rescue_CO.paa"};}, + {"Exile_Boat_RubberDuck_Blue", 150, "Blue", {"\A3\boat_F\Boat_Transport_01\data\Boat_Transport_01_civilian_CO.paa"};}, + {"Exile_Boat_RubberDuck_Black", 150, "Black", {"\A3\boat_F\Boat_Transport_01\data\boat_transport_01_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // SDV + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_SDV_Abstract + { + skins[] = + { + {"Exile_Boat_SDV_CSAT", 200, "CSAT", {"\A3\boat_f_beta\SDV_01\data\SDV_ext_opfor_CO.paa"};}, + {"Exile_Boat_SDV_Digital", 200, "Digital", {"\A3\boat_f_beta\SDV_01\data\SDV_ext_INDP_CO.paa"};}, + {"Exile_Boat_SDV_Grey", 100, "Grey", {"\A3\boat_f_beta\SDV_01\data\SDV_ext_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Hellcat + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Hellcat_Abstract + { + skins[] = + { + {"Exile_Chopper_Hellcat_Green", 350, "Green", {"\A3\Air_F_EPB\Heli_Light_03\data\Heli_Light_03_base_CO.paa"};}, + {"Exile_Chopper_Hellcat_FIA", 500, "FIA", {"\A3\Air_F_EPB\Heli_Light_03\data\heli_light_03_base_indp_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Karts + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Kart_Abstract + { + skins[] = + { + {"Exile_Car_Kart_BluKing", 100, "Bluking", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_blu_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_blu_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_RedStone", 100, "RedStone", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_black_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_black_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_Vrana", 100, "Vrana", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_vrana_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_vrana_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_Green", 100, "Green", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_base_green_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_blu_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_Blue", 100, "Blue", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_base_blue_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_blu_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_Orange", 100, "Orange", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_base_orange_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_blu_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_White", 100, "White", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_base_white_CO.paa","","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_Yellow", 100, "Yellow", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_base_yellow_CO.paa","","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};}, + {"Exile_Car_Kart_Black", 100, "Black", {"\a3\Soft_F_Kart\Kart_01\Data\Kart_01_base_black_CO.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_01_logos_black_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_1_CA.paa","\a3\Soft_F_Kart\Kart_01\Data\Kart_num_3_CA.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Hummingbird (Civillian) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Hummingbird_Civillian_Abstract + { + skins[] = + { + {"Exile_Chopper_Hummingbird_Civillian_Blue", 350, "Blue", {"\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_blue_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Red", 350, "Red", {"\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_ION", 350, "ION", {"\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_ion_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_BlueLine", 350, "BlueLine", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_blueLine_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Digital", 350, "Digital", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_digital_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Elliptical", 350, "Elliptical", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_elliptical_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Furious", 350, "Furious", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_furious_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_GrayWatcher", 350, "GrayWatcher", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_graywatcher_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Jeans", 350, "Jeans", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_jeans_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Light", 350, "Light", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_light_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Shadow", 350, "Shadow", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_shadow_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Sheriff", 350, "Sheriff", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_sheriff_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Speedy", 350, "Speedy", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_speedy_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Sunset", 350, "Sunset", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_sunset_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Vrana", 350, "Vrana", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_vrana_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Wasp", 350, "Wasp", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_wasp_co.paa"};}, + {"Exile_Chopper_Hummingbird_Civillian_Wave", 350, "Wave", {"\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_wave_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Huron + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Huron_Abstract + { + skins[] = + { + {"Exile_Chopper_Huron_Black", 450, "Black", {"\A3\Air_F_Heli\Heli_Transport_03\Data\Heli_Transport_03_ext01_black_CO.paa","\a3\air_f_heli\heli_transport_03\data\heli_transport_03_ext02_black_co.paa"};}, + {"Exile_Chopper_Huron_Green", 450, "Green", {"\a3\air_f_heli\heli_transport_03\data\heli_transport_03_ext01_co.paa","\a3\air_f_heli\heli_transport_03\data\heli_transport_03_ext02_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Orca + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Orca_Abstract + { + skins[] = + { + {"Exile_Chopper_Orca_CSAT", 350, "CSAT", {"\A3\Air_F\Heli_Light_02\Data\Heli_Light_02_ext_OPFOR_CO.paa"};}, + {"Exile_Chopper_Orca_Black", 350, "Black", {"\A3\Air_F\Heli_Light_02\Data\Heli_Light_02_ext_CO.paa"};}, + {"Exile_Chopper_Orca_BlackCustom", 350, "Black Custom", {"\A3\Air_F_Heli\Heli_Light_02\Data\Heli_Light_02_ext_OPFOR_V2_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Taru + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Taru_Abstract + { + skins[] = + { + {"Exile_Chopper_Taru_CSAT", 500, "CSAT", {"A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_01_co.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_02_co.paa"};}, + {"Exile_Chopper_Taru_Black", 500, "BLACK", {"A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_01_black_CO.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_02_black_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Taru (Transport) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Taru_Transport_Abstract + { + skins[] = + { + {"Exile_Chopper_Taru_Transport_CSAT", 500, "CSAT", {"A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_01_co.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_02_co.paa"};}, + {"Exile_Chopper_Taru_Transport_Black", 500, "Black", {"A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_01_black_CO.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_02_black_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Taru (Covered) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Taru_Covered_Abstract + { + skins[] = + { + {"Exile_Chopper_Taru_Covered_CSAT", 500, "CSAT", {"A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_01_CO.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_base_02_CO.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_Pod_Ext01_CO.paa","A3\Air_F_Heli\Heli_Transport_04\Data\Heli_Transport_04_Pod_Ext02_CO.paa"};}, + {"Exile_Chopper_Taru_Covered_Black", 500, "Black", {"A3\Air_F_Heli\Heli_Transport_04\Data\heli_transport_04_base_01_black_co.paa","A3\Air_F_Heli\Heli_Transport_04\Data\heli_transport_04_base_02_black_co.paa","A3\Air_F_Heli\Heli_Transport_04\Data\heli_transport_04_pod_ext01_black_co.paa","A3\Air_F_Heli\Heli_Transport_04\Data\heli_transport_04_pod_ext02_black_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Hatchback + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Hatchback_Abstract + { + skins[] = + { + {"Exile_Car_Hatchback_Rusty1", 50, "Rusty White", {"\exile_assets\model\RTV\Exile_Car_Hatchback_01_co.paa"};}, + {"Exile_Car_Hatchback_Rusty2", 50, "Rusty Red", {"\exile_assets\model\RTV\Exile_Car_Hatchback_02_co.paa"};}, + {"Exile_Car_Hatchback_Rusty3", 50, "Rusty Yellow", {"\exile_assets\model\RTV\Exile_Car_Hatchback_03_co.paa"};}, + {"Exile_Car_Hatchback_Beige", 100, "Beige", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE01_CO.paa"};}, + {"Exile_Car_Hatchback_Green", 100, "Green", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE02_CO.paa"};}, + {"Exile_Car_Hatchback_Blue", 100, "Blue", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE03_CO.paa"};}, + {"Exile_Car_Hatchback_BlueCustom", 100, "Blue Custom", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE04_CO.paa"};}, + {"Exile_Car_Hatchback_BeigeCustom", 100, "Beige Custom", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE05_CO.paa"};}, + {"Exile_Car_Hatchback_Yellow", 100, "Yellow", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE06_CO.paa"};}, + {"Exile_Car_Hatchback_Grey", 100, "Grey", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE07_CO.paa"};}, + {"Exile_Car_Hatchback_Black", 100, "Black", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE08_CO.paa"};}, + {"Exile_Car_Hatchback_Dark", 100, "Dark", {"\A3\Soft_F_Gamma\Hatchback_01\data\Hatchback_01_ext_BASE09_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Hatchback (Sport) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Hatchback_Sport_Abstract + { + skins[] = + { + {"Exile_Car_Hatchback_Sport_Red", 100, "Red", {"\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT01_CO.paa"};}, + {"Exile_Car_Hatchback_Sport_Blue", 100, "Blue", {"\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT02_CO.paa"};}, + {"Exile_Car_Hatchback_Sport_Orange", 100, "Orange", {"\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT03_CO.paa"};}, + {"Exile_Car_Hatchback_Sport_White", 100, "White", {"\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT04_CO.paa"};}, + {"Exile_Car_Hatchback_Sport_Beige", 100, "Beige", {"\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT05_CO.paa"};}, + {"Exile_Car_Hatchback_Sport_Green", 100, "Green", {"\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT06_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Offroad + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Offroad_Abstract + { + skins[] = + { + {"Exile_Car_Offroad_Rusty1", 50, "Rusty White", {"\exile_assets\model\RTV\Exile_offroad_03_co.paa","\exile_assets\model\RTV\Exile_offroad_03_co.paa"};}, + {"Exile_Car_Offroad_Rusty2", 50, "Rusty Red", {"\exile_assets\model\RTV\Exile_offroad_01_co.paa","\exile_assets\model\RTV\Exile_offroad_01_co.paa"};}, + {"Exile_Car_Offroad_Rusty3", 50, "Rusty Blue", {"\exile_assets\model\RTV\Exile_offroad_02_co.paa","\exile_assets\model\RTV\Exile_offroad_02_co.paa"};}, + {"Exile_Car_Offroad_Red", 500, "Red", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_CO.paa"};}, + {"Exile_Car_Offroad_Beige", 500, "Beige", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE01_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE01_CO.paa"};}, + {"Exile_Car_Offroad_White", 500, "White", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE02_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE02_CO.paa"};}, + {"Exile_Car_Offroad_Blue", 500, "Blue", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE03_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE03_CO.paa"};}, + {"Exile_Car_Offroad_DarkRed", 500, "Dark Red", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE04_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE04_CO.paa"};}, + {"Exile_Car_Offroad_BlueCustom", 500, "Blue Custom", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE05_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE05_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla01", 700, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_01_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_01_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla02", 700, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_02_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_02_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla03", 700, "Guerilla 03", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_03_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_03_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla04", 700, "Guerilla 04", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_04_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_04_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla05", 700, "Guerilla 05", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_05_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_05_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla06", 700, "Guerilla 06", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_06_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_06_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla07", 700, "Guerilla 07", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_07_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_07_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla08", 700, "Guerilla 08", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_08_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_08_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla09", 700, "Guerilla 09", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_09_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_09_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla10", 700, "Guerilla 10", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_10_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_10_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla11", 700, "Guerilla 11", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_11_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_11_CO.paa"};}, + {"Exile_Car_Offroad_Guerilla12", 700, "Guerilla 12", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_12_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_12_CO.paa"};}, + {"Exile_Car_Offroad_DarkRed", 700, "Exile Black", {"exile_assets\texture\vehicle\Exile_Offroad_Black_co.paa"};}, + {"Exile_Car_Offroad_DarkRed", 700, "Exile Light Blue", {"exile_assets\texture\vehicle\Exile_Offroad_LightBlue_co.paa"};}, + {"Exile_Car_Offroad_DarkRed", 700, "Exile Orange",{"exile_assets\texture\vehicle\Exile_Offroad_Orange_co.paa"};}, + {"Exile_Car_Offroad_DarkRed", 700, "Exile Pink", {"exile_assets\texture\vehicle\Exile_Offroad_Pink_co.paa"};}, + {"Exile_Car_Offroad_DarkRed", 700, "Exile White", {"exile_assets\texture\vehicle\Exile_Offroad_White_co.paa"};}, + {"Exile_Car_Offroad_DarkRed", 700, "Exile Yellow",{"exile_assets\texture\vehicle\Exile_Offroad_Yellow_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Land Rover + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_LandRover_Abstract + { + skins[] = + { + {"Exile_Car_LandRover_Red", 250, "Red", {"Exile_psycho_LRC\data\r_lr_base_co.paa","Exile_psycho_LRC\data\r_lr_special_co.paa"};}, + {"Exile_Car_LandRover_Urban", 250, "Urban", {"Exile_psycho_LRC\data\textures\lr_base_urbancamo_co.paa","Exile_psycho_LRC\data\textures\lr_special_urbancamo_co.paa"};}, + {"Exile_Car_LandRover_Green", 250, "Green", {"Exile_psycho_LRC\data\lr_acr_base_co.paa","Exile_psycho_LRC\data\lr_acr_spec_co.paa"};}, + {"Exile_Car_LandRover_Sand", 250, "Sand", {"Exile_psycho_LRC\data\lr_acr_sand_base_co.paa","Exile_psycho_LRC\data\lr_special_acr_co.paa"};}, + {"Exile_Car_LandRover_Desert", 250, "Desert", {"Exile_psycho_LRC\data\lr_acrs_base_co.paa","Exile_psycho_LRC\data\lr_special_acr_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Land Rover (Ambulance) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_LandRover_Ambulance_Abstract + { + skins[] = + { + {"Exile_Car_LandRover_Ambulance_Green", 250, "Green", {"Exile_psycho_LRC\data\lr_acr_base_co.paa","Exile_psycho_LRC\data\lr_amb_ext_co.paa","Exile_psycho_LRC\data\lr_acr_spec_co.paa"};}, + {"Exile_Car_LandRover_Ambulance_Desert", 250, "Desert", {"Exile_psycho_LRC\data\lr_acrs_base_co.paa","Exile_psycho_LRC\data\lr_amb_ext_co.paa","Exile_psycho_LRC\data\lr_special_acr_co.paa"};}, + {"Exile_Car_LandRover_Ambulance_Sand", 250, "Sand", {"Exile_psycho_LRC\data\lr_acr_sand_base_co.paa","Exile_psycho_LRC\data\lr_amb_ext_co.paa","Exile_psycho_LRC\data\lr_special_acr_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Octavius + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Octavius_Abstract + { + skins[] = + { + {"Exile_Car_Octavius_White", 250, "White", {"exile_psycho_Octavia\Data\car_body_co.paa"};}, + {"Exile_Car_Octavius_Black", 250, "Black", {"exile_psycho_Octavia\Data\car_body_bl_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // UH-1H Huey + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Huey_Abstract + { + skins[] = + { + {"Exile_Chopper_Huey_Green", 700, "Green", {"Exile_psycho_UH1H\data\uh1h_co.paa","Exile_psycho_UH1H\data\uh1h_in_co.paa","Exile_psycho_UH1H\data\default_co.paa","Exile_psycho_UH1H\data\alpha_ca.paa"};}, + {"Exile_Chopper_Huey_Desert", 700, "Desert", {"Exile_psycho_UH1H\data\uh1d_tka_co.paa","Exile_psycho_UH1H\data\uh1d_in_tka_co.paa","Exile_psycho_UH1H\data\default_co.paa","Exile_psycho_UH1H\data\alpha_ca.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // UH-1H Huey (Armed) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Chopper_Huey_Armed_Abstract + { + skins[] = + { + {"Exile_Chopper_Huey_Armed_Green", 700, "Green", {"Exile_psycho_UH1H\data\uh1h_co.paa","Exile_psycho_UH1H\data\uh1h_in_co.paa","Exile_psycho_UH1H\data\default_co.paa","Exile_psycho_UH1H\data\alpha_ca.paa"};}, + {"Exile_Chopper_Huey_Armed_Desert", 700, "Desert", {"Exile_psycho_UH1H\data\uh1d_tka_co.paa","Exile_psycho_UH1H\data\uh1d_in_tka_co.paa","Exile_psycho_UH1H\data\default_co.paa","Exile_psycho_UH1H\data\alpha_ca.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Offroad (Armed) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Offroad_Armed_Abstract + { + skins[] = + { + {"Exile_Car_Offroad_Armed_Guerilla01", 250, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_01_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_01_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla02", 250, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_02_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_02_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla03", 250, "Guerilla 03", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_03_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_03_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla04", 250, "Guerilla 04", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_04_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_04_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla05", 250, "Guerilla 05", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_05_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_05_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla06", 250, "Guerilla 06", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_06_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_06_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla07", 250, "Guerilla 07", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_07_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_07_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla08", 250, "Guerilla 08", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_08_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_08_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla09", 250, "Guerilla 09", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_09_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_09_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla10", 250, "Guerilla 10", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_10_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_10_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla11", 250, "Guerilla 11", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_11_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_11_CO.paa"};}, + {"Exile_Car_Offroad_Armed_Guerilla12", 250, "Guerilla 12", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_12_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_12_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Offroad (Repair) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Offroad_Repair_Abstract + { + skins[] = + { + {"Exile_Car_Offroad_Repair_Civillian", 150, "Civillian", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\Offroad_01_ext_repair_CIV_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\Offroad_01_ext_repair_CIV_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Red", 150, "Red", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Beige", 150, "Beige", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE01_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE01_CO.paa"};}, + {"Exile_Car_Offroad_Repair_White", 150, "White", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE02_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE02_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Blue", 150, "Blue", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE03_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE03_CO.paa"};}, + {"Exile_Car_Offroad_Repair_DarkRed", 150, "DarkRed", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE04_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE04_CO.paa"};}, + {"Exile_Car_Offroad_Repair_BlueCustom", 150, "BlueCustom", {"\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE05_CO.paa","\a3\Soft_F\Offroad_01\data\Offroad_01_ext_BASE05_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla01", 250, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_01_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_01_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla02", 250, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_02_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_02_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla03", 250, "Guerilla 03", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_03_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_03_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla04", 250, "Guerilla 04", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_04_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_04_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla05", 250, "Guerilla 05", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_05_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_05_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla06", 250, "Guerilla 06", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_06_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_06_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla07", 250, "Guerilla 07", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_07_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_07_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla08", 250, "Guerilla 08", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_08_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_08_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla09", 250, "Guerilla 09", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_09_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_09_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla10", 250, "Guerilla 10", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_10_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_10_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla11", 250, "Guerilla 11", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_11_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_11_CO.paa"};}, + {"Exile_Car_Offroad_Repair_Guerilla12", 250, "Guerilla 12", {"\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_12_CO.paa","\A3\Soft_F_Bootcamp\Offroad_01\Data\offroad_01_ext_IG_12_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // SUV + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_SUV_Abstract + { + skins[] = + { + {"Exile_Car_SUV_Red", 100, "Red", {"\A3\Soft_F_Gamma\SUV_01\Data\SUV_01_ext_CO.paa"};}, + {"Exile_Car_SUV_Black", 150, "Black", {"\A3\Soft_F_Gamma\SUV_01\Data\SUV_01_ext_02_CO.paa"};}, + {"Exile_Car_SUV_Grey", 100, "Grey", {"\A3\Soft_F_Gamma\SUV_01\Data\SUV_01_ext_03_CO.paa"};}, + {"Exile_Car_SUV_Orange", 100, "Orange", {"\A3\Soft_F_Gamma\SUV_01\Data\SUV_01_ext_04_CO.paa"};}, + {"Exile_Car_SUV_Black", 150, "Snow Camo", {"exile_assets\texture\vehicle\Exile_SUV_Snow_co.paa"};}, + {"Exile_Car_SUV_Black", 150, "Leaf Camo", {"exile_assets\texture\vehicle\Exile_SUV_Leaf_Light_co.paa"};}, + {"Exile_Car_SUV_Black", 150, "Leaf Camo (Dark)", {"exile_assets\texture\vehicle\Exile_SUV_Leaf_Dark_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // SUV XL + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_SUVXL_Abstract + { + skins[] = + { + {"Exile_Car_SUVXL_Black", 100, "Black", {""};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Van + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Van_Abstract + { + skins[] = + { + {"Exile_Car_Van_Black", 100, "Black", {"\A3\soft_f_gamma\van_01\Data\Van_01_ext_black_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa"};}, + {"Exile_Car_Van_White", 100, "White", {"\A3\soft_f_gamma\van_01\Data\van_01_ext_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa"};}, + {"Exile_Car_Van_Red", 100, "Red", {"\A3\soft_f_gamma\van_01\Data\Van_01_ext_red_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa"};}, + {"Exile_Car_Van_Guerilla01", 150, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_01_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_01_CO.paa"};}, + {"Exile_Car_Van_Guerilla02", 150, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_02_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_02_CO.paa"};}, + {"Exile_Car_Van_Guerilla03", 150, "Guerilla 03", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_03_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_03_CO.paa"};}, + {"Exile_Car_Van_Guerilla04", 150, "Guerilla 04", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_04_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_04_CO.paa"};}, + {"Exile_Car_Van_Guerilla05", 150, "Guerilla 05", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_05_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_05_CO.paa"};}, + {"Exile_Car_Van_Guerilla06", 150, "Guerilla 06", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_06_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_06_CO.paa"};}, + {"Exile_Car_Van_Guerilla07", 150, "Guerilla 07", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_07_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_07_CO.paa"};}, + {"Exile_Car_Van_Guerilla08", 150, "Guerilla 08", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_08_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_08_CO.paa"};}, + {"Exile_Car_Van_Black", 150, "Brown", {"\A3\Soft_F_Exp\Van_01\Data\Van_01_ext_brn_co.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa","\A3\Soft_F_Exp\Van_01\Data\Van_01_int_base_2_CO.paa"};}, + {"Exile_Car_Van_Black", 150, "Olive", {"\A3\Soft_F_Exp\Van_01\Data\Van_01_ext_oli_co.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa","\A3\Soft_F_Exp\Van_01\Data\Van_01_int_base_3_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Van (Box) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Van_Box_Abstract + { + skins[] = + { + {"Exile_Car_Van_Box_Black", 100, "Black", {"\A3\soft_f_gamma\van_01\Data\Van_01_ext_black_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa"};}, + {"Exile_Car_Van_Box_White", 100, "White", {"\A3\soft_f_gamma\van_01\Data\van_01_ext_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa"};}, + {"Exile_Car_Van_Box_Red", 100, "Red", {"\A3\soft_f_gamma\van_01\Data\Van_01_ext_red_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_adds_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla01", 150, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_01_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_01_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla02", 150, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_02_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_02_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla03", 150, "Guerilla 03", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_03_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_03_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla04", 150, "Guerilla 04", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_04_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_04_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla05", 150, "Guerilla 05", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_05_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_05_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla06", 150, "Guerilla 06", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_06_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_06_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla07", 150, "Guerilla 07", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_07_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_07_CO.paa"};}, + {"Exile_Car_Van_Box_Guerilla08", 150, "Guerilla 08", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_08_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_adds_IG_08_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Van (Fuel) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Van_Fuel_Abstract + { + skins[] = + { + {"Exile_Car_Van_Fuel_Black", 100, "Black", {"\A3\soft_f_gamma\van_01\Data\Van_01_ext_black_CO.paa","\A3\soft_f_gamma\Van_01\Data\Van_01_tank_CO.paa"};}, + {"Exile_Car_Van_Fuel_White", 100, "White", {"\A3\soft_f_gamma\van_01\Data\van_01_ext_CO.paa","\A3\soft_f_gamma\Van_01\Data\Van_01_tank_CO.paa"};}, + {"Exile_Car_Van_Fuel_Red", 100, "Red", {"\A3\soft_f_gamma\van_01\Data\Van_01_ext_red_CO.paa","\A3\soft_f_gamma\Van_01\Data\Van_01_tank_CO.paa"};}, + {"Exile_Car_Van_Fuel_Guerilla01", 150, "Guerilla 01", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_01_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_tank_IG_01_CO.paa"};}, + {"Exile_Car_Van_Fuel_Guerilla02", 150, "Guerilla 02", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_02_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_tank_IG_02_CO.paa"};}, + {"Exile_Car_Van_Fuel_Guerilla03", 150, "Guerilla 03", {"\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_ext_IG_03_CO.paa","\A3\Soft_F_Bootcamp\Van_01\Data\Van_01_tank_IG_03_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Tempest + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Tempest_Abstract + { + skins[] = + { + {"Exile_Car_Tempest", 200, "Green Hex", {"\A3\Soft_F_Exp\Truck_03\Data\Truck_03_ext01_ghex_CO.paa","\A3\Soft_F_Exp\Truck_03\Data\Truck_03_ext02_ghex_CO.paa","\A3\Soft_F_Exp\Truck_03\Data\Truck_03_cargo_ghex_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Ikarus + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ikarus_Abstract + { + skins[] = + { + {"Exile_Car_Ikarus_Blue", 200, "Blue", {"Exile_psycho_Ikarus\Data\bus_exterior_co.paa"};}, + {"Exile_Car_Ikarus_Red", 200, "Red", {"Exile_psycho_Ikarus\Data\bus_exterior_eciv_co.paa"};}, + {"Exile_Car_Ikarus_Party", 500, "Party", {"Exile_psycho_Ikarus\Data\bus_exterior_eciv_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Ural (Open) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ural_Open_Abstract + { + skins[] = + { + {"Exile_Car_Ural_Open_Blue", 300, "Blue", {"Exile_psycho_Ural\data\Ural_kabina_civil_co.paa","Exile_psycho_Ural\data\ural_plachta_civil_co.paa"};}, + {"Exile_Car_Ural_Open_Yellow", 300, "Yellow", {"Exile_psycho_Ural\data\ural_kabina_civ1_co.paa","Exile_psycho_Ural\data\ural_plachta_civ1_co.paa"};}, + {"Exile_Car_Ural_Open_Worker", 300, "Worker", {"Exile_psycho_Ural\data\ural_kabina_civ2_co.paa","Exile_psycho_Ural\data\Ural_plachta_civil_co.paa"};}, + {"Exile_Car_Ural_Open_Military", 300, "Military", {"Exile_psycho_Ural\data\ural_kabina_khk_co.paa","Exile_psycho_Ural\data\ural_plachta_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Ural (Covered) + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ural_Covered_Abstract + { + skins[] = + { + {"Exile_Car_Ural_Covered_Blue", 300, "Blue", {"Exile_psycho_Ural\data\ural_kabina_civil_co.paa","Exile_psycho_Ural\data\ural_plachta_civil_co.paa"};}, + {"Exile_Car_Ural_Covered_Yellow", 300, "Yellow", {"Exile_psycho_Ural\data\ural_kabina_civ1_co.paa","Exile_psycho_Ural\data\ural_plachta_civ1_co.paa"};}, + {"Exile_Car_Ural_Covered_Worker", 300, "Worker", {"Exile_psycho_Ural\data\ural_kabina_civ2_co.paa","Exile_psycho_Ural\data\Ural_plachta_civil_co.paa"};}, + {"Exile_Car_Ural_Covered_Military", 300, "Military", {"Exile_psycho_Ural\data\ural_kabina_khk_co.paa","Exile_psycho_Ural\data\ural_plachta_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Lada + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Lada_Abstract + { + skins[] = + { + {"Exile_Car_Lada_Green", 100, "Green", {"exile_psycho_lada\data\lada_eciv1_co.paa","exile_psycho_lada\data\Lada_glass_ECIV1_CA.paa"};}, + {"Exile_Car_Lada_Taxi", 100, "Taxi", {"exile_psycho_lada\data\Lada_red_CO.paa"};}, + {"Exile_Car_Lada_Red", 100, "Red", {"exile_psycho_lada\data\Lada_red_CO.paa"};}, + {"Exile_Car_Lada_Hipster", 100, "Hipster", {"exile_psycho_lada\data\lada_eciv2_co.paa","exile_psycho_lada\data\Lada_glass_ECIV2_CA.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Volha + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Volha_Abstract + { + skins[] = + { + {"Exile_Car_Volha_Blue", 100, "Blue", {"Exile_psycho_Gaz_volha\data\Volha_ECIV_CO.paa"};}, + {"Exile_Car_Volha_White", 100, "White", {"Exile_psycho_Gaz_volha\data\Volha_Gray_ECIV_CO.paa"};}, + {"Exile_Car_Volha_Black", 100, "Black", {"Exile_psycho_Gaz_volha\data\Volha_Black_ECIV_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // HUNTER + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Hunter_Abstract + { + skins[] = + { + + {"Exile_Car_Hunter", 1000, "Exile White Edition", {"exile_assets\texture\vehicle\Exile_Hunter_Snow_co.paa","exile_assets\texture\vehicle\Exile_Hunter_Snow_Back_co.paa"};}, + {"Exile_Car_Hunter", 1000, "Exile Hex", {"exile_assets\texture\vehicle\Exile_Hunter_Hex_co.paa","exile_assets\texture\vehicle\Exile_Hunter_Black_Back_co.paa"};}, + {"Exile_Car_Hunter", 1000, "Exile Black", {"exile_assets\texture\vehicle\Exile_Hunter_Black_co.paa","exile_assets\texture\vehicle\Exile_Hunter_Black_Back_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // IFRIT + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Ifrit_Abstract + { + skins[] = + { + + {"Exile_Car_Ifrit", 1000, "Green Hex", {"\A3\Soft_F_Exp\MRAP_02\data\MRAP_02_ext_01_ghex_CO.paa","\A3\Soft_F_Exp\MRAP_02\data\MRAP_02_ext_02_ghex_CO.paa","\A3\Data_F_Exp\Vehicles\Turret_ghex_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // HMMWV + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_HMMWV_M2_Abstract + { + skins[] = + { + + {"Exile_Car_HMMWV_M2_Green", 1000, "Green", {"Exile_psycho_hmmw\data\hmmwv_body_co.paa"};}, + {"Exile_Car_HMMWV_M2_Desert", 1000, "Desert", {"Exile_psycho_hmmw\data\des\hmmwv_body_co.paa"};} + }; + }; + + class Exile_Car_HMMWV_M134_Abstract + { + skins[] = + { + + {"Exile_Car_HMMWV_M134_Green", 1000, "Green", {"Exile_psycho_hmmw\data\hmmwv_body_co.paa"};}, + {"Exile_Car_HMMWV_M134_Desert", 1000, "Desert", {"Exile_psycho_hmmw\data\des\hmmwv_body_co.paa"};} + }; + }; + + class Exile_Car_HMMWV_MEV_Abstract + { + skins[] = + { + + {"Exile_Car_HMMWV_MEV_Green", 1000, "Green", {"Exile_psycho_hmmw\data\hmmwv_body_cm.paa"};}, + {"Exile_Car_HMMWV_MEV_Desert", 1000, "Desert", {"Exile_psycho_hmmw\data\des\hmmwv_body_cm.paa"};} + }; + }; + + class Exile_Car_HMMWV_UNA_Abstract + { + skins[] = + { + + {"Exile_Car_HMMWV_UNA_Green", 1000, "Green", {"Exile_psycho_hmmw\data\hmmwv_body_co.paa"};}, + {"Exile_Car_HMMWV_UNA_Desert", 1000, "Desert", {"Exile_psycho_hmmw\data\des\hmmwv_body_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // BTR40 + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_BTR40_MG_Abstract + { + skins[] = + { + + {"Exile_Car_BTR40_MG_Green", 1000, "Green", {"exile_psycho_btr40\data\btr40ext_co.paa"};}, + {"Exile_Car_BTR40_MG_Camo", 1000, "Camo", {"exile_psycho_btr40\data\btr40extcamo_co.paa"};} + }; + }; + + class Exile_Car_BTR40_Abstract + { + skins[] = + { + + {"Exile_Car_BTR40_Green", 1000, "Green", {"exile_psycho_btr40\data\btr40ext_co.paa"};}, + {"Exile_Car_BTR40_Camo", 1000, "Camo", {"exile_psycho_btr40\data\btr40extcamo_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Golf + /////////////////////////////////////////////////////////////////////////////// + class Exile_Car_Golf_Abstract + { + skins[] = + { + + {"Exile_Car_Golf_Red", 1000, "Red", {"exile_psycho_VWGolf\data\vwgolf_body_co.paa"};}, + {"Exile_Car_Golf_Black", 1000, "Black", {"exile_psycho_VWGolf\data\texture\black_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // AN-2 + /////////////////////////////////////////////////////////////////////////////// + class Exile_Plane_AN2_Abstract + { + skins[] = + { + {"Exile_Plane_AN2_Green", 700, "Green", {"Exile_psycho_An2\data\an2_1_co.paa","Exile_psycho_An2\data\an2_2_co.paa","Exile_psycho_An2\data\an2_wings_co.paa"};}, + {"Exile_Plane_AN2_White", 700, "Red, White & Blue", {"Exile_psycho_An2\data\an2_1_a_co.paa", + "Exile_psycho_An2\data\an2_2_a_co.paa","Exile_psycho_An2\data\an2_wings_a_co.paa"};}, + {"Exile_Plane_AN2_Stripe", 700, "Green Stripe", {"Exile_psycho_An2\data\an2_1_b_co.paa","Exile_psycho_An2\data\an2_2_b_co.paa","Exile_psycho_An2\data\an2_wings_b_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // RHIB + /////////////////////////////////////////////////////////////////////////////// + class B_G_Boat_Transport_02_F + { + skins[] = + { + {"Exile_Boat_RHIB", 150, "Blue", {"\A3\Boat_F_Exp\Boat_Transport_02\Data\Boat_Transport_02_exterior_civilian_CO.paa","\A3\Boat_F_Exp\Boat_Transport_02\Data\Boat_Transport_02_interior_2_civilian_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Water Scooter + /////////////////////////////////////////////////////////////////////////////// + class Exile_Boat_WaterScooter_Abstract + { + skins[] = + { + {"Exile_Boat_WaterScooter", 150, "Blue", {"\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_Blue_co.paa","\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_VP_Blue_co.paa"};}, + {"Exile_Boat_WaterScooter", 150, "Grey", {"\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_Grey_co.paa","\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_VP_Grey_co.paa"};}, + {"Exile_Boat_WaterScooter", 150, "Lime", {"\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_Lime_co.paa","\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_VP_Lime_co.paa"};}, + {"Exile_Boat_WaterScooter", 150, "Red", {"\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_Red_CO.paa","\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_VP_CO.paa"};}, + {"Exile_Boat_WaterScooter", 150, "White", {"\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_CO.paa","\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_VP_CO.paa"};}, + {"Exile_Boat_WaterScooter", 150, "Yellow", {"\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_Yellow_CO.paa","\A3\Boat_F_Exp\Scooter_Transport_01\Data\Scooter_Transport_01_VP_Yellow_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Ceasar BTT + /////////////////////////////////////////////////////////////////////////////// + class C_Plane_Civil_01_F + { + skins[] = + { + {"Exile_Plane_Ceasar", 150, "Racing (Tan Interior)", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_Racer_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_Racer_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_tan_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_tan_co.paa"};}, + {"Exile_Plane_Ceasar", 150, "Racing", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_Racer_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_Racer_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_co.paa"};}, + {"Exile_Plane_Ceasar", 150, "Red Line (Tan Interior)", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_RedLine_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_RedLine_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_tan_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_tan_co.paa"};}, + {"Exile_Plane_Ceasar", 150, "Tribal (Tan Interior)", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_Tribal_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_Tribal_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_tan_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_tan_co.paa"};}, + {"Exile_Plane_Ceasar", 150, "Tribal", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_Tribal_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_Tribal_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_co.paa"};}, + {"Exile_Plane_Ceasar", 150, "Blue Wave (Tan Interior)", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_Wave_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_Wave_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_tan_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_tan_co.paa"};}, + {"Exile_Plane_Ceasar", 150, "Blue Wave", {"A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_01_Wave_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_ext_02_Wave_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_01_co.paa","A3\Air_F_Exp\Plane_Civil_01\Data\btt_int_02_co.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // V-44 X Blackfish (Infantry Transport) + /////////////////////////////////////////////////////////////////////////////// + class B_T_VTOL_01_infantry_F + { + skins[] = + { + {"Exile_Plane_BlackfishInfantry", 150, "Blue", {"\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT01_blue_CO.paa","\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT02_blue_CO.paa","\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT03_blue_CO.paa","\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT04_blue_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // V-44 X Blackfish (Vehicle Transport) + /////////////////////////////////////////////////////////////////////////////// + class B_T_VTOL_01_vehicle_F + { + skins[] = + { + {"Exile_Plane_BlackfishVehicle", 150, "Blue", {"\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT01_blue_CO.paa","\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT02_blue_CO.paa","\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT03_blue_CO.paa","\A3\Air_F_Exp\VTOL_01\Data\VTOL_01_EXT04_blue_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Prowler (Light) + /////////////////////////////////////////////////////////////////////////////// + class B_CTRG_LSV_01_light_F + { + skins[] = + { + {"Exile_Car_ProwlerLight", 150, "Black", {"\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_01_black_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_02_black_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_03_black_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_Adds_black_CO.paa"};}, + {"Exile_Car_ProwlerLight", 150, "Dazzle", {"\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_01_dazzle_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_02_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_03_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_Adds_olive_CO.paa"};}, + {"Exile_Car_ProwlerLight", 150, "Sand", {"\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_01_sand_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_02_sand_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_03_sand_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_Adds_sand_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Prowler (Unarmed) + /////////////////////////////////////////////////////////////////////////////// + class B_T_LSV_01_unarmed_black_F + { + skins[] = + { + {"Exile_Car_ProwlerUnarmed", 150, "Olive", {"\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_01_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_02_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_03_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_Adds_olive_CO.paa"};}, + {"Exile_Car_ProwlerUnarmed", 150, "Dazzle", {"\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_01_dazzle_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_02_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_03_olive_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_Adds_olive_CO.paa"};}, + {"Exile_Car_ProwlerUnarmed", 150, "Sand", {"\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_01_sand_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_02_sand_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_03_sand_CO.paa","\A3\Soft_F_Exp\LSV_01\Data\NATO_LSV_Adds_sand_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // Qilin (Unarmed) + /////////////////////////////////////////////////////////////////////////////// + class O_T_LSV_02_unarmed_black_F + { + skins[] = + { + {"Exile_Car_QilinUnarmed", 150, "Arid", {"\A3\Soft_F_Exp\LSV_02\Data\CSAT_LSV_01_arid_CO.paa","\A3\Soft_F_Exp\LSV_02\Data\CSAT_LSV_02_arid_CO.paa","\A3\Soft_F_Exp\LSV_02\Data\CSAT_LSV_03_arid_CO.paa"};}, + {"Exile_Car_QilinUnarmed", 150, "Green Hex", {"\A3\Soft_F_Exp\LSV_02\Data\CSAT_LSV_01_ghex_CO.paa","\A3\Soft_F_Exp\LSV_02\Data\CSAT_LSV_02_ghex_CO.paa","\A3\Soft_F_Exp\LSV_02\Data\CSAT_LSV_03_ghex_CO.paa"};} + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + // MB 4WD + /////////////////////////////////////////////////////////////////////////////// + class C_Offroad_02_unarmed_orange_F + { + skins[] = + { + {"Exile_Car_MB4WD", 150, "Black", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_black_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_black_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_black_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_black_co.paa"};}, + {"Exile_Car_MB4WD", 150, "Blue", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_blue_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_blue_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_blue_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_blue_co.paa"};}, + {"Exile_Car_MB4WD", 150, "Brown", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_brown_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_brown_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_brown_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_brown_co.paa"};}, + {"Exile_Car_MB4WD", 150, "Green", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_green_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_green_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_green_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_green_co.paa"};}, + {"Exile_Car_MB4WD", 150, "Olive", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_olive_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_olive_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_olive_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_olive_co.paa"};}, + {"Exile_Car_MB4WD", 150, "Red", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_red_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_red_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_red_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_red_co.paa"};}, + {"Exile_Car_MB4WD", 150, "White", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_white_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_white_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_white_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_white_co.paa"};} + }; + }; + + class I_C_Offroad_02_unarmed_F + { + skins[] = + { + {"Exile_Car_MB4WDOpen", 150, "Black", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_black_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_black_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_black_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_black_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "Blue", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_blue_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_blue_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_blue_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_blue_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "Brown", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_brown_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_brown_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_brown_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_brown_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "Green", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_green_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_green_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_green_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_green_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "Orange", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_orange_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_orange_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_orange_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_orange_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "Red", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_red_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_red_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_red_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_red_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "White", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_white_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_white_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_white_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_white_co.paa"};}, + {"Exile_Car_MB4WDOpen", 150, "Olive", {"\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_olive_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_olive_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_olive_co.paa","\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_int_olive_co.paa"};} + }; + }; +}; +class CfgVehicleTransport +{ + class Exile_Container_SupplyBox + { + vehicles[] = {"Exile_Car_Van_Abstract", "Exile_Car_Offroad_Abstract", "Exile_Car_Zamak_Abstract", "Exile_Car_HEMMT_Abstract", "Exile_Car_Tempest_Abstract"}; + + class Exile_Car_Van_Abstract + { + attachPosition[] = {0, -1.1, 0.2}; + cargoIndizes[] = {2, 3, 4, 5, 6, 7}; + detachPosition[] = {0, -4.4}; + }; + + class Exile_Car_Offroad_Abstract + { + attachPosition[] = {0, -1.6, 0.4}; + cargoIndizes[] = {1, 2, 3, 4}; + detachPosition[] = {0, -4}; + }; + + class Exile_Car_Zamak_Abstract + { + attachPosition[] = {0.03, 0.3, 0}; + cargoIndizes[] = {2, 3, 4, 5, 6, 7}; + detachPosition[] = {0.03, -4.8}; + }; + + class Exile_Car_HEMMT_Abstract + { + attachPosition[] = {0.05, -0.1, 0.3}; + cargoIndizes[] = {1, 2, 8, 9}; + detachPosition[] = {0.05, -6.1}; + }; + + class Exile_Car_Tempest_Abstract + { + attachPosition[] = {0.08, -0.85, 0.4}; + cargoIndizes[] = {1, 6, 7, 9}; + detachPosition[] = {0.08, -6}; + }; + }; +}; \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/description.ext b/Examples/Example Mission File/Exile.Altis/description.ext new file mode 100644 index 0000000..66e9522 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/description.ext @@ -0,0 +1,87 @@ +/////////////////////////////////////////////////////////////////////////////// +// Server Settings - Modify at will +/////////////////////////////////////////////////////////////////////////////// +author = "Exile Mod Team"; +onLoadName = "Exile Mod"; +onLoadMission= "www.exilemod.com"; +loadScreen = "exile_assets\texture\mod\logo.paa"; +disableChannels[] = {0, 2}; +OnLoadIntro = ""; +OnLoadIntroTime = false; +OnLoadMissionTime = false; + +class Header +{ + gameType = Survive; // Do NOT change this + minPlayers = 1; + maxPlayers = 100; +}; + +/////////////////////////////////////////////////////////////////////////////// +// Exile Settings - Do not change these! +/////////////////////////////////////////////////////////////////////////////// +forceRotorLibSimulation = 2; +skipLobby = 1; +joinUnassigned = 1; +respawn = "BASE"; +respawnDelay = 120; +respawnDialog = 0; +respawnOnStart = 0; +respawnButton = 1; +respawnTemplates[] = {"Exile"}; +corpseManagerMode = 0; +corpseLimit = 20; +corpseRemovalMinTime = 1800; +corpseRemovalMaxTime = 3600; +wreckManagerMode = 0; +wreckLimit = 2; +wreckRemovalMinTime = 60; +wreckRemovalMaxTime = 360; +scriptedPlayer = 1; +disabledAI = 1; +enableItemsDropping = 0; +briefing = 0; +debriefing = 0; +allowFunctionsLog = 1; +enableDebugConsole = 0; +allowFunctionsRecompile = 0; +showSquadRadar = 0; +showUAVFeed = 0; +reviveDelay = 6; +reviveForceRespawnDelay = 3; +reviveBleedOutDelay = 120; + +showHUD[] = +{ + true, // Scripted HUD (same as showHUD command) + true, // Vehicle + soldier info + true, // Vehicle radar + true, // Vehicle compass + true, // Tank direction indicator + false, // Commanding menu + false, // Group Bar + true, // HUD Weapon Cursors + false // Squad Radar +}; + +#include "config.cpp" + +class CfgRemoteExec +{ + class Functions + { + mode = 1; + jip = 0; + + class ExileServer_system_network_dispatchIncomingMessage + { + allowedTargets = 2; + }; + }; + + class Commands + { + mode = 0; + jip = 0; + }; +}; \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/initPlayerLocal.sqf b/Examples/Example Mission File/Exile.Altis/initPlayerLocal.sqf new file mode 100644 index 0000000..0cc5151 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/initPlayerLocal.sqf @@ -0,0 +1,508 @@ +/////////////////////////////////////////////////////////////////////////////// +// Static Objects +/////////////////////////////////////////////////////////////////////////////// + +// Taken away for now +//#include "initServer.sqf" + +if (!hasInterface || isServer) exitWith {}; + +/////////////////////////////////////////////////////////////////////////// +// Hardware Trader +/////////////////////////////////////////////////////////////////////////// +_workBench = "Land_Workbench_01_F" createVehicleLocal [0,0,0]; +_workBench setDir 45.4546; +_workBench setPosATL [14587.8, 16758.7, 0.0938587]; + +_trader = +[ + "Exile_Trader_Hardware", + "Exile_Trader_Hardware", + "WhiteHead_17", + ["InBaseMoves_sitHighUp1"], + [0, 0, -0.5], + 170, + _workBench +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Fast Food Trader +/////////////////////////////////////////////////////////////////////////// +_cashDesk = "Land_CashDesk_F" createVehicleLocal [0,0,0]; +_cashDesk setDir 131.818; +_cashDesk setPosATL [14589.8, 16778.2, -0.0701294]; + +_microwave = "Land_Microwave_01_F" createVehicleLocal [0,0,0]; +_cashDesk disableCollisionWith _microwave; +_microwave disableCollisionWith _cashDesk; +_microwave attachTo [_cashDesk, [-0.6, 0.2, 1.1]]; + +_ketchup = "Land_Ketchup_01_F" createVehicleLocal [0,0,0]; +_cashDesk disableCollisionWith _ketchup; +_ketchup disableCollisionWith _cashDesk; +_ketchup attachTo [_cashDesk, [-0.6, 0, 1.1]]; + +_mustard = "Land_Mustard_01_F" createVehicleLocal [0,0,0]; +_cashDesk disableCollisionWith _mustard; +_mustard disableCollisionWith _cashDesk; +_mustard attachTo [_cashDesk, [-0.5, -0.05, 1.1]]; + +_trader = +[ + "Exile_Trader_Food", + "Exile_Trader_Food", + "GreekHead_A3_01", + ["InBaseMoves_table1"], + [0.1, 0.5, 0.2], + 170, + _cashDesk +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Armory Trader +/////////////////////////////////////////////////////////////////////////// +_chair = "Land_CampingChair_V2_F" createVehicleLocal [0,0,0]; +_chair setDir 208.182; +_chair setPosATL [14568.1, 16764.3, 0.084837]; + +_trader = +[ + "Exile_Trader_Armory", + "Exile_Trader_Armory", + "PersianHead_A3_02", + ["InBaseMoves_SittingRifle1"], + [0, -0.15, -0.45], + 180, + _chair +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Equipment Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_Equipment", + "Exile_Trader_Equipment", + "WhiteHead_19", + ["InBaseMoves_Lean1"], + [14571.5, 16759.1, 0.126438], + 0 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Specops Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_SpecialOperations", + "Exile_Trader_SpecialOperations", + "AfricanHead_02", + ["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"], + [14566.3, 16773.2, 0.126438], + 140 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Office Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_Office", + "Exile_Trader_Office", + "GreekHead_A3_04", + ["HubBriefing_scratch", "HubBriefing_stretch", "HubBriefing_think", "HubBriefing_lookAround1", "HubBriefing_lookAround2"], + [14599.6, 16774.6, 5.12644], + 220 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Waste Dump Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_WasteDump", + "Exile_Trader_WasteDump", + "GreekHead_A3_01", + ["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"], + [14608.4, 16901.3, 0], + 270 +] +call ExileClient_object_trader_create; + + +/////////////////////////////////////////////////////////////////////////// +// Aircraft Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_Aircraft", + "Exile_Trader_Aircraft", + "WhiteHead_17", + ["LHD_krajPaluby"], + [14596.5, 16752.9, 0.12644], + 133 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Aircraft Customs Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_AircraftCustoms", + "Exile_Trader_AircraftCustoms", + "GreekHead_A3_07", + ["HubStandingUC_idle1", "HubStandingUC_idle2", "HubStandingUC_idle3", "HubStandingUC_move1", "HubStandingUC_move2"], + [14635, 16790.3, 0], + 156.294 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Vehicle Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Vehicle", + "Exile_Trader_Vehicle", + "WhiteHead_11", + ["InBaseMoves_repairVehicleKnl", "InBaseMoves_repairVehiclePne"], + [14603.7, 16877.3, 0.00143433], + 90 +] +call ExileClient_object_trader_create; + +_carWreck = "Land_Wreck_CarDismantled_F" createVehicleLocal [0,0,0]; +_carWreck setDir 355.455; +_carWreck setPosATL [14605.6, 16877.3, 0.0208359]; + +/////////////////////////////////////////////////////////////////////////// +// Vehicle Customs Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_VehicleCustoms", + "Exile_Trader_VehicleCustoms", + "WhiteHead_11", + ["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"], + [14617.2, 16888.4, 0], + 269.96 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Guard 01 +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Guard_01", + "", + "WhiteHead_17", + ["InBaseMoves_patrolling1"], + [14564.9,16923.4,0.00146294], + 323.53 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Guard 02 +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Guard_02", + "", + "WhiteHead_03", + ["InBaseMoves_patrolling2"], + [14626.3,16834.6,4.72644], + 326.455 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Guard 03 +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Guard_03", + "", + "AfricanHead_03", + ["InBaseMoves_patrolling1"], + [14577.1,16793.1,3.75118], + 313.349 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Guard 01 +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Guard_02", + "", + "WhiteHead_03", + ["InBaseMoves_patrolling2"], + [2950.52,18195.3,4.93399], + 179.092 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Boat Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Boat", + "Exile_Trader_Boat", + "WhiteHead_17", + ["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"], + [2914.35,18192.9,8.51858], + 88.3346 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Vehicle Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Vehicle", + "Exile_Trader_Vehicle", + "WhiteHead_11", + ["InBaseMoves_repairVehicleKnl", "InBaseMoves_repairVehiclePne"], + [2980.19,18146.2,1.06391], + 222.352 +] +call ExileClient_object_trader_create; + +_carWreck = "Land_Wreck_CarDismantled_F" createVehicleLocal [0,0,0]; +_carWreck setDir 130.966; +_carWreck setPosATL [2978.76,18144.5,1.13293]; + +/////////////////////////////////////////////////////////////////////////// +// Western Waste Dump Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_WasteDump", + "Exile_Trader_WasteDump", + "GreekHead_A3_01", + ["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"], + [2984.05,18133.4,0.00107765], + 29.3856 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Fast Food Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Food", + "Exile_Trader_Food", + "GreekHead_A3_01", + ["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"], + [2979.87,18184.9,2.55185], + 89.2952 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Equipment Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Equipment", + "Exile_Trader_Equipment", + "WhiteHead_19", + ["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"], + [2980.7,18192.9,2.49853], + 130.535 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Armory Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Armory", + "Exile_Trader_Armory", + "PersianHead_A3_02", + ["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"], + [2986.43,18178.5,1.66267], + 296.855 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Western Guard 02 +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Guard_03", + "", + "AfricanHead_03", + ["InBaseMoves_patrolling1"], + [2993.2,18167,0.353821], + 109.888 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Fast Food Trader +/////////////////////////////////////////////////////////////////////////// +_cashDesk = "Land_CashDesk_F" createVehicleLocal [0,0,0]; +_cashDesk setDir 222.727; +_cashDesk setPosATL [23353.1, 24168, 0.16585]; + +_microwave = "Land_Microwave_01_F" createVehicleLocal [0,0,0]; +_cashDesk disableCollisionWith _microwave; +_microwave disableCollisionWith _cashDesk; +_microwave attachTo [_cashDesk, [-0.6, 0.2, 1.1]]; + +_ketchup = "Land_Ketchup_01_F" createVehicleLocal [0,0,0]; +_cashDesk disableCollisionWith _ketchup; +_ketchup disableCollisionWith _cashDesk; +_ketchup attachTo [_cashDesk, [-0.6, 0, 1.1]]; + +_mustard = "Land_Mustard_01_F" createVehicleLocal [0,0,0]; +_cashDesk disableCollisionWith _mustard; +_mustard disableCollisionWith _cashDesk; +_mustard attachTo [_cashDesk, [-0.5, -0.05, 1.1]]; + +_trader = +[ + "Exile_Trader_Food", + "Exile_Trader_Food", + "GreekHead_A3_01", + ["InBaseMoves_table1"], + [0.1, 0.5, 0.2], + 170, + _cashDesk +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Boat Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Boat", + "Exile_Trader_Boat", + "WhiteHead_17", + ["AidlPercMstpSnonWnonDnon_G01", "AidlPercMstpSnonWnonDnon_G02", "AidlPercMstpSnonWnonDnon_G03", "AidlPercMstpSnonWnonDnon_G04", "AidlPercMstpSnonWnonDnon_G05", "AidlPercMstpSnonWnonDnon_G06"], + [23296.6,24189.8,5.61213], + 96 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Vehicle Trader +/////////////////////////////////////////////////////////////////////////// + +_trader = +[ + "Exile_Trader_Vehicle", + "Exile_Trader_Vehicle", + "WhiteHead_11", + ["InBaseMoves_repairVehicleKnl", "InBaseMoves_repairVehiclePne"], + [23385.6,24191.6,0.00136566], + 123 +] +call ExileClient_object_trader_create; + +_carWreck = "Land_Wreck_CarDismantled_F" createVehicleLocal [0,0,0]; +_carWreck setDir 47.2728; +_carWreck setPosATL [23387.3, 24190.3, 0.05]; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Hardware Trader +/////////////////////////////////////////////////////////////////////////// +_workBench = "Land_Workbench_01_F" createVehicleLocal [0,0,0]; +_workBench setDir 279.545; +_workBench setPosATL [23371.6, 24188, 0.89873]; + +_trader = +[ + "Exile_Trader_Hardware", + "Exile_Trader_Hardware", + "WhiteHead_17", + ["InBaseMoves_sitHighUp1"], + [0, 0, -0.5], + 170, + _workBench +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Equipment Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_Equipment", + "Exile_Trader_Equipment", + "WhiteHead_19", + ["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"], + [23379.9, 24169.3, 0.199955], + 206 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Armory Trader +/////////////////////////////////////////////////////////////////////////// +_chair = "Land_CampingChair_V2_F" createVehicleLocal [0,0,0]; +_chair setDir 12.7272; +_chair setPosATL [23379.6, 24169.3, 4.56662]; + +_trader = +[ + "Exile_Trader_Armory", + "Exile_Trader_Armory", + "PersianHead_A3_02", + ["InBaseMoves_SittingRifle1"], + [0, -0.15, -0.45], + 180, + _chair +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Eastern Waste Dump Trader +/////////////////////////////////////////////////////////////////////////// +_trader = +[ + "Exile_Trader_WasteDump", + "Exile_Trader_WasteDump", + "GreekHead_A3_01", + ["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"], + [23336.6,24214.4,0.00115061], + 346 +] +call ExileClient_object_trader_create; + +/////////////////////////////////////////////////////////////////////////// +// Russian Roulette +/////////////////////////////////////////////////////////////////////////// +[ + "Exile_Trader_RussianRoulette", + "", + "GreekHead_A3_01", + ["HubStandingUA_move1", "HubStandingUA_move2", "HubStandingUA_idle1", "HubStandingUA_idle2", "HubStandingUA_idle3"], + [14622.6, 16820.1, 0.126], + 187.428 +] +call ExileClient_object_trader_create; diff --git a/Examples/Example Mission File/Exile.Altis/initServer.sqf b/Examples/Example Mission File/Exile.Altis/initServer.sqf new file mode 100644 index 0000000..78c1b70 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/initServer.sqf @@ -0,0 +1,442 @@ +private _objects = +[ + ["Land_CarService_F", [14618.7,16877.4,18.7724], [[0.750538,-0.660827,0],[0,0,1]], [false, false]], + ["Land_cargo_addon02_V2_F", [14563.7,16776.6,19.4699], [[0.723738,-0.690074,0],[0,0,1]], [false, false]], + ["Land_cargo_addon02_V1_F", [14619.2,16831.5,19.1926], [[-0.707107,0.707107,0],[0,0,1]], [false, false]], + ["Land_ScrapHeap_1_F", [14630.3,16882.7,17.7946], [[-8.74228e-008,-1,0],[0,0,1]], [false, false]], + ["Land_ScrapHeap_2_F", [14616,16869,18.1088], [[0.978803,-0.204804,0],[0,0,1]], [false, false]], + ["Land_PaperBox_open_full_F", [14569.5,16763.1,17.91], [[0.29692,0.954902,0],[0,0,1]], [false, false]], + ["Land_PaperBox_open_empty_F", [14563.8,16770.5,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_PaperBox_closed_F", [14563.1,16768.8,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Basket_F", [14583.6,16778.2,17.9318], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Cages_F", [14573.2,16797.4,17.9346], [[-0.73996,-0.672651,0],[0,0,1]], [false, false]], + ["Land_CratesPlastic_F", [14588.4,16777.7,17.9915], [[0.0713395,0.997452,0],[0,0,1]], [false, false]], + ["Land_CratesShabby_F", [14587.2,16789,17.9782], [[-0.701482,-0.712687,0],[0,0,1]], [false, false]], + ["Land_CratesWooden_F", [14575.3,16773.2,17.9774], [[0.67851,0.734591,0],[0,0,1]], [false, false]], + ["Land_Sack_F", [14583.1,16777.7,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Sacks_goods_F", [14592.5,16779.1,17.91], [[-0.458231,0.888833,0],[0,0,1]], [false, false]], + ["Land_Sacks_heap_F", [14590.7,16784.9,17.9559], [[0,1,0],[0,0,1]], [false, false]], + ["Land_StallWater_F", [14640.4,16843,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["CargoNet_01_barrels_F", [14589.9,16759.6,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Pallet_F", [14594.3,16763.7,18.004], [[-0.96384,0.266481,0],[0,0,1]], [false, false]], + ["Land_Pallet_vertical_F", [14581.9,16765.9,17.91], [[0.712694,0.701475,0],[0,0,1]], [false, false]], + ["Land_Pallets_F", [14580.6,16768.9,17.9838], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Pallets_stack_F", [14581.7,16767.2,17.91], [[0.228042,0.973651,0],[0,0,1]], [false, false]], + ["Land_ToolTrolley_02_F", [14586.3,16760.1,17.9957], [[-0.5865,0.80995,0],[0,0,1]], [false, false]], + ["Land_WeldingTrolley_01_F", [14587.8,16755.4,17.9847], [[-0.5,0.866025,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14581.9,16798.9,16.348], [[-0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14608,16825.5,16.3968], [[-0.506846,-0.862036,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14615.5,16772.5,17.91], [[0.7127,-0.701469,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14584.1,16880.5,17.8064], [[0.745264,0.666769,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14583.7,16745.7,17.8094], [[0.712694,0.701475,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14625.5,16880.5,17.8933], [[0.666768,0.745265,0],[0,0,1]], [false, false]], + ["Land_HBarrier_3_F", [14574.1,16796.2,17.7873], [[-0.624384,0.781117,0],[0,0,1]], [false, false]], + ["Land_HBarrier_3_F", [14601.2,16825.7,17.3493], [[-0.684318,0.729184,0],[0,0,1]], [false, false]], + ["Land_HBarrier_5_F", [14647.4,16807.7,17.9078], [[-0.936953,-0.349455,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14570.6,16788,16.327], [[0.899488,0.436945,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14601.1,16818.8,16.4033], [[0.931287,0.364287,0],[0,0,1]], [false, false]], + ["Exile_Sign_Aircraft", [14593.7,16753.7,17.8762], [[-0.690074,-0.723738,0],[0,0,1]], [false, false]], + ["Exile_Sign_Armory", [14567,16763.8,17.91], [[-0.690074,-0.723738,0],[0,0,1]], [false, false]], + ["Exile_Sign_Equipment", [14573.4,16758.3,17.8331], [[-0.0475771,-0.998868,0],[0,0,1]], [false, false]], + ["Exile_Sign_Food", [14591.4,16777.4,17.91], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Exile_Sign_SpecialOperations", [14565.6,16774,17.6937], [[-0.750526,0.660841,0],[0,0,1]], [false, false]], + ["Exile_Sign_Hardware", [14588.9,16756.8,17.8212], [[0.984808,-0.173646,0],[0,0,1]], [false, false]], + ["Exile_Sign_Vehicles", [14610.1,16872.5,18.1622], [[0.745267,-0.666767,0],[0,0,1]], [false, false]], + ["Land_CampingTable_F", [14567.6,16766.2,17.91], [[0.0554972,0.998459,0],[0,0,1]], [false, false]], + ["Land_Icebox_F", [14589.6,16776.7,17.91], [[0.660837,0.75053,0],[0,0,1]], [false, false]], + ["Land_Metal_rack_Tall_F", [14575.7,16759.5,17.9909], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_Metal_rack_F", [14564.1,16772.7,17.9716], [[-0.766044,0.642788,0],[0,0,1]], [false, false]], + ["Fridge_01_closed_F", [14588.9,16775,17.9246], [[0.718236,-0.6958,0],[0,0,1]], [false, false]], + ["Land_WaterCooler_01_new_F", [14584,16777.7,17.91], [[-0.66084,-0.750526,0],[0,0,1]], [false, false]], + ["MapBoard_altis_F", [14569.3,16776.3,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_WoodenTable_large_F", [14567.5,16775.3,17.9819], [[-0.750538,-0.660827,0],[0,0,1]], [false, false]], + ["Land_ShelvesMetal_F", [14593.7,16780.7,17.91], [[0.701469,-0.7127,0],[0,0,1]], [false, false]], + ["Land_ShelvesMetal_F", [14592.3,16782.2,17.91], [[0.701469,-0.7127,0],[0,0,1]], [false, false]], + ["Land_Pallet_MilBoxes_F", [14565.7,16767.3,17.91], [[0.605613,-0.795759,0],[0,0,1]], [false, false]], + ["Land_OfficeChair_01_F", [14598.3,16776.1,22.9791], [[0.266473,0.963842,0],[0,0,1]], [false, false]], + ["Land_OfficeCabinet_01_F", [14600.3,16776.2,22.9749], [[0.660835,0.750531,0],[0,0,1]], [false, false]], + ["OfficeTable_01_new_F", [14597.7,16775.2,22.9468], [[-0.678506,-0.734595,0],[0,0,1]], [false, false]], + ["MapBoard_seismic_F", [14602.1,16773.7,23.005], [[0.980397,0.197035,0],[0,0,1]], [false, false]], + ["Land_Document_01_F", [14597.9,16775,23.8386], [[-0.755751,-0.654859,0],[0,0,1]], [false, false]], + ["Land_FlatTV_01_F", [14594,16774,23.9797], [[-0.678506,0.734595,0],[0,0,1]], [false, false]], + ["Land_GamingSet_01_controller_F", [14594.1,16773.7,23.9649], [[-0.857984,0.513676,0],[0,0,1]], [false, false]], + ["Land_GamingSet_01_console_F", [14594,16773.9,23.6192], [[-0.745267,0.666767,0],[0,0,1]], [false, false]], + ["Land_GamingSet_01_camera_F", [14594.2,16774,23.9755], [[-0.701469,0.7127,0],[0,0,1]], [false, false]], + ["Land_Laptop_device_F", [14597.4,16775.3,23.8317], [[0.828149,0.560507,0],[0,0,1]], [false, false]], + ["Land_ShelvesWooden_F", [14594.1,16773.9,22.9312], [[0.750531,0.660835,0],[0,0,1]], [false, false]], + ["Target_PopUp3_Moving_90deg_Acc2_NoPop_F", [14575,16771.4,17.8809], [[0.274112,0.961698,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_04_F", [14573.5,16758.3,17.91], [[-0.65486,-0.755751,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_02_F", [14570.4,16760.9,17.91], [[-0.527223,0.849727,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_03_F", [14576,16760.6,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_01_F", [14570.7,16762.6,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_05_F", [14623.8,16912.5,18.1785], [[0,1,0],[0,0,1]], [false, false]], + ["Land_DieselGroundPowerUnit_01_F", [14619.6,16885.6,17.8383], [[-0.243463,-0.96991,0],[0,0,1]], [false, false]], + ["Land_JetEngineStarter_01_F", [14591.7,16755.2,17.834], [[-0.701469,-0.7127,0],[0,0,1]], [false, false]], + ["CargoNet_01_barrels_F", [14612,16875.3,17.8549], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Shed_Small_F", [14601.9,16918.3,18.0289], [[0.7127,-0.701469,0],[0,0,1]], [false, false]], + ["Land_Factory_Conv1_Main_F", [14615.2,16905.2,18.3696], [[-0.690074,-0.723738,0],[0,0,1]], [false, false]], + ["Land_FishingGear_01_F", [14621.9,16912.1,17.9848], [[0,1,0],[0,0,1]], [false, false]], + ["Land_FishingGear_02_F", [14622.3,16915.5,18.0652], [[-0.836936,-0.547301,0],[0,0,1]], [false, false]], + ["Land_Garbage_square3_F", [14627.8,16914.7,18.1934], [[0,1,0],[0,0,1]], [false, false]], + ["Land_GarbageBags_F", [14622.5,16909.9,17.979], [[0,1,0],[0,0,1]], [false, false]], + ["Land_GarbagePallet_F", [14625.1,16910.1,18.1012], [[0,1,0],[0,0,1]], [false, false]], + ["Land_GarbageWashingMachine_F", [14626.6,16912.8,18.2042], [[0,1,0],[0,0,1]], [false, false]], + ["Land_JunkPile_F", [14619.5,16914.1,17.9703], [[-0.243463,-0.96991,0],[0,0,1]], [false, false]], + ["Land_Tyres_F", [14625,16914.9,18.1344], [[-0.989821,0.142318,0],[0,0,1]], [false, false]], + ["Land_GarbageContainer_open_F", [14611.5,16911.7,17.8476], [[-0.786051,0.618162,0],[0,0,1]], [false, false]], + ["Land_GarbageContainer_closed_F", [14607.6,16908.4,17.8081], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Wreck_Car3_F", [14626.6,16904.6,18.0411], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Wreck_Offroad_F", [14632.2,16918.2,18.0913], [[-0.866025,0.5,0],[0,0,1]], [false, false]], + ["Land_Wreck_Hunter_F", [14625,16923.2,18.2756], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Cargo_HQ_V2_F", [14531.5,16758.9,18.5278], [[0.6958,-0.718235,0],[0,0,1]], [false, false]], + ["Land_Cargo_Patrol_V2_F", [14602.6,16702.8,18.07], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Exile_Sign_WasteDump", [14609.2,16898.9,18.0966], [[0.690079,0.723734,0],[0,0,1]], [false, false]], + ["Exile_Sign_Office_Small", [14588.1,16772.5,17.3235], [[0.707107,0.707107,0],[0,0,1]], [false, false]], + ["Exile_Sign_Office", [14596.3,16776.3,22.9992], [[-0.672664,0.739948,0],[0,0,1]], [false, false]], + ["Exile_Sign_Office_Small", [14592.6,16773.2,21.9835], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Exile_Sign_Aircraft_Small", [14595.9,16765.1,17.303], [[0.745267,-0.666767,0],[0,0,1]], [false, false]], + ["Exile_Cosmetic_MG", [14568,16774.8,18.0358], [[-0.999717,0.0238043,0],[0,0,1]], [false, false]], + ["Exile_Cosmetic_UAV", [14567.2,16775,18.8145], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CampingChair_V2_F", [14567.2,16766.9,17.9948], [[-0.755751,0.654859,0],[0,0,1]], [false, false]], + ["CargoNet_01_barrels_F", [14572.6,16773.2,17.91], [[-0.540637,0.841256,0],[0,0,1]], [false, false]], + ["Land_PaperBox_closed_F", [14573.8,16772,17.91], [[-0.6958,0.718235,0],[0,0,1]], [false, false]], + ["Land_PaperBox_open_full_F", [14579.8,16765.3,17.91], [[-0.776145,0.630554,0],[0,0,1]], [false, false]], + ["Land_PaperBox_open_empty_F", [14578.4,16766.9,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CanisterPlastic_F", [14578.4,16765.7,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Suitcase_F", [14570.1,16763.9,18.0041], [[0.228042,0.973651,0],[0,0,1]], [false, false]], + ["Land_Bricks_V1_F", [14583.1,16751.1,17.91], [[-0.739948,0.672664,0],[0,0,1]], [false, false]], + ["Land_Bricks_V2_F", [14582.1,16752.1,17.91], [[0.666769,0.745264,0],[0,0,1]], [false, false]], + ["Land_Bricks_V3_F", [14581.1,16753.2,17.91], [[-0.849727,0.527223,0],[0,0,1]], [false, false]], + ["Land_Bricks_V4_F", [14580.1,16754.1,17.91], [[-0.776145,0.630554,0],[0,0,1]], [false, false]], + ["Land_Pallets_stack_F", [14583.7,16753,17.91], [[0.436945,0.899488,0],[0,0,1]], [false, false]], + ["Land_ToolTrolley_01_F", [14577.9,16756.1,18.0186], [[0.718236,-0.6958,0],[0,0,1]], [false, false]], + ["Land_GasTank_02_F", [14579.1,16754.6,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_WheelCart_F", [14583.9,16761.7,18.0116], [[0.776145,-0.630554,0],[0,0,1]], [false, false]], + ["Land_WoodenBox_F", [14581.8,16754.2,17.91], [[0.624376,0.781124,0],[0,0,1]], [false, false]], + ["Land_MobileLandingPlatform_01_F", [14597.3,16744.1,17.91], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Tyre_F", [14604.2,16879.2,17.8345], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Tyre_F", [14604.3,16875.8,17.8348], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Tyre_F", [14607.1,16879,17.8408], [[0.408185,0.912899,0],[0,0,1]], [false, false]], + ["Land_Tyre_F", [14607.2,16876.2,17.8425], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Tyres_F", [14610.8,16871.7,17.7035], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CanisterOil_F", [14604.4,16878.3,17.8351], [[-0.973651,0.228045,0],[0,0,1]], [false, false]], + ["Land_CarBattery_02_F", [14603.8,16878.7,17.8335], [[-0.493107,0.869969,0],[0,0,1]], [false, false]], + ["Exile_Sign_VehicleCustoms", [14619.4,16888.2,17.7657], [[0.999497,-0.0317282,0],[0,0,1]], [false, false]], + ["Oil_Spill_F", [14616.5,16887.6,17.8505], [[0,1,0],[0,0,1]], [false, false]], + ["Land_KartTrolly_01_F", [14620.2,16889.6,17.8613], [[0.599278,0.800541,0],[0,0,1]], [false, false]], + ["Land_BucketNavy_F", [14619.1,16888.6,18.6619], [[-0.96991,0.243463,0],[0,0,1]], [false, false]], + ["Land_Bucket_painted_F", [14619.1,16889.1,18.6544], [[0,1,0],[0,0,1]], [false, false]], + ["Land_ButaneCanister_F", [14618.9,16889,18.6736], [[0.971813,-0.235753,0],[0,0,1]], [false, false]], + ["Land_CanisterFuel_F", [14616.8,16887.3,17.8632], [[-0.853878,0.520473,0],[0,0,1]], [false, false]], + ["Land_CanisterPlastic_F", [14619,16889.5,17.8661], [[0.0950563,0.995472,0],[0,0,1]], [false, false]], + ["Land_CarBattery_02_F", [14618.8,16887.6,18.6544], [[-0.513676,0.857984,0],[0,0,1]], [false, false]], + ["Land_CarBattery_01_F", [14619.1,16887.7,18.6718], [[0.975431,-0.220306,0],[0,0,1]], [false, false]], + ["Land_CampingTable_F", [14618.9,16888.3,17.8579], [[0.997452,-0.071339,0],[0,0,1]], [false, false]], + ["Land_CampingChair_V1_folded_F", [14618.8,16886.3,17.8601], [[0.76092,0.648845,0],[0,0,1]], [false, false]], + ["Land_CampingChair_V1_F", [14617.8,16886.5,17.8559], [[0.281739,-0.959491,0],[0,0,1]], [false, false]], + ["Land_GasTank_01_yellow_F", [14620.2,16889.6,17.9821], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Garbage_square5_F", [14607.2,16899.9,17.8199], [[0,1,0],[0,0,1]], [false, false]], + ["Land_GarbageBarrel_01_F", [14610,16902.2,17.83], [[0,1,0],[0,0,1]], [false, false]], + ["Land_WheelieBin_01_F", [14608.6,16899.1,17.8244], [[0.766044,0.642788,0],[0,0,1]], [false, false]], + ["Land_cargo_house_slum_ruins_F", [14629.2,16910.5,18.1699], [[-0.866025,0.5,0],[0,0,1]], [false, false]], + ["Exile_Sign_TraderCity", [14554.8,16906.4,17.6393], [[0.739948,-0.672664,0],[0,0,1]], [false, false]], + ["Land_FuelStation_Build_F", [14624.3,16894.8,17.8827], [[0.952516,0.304487,0],[0,0,1]], [false, false]], + ["Land_FuelStation_Sign_F", [14621.4,16898.1,17.8708], [[0,1,0],[0,0,1]], [false, false]], + ["Land_FuelStation_Feed_F", [14619.2,16895.9,17.8569], [[-0.96991,-0.243463,0],[0,0,1]], [false, false]], + ["Exile_Sign_SpecialOperations_Small", [14573,16774.7,17.3007], [[-0.729183,-0.684318,0],[0,0,1]], [false, false]], + ["Exile_Sign_Equipment_Small", [14579.5,16768.1,17.3113], [[-0.701469,-0.7127,0],[0,0,1]], [false, false]], + ["Exile_Sign_Armory_Small", [14576.5,16771.2,17.3145], [[-0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Exile_Sign_Hardware_Small", [14584.4,16763.2,17.3163], [[-0.684318,-0.729184,0],[0,0,1]], [false, false]], + ["Land_HBarrier_3_F", [14564.3,16928.2,16.9611], [[-0.0792423,0.996855,0],[0,0,1]], [false, false]], + ["Land_HBarrier_5_F", [14569.5,16924.4,17.0527], [[-0.881452,-0.472274,0],[0,0,1]], [false, false]], + ["Land_HBarrier_Big_F", [14561.6,16922.1,16.1608], [[0.695799,0.718237,0],[0,0,1]], [false, false]], + ["Land_HBarrier_1_F", [14560.4,16927.6,16.7264], [[0.684316,0.729186,0],[0,0,1]], [false, false]], + ["Land_BagFence_Round_F", [14567.3,16928,17.4047], [[-0.422618,-0.906308,0],[0,0,1]], [false, false]], + ["Land_BagFence_Short_F", [14561.8,16928.2,17.1708], [[0.258819,-0.965926,0],[0,0,1]], [false, false]], + ["Land_BagFence_Long_F", [14568.6,16921.7,17.3641], [[0.5473,-0.836936,0],[0,0,1]], [false, false]], + ["Land_CampingTable_small_F", [14567.9,16923.5,17.4895], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CampingChair_V1_F", [14567.8,16925,17.458], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CampingChair_V1_folded_F", [14567.4,16922.3,17.5057], [[0,1,0],[0,0,1]], [false, false]], + ["Land_TentDome_F", [14562.4,16925.7,17.279], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Sleeping_bag_F", [14566.6,16925.9,17.4279], [[0.444066,0.895994,0],[0,0,1]], [false, false]], + ["Land_WoodPile_F", [14562.7,16923.1,17.3408], [[-0.712699,0.701469,0],[0,0,1]], [false, false]], + ["Land_Sleeping_bag_folded_F", [14567.1,16926.9,17.414], [[0,1,0],[0,0,1]], [false, false]], + ["Exile_Sign_AircraftCustoms", [14634.8,16792.4,17.7303], [[-0.712699,0.701469,0],[0,0,1]], [false, false]], + ["Exile_Sign_AircraftCustoms_Small", [14633.2,16800.4,17.2345], [[0.599275,-0.800543,0],[0,0,1]], [false, false]], + ["Exile_Sign_AircraftCustoms_Small", [14614.6,16799.5,17.3016], [[0.718238,0.695798,0],[0,0,1]], [false, false]], + ["Land_DischargeStick_01_F", [14636,16792.6,18.786], [[0.809949,0.586501,0],[0,0,1]], [false, false]], + ["Land_RotorCoversBag_01_F", [14635.5,16792.5,17.9643], [[-0.37902,0.925388,0],[0,0,1]], [false, false]], + ["Land_Bucket_clean_F", [14635.3,16792.2,18.8025], [[0.047582,0.998867,0],[0,0,1]], [false, false]], + ["Land_Bucket_painted_F", [14635.5,16792.6,18.7872], [[0,1,0],[0,0,1]], [false, false]], + ["Land_FireExtinguisher_F", [14634.8,16792,18.0244], [[0,1,0],[0,0,1]], [false, false]], + ["Land_FoodContainer_01_F", [14636.3,16793.2,18.0186], [[0,1,0],[0,0,1]], [false, false]], + ["Land_SatellitePhone_F", [14636.3,16793.1,18.7921], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CampingChair_V1_F", [14634.3,16791.2,18.0009], [[-0.472274,0.881452,0],[0,0,1]], [false, false]], + ["Land_CampingTable_F", [14635.8,16792.6,17.9868], [[0.65486,-0.755751,0],[0,0,1]], [false, false]], + ["Land_AirIntakePlug_01_F", [14633.9,16790.4,18.015], [[-0.592913,0.805266,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_stripes_F", [14576.7,16799.3,17.8796], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_stripes_F", [14570.7,16794.1,17.8947], [[0.750526,-0.66084,0],[0,0,1]], [false, false]], + ["Land_HBarrier_5_F", [14643.4,16803.9,17.4603], [[-0.00792382,0.999969,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_stripes_F", [14629.2,16793,17.8947], [[0.7127,-0.701469,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_stripes_F", [14602.7,16766.3,17.8947], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_stripes_F", [14588.2,16750.6,17.8947], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_Pier_Box_F", [14673.6,16798.4,22.6626], [[0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_Pier_Box_F", [14577.1,16723.9,22.6626], [[-0.707107,-0.707107,0],[0,0,1]], [false, false]], + ["Land_Bunker_F", [14665.2,16788.9,18.5132], [[0.707107,0.707107,0],[0,0,1]], [false, false]], + ["Land_Cargo40_military_green_F", [14584.4,16715.4,17.8215], [[-0.701469,0.7127,0],[0,0,1]], [false, false]], + ["Land_Cargo20_grey_F", [14582.7,16707.1,17.8627], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Cargo10_grey_F", [14576,16704.8,17.8678], [[-0.952518,0.304482,0],[0,0,1]], [false, false]], + ["Land_CampingTable_F", [2987.45,18180.5,1.21957], [[0.909632,0.415416,0],[0,0,1]], [false, false]], + ["Land_ToolTrolley_01_F", [2980.77,18144.4,1.13856], [[-0.781129,0.62437,0],[0,0,1]], [false, false]], + ["CargoNet_01_barrels_F", [2987.87,18182.6,1.26298], [[0,1,0],[0,0,1]], [false, false]], + ["Land_ShelvesMetal_F", [2979.66,18187.6,1.2162], [[-0.997987,-0.0634173,0],[0,0,1]], [false, false]], + ["Land_FishingGear_02_F", [2980.34,18124.5,1.2076], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Basket_F", [2979.97,18184,1.26116], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CratesWooden_F", [2992.38,18156.2,1.11772], [[-0.371659,0.928369,0],[0,0,1]], [false, false]], + ["Land_Sacks_goods_F", [2979.18,18186,1.15971], [[0.999213,-0.0396557,0],[0,0,1]], [false, false]], + ["Land_Sacks_heap_F", [2985.09,18169.8,1.16568], [[-0.055508,0.998458,0],[0,0,1]], [false, false]], + ["Land_Cages_F", [2989.92,18190.5,1.14397], [[-0.0634176,0.997987,0],[0,0,1]], [false, false]], + ["Land_GarbageContainer_closed_F", [2997.02,18195.1,1.12749], [[-0.999477,0.0323354,0],[0,0,1]], [false, false]], + ["Land_CratesPlastic_F", [2979.2,18176.3,1.27247], [[0.690079,0.723734,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_04_F", [2980.07,18194.2,1.24447], [[-0.65486,-0.755751,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_02_F", [2979.48,18192.2,1.35571], [[-0.527223,0.849727,0],[0,0,1]], [false, false]], + ["Land_GarbagePallet_F", [2978.46,18135.3,1.14171], [[0.356886,0.934148,0],[0,0,1]], [false, false]], + ["Land_Cargo10_orange_F", [2997.76,18202,1.13367], [[0.356886,0.934148,0],[0,0,1]], [false, false]], + ["Land_LampHarbour_F", [2972.09,18193.3,1.14308], [[0.997987,-0.0634245,0],[0,0,1]], [false, false]], + ["MapBoard_altis_F", [2988.21,18186.6,1.23654], [[0.869969,-0.493107,0],[0,0,1]], [false, false]], + ["Land_GarbageContainer_closed_F", [2980.93,18135.9,1.13155], [[0.996195,0.0871558,0],[0,0,1]], [false, false]], + ["Land_Tyres_F", [2982.2,18127.5,1.54287], [[0.805271,0.592907,0],[0,0,1]], [false, false]], + ["Land_JunkPile_F", [2994.1,18132.6,2.20519], [[-0.0317247,-0.999497,0],[0,0,1]], [false, false]], + ["Land_GarbageWashingMachine_F", [2988.89,18127,2.03828], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Wreck_Car_F", [2987.36,18132.2,1.48652], [[0.998458,-0.0555043,0],[0,0,1]], [false, false]], + ["Land_Pier_F", [2993.46,18185.8,-1.13638], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]], + ["Land_Pier_F", [2994.03,18144.2,-1.15465], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]], + ["Land_Pier_wall_F", [2952.43,18207.7,-1.17864], [[0.00793015,0.999969,0],[0,0,1]], [false, false]], + ["Land_i_Shed_Ind_F", [2987.11,18179.7,1.23635], [[-0.999968,-0.00794115,0],[0,0,1]], [false, false]], + ["Land_Pier_F", [2980.88,18182.9,-1.1319], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]], + ["Land_Pier_F", [2979.73,18141.3,-1.14254], [[0.999641,-0.0267981,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [2981.36,18148.3,1.14752], [[0.047593,0.998867,0],[0,0,1]], [false, false]], + ["Land_ToolTrolley_02_F", [2983.3,18147.4,1.12305], [[-0.936947,0.349472,0],[0,0,1]], [false, false]], + ["Land_Box_AmmoOld_F", [2988.01,18178.4,1.22718], [[0.479248,0.87768,0],[0,0,1]], [false, false]], + ["Land_Cargo20_red_F", [2985.06,18150.5,1.04326], [[-0.916104,0.400941,0],[0,0,1]], [false, false]], + ["Land_ShelvesMetal_F", [2979.71,18182.9,1.24149], [[-0.999968,0.0079407,0],[0,0,1]], [false, false]], + ["Land_WaterCooler_01_new_F", [2979.31,18177.4,1.27611], [[-0.999497,0.0317244,0],[0,0,1]], [false, false]], + ["Land_CrabCages_F", [2981.58,18197.4,1.18942], [[0.023804,-0.999717,0],[0,0,1]], [false, false]], + ["Land_FishingGear_01_F", [2973.53,18184.7,1.18309], [[0,1,0],[0,0,1]], [false, false]], + ["Land_FishingGear_02_F", [2981.87,18133,1.12165], [[-0.965926,0.258819,0],[0,0,1]], [false, false]], + ["Land_CratesShabby_F", [2986.12,18166.7,1.16942], [[0.479243,-0.877682,0],[0,0,1]], [false, false]], + ["Land_PaperBox_open_full_F", [2988.17,18176.8,1.2596], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Pallet_MilBoxes_F", [2986.39,18176.6,1.24124], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CratesWooden_F", [2990,18166.8,1.09873], [[-0.922356,-0.386341,0],[0,0,1]], [false, false]], + ["Land_FishingGear_01_F", [2959.63,18196.6,1.11124], [[0.928369,-0.371659,0],[0,0,1]], [false, false]], + ["Land_Sack_F", [2980.24,18186.9,1.13722], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CratesShabby_F", [2979.79,18181.2,1.07005], [[0.624375,0.781125,0],[0,0,1]], [false, false]], + ["Land_Sacks_heap_F", [2979.31,18178.9,1.26949], [[-0.6958,0.718235,0],[0,0,1]], [false, false]], + ["Land_GarbageBarrel_01_F", [2983.95,18128.1,1.58736], [[0.729186,0.684316,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_03_F", [2982.09,18194.6,1.21513], [[0.922356,-0.386341,0],[0,0,1]], [false, false]], + ["Land_LampHarbour_F", [2989.9,18173.4,1.20945], [[0.999213,0.0396556,0],[0,0,1]], [false, false]], + ["Land_LampHarbour_F", [2971.13,18156.8,1.29263], [[0.999969,-0.00793239,0],[0,0,1]], [false, false]], + ["Land_LampHarbour_F", [2994.19,18129,2.5332], [[-0.0396613,0.999213,0],[0,0,1]], [false, false]], + ["Land_LampHalogen_F", [2984.64,18196.4,1.03341], [[0.999213,-0.0396574,0],[0,0,1]], [false, false]], + ["Land_Metal_wooden_rack_F", [2987.86,18188.8,1.19516], [[-0.999874,0.0158642,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [2986.77,18185.7,1.21864], [[-0.899489,0.436943,0],[0,0,1]], [false, false]], + ["Land_Wreck_Car_F", [23338.3,24207.2,3.82129], [[-0.888833,-0.458231,0],[0,0,1]], [false, false]], + ["Land_GarbageContainer_closed_F", [23340.2,24212.2,4.38752], [[-0.989821,0.142318,0],[0,0,1]], [false, false]], + ["Land_Tyres_F", [23335.2,24203.3,4.14816], [[0.999717,-0.0237988,0],[0,0,1]], [false, false]], + ["Land_JunkPile_F", [23338.1,24210.1,4.12724], [[-0.995471,0.0950635,0],[0,0,1]], [false, false]], + ["Land_PortableLight_single_F", [23374.3,24181.1,4.86591], [[0.928369,-0.371659,0],[0,0,1]], [false, false]], + ["Land_WeldingTrolley_01_F", [23380.5,24185.4,4.86897], [[-0.988662,0.150156,0],[0,0,1]], [false, false]], + ["Land_Workbench_01_F", [23375.1,24185.9,4.84018], [[0.983398,-0.181463,0],[0,0,1]], [false, false]], + ["Land_i_Shop_01_V1_F", [23377.8,24167.7,3.79129], [[0.885175,-0.465259,0],[0,0,1]], [false, false]], + ["Land_City_4m_F", [23362.5,24196,4.09203], [[-0.479243,-0.877682,0],[0,0,1]], [false, false]], + ["Land_City_4m_F", [23369.7,24192.3,3.98921], [[0.465264,0.885172,0],[0,0,1]], [false, false]], + ["Land_City_Gate_F", [23366.1,24194.1,4.07551], [[0.453482,0.891266,0],[0,0,1]], [false, false]], + ["Land_City_8m_F", [23378.9,24175.8,3.83947], [[0.936953,-0.349455,0],[0,0,1]], [false, false]], + ["Land_Kiosk_redburger_F", [23353.2,24168.5,4.4989], [[0.666767,0.745267,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23345.2,24166.1,4.31775], [[-0.134453,0.99092,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23358.7,24163.5,4.26188], [[0.654861,0.755749,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23345.9,24160.5,4.37509], [[0.654861,0.755749,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23350.9,24161.3,4.46815], [[0.444066,0.895994,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23353.3,24157.2,4.54655], [[0.197035,0.980397,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23343.4,24158.5,4.24294], [[0,1,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23360.9,24162.5,4.01765], [[0,1,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23357.6,24163.8,4.33318], [[0.415416,0.909632,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23345.1,24161.3,4.33882], [[0.371663,0.928368,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23346.4,24166.2,4.35115], [[0.181463,-0.983398,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23346.7,24159.8,4.4097], [[-0.553915,-0.832573,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23354.3,24158.9,4.57206], [[0.729184,-0.684318,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23349.9,24161.8,4.44282], [[0.319561,0.947566,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23350.5,24158.9,4.39606], [[-0.922356,0.386341,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23353,24156.2,4.46134], [[-0.999968,0.0079407,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23344.2,24166.5,4.30126], [[0.349463,0.93695,0],[0,0,1]], [false, false]], + ["Land_Sunshade_04_F", [23345.3,24165.6,4.30477], [[0,1,0],[0,0,1]], [false, false]], + ["Land_Sunshade_04_F", [23354.2,24157.4,4.57845], [[-0,1,0],[0,0,1]], [false, false]], + ["Land_Sunshade_04_F", [23345.2,24160.1,4.36116], [[0,1,0],[0,0,1]], [false, false]], + ["Land_CarService_F", [23376.2,24188.7,4.36585], [[-0.165822,-0.986156,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23366.3,24170.3,4.11357], [[0.654861,0.755749,0],[0,0,1]], [false, false]], + ["Land_RattanTable_01_F", [23362,24173.5,4.2566], [[0.654861,0.755749,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23364.9,24168.6,3.98596], [[0.415416,0.909632,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23362.8,24173.7,4.08876], [[0.415416,0.909632,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23361,24173.6,4.28424], [[0.415416,0.909632,0],[0,0,1]], [false, false]], + ["Land_ChairPlastic_F", [23367.3,24169.5,4.07351], [[-0.895991,-0.444072,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23368,24174.1,4.19138], [[-0.952359,0.30498,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23342.6,24215.3,4.57967], [[0.800849,0.598866,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23382.2,24190.8,4.00731], [[0.259315,0.965793,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23341.3,24184.7,4.59291], [[0.000515055,1,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23361.5,24197.5,4.18664], [[0.750871,0.660449,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23306.9,24188.8,2.65756], [[0.0718536,0.997415,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23396.1,24199.9,5.02106], [[-0.50641,0.862293,0],[0,0,1]], [false, false]], + ["Land_LampStreet_small_F", [23320.3,24187,2.64213], [[0.0243121,0.999704,0],[0,0,1]], [false, false]], + ["Land_Wreck_Offroad2_F", [23368.4,24185.1,3.95543], [[-0.220306,-0.975431,0],[0,0,1]], [false, false]], + ["Land_WoodenCart_F", [23342.5,24200.2,4.45953], [[0.0475834,0.998867,0],[0,0,1]], [false, false]], + ["Land_FieldToilet_F", [23341.8,24174.2,4.34077], [[-0.64885,0.760916,0],[0,0,1]], [false, false]], + ["Land_ToolTrolley_02_F", [23379.4,24180.5,4.85657], [[0.892443,0.451161,0],[0,0,1]], [false, false]], + ["Land_Pallet_MilBoxes_F", [23378.9,24166.1,7.93425], [[0.605609,0.795762,0],[0,0,1]], [false, false]], + ["Land_PaperBox_open_full_F", [23376.9,24167.2,7.94106], [[0.547297,0.836938,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [23369.5,24192,3.95235], [[0.458228,0.888835,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [23365.1,24192.5,4.03231], [[0.479248,0.87768,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [23362.8,24195.4,4.0013], [[0.486197,0.873849,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [23378.9,24177.3,3.77195], [[0.939693,-0.34202,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [23377.8,24174.1,3.79705], [[0.934148,-0.356885,0],[0,0,1]], [false, false]], + ["Land_WaterCooler_01_new_F", [23356,24169.5,4.60965], [[-0.642788,-0.766044,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_03_F", [23378.9,24165.8,4.03437], [[-0.486198,0.873849,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_04_F", [23380.8,24165.3,4.05406], [[-0.65486,-0.755751,0],[0,0,1]], [false, false]], + ["Land_LuggageHeap_02_F", [23378,24171.1,4.04114], [[-0.472274,0.881452,0],[0,0,1]], [false, false]], + ["Land_Cargo20_military_green_F", [23347.6,24199.7,4.29847], [[0.0158654,0.999874,0],[0,0,1]], [false, false]], + ["Exile_Sign_TraderCity", [2989.89,18177.6,2.61365], [[-0.999874,-0.0158642,0],[0,0,1]], [false, false]], + ["Land_Factory_Conv1_Main_F", [2986.77,18130.1,2.21669], [[0.999874,0.0158662,0],[0,0,1]], [false, false]], + ["Land_cmp_Shed_F", [2974.8,18129.5,1.13956], [[0.998867,-0.0475825,0],[0,0,1]], [false, false]], + ["Land_cmp_Hopper_F", [2963.39,18129.7,0.0900025], [[0.0237981,0.999717,0],[0,0,1]], [false, false]], + ["Land_Tank_rust_F", [2976.74,18173.8,1.16096], [[-0.999717,0.0238043,0],[0,0,1]], [false, false]], + ["Land_Wreck_Traw_F", [2888.95,18107.6,-6.03909], [[-0.723738,-0.690074,0],[0,0,1]], [false, false]], + ["Land_Wreck_Traw2_F", [2912.17,18124,-4.86378], [[-0.981929,-0.189249,0],[0,0,1]], [false, false]], + ["Land_Cargo40_grey_F", [2999.03,18191.5,1.14093], [[0.999969,0.00793242,0],[0,0,1]], [false, false]], + ["Land_Cargo40_military_green_F", [2999.4,18179.2,1.1606], [[0.997987,-0.0634245,0],[0,0,1]], [false, false]], + ["Land_Cargo40_white_F", [2989.6,18163,1.04851], [[0.909632,0.415416,0],[0,0,1]], [false, false]], + ["Land_Cargo20_grey_F", [2994.85,18186.4,1.14158], [[-0.952518,0.304482,0],[0,0,1]], [false, false]], + ["Land_Cargo20_military_green_F", [2990.53,18177.6,1.07952], [[-0.999968,-0.00794115,0],[0,0,1]], [false, false]], + ["Land_Cargo20_red_F", [2986.75,18155.3,1.11224], [[-0.00794125,-0.999968,0],[0,0,1]], [false, false]], + ["Land_Cargo10_grey_F", [2997.12,18187.6,3.70366], [[0.173648,0.984808,0],[0,0,1]], [false, false]], + ["Land_Pier_Box_F", [2921.94,18197.2,1.15006], [[0.0158659,0.999874,0],[0,0,1]], [false, false]], + ["Land_Sea_Wall_F", [2989.66,18207.7,-1.04307], [[0.0158643,-0.999874,0],[0,0,1]], [false, false]], + ["Land_PierLadder_F", [2969.61,18152.9,-1.73874], [[0.998867,0.0475807,0],[0,0,1]], [false, false]], + ["Exile_Sign_WasteDump", [2983.77,18132.1,1.31246], [[-0.197041,-0.980395,0],[0,0,1]], [false, false]], + ["Exile_Sign_Vehicles", [2981.34,18148.4,1.77985], [[0.0475819,0.998867,0],[0,0,1]], [false, false]], + ["Land_Lighthouse_small_F", [2916.05,18200.4,1.12379], [[-0.999874,0.0158642,0],[0,0,1]], [false, false]], + ["Exile_Sign_Boat", [2912.81,18194.8,0.945447], [[-0.999717,0.0238043,0],[0,0,1]], [false, false]], + ["Exile_Sign_Boat_Small", [2971.94,18194.1,0.204013], [[-0.936953,-0.349455,0],[0,0,1]], [false, false]], + ["Exile_Sign_Armory", [2988.82,18179.1,1.02696], [[0.999717,-0.0237971,0],[0,0,1]], [false, false]], + ["Exile_Sign_Equipment", [2980.48,18195.6,0.997162], [[0,1,0],[0,0,1]], [false, false]], + ["Exile_Sign_Food", [2978.52,18178.6,1.16662], [[-1,1.19249e-008,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [2977.99,18148.5,1.14459], [[0.047593,0.998867,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [2974.63,18148.7,1.14333], [[0.047593,0.998867,0],[0,0,1]], [false, false]], + ["Land_CncBarrier_F", [2971.26,18148.8,1.14587], [[0.047593,0.998867,0],[0,0,1]], [false, false]], + ["Land_BagFence_Round_F", [2994.5,18166,1.1572], [[-0.877682,0.479243,0],[0,0,1]], [false, false]], + ["Land_HBarrier_1_F", [2992.75,18164.9,1.06276], [[0.980397,0.197035,0],[0,0,1]], [false, false]], + ["Land_HBarrier_1_F", [2995.03,18167.9,1.06746], [[0,1,0],[0,0,1]], [false, false]], + ["Land_HBarrier_3_F", [2998.5,18169.9,1.13225], [[-0.931285,0.364292,0],[0,0,1]], [false, false]], + ["Land_LifeguardTower_01_F", [23338.1,24153.7,4.49763], [[-0.165822,0.986156,0],[0,0,1]], [false, false]], + ["Land_i_Addon_04_V1_F", [23376.6,24160.4,2.46928], [[0.436945,0.899488,0],[0,0,1]], [false, false]], + ["Land_Pier_small_F", [23389,24147.6,-0.137567], [[-0.251141,0.967951,0],[0,0,1]], [false, false]], + ["Land_GH_House_2_F", [23333.5,24196.3,3.91706], [[0.998867,-0.0475825,0],[0,0,1]], [false, false]], + ["Exile_Sign_TraderCity", [23329.3,24201.1,3.09842], [[-0.0475771,-0.998868,0],[0,0,1]], [false, false]], + ["Exile_Sign_Equipment", [23381.4,24170,3.95674], [[0.47925,0.877679,0],[0,0,1]], [false, false]], + ["Exile_Sign_Armory", [23378.2,24165.2,8.24169], [[-0.458231,-0.888833,0],[0,0,1]], [false, false]], + ["Exile_Sign_Armory_Small", [23373.2,24165,3.11934], [[0.895991,-0.444072,0],[0,0,1]], [false, false]], + ["Exile_Sign_Equipment_Small", [23376.4,24172.4,3.04409], [[0.997452,-0.071339,0],[0,0,1]], [false, false]], + ["Exile_Sign_Hardware_Small", [23370.2,24180.7,3.57548], [[0.158002,0.987439,0],[0,0,1]], [false, false]], + ["Exile_Sign_Hardware", [23370.9,24187.1,4.57432], [[-0.987439,0.158003,0],[0,0,1]], [false, false]], + ["Exile_Sign_Vehicles", [23389.4,24185.3,4.46844], [[-0.312037,-0.95007,0],[0,0,1]], [false, false]], + ["Exile_Sign_WasteDump", [23340.4,24209.8,4.49615], [[0.997987,-0.0634245,0],[0,0,1]], [false, false]], + ["Exile_Sign_WasteDump_Small", [23341.3,24194.2,4.44642], [[-0.5,0.866025,0],[0,0,1]], [false, false]], + ["Exile_Sign_Food_Small", [23353.6,24171.1,3.37786], [[-0.678506,-0.734595,0],[0,0,1]], [false, false]], + ["Exile_Sign_Boat_Small", [23333.4,24189.1,3.19471], [[-0.916111,0.400924,0],[0,0,1]], [false, false]], + ["Exile_Locker", [14618.4,16804.2,17.9974], [[0.69225,-0.721658,0],[0,0,1]], [false, false]], + ["Exile_Sign_Locker", [14620,16805.8,17.91], [[0.711919,-0.702261,0],[0,0,1]], [false, false]], + ["Exile_Locker", [23328.7,24200.8,4.52368], [[0,1,0],[0,0,1]], [false, false]], + ["Exile_Sign_Locker", [23336.1,24199.7,4.37551], [[-1,1.19249e-008,0],[0,0,1]], [false, false]], + ["Exile_Locker",[2988.82,18173.9,1.35244],[[0.999929,0.011945,0],[0,0,1]],[false,false]], + ["Exile_Sign_Locker",[2984.21,18173.6,1.35244],[[0.999929,0.0118953,0],[0,0,1]],[false,false]] +]; + +{ + private _object = (_x select 0) createVehicle [0,0,0]; + _object setPosASL (_x select 1); + _object setVectorDirAndUp (_x select 2); + _object enableSimulationGlobal ((_x select 3) select 0); + _object allowDamage ((_x select 3) select 1); +} forEach _objects; + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Russian Roulette +/////////////////////////////////////////////////////////////////////////////////////////////////// + +_objects = +[ + ["Land_WoodenTable_large_F", [14628.171,16826.014,18.467293], 0, false], + ["Exile_Sign_RussianRoulette", [14623.898,16820.336, 18.950966], 0.77240193, false], + ["Land_HumanSkull_F", [14621.056, 16821.572, 18.476805], 2.0025947, false], + ["Land_WheelCart_F", [14621.334,16821.477, 18.355867], 4.9935374, false], + ["Land_Camping_Light_F", [14628.075,16825.77, 19.00408], 0, true] + //["Land_SportGround_fence_F", [14625.692, 16818.945, 18.791378], 0.79693103, false], + //["Land_SportGround_fence_F", [14633.911, 16816.904, 17.9177], 5.4953084, false], + //["Land_CargoBox_V1_F", [14619.726, 16823.613, 18.75972], 5.4931207, false], +]; + +{ + private ["_object"]; + + _object = (_x select 0) createVehicle [0,0,0]; + _object setDir (deg (_x select 2)); + _object setPosWorld (_x select 1); + _object allowDamage false; + _object enableSimulation (_x select 3); + _object enableSimulationGlobal (_x select 3);; // :) +} +forEach _objects; + +ExileRouletteChairs = []; + +ExileRouletteChairPositions = +[ + [[14627.052, 16826.611, 18.004343], 4.9010592], + [[14629.161, 16826.707, 18.004343], 1.3332222], + [[14628.180, 16824.557, 18.004343], 3.1448042], + [[14628.123, 16827.488, 18.004343], 0], + [[14629.184, 16825.537, 18.034342], 1.7944603], + [[14627.175, 16825.453, 18.004343], 4.4050193] +]; + +{ + private ["_chair"]; + + _chair = "Exile_RussianRouletteChair" createVehicle [0, 0, 0]; + _chair setDir (deg (_x select 1)); + _chair setPosWorld (_x select 0); + _chair allowDamage false; + _chair enableSimulationGlobal true; + + ExileRouletteChairs pushBack _chair; +} +forEach ExileRouletteChairPositions; + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Concrete Mixers +/////////////////////////////////////////////////////////////////////////////////////////////////// + +_concreteMixers = +[ + [[14354.0, 18960.1, 36.9597], 35], // athira + [[18309.4, 15575.0, 48.8194], 90], // charkia + [[11391.2, 14259.5, 21.2141], -40] // alikampos +]; + +{ + _concreteMixer = "Exile_ConcreteMixer" createVehicle (_x select 0); + _concreteMixer setDir (_x select 1); + _concreteMixer setPosASL (_x select 0); + _concreteMixer allowDamage false; + _concreteMixer enableSimulationGlobal true; +} +forEach _concreteMixers; \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/intro.sqf b/Examples/Example Mission File/Exile.Altis/intro.sqf new file mode 100644 index 0000000..e00dc59 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/intro.sqf @@ -0,0 +1,245 @@ +/** + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private ["_objectStorage", "_staticObjectTemplates"]; +/* +// Preload camery settings +waitUntil { preloadCamera [29549.7,1508.77,189.029] }; + +// Remember what we have instanciated, so we can clean up a bit +_objectStorage = []; + +// Static objects for the scene +_staticObjectTemplates = +[ + ["Land_Pier_F",[29566.7,1512.72,186.76],182.273,0,0,false], + ["Land_Pier_wall_F",[29566.6,1560.03,186.705],1.36361,0,0,false], + ["Land_Pier_Box_F",[29539.6,1550.11,192.115],0,0,0,false], + ["Land_Pier_F",[29596.6,1533.61,186.95],91.8181,0,0,false], + ["Land_Bunker_F",[29580.4,1509.79,189.09],95.4545,0,0,false], + ["Land_MilOffices_V1_F",[29600.1,1534.35,189.543],90.909,0,0,false], + ["Land_Pier_Box_F",[29591.6,1507.34,200.259],95.0001,0,0,false], + ["Land_Pier_F",[29562.8,1502.29,186.759],2.27276,0,0,false], + ["Land_Airport_Tower_F",[29540.2,1549.9,192.079],0,0,0,false], + ["Land_JetEngineStarter_01_F",[29579.3,1496.5,189.031],18.6364,0,0,false], + ["Land_Radar_F",[29598.7,1561.89,191.255],8.18185,0,0,false], + ["Exile_Sign_TraderCity",[29546.8,1517.4,189.039],272,0,0,false], + ["Land_TTowerBig_1_F",[29592,1507.42,201.014],3.18181,0,0,false], + ["Submarine_01_F",[29524.1,1476.42,176.398],147.273,0,0,false], + ["C_Boat_Civil_04_F",[29562.7,1535.25,179.236],271.364,0,0,false] +]; + +{ + private ["_staticObject"]; + + _staticObject = (_x select 0) createVehicleLocal [0,0,0]; + _staticObject setDir (_x select 2); + _staticObject setPosATL (_x select 1); + _staticObject enableSimulation false; + + _objectStorage pushBack _staticObject; +} +forEach _staticObjectTemplates; + +// Create the chopper and close all doors +_chopper = "O_Heli_Transport_04_covered_F" createVehicleLocal [0,0,0]; +_chopper setDir 326.364; +_chopper setPosATL [29549.7,1508.77,189.029]; +_chopper enableSimulation true; +_chopper animateDoor ['Door_1_source', 0, true]; +_chopper animateDoor ['Door_2_source', 0, true]; +_chopper animateDoor ['Door_3_source', 0, true]; +_chopper animateDoor ['Door_4_source', 0, true]; +_chopper animateDoor ['Door_5_source', 0, true]; +_chopper animateDoor ['Door_6_source', 0, true]; + +_objectStorage pushBack _chopper; + +// Prisoner 1 +_prisoner01 = +[ + "Exile_Cutscene_Prisoner01", + "AfricanHead_01", + ["Acts_AidlPsitMstpSsurWnonDnon01"], + [29552.5,1510.03,189.027], + 341.323 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _prisoner01; + +// Prisoner 2 +_prisoner02 = +[ + "Exile_Cutscene_Prisoner02", + "WhiteHead_03", + ["InBaseMoves_HandsBehindBack1"], + [29550.4,1509.77,189.026], + 45.1028 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _prisoner02; + +// Pilot, just statnding there +_pilot = +[ + "Exile_Cutscene_Pilot", + "PersianHead_A3_02", + ["passendger_flatground_1_Idle_Unarmed"], + [29549.5,1512.48,189.031], + 82.2734 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _pilot; + +// Boss, treating us +_boss = +[ + "Exile_Cutscene_Police01", + "GreekHead_A3_08", + ["Acts_Abuse_abusing"], + [29556.3,1513.86,189.033], + 88.0126 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _boss; + +// Guard 1 +_police01 = +[ + "Exile_Cutscene_Police02", + "GreekHead_A3_08", + ["HubStanding_idle1", "HubStanding_idle2", "HubStanding_idle3"], + [29549.4,1518,189.04], + 139.341 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _police01; + +// Guard 2 +_police02 = +[ + "Exile_Cutscene_Police01", + "GreekHead_A3_08", + ["InBaseMoves_patrolling1"], + [29555.1,1516.7,189.038], + 205.865 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _police02; + +// And our small player fale +_player = +[ + "Exile_Cutscene_Player", + "WhiteHead_01", + ["Acts_Abuse_abuser"], + [29556.3,1513.86,189.033], + 88.0126 +] +call ExileClient_object_trader_create; + +_objectStorage pushBack _player; + +_player allowDamage false; // It can bleed thou +*/ +// End the loading screen +endLoadingScreen; + +/* +// Fade in sound +3 fadeSound 1; + +cutText ["", "BLACK IN", 3]; + +// GOGO ! :) + +_camera = "camera" camCreate (_player modelToWorld [0, 0, 10]); +_camera camSetTarget _player; +_camera cameraEffect ["EXTERNAL", "BACK TOP"]; +_camera camSetRelPos [0, 0.7, 1.5]; +_camera camCommand "inertia on"; +_camera camCommit 1; + +uiSleep 1; + +_boss say ["ExileIntro01", 5]; + +uiSleep 3; + +_boss say ["ExileIntro02", 5]; + +uiSleep 5; + +[300] call BIS_fnc_bloodEffect; + +_player setdamage 0.5; +_player setBleedingRemaining 3; +_player say ["ExileIntro10", 5]; + +uiSleep 1; + +_boss say ["ExileIntro03", 5]; + +uiSleep 3; + +_boss say ["ExileIntro04", 5]; + +uisleep 6; + +_boss say ["ExileIntro05", 5]; + +uisleep 5; + +_boss say ["ExileIntro07", 5]; +_chopper engineOn true; + +uisleep 3; + +_boss say ["ExileIntro08", 5]; + +_chopper animateDoor ['Door_1_source', 1, false]; +_chopper animateDoor ['Door_2_source', 1, false]; + +uiSleep 10; + +_boss say ["ExileIntro09", 5]; + +// Open chopper doors +_chopper animateDoor ['Door_3_source', 1, false]; +_chopper animateDoor ['Door_4_source', 1, false]; +_chopper animateDoor ['Door_5_source', 1, false]; +_chopper animateDoor ['Door_6_source', 1, false]; + +uisleep 15; + +// Fade out sound and screen to black/silent +5 fadeSound 0; +titleText ["", "BLACK OUT", 5]; + +// Cleanup after 5 seconds +uiSleep 5; + +_camera cameraEffect ["terminate","back"]; + +camDestroy _camera; + +{ + deleteVehicle _x; +} +forEach _objectStorage; +*/ +ExileClientIntroIsPlaying = false; + +true \ No newline at end of file diff --git a/Examples/Example Mission File/Exile.Altis/mission.sqm b/Examples/Example Mission File/Exile.Altis/mission.sqm new file mode 100644 index 0000000..aabef0d --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/mission.sqm @@ -0,0 +1,1422 @@ +version=12; +class Mission +{ + addOns[]= + { + "exile_client", + "a3_map_altis" + }; + addOnsAuto[]= + { + "exile_client", + "a3_map_altis" + }; + randomSeed=8080942; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2039; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; + class Groups + { + items=1; + class Item0 + { + side="GUER"; + class Vehicles + { + items=100; + class Item0 + { + position[]={13237.161,20.660374,11705.338}; + special="NONE"; + id=0; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + }; + class Item1 + { + position[]={13234.718,19.578526,11705.455}; + special="NONE"; + id=1; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item2 + { + position[]={13232.741,18.706799,11705.57}; + special="NONE"; + id=2; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item3 + { + position[]={13230.821,17.984247,11705.514}; + special="NONE"; + id=3; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item4 + { + position[]={13228.785,17.412029,11705.281}; + special="NONE"; + id=4; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item5 + { + position[]={13226.924,16.956467,11705.455}; + special="NONE"; + id=5; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item6 + { + position[]={13225.296,16.538645,11705.048}; + special="NONE"; + id=6; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item7 + { + position[]={13223.492,16.139071,11705.514}; + special="NONE"; + id=7; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item8 + { + position[]={13221.398,15.754031,11705.338}; + special="NONE"; + id=8; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item9 + { + position[]={13219.652,15.484016,11705.398}; + special="NONE"; + id=9; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item10 + { + position[]={13237.393,20.350965,11702.838}; + special="NONE"; + id=10; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item11 + { + position[]={13235.357,19.481894,11703.129}; + special="NONE"; + id=11; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item12 + { + position[]={13233.264,18.675148,11702.896}; + special="NONE"; + id=12; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item13 + { + position[]={13231.229,18.033972,11703.188}; + special="NONE"; + id=13; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item14 + { + position[]={13229.25,17.450659,11703.068}; + special="NONE"; + id=14; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item15 + { + position[]={13227.622,17.044769,11703.012}; + special="NONE"; + id=15; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item16 + { + position[]={13225.411,16.547203,11703.129}; + special="NONE"; + id=16; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item17 + { + position[]={13223.608,16.157663,11703.068}; + special="NONE"; + id=17; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item18 + { + position[]={13221.864,15.82023,11703.188}; + special="NONE"; + id=18; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item19 + { + position[]={13219.537,15.460279,11703.188}; + special="NONE"; + id=19; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item20 + { + position[]={13237.684,20.122702,11700.919}; + special="NONE"; + id=20; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item21 + { + position[]={13235.242,19.243696,11701.034}; + special="NONE"; + id=21; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item22 + { + position[]={13233.03,18.533854,11700.976}; + special="NONE"; + id=22; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item23 + { + position[]={13230.764,17.812525,11701.093}; + special="NONE"; + id=23; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item24 + { + position[]={13229.134,17.34927,11700.976}; + special="NONE"; + id=24; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item25 + { + position[]={13227.389,16.968922,11701.093}; + special="NONE"; + id=25; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item26 + { + position[]={13225.296,16.517365,11701.209}; + special="NONE"; + id=26; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item27 + { + position[]={13223.435,16.115486,11701.268}; + special="NONE"; + id=27; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item28 + { + position[]={13221.456,15.7518,11701.209}; + special="NONE"; + id=28; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item29 + { + position[]={13219.304,15.384468,11701.326}; + special="NONE"; + id=29; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item30 + { + position[]={13237.858,19.79587,11699.057}; + special="NONE"; + id=30; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item31 + { + position[]={13235.066,18.972578,11698.881}; + special="NONE"; + id=31; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item32 + { + position[]={13232.799,18.265938,11699}; + special="NONE"; + id=32; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item33 + { + position[]={13230.473,17.599703,11699.115}; + special="NONE"; + id=33; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item34 + { + position[]={13228.785,17.253115,11699}; + special="NONE"; + id=34; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item35 + { + position[]={13227.272,16.924681,11698.881}; + special="NONE"; + id=35; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item36 + { + position[]={13225.063,16.448162,11698.939}; + special="NONE"; + id=36; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item37 + { + position[]={13223.201,16.043352,11699.057}; + special="NONE"; + id=37; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item38 + { + position[]={13221.805,15.756227,11699}; + special="NONE"; + id=38; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item39 + { + position[]={13219.421,15.350844,11699.23}; + special="NONE"; + id=39; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item40 + { + position[]={13237.918,19.454409,11696.905}; + special="NONE"; + id=40; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item41 + { + position[]={13236.288,19.065742,11697.021}; + special="NONE"; + id=41; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item42 + { + position[]={13234.486,18.498407,11697.078}; + special="NONE"; + id=42; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item43 + { + position[]={13232.334,17.895802,11697.138}; + special="NONE"; + id=43; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item44 + { + position[]={13230.064,17.49938,11697.138}; + special="NONE"; + id=44; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item45 + { + position[]={13227.68,16.987776,11697.196}; + special="NONE"; + id=45; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item46 + { + position[]={13225.645,16.549015,11697.254}; + special="NONE"; + id=46; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item47 + { + position[]={13224.074,16.186087,11697.196}; + special="NONE"; + id=47; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item48 + { + position[]={13221.864,15.70447,11697.138}; + special="NONE"; + id=48; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item49 + { + position[]={13220.003,15.385726,11697.254}; + special="NONE"; + id=49; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item50 + { + position[]={13237.918,19.109877,11694.752}; + special="NONE"; + id=50; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item51 + { + position[]={13236.639,18.824335,11694.811}; + special="NONE"; + id=51; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item52 + { + position[]={13234.602,18.260323,11694.984}; + special="NONE"; + id=52; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item53 + { + position[]={13232.508,17.89632,11695.102}; + special="NONE"; + id=53; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item54 + { + position[]={13230.473,17.539976,11695.043}; + special="NONE"; + id=54; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item55 + { + position[]={13227.797,16.982367,11695.102}; + special="NONE"; + id=55; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item56 + { + position[]={13225.936,16.558838,11695.275}; + special="NONE"; + id=56; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item57 + { + position[]={13223.666,16.026239,11695.275}; + special="NONE"; + id=57; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item58 + { + position[]={13221.805,15.632082,11695.275}; + special="NONE"; + id=58; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item59 + { + position[]={13219.246,15.186598,11695.567}; + special="NONE"; + id=59; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item60 + { + position[]={13237.801,18.862562,11693.24}; + special="NONE"; + id=60; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item61 + { + position[]={13235.242,18.339025,11692.718}; + special="NONE"; + id=61; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item62 + { + position[]={13233.09,17.966444,11692.948}; + special="NONE"; + id=62; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item63 + { + position[]={13230.995,17.602283,11693.065}; + special="NONE"; + id=63; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item64 + { + position[]={13228.843,17.171389,11693.182}; + special="NONE"; + id=64; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item65 + { + position[]={13227.506,16.857502,11693.182}; + special="NONE"; + id=65; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item66 + { + position[]={13225.47,16.389393,11693.473}; + special="NONE"; + id=66; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item67 + { + position[]={13224.074,16.061972,11693.473}; + special="NONE"; + id=67; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item68 + { + position[]={13221.864,15.586153,11693.588}; + special="NONE"; + id=68; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item69 + { + position[]={13219.421,15.041322,11693.648}; + special="NONE"; + id=69; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item70 + { + position[]={13238.44,17.573044,11689.811}; + special="NONE"; + id=70; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item71 + { + position[]={13236.696,17.677006,11689.926}; + special="NONE"; + id=71; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item72 + { + position[]={13234.66,17.280449,11689.811}; + special="NONE"; + id=72; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item73 + { + position[]={13232.043,16.925327,11689.982}; + special="NONE"; + id=73; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item74 + { + position[]={13230.646,16.802464,11689.982}; + special="NONE"; + id=74; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item75 + { + position[]={13228.437,16.41066,11690.102}; + special="NONE"; + id=75; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item76 + { + position[]={13226.575,15.941986,11689.982}; + special="NONE"; + id=76; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item77 + { + position[]={13224.48,15.510009,11690.041}; + special="NONE"; + id=77; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item78 + { + position[]={13222.91,15.286004,11690.041}; + special="NONE"; + id=78; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item79 + { + position[]={13220.991,14.880125,11690.102}; + special="NONE"; + id=79; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item80 + { + position[]={13237.743,17.021715,11687.831}; + special="NONE"; + id=80; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item81 + { + position[]={13235.531,16.812983,11688.063}; + special="NONE"; + id=81; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item82 + { + position[]={13233.555,16.559767,11688.122}; + special="NONE"; + id=82; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item83 + { + position[]={13230.764,16.298496,11688.063}; + special="NONE"; + id=83; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item84 + { + position[]={13228.959,15.987162,11688.063}; + special="NONE"; + id=84; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item85 + { + position[]={13227.04,15.567765,11688.179}; + special="NONE"; + id=85; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item86 + { + position[]={13225.236,15.280163,11688.122}; + special="NONE"; + id=86; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item87 + { + position[]={13223.608,15.037487,11688.063}; + special="NONE"; + id=87; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item88 + { + position[]={13221.107,14.579975,11688.239}; + special="NONE"; + id=88; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item89 + { + position[]={13219.77,14.262304,11688.239}; + special="NONE"; + id=89; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item90 + { + position[]={13237.393,16.354242,11685.854}; + special="NONE"; + id=90; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item91 + { + position[]={13235.416,16.09985,11685.795}; + special="NONE"; + id=91; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item92 + { + position[]={13233.381,15.905619,11685.738}; + special="NONE"; + id=92; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item93 + { + position[]={13230.938,15.690587,11685.738}; + special="NONE"; + id=93; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item94 + { + position[]={13228.611,15.362325,11685.854}; + special="NONE"; + id=94; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item95 + { + position[]={13226.518,15.063607,11685.854}; + special="NONE"; + id=95; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item96 + { + position[]={13224.249,14.750255,11685.912}; + special="NONE"; + id=96; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item97 + { + position[]={13221.456,14.273185,11686.029}; + special="NONE"; + id=97; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item98 + { + position[]={13218.781,13.587149,11686.145}; + special="NONE"; + id=98; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + class Item99 + { + position[]={13239.08,16.010651,11685.795}; + special="NONE"; + id=99; + side="GUER"; + vehicle="Exile_Unit_GhostPlayer"; + player="PLAY CDG"; + skill=0.60000002; + }; + }; + }; + }; + class Markers + { + items=26; + + class Item0 + { + position[]={3874.3633,18.125629,13280.79}; + name="SpawnKavala"; + text="Kavala"; + type="ExileSpawnZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=500; + b=500; + drawBorder=1; + }; + class Item1 + { + position[]={3874.3633,18.125629,13280.79}; + name="SpawnKavalaIcon"; + text=""; + type="ExileSpawnZoneIcon"; + }; + + class Item2 + { + position[]={9926.5293,12.364729,12083.253}; + name="SpawnZaros"; + text="Zaros"; + type="ExileSpawnZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=500; + b=500; + drawBorder=1; + }; + class Item3 + { + position[]={9926.5293,12.364729,12083.253}; + name="SpawnZarosIcon"; + text=""; + type="ExileSpawnZoneIcon"; + }; + + class Item4 + { + position[]={20978.369,27.78056,7045.6055}; + name="SpawnSelekano"; + text="Selekano"; + type="ExileSpawnZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=500; + b=500; + drawBorder=1; + }; + class Item5 + { + position[]={20978.369,27.78056,7045.6055}; + name="SpawnSelekanoIcon"; + text=""; + type="ExileSpawnZoneIcon"; + }; + + + + class Item6 + { + position[]={17137.752,15.032475,12719.362}; + name="SpawnPrygos"; + text="Pyrgos"; + type="ExileSpawnZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=500; + b=500; + drawBorder=1; + }; + + class Item7 + { + position[]={17137.752,15.032475,12719.362}; + name="SpawnPrygosIcon"; + text=""; + type="ExileSpawnZoneIcon"; + }; + + class Item8 + { + position[]={25713.313,20.344301,21329.576}; + name="SpawnSofia"; + text="Sofia"; + type="ExileSpawnZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=500; + b=500; + drawBorder=1; + }; + class Item9 + { + position[]={25713.313,20.344301,21329.576}; + name="SpawnSofiaIcon"; + text=""; + type="ExileSpawnZoneIcon"; + }; + + + class Item10 + { + position[]={8612.5283,180.58038,18272.271}; + name="SpawnSyrta"; + text="Syrta"; + type="ExileSpawnZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=500; + b=500; + drawBorder=1; + }; + class Item11 + { + position[]={8612.5283,180.58038,18272.271}; + name="SpawnSyrtaIcon"; + text=""; + type="ExileSpawnZoneIcon"; + }; + + + class Item12 + { + position[]={14599.966,22.349989,16797.193}; + name="MafiaTraderCity"; + text="Mafia"; + type="ExileTraderZone"; + markerType="ELLIPSE"; + colorName="ColorBlack"; + fillName="Border"; + a=175; + b=175; + drawBorder=1; + }; + class Item13 + { + position[]={14599.966,22.349989,16797.193}; + name="TraderCityMarkerIcon"; + text=""; + type="ExileTraderZoneIcon"; + }; + + class Item14 + { + position[]={23334.605,4.0095582,24188.938}; + name="TraderZoneSilderas"; + text="Trader"; + markerType="ELLIPSE"; + type="ExileTraderZone"; + colorName="ColorBlack"; + fillName="Border"; + a=175; + b=175; + drawBorder=1; + }; + class Item15 + { + position[]={23334.605,4.0095582,24188.938}; + name="TraderZoneSilderasIcon"; + text=""; + type="ExileTraderZoneIcon"; + }; + + class Item16 + { + position[]={2998.0603,3.7756021,18175.479}; + name="TraderZoneFolia"; + text="Trader"; + markerType="ELLIPSE"; + type="ExileTraderZone"; + colorName="ColorBlack"; + fillName="Border"; + a=175; + b=175; + drawBorder=1; + }; + class Item17 + { + position[]={2998.0603,3.7756021,18175.479}; + name="TraderZoneFoliaIcon"; + text=""; + type="ExileTraderZoneIcon"; + }; + + + class Item18 + { + position[]={14354.0,0,18960.1}; + name="ConcreteMixerZoneAthira"; + text="Concrete Mixer"; + markerType="ELLIPSE"; + type="ExileConcreteMixerZone"; + colorName="ColorBlack"; + fillName="Border"; + a=750; + b=750; + drawBorder=1; + }; + class Item19 + { + position[]={14354.0,0,18960.1}; + name="ConcreteMixerZoneAthiraIcon"; + text=""; + type="ExileConcreteMixerZoneIcon"; + }; + + + class Item20 + { + position[]={18309.4,0,15575.0}; + name="ConcreteMixerZoneCharkia"; + text="Concrete Mixer"; + markerType="ELLIPSE"; + type="ExileConcreteMixerZone"; + colorName="ColorBlack"; + fillName="Border"; + a=750; + b=750; + drawBorder=1; + }; + class Item21 + { + position[]={18309.4,0,15575.0}; + name="ConcreteMixerZoneCharkiaIcon"; + text=""; + type="ExileConcreteMixerZoneIcon"; + }; + + class Item22 + { + position[]={11391.2,0,14259.5}; + name="ConcreteMixerZoneAlikampos"; + text="Concrete Mixer"; + markerType="ELLIPSE"; + type="ExileConcreteMixerZone"; + colorName="ColorBlack"; + fillName="Border"; + a=750; + b=750; + drawBorder=1; + }; + class Item23 + { + position[]={11391.2,0,14259.5}; + name="ConcreteMixerZoneAlikamposIcon"; + text=""; + type="ExileConcreteMixerZoneIcon"; + }; + + + + class Item24 + { + position[]={21845.1,0,20977.6}; + name="ContaminatedZoneGhostHotel"; + text="Contaminated Zone"; + markerType="ELLIPSE"; + type="ExileContaminatedZone"; + colorName="ColorBlack"; + fillName="Border"; + a=400; + b=400; + drawBorder=1; + }; + class Item25 + { + position[]={21845.1,0,20977.6}; + name="ContaminatedZoneGhostHotelIcon"; + text=""; + type="ExileContaminatedZoneIcon"; + }; + }; +}; +class Intro +{ + addOns[]= + { + "a3_map_altis" + }; + addOnsAuto[]= + { + "a3_map_altis" + }; + randomSeed=3611332; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; +}; +class OutroWin +{ + addOns[]= + { + "a3_map_altis" + }; + addOnsAuto[]= + { + "a3_map_altis" + }; + randomSeed=15572598; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; +}; +class OutroLoose +{ + addOns[]= + { + "a3_map_altis" + }; + addOnsAuto[]= + { + "a3_map_altis" + }; + randomSeed=13194853; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; +}; diff --git a/Examples/Example Mission File/Exile.Altis/xm8_server_info.html b/Examples/Example Mission File/Exile.Altis/xm8_server_info.html new file mode 100644 index 0000000..6510e15 --- /dev/null +++ b/Examples/Example Mission File/Exile.Altis/xm8_server_info.html @@ -0,0 +1,13 @@ + +
+Do not talk about Exile.
+Do not talk about Exile.
+Do not kill dem bambies.
+Do not be a dickhead.
+Teamspeak blah
+ + \ No newline at end of file