Перейти к содержанию

Добро пожаловать на проект
Weekly Open Games

Weekly Open Games — это проект для людей, которым интересен хардкорный тип игры. Мы стараемся максимально эффективно использовать структуру, слабые и сильные стороны, а также технику и вооружение различных сторон конфликта, но не ставим перед собой цель провести 100% сбалансированного боестолкновения. Командная игра, командное взаимодействие — фундамент нашего проекта.
О проекте WOG Как начать играть Правила серверов
Авторизация  
Guest

Фикс перехода на сторону дезертиров при случайном убийстве

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

Guest

Важная информация для разработчиков миссий.

 

Смотрите. В Arma 3 есть несколько строн. Самые распостранённые: west, east, resistance, civilian . Но есть ещё одна, попасть на строну которой проще простого. Это sideEnemy:

https://community.bistudio.com/wiki/sideEnemy

 

Чтобы перейти на данную строну, по идее достаточно атаковать членов своей комманды. Что порой и происходит на всокресных играх. Однако сюрпиз в том, это далеко не все условия. На самом деле дело в параметре Raiting каждого юнита:

https://community.bistudio.com/wiki/rating

https://community.bistudio.com/wiki/ArmA:_Rating_Values

 

Так вот, если он станет меньше -2000, то игрок попадёт в sideEnemy. Этого можно добиться разными способами, например, не поверите, просто уничтожив 2-3  дружественных машины. Причем, сюрприз, даже если они будут пусты или в них будут сидеть враги(!). И это ладно машины, за убитый один изначально дружественный вертолёт, захваченный противиком, игрок гарантировано пападёт в sideEnemy.

 

В любом случае, игрок попавший на строну sideEnemy по стечению обстоятельств  будет мешать своей команде. Например, он не сможет ездить на одном траспорте с командой. Но печальнее другое - скрипты будут считать такого игрока не членом своей комманды, что уже совсем не здорово.

 

На Wog'овские игры случайные люди редко попадают, а значит использовать встроенный механизм игры смысла нет, тем более, что он может поломать логику миссии. Его можно запросто выключить, например, вот так:

waitUntil {!isNull player};player addRating 200000;while {true} do{    if(rating player<100000) then    {        player addRating 100000;    };    sleep 60;}

Так вот. Сделайте это. Элементарно сохраните вышенаписанное в скрипт setPlayersRaitingToMax.sqf и вызовите его в INIT.sqf:

// Установить рейтинг всех игроков на максимум и поддерживать его. Никакх наказаний за дезертирство.0 = [] execVM 'setPlayersRaitingToMax.sqf';

Подчеркиваю, что рейтинг не Rank, и на получение званий не влияет.

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


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

Зачем лишние файлы и циклы?

 

В формате вога, более чем достаточно добавить в init.sqf

if(!isDedicated)then{[]spawn{waitUntil{sleep 1;time>0};player addRating 400000;};};

-500   за юнита

-5000 за технику

Что бы сбить себе такой рейтинг, надо убить всю союзную пехоту и всю технику.

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


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

@Ezhuk,

Вообще да. Взял с запасом на  безостановочную игру с применением ядерного оружия. :)

Но суть в том, что сделать это надо. А то делить с отрядом машину посреди боя из-за того, что кто-то эффектно отбросаля гранатами 5 минутами ранее, совсем невесело.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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