RedLink

Скрипт на взлом дверей/гаражей

3 сообщения в этой теме

Всем привет.

В общем на форуме нашел только скрипт на взлом сейфов/схронов, поэтому представляю вариант для взлома дверей/замков.

Для установки скрипта вам понадобятся кастомные fn_selfactions.sqf и variables.sqf (тем кто не знает как это сделать, -> поиск по форуму).

1. создаем файл hwDoorOpener.sqf в папке с миссией (или куда душе угодно, главное потом исправьте пути к нему) и в нем вставляем

Скрытый текст
if (dayz_actionInProgress) exitWith {"You are already performing an action, wait for the current action to finish." call dayz_rollingMessages;};
dayz_actionInProgress = true;

private ["_cursortarget","_hotchance","_rollchance","_combi","_message"];

_cursortarget = _this select 3;
_hotchance = 20;
_rollchance = round(random 100);

if (isNull _cursortarget) exitWith {dayz_actionInProgress = false; systemChat "Selected door is NULL!";};

// ["hotwire",format ["Игрок: %1 (%2) пытается взломать %3 @%4.", player, (getPlayerUID player), typeOf cursorTarget, mapGridPosition getPosATL player],true] call fnc_log;

if (_rollchance <= _hotchance) then
	{
		player removeMagazine "ItemHotwireKit";
		_combi = _cursortarget getVariable ["CharacterID","0"];
		sleep 1;
		systemChat format ["Заебись! Дверь взломана! КОД: %1. Отмычка использована.", _combi] call dayz_rollingMessages;

//		["hotwire",format["Игрок: %1 (%2) взломал %3 @%4. Код %5.", player, (getPlayerUID player), typeOf cursorTarget, mapGridPosition getPosATL player, _combi],true] call fnc_log;
	}
	else
	{
		player removeMagazine "ItemHotwireKit";
		sleep 1;
		systemChat "Мля... Не удалось взломать дверь. Отмычка сломалась.";
	};
dayz_actionInProgress = false;

 

 

2. Открываем кастомный fn_selfactions.sqf и ищем

		s_player_manageDoor = -1;
	};

и после вставляем

Скрытый текст
	//Hotwire doors
	if (DZE_doorManagement && (_typeOfCursorTarget in DZE_DoorsLocked) && (_hasHotwireKit)) then {
		_hasAccess = [player, _cursorTarget] call FNC_check_access;
		if (s_player_hwdoor_opener_ctrl < 0 && (!(_hasAccess select 0) or !(_hasAccess select 2) or !(_hasAccess select 3) or !(_hasAccess select 4) or !(_hasAccess select 5))) then {
			s_player_hwdoor_opener_ctrl = player addAction [format["<t color='#ffffff'>Hotwire Door</t>"],"hwDoorOpener.sqf",_cursorTarget, 1, false];
		};
	} else {
		player removeAction s_player_hwdoor_opener_ctrl;
		s_player_hwdoor_opener_ctrl = -1;
	};

 

В этом же файле ищем

	player removeAction s_player_fuelauto;
	s_player_fuelauto = -1;
	player removeAction s_player_fuelauto2;
	s_player_fuelauto2 = -1;
	player removeAction s_player_manageDoor;
	s_player_manageDoor = -1;

и после вставляем

	player removeAction s_player_hwdoor_opener_ctrl;
	s_player_hwdoor_opener_ctrl = -1;

3. Открываем кастомный variables.sqf и ищем

	s_player_toggleVectors=[];
	vectorActions = -1;
	s_player_manageDoor = -1;

и после вставляем

	s_player_hwdoor_opener_ctrl = -1;

 

Скрипт установлен.

 

Чем выше значение _hotchance = 20; - тем выше шанс взлома замка двери.

Изменено пользователем RedLink (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: 123new
      Нам понадобится:
      1. Сервер DayZ Standalone (см. тему вот эту)
      2. Notepad++: бесплатно на оф. сайте
      3. Немного времени и настойчивости (обычно бывает в комплекте и так)
       
      И так, начинаем:
      1. Открываем блокнотом mpmissions\dayzOffline.chernarusplus\init.c
      P.S. Имя папки dayzOffline.chernarusplus у вас может отличаться, будьте внимательны
      2. В начале файла добавляем:
      static int time_repeat_info_players = 10; //in seconds static string file_name_info_players = "$profile:PlayersLogFile.txt"; static void WriteFile(string file_name, string text) { private FileHandle fhandle; if ( !FileExist(file_name) ) { fhandle = OpenFile(file_name, FileMode.WRITE); } else { fhandle = OpenFile(file_name, FileMode.APPEND); } if ( fhandle == 0 ) { Print("[#Запись_в_файл]: Не удалось открыть файл для записи: " + file_name); Print("[#Запись_в_файл]: [Запись]: " + text); return; } FPrintln(fhandle, text); CloseFile(fhandle); } static void WritePlayersInfo() { array<Man> players = new array<Man>; Man player; Man player_test; GetGame().GetPlayers( players ); if (players.Count() > 0) { if ( FileExist(file_name_info_players) ) { DeleteFile(file_name_info_players); } for ( int i = 0; i < players.Count(); ++i ) { player_test = players.Get(i); if( player_test ) { PlayerIdentity p_identity = player_test.GetIdentity(); private string coord_pl = player_test.GetPosition().ToString(); private string Name_P = p_identity.GetName(); private string UID_P = p_identity.GetPlainId(); WriteFile(file_name_info_players, "User name: " + Name_P + " UID: " + UID_P + " Coords: " + coord_pl); } } } else { if ( FileExist(file_name_info_players) ) { DeleteFile(file_name_info_players); } } } Где 'PlayersLogFile.txt' меняем на нужное вам имя файла, а в 'time_repeat_info_players' настраиваем время повтора проверки списка игроков для перезаписи файла
      3. Находим в файле блок 'void main()' и в его конце перед закрывающей '}', поумолчанию это строка
      weather.SetWindFunctionParams(0.1, 0.3, 50); добавляем ниже строку:
      GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(WritePlayersInfo, (time_repeat_info_players * 1000), true); 4. Готово, если не допустили ошибок, при наличии хотя бы 1 игрока на сервере ваш файл с данными по игрокам будет присутствовать и заполняться информацией, а в случае их отсутствия удаляться.
    • Автор: NoNameUltima
      Автор: Я.
      Модификация банка, для DayZ Standalone для мода торговли(Trader)
       
      Мод позволяет:
      Снимать деньги со счета. Вносить деньги на счет.  
      Настройки серверной части:
      Точки в которых доступен банк. Радиус в котором доступен банк(от центра точки - см. выше). Горячая клавиша вызывающая на клиентской стороне меню банкомата. Папку профиля для хранения данных о банковских балансах игроков.  
      *Мод автоматически производит обмен валюты по номиналу, при внесении, или изъятии денежных средств.
      *Клиентскую часть можно скачать в STEAM.
      *Для подключения серверной части, - достаточно закинуть ее в папку сервера, и указать папку для хранения баланса.
       
      Цена: 1500
       
      Контакты:
      Skype: hf-trade  
      STEAM: https://steamcommunity.com/sharedfiles/filedetails/?id=1714035636
      Видео работы:
      Серверная часть, подключается как -serverMod=
    • Автор: NoNameUltima
      Автор:
      Я. Описание:
      Система уведомлений, создающая всплывающие окошки.(см. видео ниже) Цена:
      500р. Конфигурация:
      Путь к иконке уведомлений. Размер иконки. Позиция вывода уведомлений по оси X. Позиция вывода уведомлений по оси Y. Ширина окошек уведомлений. Видео:
       
    • Автор: BorizzK
      Накатал по быстрому для себя и своих ребят от нефиг делать, тк в командировке и дейзить возможности нет, только удаленно ковырять сервер
      Внутри настройки через переменные
      путь к базе сервера и инстанс ид берет из конфига сервера (нужно настроить имя файла и путь в файле)
      Мониторит сервер по названию окна, сохранив pid
      При вылете в 90% случаев корректно убивает процесс
      При перезапуске так же
      При каждом старте с 0 и при перезапусках делает бэкапы баз/настроек/логов в папку !Backup в корне сервера
      Можно настроть кол-во хранимых бэкпов для базы сервера и логов

      Вобщем заглянете внутрь и все поймете
       
      Вдруг кому пригодится
       
      Закрепляю тут краний боевой вариант
      Что к чему - прочтите всю тему и все станет ясно
       
      Сцыл на стрницу темы с крайней версией заточенной на использование с версией 1.04 и параметром -servermod
       
       
    • Автор: NoNameUltima
      Автор: Я.
      Содержание:
      Клиент серверный мод, для игроков, с выбором точки возрождения(точки можно добавлять)... На выбор точки возрождения выделено 15с(время можно изменить). При закрытии выбора точки возрождения, персонаж останется на позиции, которая была выбрана игрой. При истечении времени выделенного на выбор точки возрождения, персонаж останется на позиции, которая была выбрана игрой. Видео(youtube):
      Цена: 1500р.
       
      ЛЮБАЯ ПРОДАЖА, ПЕРЕПРОДАЖА, РАСПРОСТРАНЕНИЕ, БЕЗ СОГЛАСИЯ АВТОРА(т.е. меня), - ЗАПРЕЩЕНА!
       
      Skype: hf-trade