DrTauren

Адмиская\приватная база, заражённые базы

27 сообщений в этой теме

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

1) Редактор Армы2ОА

2) Notepad
3) Архив


Основные настройки и приготовления

Инструкция:
1) Заходим в редактор Армы (alt+e в главном меню, Чернорусь)
2) Ставим триггер в нужном месте. Сразу выставляем нужный радиус.

3) Сохраняем миссию, заходим в папку с сохранёнными миссиями (Документы\ArmA 2 Other Profiles\НикВашегоПерсонажа\missions)
4) Открываем нашу миссию (та, что mission.sqf) при помощи Notepad, находим примерно такие строки:

_this = createTrigger ["EmptyDetector", [11883.309, 5724.8052]];
_this setTriggerArea [35, 45, 57.1982, false];
_trigger_0 = _this;

[11883.309, 5724.8052] -
это координаты, по которым в дальнейшем будет располагаться ваша
приватная\радиоактивная зона, защищённая скриптом, который будет
активироваться при входе игрока внутрь. Имейте ввиду, что в миссии и на
сервере координаты прописываются по-разному, поэтому вам нужно будет
переделать ваши координаты в самом начале пункта 5 примерно так:

[11883.309,0,5724.8052]

То есть мы должны вставить "0" между двумя нашими значениями и убрать пробелы между запятой и вторым значением.
5) Заходим в папку с вашей миссией, открываем mission.sqm и находим примерно такие строки:

class Sensors
    {
        items=4;
        class ItemХ0
        {
            position[]={6325.6772,304.99033,7807.7412};
            a=150;
            b=150;
            activationBy="WEST";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            name="zonestary";
            expCond="(player distance zonestary) < 150;";
            expActiv="TitleText[""Вы вошли в трейд-зону"",""PLAIN DOWN""]; canbuild = false;";
            expDesactiv="TitleText[""Вы покинули трейд-зону"",""PLAIN DOWN""]; canbuild = true;";
            class Effects
            {
            };
        };
        class ItemХ1
        {
            position[]={4063.4226,365.00577,11664.19};
            a=150;
            b=150;
            activationBy="WEST";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            name="zonebash";
            expCond="(player distance zonebash) < 150;";
            expActiv="TitleText[""Вы вошли в трейд-зону"",""PLAIN DOWN""]; canbuild = false;";
            expDesactiv="TitleText[""Вы покинули трейд-зону"",""PLAIN DOWN""]; canbuild = true;";
            class Effects
            {
            };
        };
        class ItemХ2
        {
            position[]={11447.472,317.26886,11364.504};
            a=150;
            b=150;
            activationBy="WEST";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            name="zoneklen";
            expCond="(player distance zoneklen) < 150;";
            expActiv="TitleText[""Вы вошли в трейд-зону"",""PLAIN DOWN""]; canbuild = false;";
            expDesactiv="TitleText[""Вы покинули трейд-зону"",""PLAIN DOWN""]; canbuild = true;";
            class Effects
            {
            };
        };
    };

Где Х0, Х1, Х2 - это номера ваших уже стоящих в моде EPOCH триггеров, (отсчитывая с нуля) отвечающих за вывод текста игроку, когда тот заходит на территорию трейд-зоны.
6) Добавляем ещё один триггер в класс:

class ItemХ3
        {
            position[]={9376.7676,0,14358.626};
            a=70;
            b=70;
           activationBy="WEST";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            name="RadZone1";
            expCond="((vehicle player) in thislist;";
            expActiv="RadZone1 = [] execVM ""rad_zone.sqf"";";
            expDesactiv="terminate RadZone1; TitleText [""Ты покинул чужую территорию."", ""PLAIN DOWN"", 3];";
            class Effects
            {
                titleType="TEXT";
                titleEffect="PLAIN DOWN";
                title="Ты нашёл чью-то базу...";
            };
        };
  • Где Х3 - это следующее число, после вашего Х2. То есть должна соблюдаться строгая нумерация.
  • А position[]={9376.7676,0,14358.626}; это координаты триггера. Не забудьте вернуться у пункту 4 и изменить координату согласно инструкции.
  • a=70; и b=70; - это размер вашего триггера в метрах. Мы выставляли эти значения, когда делали миссию в редакторе. Просто заменяем 70 на свои значения из mission.sqf


7) В самом начале класса есть строка, имеющая такой вид:

items=ХХ;

Да, как вы верно догадались, там должно быть прописано сколько триггеров в классе. Выходит, что триггеров в нашем случае 4. Не забывайте, что отсчёт ведётся от нуля!

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


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


Приватная база


1) Закидываем файл rad_zone.sqf из архива в папку с вашей миссией

2) Заменяем содержимое скрипта на это:

if ((getPlayerUID player) in ["xxxx","xxxx"]) then {
titleText ["Добро пожаловать домой.", "PLAIN DOWN", 3]; titleFadeOut 4;
}else {
titleText ["Ты находишься на админской базе, уходи!", "PLAIN DOWN", 3]; titleFadeOut 4;
sleep 10;
    titleText ["Если ты не уйдешь, через 20 секунд тебя ударят по голове и отберут технику!", "PLAIN DOWN", 3]; titleFadeOut 4;
sleep 5;
    titleText ["Очнешься уже далеко отсюда.", "PLAIN DOWN", 3]; titleFadeOut 4;
sleep 20;
r_player_blood = 0;
};

Где "xxxx" это UID персонажа, которому разрешено входить на приватную территорию. Его вы можете посмотреть в базе данных.

Где r_player_blood
- это количество крови у игрока, который не покинул территорию после
определённого времени. У нас стоит значение 0, так что персонаж
погибнет. Вы можете экспериментировать и использовать значения эффектов
из поста выше.

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


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

Заражённые базы

1) Заходим в папку с вашей миссией и открываем description.ext при помощи Notepad
2) Добавляем после закрывающей скобки ( }; ) любого другого класса (например class RscText) это:

class CfgSounds
{
    sounds[] = {};
    class geiger1
    {
        // how the sound is referred to in the editor (e.g. trigger effects)
        name = "geiger1_sound";
        // filename, volume, pitch
        sound[] = {"geiger.ogg", 1, 1};
        titles[] = {};
    };
};

Где geiger.ogg - звук нашего дозиметра. Файл находится в архиве, приложенном к посту.

  • Если вы не хотите что бы при входе в заражённую зону у игрока проигрывался этот звук, просто не выполняйте пункт 1,2

3) Файлы rad_zone.sqf и geiger.ogg из архива кидаем в вашу папку с миссией

Настройка эффектов при входе в заражённую зону
Вы можете изменять эффекты, которые буду активироваться при входе в зону. Для этого просто заменяйте значения типа r_player_inpain = true; на те, что я привёл ниже. Их значения вы можете легко узнать, используя Гугл переводчик. Как только у меня появится свободная минутка - лично протестирую все значения и опишу их в этом гайде.

"dynamicBlur" ppEffectAdjust [0];"dynamicBlur" ppEffectCommit 5;"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1], [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5;
r_interrupt =             true;
r_doLoop =             true;
r_self =                 true;
r_drag_sqf =             true;
r_action =             true;
r_action_unload =         true;
r_player_handler =     true;
r_player_handler1 =     true;
r_player_dead =         false;
r_player_unconscious =     true;
r_player_infected =        true;
r_player_injured =         true;
r_player_inpain =         true;
r_player_loaded =         true;

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


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

Классно, давно искал, спасибо!

Также жду урока про кровь, автазаправку на новую версию.)

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


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

Алекс а видео гайдик будет?))))  Я конечно вот сейчас сижу и пробую по этому гайду сделать) но что то не особо выходит((( 
А в init нужно включать rad_zone.sqf   ???

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


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

Прошу прощения все получилось) там в названии файла была ошибка rad_zone.sqf нужно было стереть (.sqf)

Да Алекс а можно ли как то сделать что бы игроку который зашел на чужую базу,по мимо сообщения включалась сирена или типа счетчик гейгира??
То есть он зашел ему написало что он пришел на чужую территорию зашумел счетчик гейгера и он умер)

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


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

Прошу прощения все получилось) там в названии файла была ошибка rad_zone.sqf нужно было стереть (.sqf)

 

Да Алекс а можно ли как то сделать что бы игроку который зашел на чужую базу,по мимо сообщения включалась сирена или типа счетчик гейгира??

То есть он зашел ему написало что он пришел на чужую территорию зашумел счетчик гейгера и он умер)

Ты посмотри внимательно пункт с заражёнными базами и увидишь:

 sound[] = {"geiger.ogg", 1, 1};

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


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

вылетает сервак с ошибкой File mpmissions\DayZ_Epoch_Chernarus\mission.sqm, line1472:/Mission/Sensors/: Missing '}'

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


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

теперь каждый раз пишет "Вас изгнали из игры". Расскажите куда эти файлы кидать, что и где прописывать, может что-то не так сделал

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


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

Dr Tauren, сделал все как вы описали, до 5го пункта.

 

Захожу в MPMissions/Dayz_1.Chernarus/missions.sqm и не вижу там ничего кроме строки:

#include "\z\addons\dayz_code\system\mission\mission.sqm"

Дописываю сюда класс sensors как описано дальше по гайду - нулевой эффект.

Распаковываю с PBO Dayz_Code и нахожу там в system\mission\mission.sqm свой класс sensors, дописываю новый item3, меняю кол-во items=4, пакую обратно.

После этого при заходе в лобби на сервер меня изгоняет с надписью "Wrong Signature"

 

Очень надеюсь на помощь!

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


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

 а как саму мисию сохранить?(3 пункт) пишет - чтобы задание можно было сохранить, на карте должен быть хотя бы 1 объект, управляемый игроком

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


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

 а как саму мисию сохранить?(3 пункт) пишет - чтобы задание можно было сохранить, на карте должен быть хотя бы 1 объект, управляемый игроком

Юнит должен на карте стоять у тебя. Я обычно триггеры делаю через мультиплеер. Заходишь в мультиплеер,выбираешь новая,Там синим редактор,создаешь. На карте находишь нужное место,справа у тебя триггер будет написано,выбираешь триггер,два раза кликаешь на нужно месте и сразу же радиус можно прописать,сохраняешь и пишешь название какое нибудь. Потом сохраняешь,потом идешь C:\Users\Admin\Documents\ArmA 2 Other Profiles\твой ник\MPMissions/название сохранения. Извиняюсь если не совсем понятно описал

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


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

Добрый день,у меня нету такого "class Sensors" куда мне в missions прописать координаты приват базы. При создании class Sensors миссия закрывается с ошибкой.

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


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

все сделал по инструкции, при входе на сервер "Сессия прервана". В Чем проблема? Подскажите решение, пожалуйста!

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

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


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

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

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

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

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


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

Войти

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


Войти сейчас