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

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

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

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

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
Привет всем! Арма 1.58 Эпоч 0380
Пытаюсь перенести триггеры с 1.56 армы на 1.58....
 
Вот например такая конструкция по удалению ботов из зоны успешно работала на 1.56:
 
class Sensors
{
items=1;
class Item0
{
position[]={13325,0,14515};
a=200;
b=200;
activationBy="GUER";
repeating=1;
interruptable=1;
age="UNKNOWN";
expActiv="{deleteVehicle _x} forEach thisList;";
class Effects
{
};
};
};
 

 

Но в 1.58 появился новый общий для всего класс class Entities. Уже пробовал вот так:
 
 

 

class Entities
{
items=1;
class Item1
{
dataType="Trigger";
position[]={13325,0,14515};
class Attributes
{
name="delbot";
onActivation="{deleteVehicle _x} forEach thisList;";
sizeA=200;
sizeB=200;
repeatable=1;
interruptable=1;
activationBy="GUER";
};
id=210;
type="EmptyDetector";
};
};
 

 

Но не сработало((... пробовал то же самое прямо в редакторе сделать... на 1.56 получалось... на 1.58 не пашет((

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


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

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




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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 123new
      Автор скрипта: 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 с инструкцией
       
    • Автор: 123new
      Автор скрипта: 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!
    • Автор: NotMeyson404
      Создал триггер в редакторе, что бы при заходе в область триггера играла музыка (Проверил в редакторе все работате на ура), сохранил как положено, закинул все файлы на сервер arma 3 epoch, и не работает ничего, пол дня провозился....подскажите как быть?
       
      class Item130
      {
      dataType="Trigger";
      position[]={7850.2622,17.753777,11198.521};
      angle=4.7678905;
      class Attributes
      {
      onActivation="1 fadeMusic 1; playMusic ""sidr11"";";
      onDeactivation="1 fadeMusic 0;";
      sizeA=3;
      sizeB=7;
      sizeC=4;
      repeatable=1;
      activationBy="ANY";
      isRectangle=1;
      isServerOnly=1;
      };
      id=40;
      type="EmptyDetectorArea10x10";
      atlOffset=-0.052999496;
      };
      class Item131
      {
      dataType="Trigger";
      position[]={7853.6118,17.391575,11197.52};
      angle=4.6931028;
      class Attributes
      {
      onActivation="playSound ""sidr22"";";
      onDeactivation="playSound ""sidr33"";";
      sizeA=2;
      sizeB=2;
      sizeC=4;
      repeatable=1;
      activationBy="ANY";
      isRectangle=1;
      isServerOnly=1;
      };
      id=41;
      type="EmptyDetectorArea10x10";
      atlOffset=0.1210022;
      };
    • Автор: SteelSoul
      Как увеличить спавн лута на Арма3 1.58 эпоч 0.3.8.0?
      В epochconfig.hpp меняю, а толка нет(
       
      // Antagonists
      antagonistChanceTrash = 0.33; //9% chance when player loot a trash object
      antagonistChancePDeath = 0.33; //33% chance when player was killed from a other player (selfkill doesn't count)
      antagonistChanceLoot = 0.33; //9% chance when player click "SEARCH" on a loot object
    • Автор: SteelSoul
      Как подключить Zeus на Арма3 1.58?
  • Наш выбор

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

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

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