Новости

SMF - Just Installed!

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - ReloadeD

Страницы: 1 2
11
extra_rc.hpp
    class ItemGPS {
        class locate  {
            text = "Поиск по ключу";
            script = "execVM 'custom\keycheck.sqf'";
        };
    };

keycheck.sqf
private ["_inv","_searchString","_ID","_found","_targetColor","_finalID","_targetPosition","_targetVehicle","_count","_key","_keyName"];
_inv = [player] call BIS_fnc_invString;
_keyColor = [];
_keyID = [];
_removedID = [];
_count = 0;
closedialog 0;
{
for "_i" from 1 to 2500 do {
_searchString = format ["ItemKey%1%2",_x,str(_i)];
if ((_searchString in _inv)) then {
_count = _count + 1;
_targetColor = _x;
_keyColor = _keyColor + [_targetColor];
_ID = str(_i);
_ID = parseNumber _ID;
if (_targetColor == "Green") then { _finalID = _ID; };
if (_targetColor == "Red") then { _finalID = _ID + 2500; };
if (_targetColor == "Blue") then { _finalID = _ID + 5000; };
if (_targetColor == "Yellow") then { _finalID = _ID + 7500; };
if (_targetColor == "Black") then { _finalID = _ID + 10000; };
_keyID = _keyID + [_finalID];
_removedID = _removedID + [_ID];
};
};
} forEach ["Black","Yellow","Blue","Green","Red"];

if (_count > 0) then {
systemChat format ["Выполняется поиск для %1 ключей...",_count];
_count = _count - 1;
_i = 0;
for "_i" from 0 to _count do {
_finalID = _keyID select _i;
_ID = _removedID select _i;
_targetColor = _keyColor select _i;
_key = format["ItemKey%1%2",_targetColor,_ID];
_keyName = getText (configFile >> "CfgWeapons" >> _key >> "displayName");
_found = 0;

{
private ["_tID","_vehicle_type"];
_vehicle_type = typeOf _x;
_tID = parseNumber (_x getVariable ["CharacterID","0"]);
if ((_tID == _finalID) && ((_vehicle_type isKindOf "Air") || (_vehicle_type isKindOf "LandVehicle") || (_vehicle_type isKindOf "Ship"))) then {
_targetPosition = mapGridPosition getPos _x;
_targetVehicle = _x;
_found = 1;
};
} forEach vehicles;

if (_found != 0) then {
_vehicleName = gettext (configFile >> "CfgVehicles" >> (typeof _targetVehicle) >> "displayName");
systemChat format ["По ключу %1 найдена техника %2, координаты: %3",_keyName,_vehicleName,_targetPosition];
} else {
systemChat format ["Техника соответствующая ключу %1 была уничтожена",_keyName];
};
};
} else {
systemChat "Для поиска необходимо иметь не менее одного ключа!";
};


AH.sqf
vehicles = [vehicle player]; //найти
vehicles = vehicles; //заменить
if (isNil 'vehicles') then {vehicles = [];} else {if (typeName vehicles != 'ARRAY') then {vehicles = [];YOLO = true;};}; //найти
if (isNil 'vehicles') then {vehicles = vehicles;} else {if (typeName vehicles != 'ARRAY') then {vehicles = [];YOLO = true;};}; //заменить

12
fn_selfActions.sqf
	_isVehicleCombo = _typeOfCursorTarget in ["ArmoredSUV_PMC_DZE","BRDM2_HQ_TK_GUE_EP1"];
	_isVehicleCombo = (_cursorTarget isKindOf "SUV_Base_EP1" || _cursorTarget isKindOf "ArmoredSUV_Base_PMC");

	if ((_isVehicleCombo) && (!locked _cursorTarget) && (!_inVehicle) && (player distance _cursorTarget < 5) && (_canDo) && (_ownerID == "0")) then {
if (s_player_makeVehKey < 0) then {
s_player_makeVehKey = player addaction [("<t color=""#3366FF"">" + ("Установить замок") +"</t>"),"custom\player_makeVehKey.sqf",_cursorTarget,-10,false,true,"",""];
};
} else {
player removeAction s_player_makeVehKey;
s_player_makeVehKey = -1;
};

player_makeVehKey.sqf

private ["_vehicle","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_isOk","_isDamaged","_isOpen","_countplayers","_itemToolbox","_itemKeyKit","_itemCombo","_itemTin","_vehname","_hitpoints"];
_vehicle = _this select 3;
_isDamaged = false;
_isOpen = _vehicle getVariable ["CharacterID","0"];
_countplayers = count nearestObjects [player, ["CAManBase"], 12];
_itemToolbox = "ItemToolbox" in items player;
_itemKeyKit = "ItemKeyKit" in items player;
_itemCombo = {_x == "ItemComboLock"} count magazines player;
_itemTin = {_x == "ItemTinBar"} count magazines player;

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

if (_countplayers > 1) exitWith {systemchat "Анти-Дюп : Вы не можете выполнить это действие, если рядом с Вами игрок или зомби!"; DZE_ActionInProgress = false;};

if (!_itemToolbox) exitWith { cutText ["Для установки замка нужен Набор инструментов!" , "PLAIN DOWN"]; };

if (!_itemKeyKit) exitWith { cutText ["Для установки замка нужен Набор для создания ключей!" , "PLAIN DOWN"]; };

if (DZE_ActionInProgress) exitWith { cutText ["Установка уже выполняется!" , "PLAIN DOWN"]; };

if (_isDamaged) exitWith
{
_vehname = getText (configFile >> "CfgVehicles" >> (typeof _vehicle) >> "displayName");
    cutText [format["Вы должны отремонтировать %1 перед установкой замка",_vehname], "PLAIN DOWN"];
};

if ((_itemCombo >= 1) && (_itemTin >= 1)) then
{
if (_isOpen == "0") then
{
DZE_ActionInProgress = true;
player removeAction s_player_makeVehKey;
player playActionNow "Medic";
_vehicle setVehicleLock "LOCKED";
PVDZE_veh_Lock = [_vehicle,true];
publicVariable "PVDZE_veh_Lock";
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;
_characterID = str(getNumber(configFile >> "CfgWeapons" >> _keySelected >> "keyid"));

waitUntil {!isNil "_isOk"};

if (_isOk and _isKeyOK) then
{
PVDZE_veh_Upgrade = [_vehicle,[(getDir _vehicle),(getposATL _vehicle)],(typeOf _vehicle),true,_characterID,player];
publicVariableServer "PVDZE_veh_Upgrade";
player removeMagazine "ItemComboLock";
player removeMagazine "ItemTinBar";
_vehicle setVehicleLock "LOCKED";
PVDZE_veh_Lock = [_vehicle,true];
publicVariable "PVDZE_veh_Lock";
DZE_ActionInProgress = false;
_vehname = getText (configFile >> "CfgVehicles" >> (typeof _vehicle) >> "displayName");
cutText [format["Вы установили замок на %1 \n Пожалуйста, подождите пока сервер обновит транспорт в базе данных...",_vehname], "PLAIN DOWN"];
}
else
{
_vehicle setVehicleLock "UNLOCKED";
PVDZE_veh_Lock = [_vehicle,false];
publicVariable "PVDZE_veh_Lock";
_vehname = getText (configFile >> "CfgVehicles" >> (typeof _vehicle) >> "displayName");
cutText [format["Вам не удалось установить замок на %1... \n Проверьте свободное место в снаряжении для ключа.",_vehname], "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
}
else
{
_vehname = getText (configFile >> "CfgVehicles" >> (typeof _vehicle) >> "displayName");
cutText [format["На %1 уже установлен замок",_vehname], "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
}
else
{
_vehname = getText (configFile >> "CfgVehicles" >> (typeof _vehicle) >> "displayName");
cutText [format["Для установки замка на %1 требуется Combination Lock и Tin Bar.",_vehname], "PLAIN DOWN"];
DZE_ActionInProgress = false;
};

AHconfig.sqf
_dayzActions =
[
"s_player_makeVehKey"  //добавить
];

13
extra_rc.hpp
    class ItemGPS {
class scanzed {
text = "Сканировать зомби";
script = "[""scanzed""] execVM ""custom\scanner.sqf"";";
};
class scanveh {
text = "Сканировать транспорт";
script = "[""scanveh""] execVM ""custom\scanner.sqf"";";
};
class scanman {
text = "Сканировать ботов/игроков";
script = "[""scanman""] execVM ""custom\scanner.sqf"";";
};
    };

scanner.sqf
private ["_radiusZed","_radiusMan","_radiusVeh","_timeCheck","_plrHumanity","_itemGPS","_itemRadio","_humanityZed","_humanityMan","_humanityVeh","_zedcount","_plrcount","_mancount","_vehcount","_random","_option"];

_option = _this select 0;
_random = random 10;

/* config */
_radiusZed = 400; // radius for zombies
_radiusMan = 300; // radius for humans
_radiusVeh = 500; // radius for vehicles
_timeCheck = 600; // wait time, seconds
_itemGPS = "ItemGPS" in items player;
_itemRadio = "ItemRadio" in items player;
_plrHumanity = (player getVariable["humanity",0]);
_humanityZed = 5000; // humanity for scan zombies
_humanityMan = 10000; // humanity for scan humans
_humanityVeh = 7500; // humanity for scan vehicles
/* config */

if (dayz_combat == 1) exitWith {cutText [format["\n \n Невозможно сканировать в бою!"], "PLAIN DOWN"];};

if (!_itemGPS) exitWith {cutText [format["\n \n Для сканирования требуется GPS "], "PLAIN DOWN"];};

if (!_itemRadio) exitWith {cutText [format["\n \n Для сканирования требуется Радио "], "PLAIN DOWN"];};

if (isNil "lastScan") then {
lastScan = 0;
};

switch (_option) do
{
case "scanzed":
{
if (_plrHumanity >= _humanityZed)  then {
if (_random >= 0.2) then {
if (_random >= 0.3) then {
if (lastScan == 0 || (diag_tickTime-lastScan) > _timeCheck) then {
_zedcount = count ((position player) nearEntities ["zZombie_Base", _radiusZed]);
(findDisplay 106) closeDisplay 0;
systemChat ("[Сканер]: Соединение со спутником...");
sleep 3;
if (_zedcount >= 1) then {systemchat format["[Сканер]: Обнаружено %1 зомби в радиусе %2 метров.",_zedcount,_radiusZed];} else {
systemchat format["[Сканер]: Зомби в радиусе %1 метров не обнаружено.",_radiusZed];};
lastScan = diag_tickTime;
} else {
systemchat format["[Сканер]: Канал связи недоступен. Повторное сканирование возможно через %1 секунд...",(round (_timeCheck  - (diag_tickTime-lastScan)))];
};
}  else {
player removeWeapon "ItemRadio";
systemchat "[Сканер]: Рация вышла из строя! Сканирование невозможно...";
};
}  else {
player removeWeapon "ItemRadio";
player removeWeapon "ItemGPS";
systemchat "[Сканер]: Рация и GPS вышли из строя! Сканирование невозможно...";
};
}  else {
systemchat format["[Сканер]: Недостаточно репутации для сканирования. Необходимо набрать еще %1 ...",(round (_humanityZed - _plrHumanity))];
};
};
case "scanman":
{
if (_plrHumanity >= _humanityMan)  then {
if (_random >= 0.4) then {
if (_random >= 0.5) then {
if (lastScan == 0 || (diag_tickTime-lastScan) > _timeCheck) then {
_plrcount = count ((position player) nearEntities ["CAManBase", _radiusMan]);
_zedcount = count ((position player) nearEntities ["zZombie_Base", _radiusMan]);
_mancount = (_plrcount - _zedcount);
(findDisplay 106) closeDisplay 0;
systemChat ("[Сканер]: Соединение со спутником...");
sleep 3;
if (_mancount >= 2) then {systemchat format["[Сканер]: Обнаружено %1 живых объектов в радиусе %2 метров.",(_mancount - 1),_radiusMan];} else {
systemchat format["[Сканер]: Живых объектов в радиусе %1 метров не обнаружено.",_radiusMan];};
lastScan = diag_tickTime;
} else {
systemchat format["[Сканер]: Канал связи недоступен. Повторное сканирование возможно через %1 секунд...",(round (_timeCheck  - (diag_tickTime-lastScan)))];
};
} else {
player removeWeapon "ItemRadio";
systemchat "[Сканер]: Рация вышла из строя! Сканирование невозможно...";
};
}  else {
player removeWeapon "ItemRadio";
player removeWeapon "ItemGPS";
systemchat "[Сканер]: Рация и GPS вышли из строя! Сканирование невозможно...";
};
}  else {
systemchat format["[Сканер]: Недостаточно репутации для сканирования. Необходимо набрать еще %1 ...",(round (_humanityMan - _plrHumanity))];
};
};
case "scanveh":
{
if (_plrHumanity >= _humanityVeh)  then {
if (_random >= 0.3) then {
if (_random >= 0.4) then {
if (lastScan == 0 || (diag_tickTime-lastScan) > _timeCheck) then {
_vehcount = count ((position player) nearEntities [["LandVehicle","Air","Ship","Tank"], _radiusVeh]);
(findDisplay 106) closeDisplay 0;
systemChat ("[Сканер]: Соединение со спутником...");
sleep 3;
if (_vehcount >= 1) then {systemchat format["[Сканер]: Обнаружено %1 единиц транспорта в радиусе %2 метров.",_vehcount,_radiusVeh];} else {
systemchat format["[Сканер]: Транспорт в радиусе %1 метров не обнаружен.",_radiusVeh];};
lastScan = diag_tickTime;
} else {
systemchat format["[Сканер]: Канал связи недоступен. Повторное сканирование возможно через %1 секунд...",(round (_timeCheck  - (diag_tickTime-lastScan)))];
};
}  else {
player removeWeapon "ItemRadio";
systemchat "[Сканер]: Рация вышла из строя! Сканирование невозможно...";
};
}  else {
player removeWeapon "ItemRadio";
player removeWeapon "ItemGPS";
systemchat "[Сканер]: Рация и GPS вышли из строя! Сканирование невозможно...";
};
}  else {
systemchat format["[Сканер]: Недостаточно репутации для сканирования. Необходимо набрать еще %1 ...",(round (_humanityVeh - _plrHumanity))];
};
};
case default {hint "Error! nothing selected!!!"};
};

Страницы: 1 2