Jump to content

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

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

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

Recommended Posts

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, и на получение званий не влияет.

Share this post


Link to post
Share on other sites

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

 

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

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

-500   за юнита

-5000 за технику

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

Share this post


Link to post
Share on other sites
Guest

@Ezhuk,

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

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

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

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.