Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
kozmodor

возврат лута или трупа из сгоревшей техники arma 3 exile

сейчас если игрок помер в машине или вертолете а техника сгорела  его труп не достать. (правда если админкой удалить сгоревший остов  - труп появляется), есть ли какой-нибудь скрип , как во 2 арме, на авто выбрасывание трупов из сгоревшей техники?

Share this post


Link to post
Share on other sites

23 answers to this question

Recommended Posts

  • 0

Есть скрипт для сервера 

В initLocalServer.sqf

NR_fnc_SalvageVehicle = compileFinal preprocessFileLineNumbers "папка в миссии\SalvageVehicle.sqf";

в config.cpp в class CfgInteractionMenus

// Salvage Vehicle
            class Salvage: ExileAbstractAction
            {
                title = "Убрать Сгоревшую Технику";
                condition = "(!(alive (ExileClientInteractionObject)))";
                action = "_this call NR_fnc_SalvageVehicle";
            }

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites





  • 0
15 часов назад, 10010_1487708049 сказал:

Есть скрипт для сервера 

В initLocalServer.sqf

NR_fnc_SalvageVehicle = compileFinal preprocessFileLineNumbers "папка в миссии\SalvageVehicle.sqf";

в config.cpp в class CfgInteractionMenus

// Salvage Vehicle
            class Salvage: ExileAbstractAction
            {
                title = "Убрать Сгоревшую Технику";
                condition = "(!(alive (ExileClientInteractionObject)))";
                action = "_this call NR_fnc_SalvageVehicle";
            }

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Может файл initPlayerLocal.sqf или initServer.sqf ?

Share this post


Link to post
Share on other sites
  • 0
В 06.05.2016 в 19:43, kozmodor сказал:

сейчас если игрок помер в машине или вертолете а техника сгорела  его труп не достать. (правда если админкой удалить сгоревший остов  - труп появляется), есть ли какой-нибудь скрип , как во 2 арме, на авто выбрасывание трупов из сгоревшей техники?

В скрипт срабатывающий при смерти игрока, добавить eject

Share this post


Link to post
Share on other sites
  • 0

Есть скрипт для сервера 

В initLocalServer.sqf

NR_fnc_SalvageVehicle = compileFinal preprocessFileLineNumbers "папка в миссии\SalvageVehicle.sqf";

в config.cpp в class CfgInteractionMenus

// Salvage Vehicle
            class Salvage: ExileAbstractAction
            {
                title = "Убрать Сгоревшую Технику";
                condition = "(!(alive (ExileClientInteractionObject)))";
                action = "_this call NR_fnc_SalvageVehicle";
            }

И после последней скобки точку с запятой поставить.

Share this post


Link to post
Share on other sites
  • 0

Скрипт работает,проверено на тестовом сервере. За исключением: вместо непонятного initLocalServer.sqf 

инициализацию NR_fnc_SalvageVehicle = compileFinal preprocessFileLineNumbers "папка в миссии\SalvageVehicle.sqf"

ставим в initPlayerLocal.sqf  пример 

///////////////////////////////////////////////////////////////////////////////
// Static Objects
///////////////////////////////////////////////////////////////////////////////

// Taken away for now
//#include "initServer.sqf"

NR_fnc_SalvageVehicle = compileFinal preprocessFileLineNumbers "custom\SalvageVehicle.sqf";

верхняя часть файла. 

И,как я уже говорил,закрывающая скобка в // Salvage Vehicle
            class Salvage: ExileAbstractAction
            {
                title = "Убрать Сгоревшую Технику";
                condition = "(!(alive (ExileClientInteractionObject)))";
                action = "_this call NR_fnc_SalvageVehicle";
            };  должна быть точка с запятой, у  10010_1487708049  её нет.

Share this post


Link to post
Share on other sites
  • 0

Boris62 не подскажешь где взять этот скрипт. С гитхаба автор убрал, а очень надо. Хочу использовать что бы игроки скравченый транспорт после того как он им не нужен убирали его. Вся карта загажена этим транспортом. Ил есть другой скрипт для этого ? Если можешь подскажи.

Share this post


Link to post
Share on other sites
  • 0

DrTauren буду очень благодарен если выложите гайд. Заранее спасибо.

Share this post


Link to post
Share on other sites
  • 0

Что это за дерьмо? Зачем удалять взорванную машину? Что за "даун-костыль"? Почему нельзя сделать просто, чтобы при взрыве выпал труп из машины?

Share this post


Link to post
Share on other sites
  • 0

Alexis в exile типа изначально труп всегда внутри техники остаётся и никак не вынуть его, такая бодяга :biggrin:

Share this post


Link to post
Share on other sites
  • 0

DrTauren ну по стандарту да, не вынуть, но то что тут предложили, путь решения, дерьмовитей некуда

Share this post


Link to post
Share on other sites
  • 0

Alexis Slonik Нашёл несколько вариантов решения этой проблемы. Первый: возможность "обшарить технику" (что как-то не очень вообще)
И второй наиболее простой и реалистичный: если техника взорвана - из неё автоматом выбрасывает и трупы, и живых игроков. Думаю второй варик всем больше подойдёт. Если так, то сегодня постараюсь выложить

Share this post


Link to post
Share on other sites
  • 0

DrTauren DrTauren Alexis DrTauren да ема е . Все не так. Я хотел это использовать что бы убирать скравченую скотчем технику или другой скрипт для этого найти. А то люди на кравтят вся карта засрана. Человек доехал куда надо и убрал эту технику. Меня наверное не так поняли

Share this post


Link to post
Share on other sites
  • 0

Slonik так сделай чтобы скрафченая техника удалялась при рестарте, то бишь не заносилась в БД. А в этой теме вообще другой вопрос решается на сколько я понял, не понимаю как ты суда попал

Share this post


Link to post
Share on other sites
  • 0
9 часов назад, Alexis сказал:

Что это за дерьмо? Зачем удалять взорванную машину? Что за "даун-костыль"? Почему нельзя сделать просто, чтобы при взрыве выпал труп из машины?

Так все норм, надо же 100500 строк кода нахерачить, вместо того, чтобы открыть файл который срабатывает при смерти персонажа и добавить 1 единственную строку -

player action ["Eject", vehicle player];

Share this post


Link to post
Share on other sites
  • 0

NoNameUltima ))) вот переживаешь все за строчки. Не было бы этих строчек что бы тут вообще было?  Одни умники бы писали сами себе, кто умнее? Не обижайся , но выходит так. Ну а в данном случае видно меня не поняли или я плохо объяснил суть вопроса. Бывает и такое,с кем не случается. Теперь меня будут преследовать 100500 строчек. Уже боюсь что писать.  А может не так )))

Share this post


Link to post
Share on other sites
  • 0

Slonik у тебя это в сборке есть, так что, не забивайся

Share this post


Link to post
Share on other sites
  • 0
14 минуты назад, Slonik сказал:

Ну а в данном случае видно меня не поняли или я плохо объяснил суть вопроса.

Ты то вообще тут при чем?

Топикстартер другой человек, судя по теме.

Share this post


Link to post
Share on other sites
  • 0

Зайди в свой 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;



И все. Это как вариант. Есть ещё множество.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By vitacite
      Квест на аномалии. Участники - любые игроки. 3 НПС, 3 Анимированных аномалии (пока без дамага), 3 квестовых предмета - детектор аномалий, карта сокровищь и журнал с девчонками 🙂
      Выглядит это так...
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
      Мануаль по установке тут....
      Обновление от 19.01.2016
      https://github.com/olkeakavitacite/EQP_Anomaly/
      Так же находится описание, как и чего делать.
       
    • By Serdce
      Подскажите, есть ли вариант смены местоположения трейда каждый рестарт, желательно не в рандомные места.
      Всё что в голову пришло, это несколько вариантов запакованных миссий, которые при рестарте батником заменяются. Есть ли какой то более адекватный вариант?
    • By Serdce
      Данный скрипт, меняет процесс ремонта вашей техники, делая её более логичней, как было в А2.
      Для замены колеса, на нужно собственно само колесо, и тд. и тп. 
      Подробный список чего и для чего вы найдёте в файлах.
       
      Итак, преступим!
      Я не автор, я всего лишь перевожу.
      Первоисточник - https://github.com/aussie-battler/Exilemod-Super-Advanced-Repair-System-SARS
      По ссылке выше скачиваем архив, распаковываем в удобное место.
      Распаковываем ваше миссию "Exile.ваша карта"
      Из архива копируем папку "Custom" в папку вашей миссии "Exile.ваша карта"
      Открываем ваш description.ext  в нем мы ищем showHUD[] = 
      и полностью меняем на это - 
      Далее открываем ваш - initPLayerLocal.sqf
      В этом файле, сразу после строки - if (!hasInterface || isServer) exitWith {};
      Мы добавляем 
      //Bones Super Advanced Repair System (SARS)
      Bones_fnc_salvageAndRepairMenu = compileFinal preprocessFileLineNumbers "Custom\advancedRepair\Bones_fnc_salvageAndRepairMenu.sqf"; 
      Далее открываем ваш - config.cpp
      В нем мы ищем - class Car
      Внутри этого класса мы ищем
       
      И меняем на 
      Так же далее чуть ниже - class Air
      В нем мы также меняем это
      На это 
       
      Далее для если у вас есть Infistar!
      Распаковываем ваш инфистар и открываем его конфиг.
      В нём ищем     KCM = "true"; /* Just close ALL CommandingMenus */
      И меняем значение на false
      Чуть ниже в строке allowedCommandingMenus
      Мы добавляем  "#USER:ASL_Show_Repair_Options_Menu_Array"
      Ну вот и всё готово, всё сохранили и запаковали как было!
       
    • By Miduznya
      Всем привет, чет не нашел не где как можно в ручную обновить через .bat или .cmd файл
      если есть у кого такой поделитесь плиз. Прошу сильно не пинать если есть такая тема дайте ссылку
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.