Зайди в свой config.cpp и найди там class CfgInteractionMenus
Найди там
class DrainFuel: ExileAbstractAction
{
title = "Drain Fuel";
condition = "call ExileClient_object_vehicle_interaction_show";
action = "_this call ExileClient_object_vehicle_drain";
};
Там таких 3 шт (Для Машин/Самолетов/Лодок)
После чего добавь вот это
class Salvage: ExileAbstractAction
{
title = "Разобрать обломки";
condition = "(!(alive (ExileClientInteractionObject)))";
action = "_this call SV_fnc_SalvageVehicle";
};
Позволяет разобрать сгоревшую технику и вытащить труп.
Затем открой initPlayerLocal.sqf и добавь это.
SV_fnc_SalvageVehicle = compileFinal preprocessFileLineNumbers "SV.sqf";
Создай файл в миссии SV.sqf
/*
Salvage a vehicle script
Created by Serveratze
*/
private ["_salvage"];
if (ExileClientActionDelayShown) exitWith { false };
ExileClientActionDelayShown = true;
ExileClientActionDelayAbort = false;
if (ExileClientPlayerIsInCombat) exitWith
{
[
"ErrorTitleAndText",
["Repair Info", "You are in combat!"]
] call ExileClient_gui_toaster_addTemplateToast;
ExileClientActionDelayShown = false;
ExileClientActionDelayAbort = false;
};
if (ExilePlayerInSafezone) exitWith
{
[
"ErrorTitleAndText",
["Repair Info", "Please leave the safezone first!"]
] call ExileClient_gui_toaster_addTemplateToast;
ExileClientActionDelayShown = false;
ExileClientActionDelayAbort = false;
};
_animation = "Exile_Acts_RepairVehicle01_Animation01";
disableSerialization;
("ExileActionProgressLayer" call BIS_fnc_rscLayer) cutRsc ["RscExileActionProgress", "PLAIN", 1, false];
_keyDownHandle = (findDisplay 46) displayAddEventHandler ["KeyDown","_this call ExileClient_action_event_onKeyDown"];
_mouseButtonDownHandle = (findDisplay 46) displayAddEventHandler ["MouseButtonDown","_this call ExileClient_action_event_onMouseButtonDown"];
player switchMove _animation;
["switchMoveRequest", [netId player, _animation]] call ExileClient_system_network_send;
_startTime = diag_tickTime;
_duration = 20;
_sleepDuration = _duration / 100;
_progress = 0;
_display = uiNamespace getVariable "RscExileActionProgress";
_label = _display displayCtrl 4002;
_label ctrlSetText "0%";
_progressBarBackground = _display displayCtrl 4001;
_progressBarMaxSize = ctrlPosition _progressBarBackground;
_progressBar = _display displayCtrl 4000;
_progressBar ctrlSetPosition [_progressBarMaxSize select 0, _progressBarMaxSize select 1, 0, _progressBarMaxSize select 3];
_progressBar ctrlSetBackgroundColor [0, 0.78, 0.93, 1];
_progressBar ctrlCommit 0;
_progressBar ctrlSetPosition _progressBarMaxSize;
_progressBar ctrlCommit _duration;
try
{
while {_progress < 1} do
{
if (ExileClientActionDelayAbort) then
{
throw 1;
};
uiSleep _sleepDuration;
_progress = ((diag_tickTime - _startTime) / _duration) min 1;
_label ctrlSetText format["%1%2", round (_progress * 100), "%"];
};
throw 0;
}
catch
{
_progressBarColor = [];
switch (_exception) do
{
case 0:
{
_progressBarColor = [0.7, 0.93, 0, 1];
deleteVehicle (_this select 0);
[
"SuccessTitleAndText",
["Scavenge Info", "Das Fahrzeug wurde zerlegt."]
] call ExileClient_gui_toaster_addTemplateToast;
};
case 1:
{
[
"InfoTitleAndText",
["Scavenge Info", "Bewegen Sie sich nicht."]
] call ExileClient_gui_toaster_addTemplateToast;
_progressBarColor = [0.82, 0.82, 0.82, 1];
};
};
player switchMove "";
["switchMoveRequest", [netId player, ""]] call ExileClient_system_network_send;
_progressBar ctrlSetBackgroundColor _progressBarColor;
_progressBar ctrlSetPosition _progressBarMaxSize;
_progressBar ctrlCommit 0;
};
("ExileActionProgressLayer" call BIS_fnc_rscLayer) cutFadeOut 2;
(findDisplay 46) displayRemoveEventHandler ["KeyDown", _keyDownHandle];
(findDisplay 46) displayRemoveEventHandler ["MouseButtonDown", _mouseButtonDownHandle];
ExileClientActionDelayShown = false;
ExileClientActionDelayAbort = false;
И все. Это как вариант. Есть ещё множество.