Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
nikolya200

Скрипт "установка замка на технику" - проблема

Всем привет!

Недавно ко мне попали файлы этого скрипта.

Скрипт у меня не работает, вернее работает не полностью (замок на технику ставится,  ключ в инвентаре добавляется но техника по прежнему остается открыта и закрыть ее никак нельзя. Прошу помощи  в решении данного вопроса, было бы идеально если бы кто то сделал по этой теме гайд, уж больно скрипт этот интересен и наверняка  многие админы захотят поставить его на свой сервер.

 

Далее расскажу  что у меня по нему есть:

 

Скрипт  прописывается в верху fn_selfActions.sqf после этих строк 

 

 

_nearLight =     nearestObject [player,"LitObject"];
_canPickLight = false;
if (!isNull _nearLight) then {
    if (_nearLight distance player < 4) then {
        _canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
    };
};
 
вставляются эти строки 
 

 

if ( (!isNull cursorTarget) && (!_inVehicle) && (!_isPZombie) && (player distance cursorTarget < 4) && (cursorTarget isKindOf "AllVehicles") && (!locked cursorTarget) && (alive cursorTarget) && (_canDo) ) then 
{
    _itemsPlayer = items player;
    _magazinesPlayer = magazines player;
    if ( ("ItemKeyKit" in _itemsPlayer) && ("ItemToolbox" in _itemsPlayer) && ("ItemComboLock" in _magazinesPlayer) ) then
    {
        if (s_player_makeVehKey < 0) then 
        {
            s_player_makeVehKey = player addaction[format["<t color='#ff0000'>%1</t>","Установить замок"],"custom\player_makeVehKey.sqf",cursorTarget,6,false,true,"", ""];
        };
    }
    else
    {
        player removeAction s_player_makeVehKey;
        s_player_makeVehKey = -1;
    };
}
else
{
    player removeAction s_player_makeVehKey;
    s_player_makeVehKey = -1;
};
в папке custom есть такой файл player_makeVehKey.sqf с таким содержимым 
 

 

private ["_vehicle","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_isOk","_isConfirm","_isDamaged","_hitpoints"];
_vehicle = _this select 3;
_isConfirm = true;
_isDamaged = false;


_hitpoints = _vehicle call vehicle_getHitpoints;
{
    if ( ([_vehicle,_x] call object_getHit) > 0) then 
    {
        _isDamaged = true;
    };
} forEach _hitpoints;


if (_vehicle getVariable ["CharacterID","0"] != "0") then
{
    _isConfirm = false;
    cutText [format["На %1 уже установлен замок",typeOf _vehicle], "PLAIN DOWN"];
};


if (_isDamaged) then
{
    _isConfirm = false;
    cutText [format["Вы должны отремонтировать %1 перед установкой замка",typeOf _vehicle], "PLAIN DOWN"];
};


if (_isConfirm) then
{
    player removeAction s_player_makeVehKey;
    player playActionNow "Medic";
    sleep 4;


    _keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
    _keyNumber = (floor(random 2500)) + 1;
    _keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
    _isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
    _config = _keySelected;
    _isOk = [player,_config] call BIS_fnc_invAdd;


    waitUntil {!isNil "_isOk"};


    if (_isOk and _isKeyOK) then
    {
        MakeVehicleKey = [_vehicle, _keySelected, player];
        publicVariableServer  "MakeVehicleKey";
        player removeMagazine "ItemComboLock";
        
        cutText [format["Вы установили замок на %1",typeOf _vehicle], "PLAIN DOWN"];
    } 
    else 
    {
        cutText [format["Вам не удалось установить замок на %1",typeOf _vehicle], "PLAIN DOWN"];
    };
};
Этот скрипт прописывается у меня только в этих двух файлах "fn_selfActions.sqf" и "player_makeVehKey.sqf" больше этот скрипт нигде не прописан.
Изменено пользователем Xotabl4 (история изменений)

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


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

Рекомендованные сообщения

  • 0

 

Всем привет!

Недавно ко мне попали файлы этого скрипта.

Скрипт у меня не работает, вернее работает не полностью (замок на технику ставится,  ключ в инвентаре добавляется но техника по прежнему остается открыта и закрыть ее никак нельзя. Прошу помощи  в решении данного вопроса, было бы идеально если бы кто то сделал по этой теме гайд, уж больно скрипт этот интересен и наверняка  многие админы захотят поставить его на свой сервер.

 

Далее расскажу  что у меня по нему есть:

 

Скрипт  прописывается в верху fn_selfActions.sqf после этих строк 

 

 

_nearLight =     nearestObject [player,"LitObject"];
_canPickLight = false;
if (!isNull _nearLight) then {
    if (_nearLight distance player < 4) then {
        _canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
    };
};
 
вставляются эти строки 
 

 

if ( (!isNull cursorTarget) && (!_inVehicle) && (!_isPZombie) && (player distance cursorTarget < 4) && (cursorTarget isKindOf "AllVehicles") && (!locked cursorTarget) && (alive cursorTarget) && (_canDo) ) then 
{
    _itemsPlayer = items player;
    _magazinesPlayer = magazines player;
    if ( ("ItemKeyKit" in _itemsPlayer) && ("ItemToolbox" in _itemsPlayer) && ("ItemComboLock" in _magazinesPlayer) ) then
    {
        if (s_player_makeVehKey < 0) then 
        {
            s_player_makeVehKey = player addaction[format["<t color='#ff0000'>%1</t>","Установить замок"],"custom\player_makeVehKey.sqf",cursorTarget,6,false,true,"", ""];
        };
    }
    else
    {
        player removeAction s_player_makeVehKey;
        s_player_makeVehKey = -1;
    };
}
else
{
    player removeAction s_player_makeVehKey;
    s_player_makeVehKey = -1;
};
в папке custom есть такой файл player_makeVehKey.sqf с таким содержимым 
 

 

private ["_vehicle","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_isOk","_isConfirm","_isDamaged","_hitpoints"];
_vehicle = _this select 3;
_isConfirm = true;
_isDamaged = false;


_hitpoints = _vehicle call vehicle_getHitpoints;
{
    if ( ([_vehicle,_x] call object_getHit) > 0) then 
    {
        _isDamaged = true;
    };
} forEach _hitpoints;


if (_vehicle getVariable ["CharacterID","0"] != "0") then
{
    _isConfirm = false;
    cutText [format["На %1 уже установлен замок",typeOf _vehicle], "PLAIN DOWN"];
};


if (_isDamaged) then
{
    _isConfirm = false;
    cutText [format["Вы должны отремонтировать %1 перед установкой замка",typeOf _vehicle], "PLAIN DOWN"];
};


if (_isConfirm) then
{
    player removeAction s_player_makeVehKey;
    player playActionNow "Medic";
    sleep 4;


    _keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
    _keyNumber = (floor(random 2500)) + 1;
    _keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
    _isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
    _config = _keySelected;
    _isOk = [player,_config] call BIS_fnc_invAdd;


    waitUntil {!isNil "_isOk"};


    if (_isOk and _isKeyOK) then
    {
        MakeVehicleKey = [_vehicle, _keySelected, player];
        publicVariableServer  "MakeVehicleKey";
        player removeMagazine "ItemComboLock";
        
        cutText [format["Вы установили замок на %1",typeOf _vehicle], "PLAIN DOWN"];
    } 
    else 
    {
        cutText [format["Вам не удалось установить замок на %1",typeOf _vehicle], "PLAIN DOWN"];
    };
};
Этот скрипт прописывается у меня только в этих двух файлах "fn_selfActions.sqf" и "player_makeVehKey.sqf" больше этот скрипт нигде не прописан.

Предупреждение

п.п. 3.9

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


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





  • 0

Ты о том что машины производят звук "пиу-пиу" при закрытии? тогда гайд есть на сайте.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Ты о том что машины производят звук "пиу-пиу" при закрытии? тогда гайд есть на сайте.

прочитай код скрипта и подумай...

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Заменить:

 

MakeVehicleKey = [_vehicle, _keySelected, player];
publicVariableServer  "MakeVehicleKey";

 

На:

 

PVDZE_veh_Upgrade = [_vehicle,[(getDir _vehicle),(getposATL _vehicle)],(typeOf _vehicle),true,_characterID,player];
publicVariableServer "PVDZE_veh_Upgrade";

 

И после: 

 

 _isOk = [player,_config] call BIS_fnc_invAdd;

 

Добавить: 

 

_characterID = str(getNumber(configFile >> "CfgWeapons" >> _keySelected >> "keyid"));
Изменено пользователем TheFirstNoob
Пользуйтесь кодом. (история изменений)

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Скрипт великолепен,если б только не одно "но"((( Почему то не совсем верно идет проверка на урон техники.Т.е можно подойти,практически к руинам и сделать ключ,после чего техника отремонтирована и с ключом.Сталкивался кто? Ставить "гвоздь" в прописывание каждого класса не очень хочется.

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Есть гайд по установке замка, при чём 100% рабочий с отличной проверкой на ДЮП и повреждения, только при полной починке ТС можно ставить замок. При чём там же в скрипте стоит проверка на наличие рядом игроков (антиДЮП).

Совсем обленились, даже поискать не хотите в гайдах.

 

http://s-platoon.ru/index.php?/topic/4656-ustanovka-zamka-na-transport/

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Есть гайд по установке замка, при чём 100% рабочий с отличной проверкой на ДЮП и повреждения, только при полной починке ТС можно ставить замок. При чём там же в скрипте стоит проверка на наличие рядом игроков (антиДЮП).

Совсем обленились, даже поискать не хотите в гайдах.

 

http://s-platoon.ru/index.php?/topic/4656-ustanovka-zamka-na-transport/

Родное сердце,его и ставил....Не идет там проверка на урон( Решил проблему ,повесив проверку на состояние в курсоре в fn_selfActions.sqf 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.