SpiritWolf

Динамическое изменение меток

Вопрос

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

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

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


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

7 ответов на этот вопрос

а зачем их менять? Вообще они из файла загружаются, так что вряд ли наверное.

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


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


а зачем их менять? Вообще они из файла загружаются, так что вряд ли наверное.

Ну фишка у нас такая, с захватом территорий, хотя тогда это лучше сделать с помощью маркеров?

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


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

Ну фишка у нас такая, с захватом территорий, хотя тогда это лучше сделать с помощью маркеров?

Переработай систему миссий, если хочешь. Оттуда возьми маркеры. Думаю обсуждать тут  нечего больше.

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


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

Удаляешь старый маркер, создаешь новый.

Всё просто до безумия, да? А-то о том как это без рестарта сделать.

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


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

Всё просто до безумия, да? А-то о том как это без рестарта сделать.

Для этого не нужен рестарт. Удаляешь метку с помощью https://community.bistudio.com/wiki/deleteMarker а затем создаешь новый с помощью https://community.bistudio.com/wiki/createMarker

Например. Есть у нас условие - метка, круг, радиусом 400м на городе. Наша задача, чтобы при убийстве всех ботов исчезла метка и отспавнилась новая. Я вижу решение данной проблемы путем создания динамического триггера, который будет проверять наличие ботов, но триггеры обычно неплохо грузят систему, поэтому можно заморочиться с циклом. Это будет меньше жрать. При исчезновении ботов, триггер удаляет маркер и создает новый и спавнит ботов и новый триггер. Сам удаляется через 5 секунд. Все просто, я такие миссии клепал очень давно для армы.

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


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

Для этого не нужен рестарт. Удаляешь метку с помощью https://community.bistudio.com/wiki/deleteMarker а затем создаешь новый с помощью https://community.bistudio.com/wiki/createMarker

Например. Есть у нас условие - метка, круг, радиусом 400м на городе. Наша задача, чтобы при убийстве всех ботов исчезла метка и отспавнилась новая. Я вижу решение данной проблемы путем создания динамического триггера, который будет проверять наличие ботов, но триггеры обычно неплохо грузят систему, поэтому можно заморочиться с циклом. Это будет меньше жрать. При исчезновении ботов, триггер удаляет маркер и создает новый и спавнит ботов и новый триггер. Сам удаляется через 5 секунд. Все просто, я такие миссии клепал очень давно для армы.

Клёво. Не знал об этой фиче.

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

    • Автор: 123new
      Такого плана вопрос по моддингу на 1.0.
      В моде есть, например, класс:
      class ExpansionGlobalChat с кучей функций
      создаю свой мод, в котором указываю
      modded class ExpansionGlobalChat { override void GlobalChat(CallType type, ref ParamsReadContext ctx, ref PlayerIdentity sender, ref Object target) { super.GlobalChat(type, ctx, sender, target); Param2< string, string > data; if ( !ctx.Read( data ) ) return; if( type == CallType.Server ) { string name = sender.GetName(); string steamid = sender.GetPlainId(); string bisid = sender.GetId(); string idtable = sender.GetPlayerId().ToString(); string log_date_time = ExpansionGetDateTime(); string format = "[" + log_date_time + "] " + "[Chat]" + " " + name + "(steamid=" + steamid + ", bisid=" + bisid + ") " + data.param2; Print(format); } } } и пакую, запускаю сервер. Пишет как на скрине.

      Если modded убираю - пишет что класс уже используется. Что я не так делаю? Как делать правильно? не допираю.
    • Автор: DrTauren
      Собственно, из названия понятно, что в этом гайде мы научимся отключать уровень стамины игрока, отключать усталость

      Инструкция:
      1) Находим файл dta/scripts.pbo и распаковываем его при помощи PBO Manager и копируем только что распакованную папку scripts в корневую папку сервера
      2) Открываем файл scripts/3_Game/constants.c и изменяем этот код под себя:
      const int STAMINA_DRAIN_STANDING_SPRINT_PER_SEC = 5; //в единицах (сколько единиц выносливости отбавляется при ускорении) const int STAMINA_DRAIN_CROUCHED_SPRINT_PER_SEC = 1; //в единицах (сколько единиц выносливости отбавляется при ускорении на корточках) const int STAMINA_DRAIN_PRONE_SPRINT_PER_SEC = 3; //в единицах (сколько единиц выносливости отбавляется при ускорении лёжа) const float STAMINA_DRAIN_HOLD_BREATH = 0.2; //в единицах (сколько единиц выносливости отбавляется при задержке дыхания) const int STAMINA_DRAIN_JUMP = 20; //в единицах (сколько единиц выносливости отбавляется при прыжке) const int STAMINA_DRAIN_MELEE_LIGHT = 5; //в единицах (сколько единиц выносливости отбавляется при лёгком ударе в ближнем бою) const float STAMINA_DRAIN_MELEE_HEAVY = 20; //в единицах (сколько единиц выносливости отбавляется при сильном ударе в ближнем бою) const int STAMINA_DRAIN_MELEE_EVADE = 8; //в единицах (сколько единиц выносливости отбавляется при уклонении) Таким образом мы можем отключить усталость игрока, стамина всегда будет максимальная. Для этого нужно всего лишь установить все параметры на значение 0
       
    • Автор: DrTauren
      Дорогие друзья, Администрацией форума приняты новые правила касательно слива\распространения античита InfiSTAR 

      Теперь коллектив сайта не несёт ответственности за слив продукта, т.к. будет создана специальная тема, в которой будут выкладываться уже слитые версии, найденные в интернете, на других сайтах. Выкладываться они будут абсолютно без изменений. Кстати, все темы касательно InfiSTAR будут удалены с сайта.
      Обращаю внимание что данное решение было принято не мной лично, а всем коллективом S-Platoon.
      Внимание! На форуме все так же запрещено сливать\продавать\выкладывать InfiSTAR, это будет караться баном без предупреждения. 
      В данной теме вы можете изложить своё мнение по этому вопросу, а также предложить другие пути разрешения ситуации
    • Автор: DrTauren
      Собственно из названия темы всё понятно, да и сам скрипт всем давно известен. Он позволяет изменить дальность прорисовки при нажатии ПКМ по биноклю или дальномеру.

      Что вам понадобится:

      Инструкция по установке:
      1) Качаем архив: 
      2) Открываем наш extra_rc.hpp и добавляем туда код:
      class Binocular { class distanceb500m { text = "500 meters"; script = "execVM 'custom\setview\500.sqf'"; }; class distanceb1000m { text = "1000 meters"; script = "execVM 'custom\setview\1000.sqf'"; }; class distanceb1500m { text = "1500 meters"; script = "execVM 'custom\setview\1500.sqf'"; }; class distanceb2000m { text = "2000 meters"; script = "execVM 'custom\setview\2000.sqf'"; }; class distanceb2500m { text = "2500 meters"; script = "execVM 'custom\setview\2500.sqf'"; }; class distanceb3000m { text = "3000 meters"; script = "execVM 'custom\setview\3000.sqf'"; }; class distanceb3500m { text = "3500 meters"; script = "execVM 'custom\setview\3500.sqf'"; }; class distanceb4000m { text = "4000 meters"; script = "execVM 'custom\setview\4000.sqf'"; }; class distanceb4500m { text = "4500 meters"; script = "execVM 'custom\setview\4500.sqf'"; }; class distanceb5000m { text = "5000 meters"; script = "execVM 'custom\setview\5000.sqf'"; }; }; class Binocular_Vector { class distanceb500m { text = "500 meters"; script = "execVM 'custom\setview\500.sqf'"; }; class distanceb1000m { text = "1000 meters"; script = "execVM 'custom\setview\1000.sqf'"; }; class distanceb1500m { text = "1500 meters"; script = "execVM 'custom\setview\1500.sqf'"; }; class distanceb2000m { text = "2000 meters"; script = "execVM 'custom\setview\2000.sqf'"; }; class distanceb2500m { text = "2500 meters"; script = "execVM 'custom\setview\2500.sqf'"; }; class distanceb3000m { text = "3000 meters"; script = "execVM 'custom\setview\3000.sqf'"; }; class distanceb3500m { text = "3500 meters"; script = "execVM 'custom\setview\3500.sqf'"; }; class distanceb4000m { text = "4000 meters"; script = "execVM 'custom\setview\4000.sqf'"; }; class distanceb4500m { text = "4500 meters"; script = "execVM 'custom\setview\4500.sqf'"; }; class distanceb5000m { text = "5000 meters"; script = "execVM 'custom\setview\5000.sqf'"; }; }; }; 3) Копируем папку setview из архива в нашу папку custom, находящуюся в папке миссии

      Вот и всё. Надеюсь кому-то помог 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: kenguru74
      Всем привет!
       
      Необходимо поднять солнце на нескольких картах. Вроде положение солнца в полдень прописано в конфиге в аддоне самой карты, так? Смотрел, но и у Тави и у Черно одна и та же latitude.. WTF?
       
      Невозможно играть из-за HDR, а гугля обделался, инфы нет