2015-09-01 21:24:15 +00:00
|
|
|
/*
|
2015-09-05 03:40:00 +00:00
|
|
|
DMS_fnc_SpawnNonPersistentVehicle
|
2015-09-01 21:29:46 +00:00
|
|
|
|
2015-09-02 00:43:17 +00:00
|
|
|
Spawn a non-saved vehicle in Exile
|
2015-09-01 21:29:46 +00:00
|
|
|
|
2015-09-01 21:24:15 +00:00
|
|
|
Created by Zupa
|
2015-09-02 00:43:17 +00:00
|
|
|
Edited by eraser1
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
[
|
|
|
|
_vehicleClass, // STRING: Classname of the vehicle
|
|
|
|
_pos // ARRAY: Position to spawn it at (roughly)
|
2015-09-05 03:40:00 +00:00
|
|
|
] call DMS_fnc_SpawnNonPersistentVehicle;
|
2015-09-02 00:43:17 +00:00
|
|
|
|
|
|
|
Returns the vehicle object of the created vehicle.
|
|
|
|
|
2015-09-02 05:18:26 +00:00
|
|
|
EXAMPLE:
|
2015-09-05 03:40:00 +00:00
|
|
|
_exampleVeh = ['Exile_Chopper_Hummingbird_Green',_pos] call DMS_fnc_SpawnNonPersistentVehicle;
|
2015-09-02 05:18:26 +00:00
|
|
|
|
2015-09-01 21:24:15 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
private ["_vehicleClass","_position","_vehpos","_maxDistance","_vehObj"];
|
|
|
|
|
2015-09-02 00:43:17 +00:00
|
|
|
_OK = params
|
|
|
|
[
|
|
|
|
["_vehicleClass","",[""]],
|
|
|
|
["_position","",[[]],[2,3]]
|
|
|
|
];
|
|
|
|
|
|
|
|
if (!_OK) exitWith
|
|
|
|
{
|
|
|
|
diag_log format ["DMS ERROR :: Calling DMS_SpawnNonPersistentVehicle with invalid parameters: %1",_this];
|
|
|
|
};
|
|
|
|
|
2015-09-01 21:24:15 +00:00
|
|
|
_vehpos = [];
|
Major UI Improvements, Fixes, Improved readme
* **NEW CONFIG VALUES**:
|DMS_Show_Kill_Poptabs_Notification|
|DMS_Show_Kill_Respect_Notification|
|DMS_dynamicText_Duration|
|DMS_dynamicText_FadeTime|
|DMS_dynamicText_Title_Size|
|DMS_dynamicText_Title_Font|
|DMS_dynamicText_Message_Color|
|DMS_dynamicText_Message_Size|
|DMS_dynamicText_Message_Font|
|DMS_standardHint_Title_Size|
|DMS_standardHint_Title_Font|
|DMS_standardHint_Message_Color|
|DMS_standardHint_Message_Size|
|DMS_standardHint_Message_Font|
|DMS_textTiles_Duration|
|DMS_textTiles_FadeTime|
|DMS_textTiles_Title_Size|
|DMS_textTiles_Title_Font|
|DMS_textTiles_Message_Color|
|DMS_textTiles_Message_Size|
|DMS_textTiles_Message_Font|
* "DMS_PlayerNotificationTypes" has been adjusted to include
"systemChatRequest" and the brand new "textTilesRequest". **NOTE:** Due
to the way "text tiles" work, a player can only have one on his screen
at a time. As a result, if another text tile is created while the
mission message is up, the message will immediately disappear to display
the new text tile. Currently, the "Frag Messages" (the ones that say
"Player Kill +100") use text tiles. I don't think it should be a major
issue (especially if you use "systemChatRequest", so the player can just
scroll up), but if I get reports of it being stupid, I will default to
"dynamicTextRequest", which should also look pretty damn nice.
* These changes should make it much easier for people to use DMS
notification functions for other purposes.
* Fixed AI waypoints - the AI should now properly circle the objective
at the proper radius.
* Tweaked "DMS_AI_WP_Radius_moderate" and "DMS_AI_WP_Radius_difficult"
(reduced the radii). Due to the AI pathing fix.
* Fixed a couple typos in "DMS_fnc_SpawnAISoldier". "_customGearSet"
should work now (although I'm fairly certain nobody uses it since nobody
ever complained :P )
* Improved "DMS_fnc_SpawnNonPersistentVehicle"; Vehicles should no
longer spawn jumbled up in most cases (like cardealer). Also, it's
updated to the latest Exile methods to ensure that vehicles have no
nightvision/thermal if configured to do so in Exile configs. Also added
the "MPKilled" EH used by Exile for non-persistent (persistent vehicles
already had it).
* You can now choose whether or not you want to display the poptabs or
respect kill messages when killing an AI with
"DMS_Show_Kill_Poptabs_Notification" and
"DMS_Show_Kill_Respect_Notification". Both are enabled by default.
* Fixed typos in the "OnKilled" EH (didn't really affect anything)
* Fixed cases when "currentMuzzle" would return a number. Thanks to
[azmodii](https://github.com/azmodii) for the reminder.
* Optimized the "AI share info" function in "OnKilled"
2015-10-09 00:16:48 +00:00
|
|
|
_maxDistance = 5;
|
2015-09-01 21:24:15 +00:00
|
|
|
|
2015-09-02 00:43:17 +00:00
|
|
|
while{count _vehpos < 1} do
|
|
|
|
{
|
Major UI Improvements, Fixes, Improved readme
* **NEW CONFIG VALUES**:
|DMS_Show_Kill_Poptabs_Notification|
|DMS_Show_Kill_Respect_Notification|
|DMS_dynamicText_Duration|
|DMS_dynamicText_FadeTime|
|DMS_dynamicText_Title_Size|
|DMS_dynamicText_Title_Font|
|DMS_dynamicText_Message_Color|
|DMS_dynamicText_Message_Size|
|DMS_dynamicText_Message_Font|
|DMS_standardHint_Title_Size|
|DMS_standardHint_Title_Font|
|DMS_standardHint_Message_Color|
|DMS_standardHint_Message_Size|
|DMS_standardHint_Message_Font|
|DMS_textTiles_Duration|
|DMS_textTiles_FadeTime|
|DMS_textTiles_Title_Size|
|DMS_textTiles_Title_Font|
|DMS_textTiles_Message_Color|
|DMS_textTiles_Message_Size|
|DMS_textTiles_Message_Font|
* "DMS_PlayerNotificationTypes" has been adjusted to include
"systemChatRequest" and the brand new "textTilesRequest". **NOTE:** Due
to the way "text tiles" work, a player can only have one on his screen
at a time. As a result, if another text tile is created while the
mission message is up, the message will immediately disappear to display
the new text tile. Currently, the "Frag Messages" (the ones that say
"Player Kill +100") use text tiles. I don't think it should be a major
issue (especially if you use "systemChatRequest", so the player can just
scroll up), but if I get reports of it being stupid, I will default to
"dynamicTextRequest", which should also look pretty damn nice.
* These changes should make it much easier for people to use DMS
notification functions for other purposes.
* Fixed AI waypoints - the AI should now properly circle the objective
at the proper radius.
* Tweaked "DMS_AI_WP_Radius_moderate" and "DMS_AI_WP_Radius_difficult"
(reduced the radii). Due to the AI pathing fix.
* Fixed a couple typos in "DMS_fnc_SpawnAISoldier". "_customGearSet"
should work now (although I'm fairly certain nobody uses it since nobody
ever complained :P )
* Improved "DMS_fnc_SpawnNonPersistentVehicle"; Vehicles should no
longer spawn jumbled up in most cases (like cardealer). Also, it's
updated to the latest Exile methods to ensure that vehicles have no
nightvision/thermal if configured to do so in Exile configs. Also added
the "MPKilled" EH used by Exile for non-persistent (persistent vehicles
already had it).
* You can now choose whether or not you want to display the poptabs or
respect kill messages when killing an AI with
"DMS_Show_Kill_Poptabs_Notification" and
"DMS_Show_Kill_Respect_Notification". Both are enabled by default.
* Fixed typos in the "OnKilled" EH (didn't really affect anything)
* Fixed cases when "currentMuzzle" would return a number. Thanks to
[azmodii](https://github.com/azmodii) for the reminder.
* Optimized the "AI share info" function in "OnKilled"
2015-10-09 00:16:48 +00:00
|
|
|
_vehpos = _position findEmptyPosition [0,_maxDistance,_vehicleClass];
|
2015-09-18 23:26:36 +00:00
|
|
|
_maxDistance = (_maxDistance + 5);
|
2015-09-01 21:24:15 +00:00
|
|
|
};
|
|
|
|
|
2015-09-18 23:26:36 +00:00
|
|
|
_vehpos set [2, 0.1];
|
|
|
|
|
|
|
|
_vehObj = createVehicle [_vehicleClass, _vehpos, [], 0, "CAN_COLLIDE"];
|
|
|
|
|
|
|
|
clearBackpackCargoGlobal _vehObj;
|
|
|
|
clearItemCargoGlobal _vehObj;
|
|
|
|
clearMagazineCargoGlobal _vehObj;
|
|
|
|
clearWeaponCargoGlobal _vehObj;
|
|
|
|
|
2015-10-09 00:27:33 +00:00
|
|
|
if (_vehicleClass isKindOf "I_UGV_01_F") then
|
Major UI Improvements, Fixes, Improved readme
* **NEW CONFIG VALUES**:
|DMS_Show_Kill_Poptabs_Notification|
|DMS_Show_Kill_Respect_Notification|
|DMS_dynamicText_Duration|
|DMS_dynamicText_FadeTime|
|DMS_dynamicText_Title_Size|
|DMS_dynamicText_Title_Font|
|DMS_dynamicText_Message_Color|
|DMS_dynamicText_Message_Size|
|DMS_dynamicText_Message_Font|
|DMS_standardHint_Title_Size|
|DMS_standardHint_Title_Font|
|DMS_standardHint_Message_Color|
|DMS_standardHint_Message_Size|
|DMS_standardHint_Message_Font|
|DMS_textTiles_Duration|
|DMS_textTiles_FadeTime|
|DMS_textTiles_Title_Size|
|DMS_textTiles_Title_Font|
|DMS_textTiles_Message_Color|
|DMS_textTiles_Message_Size|
|DMS_textTiles_Message_Font|
* "DMS_PlayerNotificationTypes" has been adjusted to include
"systemChatRequest" and the brand new "textTilesRequest". **NOTE:** Due
to the way "text tiles" work, a player can only have one on his screen
at a time. As a result, if another text tile is created while the
mission message is up, the message will immediately disappear to display
the new text tile. Currently, the "Frag Messages" (the ones that say
"Player Kill +100") use text tiles. I don't think it should be a major
issue (especially if you use "systemChatRequest", so the player can just
scroll up), but if I get reports of it being stupid, I will default to
"dynamicTextRequest", which should also look pretty damn nice.
* These changes should make it much easier for people to use DMS
notification functions for other purposes.
* Fixed AI waypoints - the AI should now properly circle the objective
at the proper radius.
* Tweaked "DMS_AI_WP_Radius_moderate" and "DMS_AI_WP_Radius_difficult"
(reduced the radii). Due to the AI pathing fix.
* Fixed a couple typos in "DMS_fnc_SpawnAISoldier". "_customGearSet"
should work now (although I'm fairly certain nobody uses it since nobody
ever complained :P )
* Improved "DMS_fnc_SpawnNonPersistentVehicle"; Vehicles should no
longer spawn jumbled up in most cases (like cardealer). Also, it's
updated to the latest Exile methods to ensure that vehicles have no
nightvision/thermal if configured to do so in Exile configs. Also added
the "MPKilled" EH used by Exile for non-persistent (persistent vehicles
already had it).
* You can now choose whether or not you want to display the poptabs or
respect kill messages when killing an AI with
"DMS_Show_Kill_Poptabs_Notification" and
"DMS_Show_Kill_Respect_Notification". Both are enabled by default.
* Fixed typos in the "OnKilled" EH (didn't really affect anything)
* Fixed cases when "currentMuzzle" would return a number. Thanks to
[azmodii](https://github.com/azmodii) for the reminder.
* Optimized the "AI share info" function in "OnKilled"
2015-10-09 00:16:48 +00:00
|
|
|
{
|
|
|
|
createVehicleCrew _vehObj;
|
|
|
|
};
|
|
|
|
if (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "nightVision") isEqualTo 0) then
|
|
|
|
{
|
|
|
|
_vehObj disableNVGEquipment true;
|
|
|
|
};
|
|
|
|
if (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "thermalVision") isEqualTo 0) then
|
|
|
|
{
|
|
|
|
_vehObj disableTIEquipment true;
|
|
|
|
};
|
|
|
|
|
2015-09-18 23:26:36 +00:00
|
|
|
_vehObj setFuel (0.75+(random 0.25));
|
|
|
|
_vehObj setDir (random 360);
|
|
|
|
_vehObj setPosATL _vehpos;
|
2015-09-17 03:37:17 +00:00
|
|
|
_vehObj setVectorUp (surfaceNormal _vehpos);
|
2015-09-02 00:43:17 +00:00
|
|
|
|
2015-09-21 04:42:33 +00:00
|
|
|
_vehObj setVariable ["ExileIsPersistent", false];
|
Major UI Improvements, Fixes, Improved readme
* **NEW CONFIG VALUES**:
|DMS_Show_Kill_Poptabs_Notification|
|DMS_Show_Kill_Respect_Notification|
|DMS_dynamicText_Duration|
|DMS_dynamicText_FadeTime|
|DMS_dynamicText_Title_Size|
|DMS_dynamicText_Title_Font|
|DMS_dynamicText_Message_Color|
|DMS_dynamicText_Message_Size|
|DMS_dynamicText_Message_Font|
|DMS_standardHint_Title_Size|
|DMS_standardHint_Title_Font|
|DMS_standardHint_Message_Color|
|DMS_standardHint_Message_Size|
|DMS_standardHint_Message_Font|
|DMS_textTiles_Duration|
|DMS_textTiles_FadeTime|
|DMS_textTiles_Title_Size|
|DMS_textTiles_Title_Font|
|DMS_textTiles_Message_Color|
|DMS_textTiles_Message_Size|
|DMS_textTiles_Message_Font|
* "DMS_PlayerNotificationTypes" has been adjusted to include
"systemChatRequest" and the brand new "textTilesRequest". **NOTE:** Due
to the way "text tiles" work, a player can only have one on his screen
at a time. As a result, if another text tile is created while the
mission message is up, the message will immediately disappear to display
the new text tile. Currently, the "Frag Messages" (the ones that say
"Player Kill +100") use text tiles. I don't think it should be a major
issue (especially if you use "systemChatRequest", so the player can just
scroll up), but if I get reports of it being stupid, I will default to
"dynamicTextRequest", which should also look pretty damn nice.
* These changes should make it much easier for people to use DMS
notification functions for other purposes.
* Fixed AI waypoints - the AI should now properly circle the objective
at the proper radius.
* Tweaked "DMS_AI_WP_Radius_moderate" and "DMS_AI_WP_Radius_difficult"
(reduced the radii). Due to the AI pathing fix.
* Fixed a couple typos in "DMS_fnc_SpawnAISoldier". "_customGearSet"
should work now (although I'm fairly certain nobody uses it since nobody
ever complained :P )
* Improved "DMS_fnc_SpawnNonPersistentVehicle"; Vehicles should no
longer spawn jumbled up in most cases (like cardealer). Also, it's
updated to the latest Exile methods to ensure that vehicles have no
nightvision/thermal if configured to do so in Exile configs. Also added
the "MPKilled" EH used by Exile for non-persistent (persistent vehicles
already had it).
* You can now choose whether or not you want to display the poptabs or
respect kill messages when killing an AI with
"DMS_Show_Kill_Poptabs_Notification" and
"DMS_Show_Kill_Respect_Notification". Both are enabled by default.
* Fixed typos in the "OnKilled" EH (didn't really affect anything)
* Fixed cases when "currentMuzzle" would return a number. Thanks to
[azmodii](https://github.com/azmodii) for the reminder.
* Optimized the "AI share info" function in "OnKilled"
2015-10-09 00:16:48 +00:00
|
|
|
_vehObj addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; _this call ExileServer_object_vehicle_event_onMPKilled;}];
|
|
|
|
_vehObj addEventHandler ["GetIn", {_this call ExileServer_object_vehicle_event_onGetIn}];
|
2015-09-21 04:42:33 +00:00
|
|
|
if (_vehObj isKindOf "Helicopter") then
|
|
|
|
{
|
|
|
|
_vehObj addEventHandler ["RopeAttach",
|
|
|
|
{
|
|
|
|
private "_vehicle";
|
|
|
|
_vehicle = _this select 2;
|
|
|
|
|
|
|
|
if !(simulationEnabled _vehicle) then
|
|
|
|
{
|
|
|
|
_vehicle enableSimulationGlobal true;
|
|
|
|
};
|
|
|
|
}];
|
|
|
|
};
|
|
|
|
|
2015-09-20 05:37:13 +00:00
|
|
|
if (!isNil "RS_VLS") then
|
|
|
|
{
|
2015-09-28 16:53:57 +00:00
|
|
|
[_vehObj] call RS_VLS_sanitizeVehicle;
|
2015-09-20 05:37:13 +00:00
|
|
|
};
|
|
|
|
|
2015-09-18 23:26:36 +00:00
|
|
|
_vehObj lock 2;
|
|
|
|
_vehObj allowDamage false;
|
|
|
|
_vehObj enableRopeAttach false;
|
|
|
|
_vehObj enableSimulationGlobal false;
|
|
|
|
|
Readme changes, new debug fnc, fixes, tweaks
Created disclaimer for DMS. Now mentioning that HC for DMS isn't that
good.
Some structure stuff in readme (let's see if it works lol)
* **NEW CONFIG VALUE: DMS_Use_Map_Config**
* You can now overwrite "main config values" with map-specific config
values located in the new "map_configs" folder. This should allow you to
use one DMS PBO if you have multiple servers with different maps.
Included examples for Altis, Bornholm, Esseker, and Tavi (Taviana).
* Because of the above implementation, DMS by default will not include
the salt flats blacklist for findSafePos. In addition, it is
preconfigured to the hilly terrains in Esseker and Taviana, as well as
reducing all of the blacklist distances due to the smaller map size in
Esseker.
* Created new function "DMS_fnc_DebugLog". All DMS files (that produced
debug logs) have been changed, including mission files. However,
updating them is not important (and completely pointless if you don't
even use DMS_DEBUG).
* Fixed a few locations where it said "sized" instead of "seized".
Thanks to [icomrade](https://github.com/icomrade) for pointing them out.
* DMS now utilizes the "ARMA_LOG" DLL (if it exists) by infiSTAR to
produce debug logs (if enabled). All debug logs now also include server
uptime (in seconds) and server FPS.
* The FSM no longer produces debug logs.
* AI Locality manager will now run every minute.
* Debug logs for "DMS_fnc_MissionsMonitor" will only output the mission
name and the position, instead of all of the parameters.
* "DMS_fnc_IsNearWater" will now check the provided position itself for
water.
* "DMS_fnc_IsValidPosition" will now do a surfaceNormal check within a 5
meter radius of the provided position as well.
* "_customGearSet" should now actually work for
"DMS_fnc_SpawnAISoldier", and the function title comment has been
updated for the slightly tweaked syntax.
2015-10-10 01:35:07 +00:00
|
|
|
(format ["SpawnNonPersistentVehicle :: Created %1 at %2 with calling parameters: %3",_vehObj,_vehpos,_this]) call DMS_fnc_DebugLog;
|
2015-09-02 00:43:17 +00:00
|
|
|
|
|
|
|
|
2015-09-28 16:53:57 +00:00
|
|
|
_vehObj
|