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

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

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

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

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

Поиск техники по ключу

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

на ру48 так 

покапайся в его файле миссии

Да уже сам написал=)

 Если кому надо забирайте:

 

 

//Floor - округление в меньшую сторону

//Делил на 100 тк выводит в админских координатах

//152 - floor...  тк точка координат отсчета у игроков и системы различаются

//для игроков начало - левый верхний угол, для системы левый нижний

//152 для чернорашки

 

_xxx = floor((_targetPosition select 0)/100);

_yyy = 152 - floor((_targetPosition select 1)/100);

 

if (_found != 0) then {

     _vehicleName = gettext (configFile >> "CfgVehicles" >> (typeof _targetVehicle) >> "displayName");

     systemChat format ["По ключу %1 найдена техника %2, последний раз была замечена: %3/%4",_keyName,_vehicleName,_xxx,_yyy];

} else {

     systemChat format ["Техника соответствующая ключу %1 была уничтожена",_keyName];

};

 

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


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

Да уже сам написал=)

 Если кому надо забирайте:

 

 

//Floor - округление в меньшую сторону

//Делил на 100 тк выводит в админских координатах

//152 - floor...  тк точка координат отсчета у игроков и системы различаются

//для игроков начало - левый верхний угол, для системы левый нижний

//152 для чернорашки

 

_xxx = floor((_targetPosition select 0)/100);

_yyy = 152 - floor((_targetPosition select 1)/100);

 

if (_found != 0) then {

     _vehicleName = gettext (configFile >> "CfgVehicles" >> (typeof _targetVehicle) >> "displayName");

     systemChat format ["По ключу %1 найдена техника %2, последний раз была замечена: %3/%4",_keyName,_vehicleName,_xxx,_yyy];

} else {

     systemChat format ["Техника соответствующая ключу %1 была уничтожена",_keyName];

};

 

Выложи полный скрипт если не сложно 

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


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

виталик это и есть полный)))

да ну не может быть  :good:

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


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

Выложи полный скрипт если не сложно 

Держи

 

private ["_inv","_searchString","_ID","_found","_targetColor","_finalID","_targetPosition","_targetVehicle","_count","_key","_keyName","_xxx","_yyy"];

_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 = getPosATL _x;

_targetVehicle = _x;

_found = 1;

};

} forEach vehicles;

 

_xxx = floor((_targetPosition select 0)/100);

_yyy = 152 - floor((_targetPosition select 1)/100);

 

if (_found != 0) then {

_vehicleName = gettext (configFile >> "CfgVehicles" >> (typeof _targetVehicle) >> "displayName");

systemChat format ["По ключу %1 найдена техника %2, последний раз была замечена: %3/%4",_keyName,_vehicleName,_xxx,_yyy];

} else {

systemChat format ["Техника соответствующая ключу %1 была уничтожена",_keyName];

};

};

} else {

systemChat "И что я должен определять? Ключ гони!!";

};

 

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

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


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

Держи

 

private ["_inv","_searchString","_ID","_found","_targetColor","_finalID","_targetPosition","_targetVehicle","_count","_key","_keyName","_xxx","_yyy"];

_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 = getPosATL _x;

_targetVehicle = _x;

_found = 1;

};

} forEach vehicles;

 

_xxx = floor((_targetPosition select 0)/100);

_yyy = 152 - floor((_targetPosition select 1)/100);

 

if (_found != 0) then {

_vehicleName = gettext (configFile >> "CfgVehicles" >> (typeof _targetVehicle) >> "displayName");

systemChat format ["По ключу %1 найдена техника %2, последний раз была замечена: %3/%4",_keyName,_vehicleName,_xxx,_yyy];

} else {

systemChat format ["Техника соответствующая ключу %1 была уничтожена",_keyName];

};

};

} else {

systemChat "И что я должен определять? Ключ гони!!";

};

 

Спасибо 

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


Ссылка на сообщение
Поделиться на других сайтах
if (_count >= 0) then {

лучше так:

if (_count > 0) then {

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


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

 

if (_count >= 0) then {

лучше так:

if (_count > 0) then {

А что измениться если изменить эту строчку?

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


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

более правильная проверка ключей.  Если больше 0 - то ищем, иначе говорим что нет ключа.

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


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

более правильная проверка ключей.  Если больше 0 - то ищем, иначе говорим что нет ключа.

Понятно спасибо

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


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

 

Удалял строки, не vehicle = []; не vehicle = vehicle; в AH.sqf увы нету, используется версия 3.1 с этого сайта

 

/* ************************Обновление за 08.03.15*********************************** */
/* **************Автор русификации и улучшений TheFirstNoob************************* */
/* ************************Сделано на базе AH342************************************ */

так ты все же решил проблему или нет ? если да, то как ?

максимум чего я добился- пишет и: \выкиньте ключ, техники нет\, и \найдено,проверьте карту.\одновременно - но на карте пусто

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

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


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

Как в новом инфистаре сделать,что бы работу скрипта видели все? а то работает только для админов,перепробовал все,в новом инфистаре половины нет того,что здесь описано. Спасибо.

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


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

Как в новом инфистаре сделать,что бы работу скрипта видели все? а то работает только для админов,перепробовал все,в новом инфистаре половины нет того,что здесь описано. Спасибо.

Я у себя вот так поставил может это и неправильно но работать начинает у игроков    _BHF =  false;

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


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

Ну так можно вообще весь античит выключить и все будет работать. Но это не выход...

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


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

Ну так можно вообще весь античит выключить и все будет работать. Но это не выход...

Перед тем как отключить это я несколько дней искал способы как сделать по другому,пробовал по гайду менять как написано,но не чего в итоге так и не получилось 

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


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

Я у себя вот так поставил может это и неправильно но работать начинает у игроков    _BHF =  false;

Да после отключения _BHF =  false; все работает и показывает,спасибо,а то я в коде ковырялся,а тут все просто оказывается,только вот какие последствия может повлечь за собой отключение этой функции?

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


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

Только у меня в клиентском логе ругается на строку 51?

} forEach vehicles;

_xxx = floor((_targetPosition select 0)/100);
_yyy = 152 - floor((_targetPosition select 1)/100);

на это, что необъявлена переменная _targetPosition, хотя явно в начале файла укказана приватная.

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


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

Ошибка в "3.Создать файл locate_vehlcle.sqf ..." vehicle вместо i стоит l  отредактируйте пожалуйста.

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


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

Вот объясните мне, почему не использовать mapGridPosition ?

 

Вместо этой части кода:

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 = getPosATL _x;
_targetVehicle = _x;
_found = 1;
};
} forEach vehicles;

_xxx = floor((_targetPosition select 0)/100);
_yyy = 152 - floor((_targetPosition select 1)/100);

 

Использую эту:

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];
};

 

Выводит координаты в формате XXXYYY, т.е. 125075, 079104 и.т.д...

Но к сожалению только для админа, у игроков всегда пишет "Техника соответствующая ключу ...(1234) была уничтожена".

В AH.sqf нет строки vehicle = []; , что посоветуете?

 

UPD: небольшая правка, чтобы внести немного ясности - мне не нужно отображение маркеров на карте, достаточно текста в системном чате с названием и координатами, так интереснее и хардкорнее.

Судя по всему инфи блокирует запрос игрока в бд, где тот по CharacterID получает координаты транспорта для этого CharacterID. Где в AH.sqf можно посмотреть отвечающий за это код, подскажите пожалуйста.

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

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


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

Что неужели никто не знает как инфистар на последней версии настроить?

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


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

Я вообще не пойму зачем на этот форум кидать нерабочие скрипты

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


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

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


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

Народ, ставлю этот скрипт и вот этот(единый замок). Все работает, но когда 2 и более единиц техники привязаны на 1 ключ и игрок ищет технику, то находит только 1 из, а другие нет. Подскажите что и где подправить надо?

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


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

Народ, ставлю этот скрипт и вот этот(единый замок).

Вот этот, вот тот.........

 

Ну тогда лови ответ - Вот ТАМ пропиши вместо - exitWith - then

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: Makliion
      Всем добрый вечер..
      У меня такой вопрос где найти или заказать скрипт для обыска зомбей & игроков 
      что-бы каждую вещь снимать через действие а не тупо через таб
      Шлем отдельно
      Рюкзак отдельно
      ну и на все остальные слоты
      искал долго не нашёл ничего
      есть мод на обыск но он просто открывает  инвентарь и все 
       
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. Нужно сделать так, что бы на всей карте был запрет на строительство. 
      Если нужно построить например базу с палатками, то нужно установить верстак или флаг, который установит зону для строительства с радиусом примерно 20-25 метров от центра и желательно что бы зона была квадратной.
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
  • Наш выбор

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

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

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

Поддержка