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

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

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

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

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

Привет. Подскажите пожалуйста, как разрешить делать метки на карте, до которых будет отображаться расстояние, только имея GPS в в инветаре?

systemchat ("Дебажка: Скрипт gpslocate запущен");
while (1 == 1) do
{
	if("ItemGPS" in items player) then 
	{
		hudWp=1;
	}
	else
	{
		hudWp=0;
	};
	sleep 1;
}; 

Такая штука работать не хочет. В чем я ошибся?

Запуск файла в самом низу init.sqf. В игре выводится надпись "Дебажка: Скрипт gpslocate запущен", единожды, при входе.

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

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


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

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

  • 0

 

GPS рассчитывать расстояние до точки

 

GPS ничего не рассчитывает.

А прикинуть расстояние до точки, имея карту, и зная свое местоположение сможет любой инвалид.

 

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

На таком сервере, вполне себе возможно из фляги с водой + кусок стекла скрафтить СУВ. А почему бы и нет?

 

Это к вопросу, о бредовости.

 

По вопросу можно или нет -

Можно. Переделай событие онклик для карты.

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


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

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

systemchat ("Дебажка: Скрипт gpslocate запущен");
while (1 == 1) do
{
	if("ItemGPS" in items player) then 
	{
		hudWp=1;
	}
	else
	{
		hudWp=0;
	};
	sleep 1;
}; 

Такая штука работать не хочет. В чем я ошибся?

Запуск файла в самом низу init.sqf. В игре выводится надпись "Дебажка: Скрипт gpslocate запущен", единожды, при входе.

а что RPT пишет? 

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


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

а что RPT пишет? 

Забыл его удалить, весит 1гб+, через часа 1.5 гляну что пишет, и дам знать. Было предположение, что кто-то с этим сталкивался уже, и знает решение.

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


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

Забыл его удалить, весит 1гб+, через часа 1.5 гляну что пишет, и дам знать. Было предположение, что кто-то с этим сталкивался уже, и знает решение.

скорее всего синтаксис, где то не хватает чего то типа ; и т.д.

 

  1.     if("ItemGPS" in items player) then
  2.     {
  3.         hudWp=1;
  4.     } \\ Вот тут ; не хватает
Изменено пользователем Linux (история изменений)

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


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

 

скорее всего синтаксис, где то не хватает чего то типа ; и т.д.

 

  1.     if("ItemGPS" in items player) then
  2.     {
  3.         hudWp=1;
  4.     } \\ Вот тут ; не хватает

Перед else не ставится ";".

 

gps - weapon

 

В fn_SelfActions.sqf есть такой код: 

_itemsPlayer = items player;
....
//Allow owners to delete modulars
if(_isModular and (dayz_characterID == _ownerID)) then {
    if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then {
         _player_deleteBuild = true;
    };
}; 

 

В нем же ItemCrowbar принадлежит пространству items player, а ItemGPS тоже имеет префикс Item, потому так же принадлежит items player. Разве не так?

 

Upd. В серверном RPT ничего нет об этом скрипте. Сейчас гляну в клиентском.

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

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


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


if (isNil "DZE_SELF_MARKER_TOGGLE") then {

DZE_SELF_MARKER_TOGGLE = false;

};

DZE_SELF_MARKER_TOGGLE = !DZE_SELF_MARKER_TOGGLE;

 

if(DZE_SELF_MARKER_TOGGLE) then {

DZE_SELF_MARKER_SCRIPT_HANDLE = [] spawn {

while {DZE_SELF_MARKER_TOGGLE} do {

private["_marker"];

deleteMarkerLocal "MarkerPlayer";

if("ItemMap" in (weapons player) || "ItemGPS" in (weapons player)) then {

_marker = createMarkerLocal["MarkerPlayer",(position player)];

_marker setMarkerShapeLocal "ICON";

_marker setMarkerTypeLocal "mil_dot";

_marker setMarkerTextLocal "me";

_marker setMarkerColorLocal "ColorGreen";

} else {

DZE_SELF_MARKER_TOGGLE = false;

};

sleep 2;

};

};

} else {

terminate DZE_SELF_MARKER_SCRIPT_HANDLE;

deleteMarkerLocal "MarkerPlayer";

};

cutText[format["Self Map Marker: %1",str DZE_SELF_MARKER_TOGGLE],"PLAIN DOWN"];

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


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

 

if (isNil "DZE_SELF_MARKER_TOGGLE") then {
    DZE_SELF_MARKER_TOGGLE = false;
};
DZE_SELF_MARKER_TOGGLE = !DZE_SELF_MARKER_TOGGLE;

if(DZE_SELF_MARKER_TOGGLE) then {
    DZE_SELF_MARKER_SCRIPT_HANDLE = [] spawn {
        while {DZE_SELF_MARKER_TOGGLE} do {
            private["_marker"];
            deleteMarkerLocal "MarkerPlayer";
            if("ItemMap" in (weapons player) || "ItemGPS" in (weapons player)) then {
                _marker = createMarkerLocal["MarkerPlayer",(position player)];
                _marker setMarkerShapeLocal "ICON";
                _marker setMarkerTypeLocal "mil_dot";
                _marker setMarkerTextLocal "me";
                _marker setMarkerColorLocal "ColorGreen";
            } else {
                DZE_SELF_MARKER_TOGGLE = false;
            };
            sleep 2;
        };
    };
} else {
    terminate DZE_SELF_MARKER_SCRIPT_HANDLE;
    deleteMarkerLocal "MarkerPlayer";
};
cutText[format["Self Map Marker: %1",str DZE_SELF_MARKER_TOGGLE],"PLAIN DOWN"];

Не сработало. Наверное, руки у меня кривые(

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


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

Не сработало. Наверное, руки у меня кривые(

 

    class ItemGPS {
        class metkaf {
            text = "Metka";
            script = "execVM 'custom\скрипт.sqf'";
    };
Изменено пользователем DimitriPokki
Добавлен в код (история изменений)

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


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

 

 

    class ItemGPS {
        class metkaf {
            text = "Metka";
            script = "execVM 'custom\скрипт.sqf'";
    };

Да, круто, заработало. Но я хотел немного другое. Чтобы расстояние до точки показывалось только тогда, когда есть GPS.

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


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

Как то глупо..

Что, если у тебя есть карта и ты знаешь собственное местоположение, то настолько деградировал, что не сможешь прикинуть расстояние?)

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


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

Как то глупо..

Что, если у тебя есть карта и ты знаешь собственное местоположение, то настолько деградировал, что не сможешь прикинуть расстояние?)

Суть в том, что я хочу дать возможность ставить метки только тем игрокам, у кого есть GPS. Это типа фишка такая.

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


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

Суть в том, что я хочу дать возможность ставить метки только тем игрокам, у кого есть GPS. Это типа фишка такая.

 

Так ты определись -

"Да, круто, заработало. Но я хотел немного другое. Чтобы расстояние до точки показывалось только тогда, когда есть GPS."

Так ты все таки метки хочешь запретить при отсутствии GPS, или отображение расстояния?

 

Если второе -

 

Я конечно все понимаю, но имхо, фишка, это -

крафт

банки

особенные миссии

..

отображение на карте меток друзей, при наличии GPS(ну раз уж GPS надо куда то пристроить).

т.е. логичное использование предметов, взаимодействия игроков с предметами и т.п.

 

А это имхо не фишка, это какой то бред простите)

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

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


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

Так ты определись -

"Да, круто, заработало. Но я хотел немного другое. Чтобы расстояние до точки показывалось только тогда, когда есть GPS."

Так ты все таки метки хочешь запретить при отсутствии GPS, или отображение расстояния?

 

Если второе -

 

Я конечно все понимаю, но имхо, фишка, это -

крафт

банки

особенные миссии

..

отображение на карте меток друзей, при наличии GPS(ну раз уж GPS надо куда то пристроить).

т.е. логичное использование предметов, взаимодействия игроков с предметами и т.п.

 

А это имхо не фишка, это какой то бред простите)

Полностью согласен с тобой) 

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


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

Ок, поясните, что именно бредового в том, что человеку будет только GPS рассчитывать расстояние до точки? Раз уж на то пошло.

И можно ли это сделать несколькими строчками кода?

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


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

GPS ничего не рассчитывает.

А прикинуть расстояние до точки, имея карту, и зная свое местоположение сможет любой инвалид.

 

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

На таком сервере, вполне себе возможно из фляги с водой + кусок стекла скрафтить СУВ. А почему бы и нет?

 

Это к вопросу, о бредовости.

 

По вопросу можно или нет -

Можно. Переделай событие онклик для карты.

Ладно, остановимся на том, что для каждого из нас критерий "бредовости" свой. Быть может я был не до конца понят. Не важно. В любом случае спасибо за помощь.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Сразу делаю пометку, метод, который добавили нам разработчики игры в патче 1.15, очень хорошо описал наш товарищ в сообщении форума:
      Рекоммендую вам использовать именно его!
      Ниже опубликованы старые методы.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!
    • Автор: BorizzK
      Палатки пофикшены
      Ну разве что не ставятся на крест на церкви, ставятся чуть ниже
      Все чисто серверное
       
      Выложу завтра днем после небольшой доработки - что бы красиво было
       
      Вот резалт
       
       

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

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

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: BorizzK
      //Функция создания зданий/обьектов BORIZZ.K //Не поставит здание/обьект там где оно уже есть в радиусе 10м!!! //параметры вызова //НазваниеКласса, координаты, коррекция высоты (добавляется к высоте если > 0 - можно поставить здание на здание/поверхность выше земли или повесить в воздухе), Ориентация, Направление. int SpawnBuilding(string m_Building_Class, vector spawn_Point, float alt_Correct, vector spawn_Orient, vector spawn_Dir) //Спавн { Print("::: SpawnBuilding ::: SpawnBuilding(m_Building_Class = " + m_Building_Class + ", spawn_Point = " + spawn_Point.ToString() + ", alt_Correct = " + alt_Correct + ", spawn_Orient = " + spawn_Orient + ", spawn_Dir = " + spawn_Dir + ") :::"); array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; string className; Object object; float radius = 10; Object m_Building; int n_Building_Count = 0; spawn_Point[1] = GetGame().SurfaceY( spawn_Point[0], spawn_Point[2] ); if (alt_Correct > 0) { spawn_Point[1] = spawn_Point[1] + alt_Correct; } GetGame().GetObjectsAtPosition(spawn_Point, radius, nearest_objects, proxy_cargos); Print("::: SpawnBuilding ::: Radius: " + radius.ToString() + ", all nearest_objects: " + nearest_objects.Count().ToString() + " :::"); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( className == m_Building_Class ) { Print("::: SpawnBuilding ::: Found object: " + object.ToString() + ", className: " + className + ", Position: " + object.GetPosition() + " : Spawn " + m_Building_Class + " cancelled. ::: "); return 0; } } m_Building = GetGame().CreateObject( m_Building_Class, spawn_Point, false, true ); //m_Building.PlaceOnSurface(); if ( spawn_Orient[0] == 0 && spawn_Orient[1] == 0 && spawn_Orient[2] == 0) { m_Building.SetOrientation(m_Building.GetOrientation()); } else { m_Building.SetOrientation(spawn_Orient); } if ( spawn_Dir[0] == 0 && spawn_Dir[1] == 0 && spawn_Dir[2] == 0) { m_Building.SetDirection(m_Building.GetDirection()); } else { m_Building.SetDirection(spawn_Dir); } if (m_Building) { Print("::: SpawnBuilding ::: Result: Object: " + m_Building.ToString() + ", spawn_Point = " + m_Building.GetPosition().ToString() + ", alt_Correct = " + alt_Correct + ", spawn_Orient = " + m_Building.GetOrientation().ToString() + ", spawn_Dir = " + m_Building.GetDirection().ToString() + ") :::"); return 1; } else { Print("::: SpawnBuilding ::: Result: create object error. :::"); } return 0; } void SpawnBuildings() { int Buildings_Count; // пример Buildings_Count = SpawnBuilding("Land_City_FireStation", "6275 0 8013" , 0, "0 0 0", "0 0 40"); // Buildings_Count будет = 0 если здание не поставлено, 1 если поставлено } Простой способ установки
      Вставить в init.c (ВНЕ КЛАССА!)

      Вызывать в конце main()
      вот так
      SpawnBuildings();
       
      в функции SpawnBuildings() по примеру (там есть) прописываем какие здания куда, какая ориентация/и или направление
       
       
    • Автор: Gromillla
      Подскажите скрипт вывода на карту сейфов с паролем 0000, для всех игроков.
    • Автор: Razdor092
      Вся техника которая спавнится сама не уничтожается пока в нее не сядешь, помогите исправить пожалуйста. А так же подскажите как уменьшить количество машин которые спавнятся
  • Наш выбор

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

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

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

Поддержка