Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
exploadead

Триггеры в 1.58

Привет всем! Арма 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 не пашет((

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts






Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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 с инструкцией
       
    • By 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!
    • By 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;
      };
    • By 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
    • By SteelSoul
      Как подключить Zeus на Арма3 1.58?
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.