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

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

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

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

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

Поиск по сайту

Результаты поиска по тегам 'триггеры'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Основной раздел сайта
    • S-Platoon
    • Приватный раздел
    • Рынок
    • Комната отдыха и развлечений
  • Серверостроение - DayZ Standalone
    • Инструкции
    • Помощь
    • Прочее
    • English section
  • Серверостроение - Общий раздел
    • ARMA 3
    • DayZ мод
    • ARMA 2
    • CS: Global offensive
    • ARK: Survival Evolved
    • Minecraft
    • Rust
  • Темы поддержки товаров

Категории

  • DayZ
    • Сборки серверов
    • Скрипты, моды, карты и т.д.
    • Транспорт
    • Оружие, инструменты, предметы
    • Дополнения для карты
    • Модели
    • Программное обеспечение
    • Прочее
  • Arma 3
    • Сборки серверов
    • Скрипты, моды, карты и т.д.
    • Транспорт
    • Модели
    • Программное обеспечение
    • Прочее

Группы продуктов

  • Привилегии на форуме
  • Реклама на сайте

Искать результаты в...

Искать результаты, содержащие...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


Вконтакте


Steam


ICQ


Skype


Город


Сайт


Интересы

Найдено 2 результата

  1. Автор скрипта: http://s-platoon.ru/profile/48-nonameultima/ Все благодарности за этот скрипт непосредственно автору скрипта, не мне! В данной теме, расскажу как сделать зараженные газом области на карте своим методом, на обновленной версии игры 1.0. Автор: NoNameUltima 1. Открываем на сервере файл: DayZServer\mpmissions\dayzOffline.chernarusplus\init.c 2. В самом верху файла добавляем строку: #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\DamagedZone.c" 3. В том же файле находим строки: class CustomMission: MissionServer { Добавляем ниже блок функции OnInit по образцу ниже: override void OnInit () { super.OnInit(); GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true); } Если функция уже есть, в ее конец лишь дописываем сам вызов: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true); Здесь: *10000 - Время в милисекундах(10 секунд). С такой частотой будет наноситься проверка игроков в зоне и урон в данной области. 4. Создаем в папке рядом с init.c файл с именем и расширением: DamagedZone.c Вставляем в созданный нами файл следующий код: vector GAS_ZONE_CorrectToGroundPosY(vector pos) { private float pos_x = pos[0]; private float pos_z = pos[2]; private float pos_y = GetGame().SurfaceY(pos_x, pos_z); private vector tmp_pos = Vector(pos_x, pos_y, pos_z); return tmp_pos; } void GAS_ZONE_TRIGGER() { /* GAS_ZONE_TRIGGER Автор: NoNameUltima skype: hf-trade */ // Зараженные зоны private TVectorArray gas_points = {"13249 0 3962", "6389 0 2683", "6612 0 2561"}; // Массив намордников private TStringArray gas_masks = {"GasMask", "GP5GasMask"}; // Радиус зон private int GAS_ZONE_radius = 350; // Наносимый урон private float GAS_ZONE_damage_value = 10; private array<Man> GAS_ZONE_players_man = new array<Man>; GetGame().GetPlayers( GAS_ZONE_players_man ); private PlayerBase GAS_ZONE_player; private vector GAS_ZONE_position_player; private int GAS_ZONE_x; private bool GAS_ZONE_isGasMask; private int GAS_ZONE_attCount; private int GAS_ZONE_attIdx; private EntityAI GAS_ZONE_attachment; private ItemBase GAS_ZONE_item; private string GAS_ZONE_className; private float GAS_ZONE_damage_player; for (private int GAS_ZONE_i = 0; GAS_ZONE_i < GAS_ZONE_players_man.Count(); GAS_ZONE_i++) { GAS_ZONE_player = PlayerBase.Cast(GAS_ZONE_players_man.Get(GAS_ZONE_i)); GAS_ZONE_position_player = GAS_ZONE_player.GetPosition(); for (GAS_ZONE_x = 0; GAS_ZONE_x < gas_points.Count(); GAS_ZONE_x++) { if ( (vector.Distance(GAS_ZONE_position_player, GAS_ZONE_CorrectToGroundPosY(gas_points.Get(GAS_ZONE_x)))) < GAS_ZONE_radius ) { GAS_ZONE_isGasMask = false; GAS_ZONE_attCount = GAS_ZONE_player.GetInventory().AttachmentCount(); for (GAS_ZONE_attIdx = 0; GAS_ZONE_attIdx < GAS_ZONE_attCount; GAS_ZONE_attIdx++) { GAS_ZONE_attachment = GAS_ZONE_player.GetInventory().GetAttachmentFromIndex(GAS_ZONE_attIdx); if ( GAS_ZONE_attachment.IsItemBase() ) { GAS_ZONE_item = ItemBase.Cast(GAS_ZONE_attachment); GAS_ZONE_className = GAS_ZONE_item.GetType(); if ( gas_masks.Find(GAS_ZONE_className) >= 0 ) { //Print ("Намордник найден!"); GAS_ZONE_isGasMask = true; break; } } } if (GAS_ZONE_isGasMask == false) { //Print ("Намордник не найден!"); GAS_ZONE_damage_player = GAS_ZONE_player.GetHealth("GlobalHealth", "Health"); GAS_ZONE_player.SetHealth("GlobalHealth", "Health", GAS_ZONE_damage_player - GAS_ZONE_damage_value); } } } } } Все остальные настройки подписаны в скрипте, изучайте методом проб и ошибок. P.S. от автора скрипта 1. Любой желающий, кто знает скриптинг, может изменить формат массива, и сделать зоны с разным радиусом и набором вещей. 2. Можно при желании добавить вывод оповещения, в зараженных зонах. *Скрипт предоставлен мной (NoNameUltima), в обрезанном виде намерено - остальное на Ваш вкус и цвет Изменено 4 октября пользователем NoNameUltima Альтернативный гайд: Вариант от товарища elanc с инструкцией
  2. Автор скрипта: http://s-platoon.ru/profile/48-nonameultima/ Все благодарности за этот скрипт непосредственно автору скрипта, не мне! В данной теме, расскажу как сделать зараженные газом области на карте. Автор: NoNameUltima 1. Открываем на сервере файл: missionServer.c 2. После строки: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.UpdatePlayersStats, 30000, true); Добавляем: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.GAS_ZONE_TRIGGER, 10000, true); *10000 - Время в мс(10 секунд). С такой частотой будет наноситься урон в данной области. После строки: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.UpdatePlayersStats); Добавляем: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.GAS_ZONE_TRIGGER); Ищем строку: void UpdatePlayersStats() Вставляем ВЫШЕ нее, следующий код: void GAS_ZONE_TRIGGER() { /* GAS_ZONE_TRIGGER Автор: NoNameUltima skype: hf-trade */ // Зараженные зоны TVectorArray gas_points = {"13249 0 3962", "6389 0 2683", "6612 0 2561"}; // Массив намордников TStringArray gas_masks = {"GasMask", "GP5GasMask"}; // Радиус зон int radius = 350; // Наносимый урон float damage_value = 10; ref array<Man> players = new array<Man>; GetGame().GetPlayers( players ); PlayerBase player; vector position_player; int x; bool isGasMask; int attCount; int attIdx; EntityAI attachment; ItemBase item; string className; float damage_player; for (int i = 0; i < players.Count(); i++) { Class.CastTo(player, players.Get(i)); position_player = player.GetPosition(); for (x = 0; x < gas_points.Count(); x++) { if ( (vector.Distance(position_player, gas_points.Get(x))) < radius ) { isGasMask = false; attCount = player.GetInventory().AttachmentCount(); for (attIdx = 0; attIdx < attCount; attIdx++) { attachment = player.GetInventory().GetAttachmentFromIndex(attIdx); if ( attachment.IsItemBase() ) { item = Class.Cast(attachment); className = item.GetType(); if ( gas_masks.Find(className) >= 0 ) { //Print ("Намордник найден!"); isGasMask = true; break; } } } if (isGasMask == false) { //Print ("Намордник не найден!"); damage_player = player.GetHealth("GlobalHealth", "Health"); player.SetHealth("GlobalHealth", "Health", damage_player - damage_value); } } } } } P.S. 1. Так же можно изменить формат массива, и сделать зоны с разным радиусом 2. Можно при желании добавить вывод оповещения, в зараженных зонах. *Скрипт предоставлен мной, в обрезанном виде намерено - остальное на Ваш вкус и цвет Изменено 4 октября пользователем NoNameUltima Добавлено от 123new: Файл missionServer.c располагается в {папка сервера}\scripts\5_Mission\MissionServer\missionServer.c Если у вас нет папки scripts в папке с сервером игры, откройте папку dta, распакуйте папку scripts из pbo-файла scripts.pbo и переместите в папку с сервером. Чтобы папка считывалась сервером, необходимо добавить параметр запуска сервера '-FilePatching'. P.S. Гайд не проверялся на актуальной версии серверной части игры со steam!
×
×
  • Создать...

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

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