ShadowHumannn

Релут в МТА

Recommended Posts

В МТА есть система релута, спустя какое-то количество времени, начинается релут пишется "Network Trouble" проходит какое-то количество времени, и на точках лута которые Вы расставили появляется новый лут, или, есть ещё одна система, когда заместо того что все игроки стоят на месте и ничего не могут сделать, тебя кикает с сервера, всё остальное - одно и то же. В Arma 2 Dayz, система немного другая и Мне кажется более интересная, там каждая точка лута обновляется через какое то количество времени, а Ты можешь делать что угодно в это время, и у каждой точки своё время обновления. Так вот, в МТА можно так же сделать? Что бы у каждой точки было своё количество времени, пройдя которое, в точке появился бы новый лут?

Share this post


Link to post

@ShadowHumannn, есть и просто без нетворка, и длительность зависит от мощности сервера и нагруженности другими вещами. Конкретно с отдельными точками, уже немало серверов, и даже публично наверно можно найти это решение.

Такое решение также будет иметь недостатки. Но делиться вариантами нормального решения, я конечно же не буду.

Стандартная "система" релута, в целом обладает очень существенными недостатками.

Ну а переписать под таймеры на каждую точку, как это сделали многие, в принципе рутинно даже.

  • Like 1

Share this post


Link to post
19 hours ago, fabervox said:

Ну а переписать под таймеры на каждую точку, как это сделали многие, в принципе рутинно даже.

Глупо каждую точку на таймеры садить, 3-4к таймеров - кайф ;D (увы, так делают)

 

On 22.12.2016 at 4:06 AM, ShadowHumannn said:

В Arma 2 Dayz, система немного другая

В ArmA II DayZ сервер автоматически перезагружается каждые несколько часов, не надо тут ля-ля.

  • Like 1

Share this post


Link to post

Как вариант, можно ограничить количество обрабатываемых точек за один подход.

  • Like 2

Share this post


Link to post
3 hours ago, TheNormalnij said:

Как вариант, можно ограничить количество обрабатываемых точек за один подход.

Однажды kenix рассказал мне что такое coroutine xD теперь я эту пихаю куда попало. Но вот в релуте ей самое место

  • Like 1

Share this post


Link to post

@SalwadoR, ну дык хорошо же что делают так с таймерами, если люди не могут ничего сами сделать, и даже не пытаются научиться, пусть их сервера глючат и раздражают игроков. Это на самом деле хороший процесс, хороший для мта, каждый выдаст пяток админок, каждый админ приведет пару человек в мта. Десятки и сотни таких серверов, сотни и тысячи новых игроков xD

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

Там в релуте, ещё веселая штука с вероятностью выпадения, многие ведь думают что циферка за вероятность отвечает, а там ещё и положение в таблице имеет значение.

 

 

  • Like 2

Share this post


Link to post
13 hours ago, SalwadoR said:

Однажды kenix рассказал мне что такое coroutine xD теперь я эту пихаю куда попало. Но вот в релуте ей самое место

Это основной вариант. Можно еще рассчитывать индекс в таблице точек лута, или использовать индекс в функции next.

Share this post


Link to post

Как вариант, ставить ярлык с таймером на каждую точку лута, и при появлении игрока в определенном от неё радиусе - проверять последнее время обновления этой точки, если обновлялась давно - обновляем.

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

Share this post


Link to post

1) Можно использовать корутины (если их очень много) и getTickCount и один таймер для обновления всех точек лута.
Сами тики обновлять, когда игрок зашел в точку лута, отсюда отпадает необходимость обновлять точки лута, в которые не заходил игрок.
И потом просто смотреть разницу, если разница в тиках больше чем Например:10 мин (60 * 1000 * 10), то делаем обновление точки лута.

2) Можно использовать кулшейпы и getTickCount и проверять только тогда, когда в него зашел игрок. Если разница в тиках большая, то обновляем точку лута.

Edited by Kenix

Share this post


Link to post

По-моему там в точках лута создавались предметы, которые можно увидеть на расстоянии, поэтому эти два варианта с эстетической точки зрения не очень подойдут

Share this post


Link to post

Радиус можно сделать больше, я не думаю, что это кому-то нужно будет видеть предмет на расстоянии в 250м.

Share this post


Link to post

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

  • Recently Browsing   0 members

    No registered users viewing this page.