ShadowHumannn Posted December 21, 2016 Share Posted December 21, 2016 В МТА есть система релута, спустя какое-то количество времени, начинается релут пишется "Network Trouble" проходит какое-то количество времени, и на точках лута которые Вы расставили появляется новый лут, или, есть ещё одна система, когда заместо того что все игроки стоят на месте и ничего не могут сделать, тебя кикает с сервера, всё остальное - одно и то же. В Arma 2 Dayz, система немного другая и Мне кажется более интересная, там каждая точка лута обновляется через какое то количество времени, а Ты можешь делать что угодно в это время, и у каждой точки своё время обновления. Так вот, в МТА можно так же сделать? Что бы у каждой точки было своё количество времени, пройдя которое, в точке появился бы новый лут? Link to comment
Other Languages Moderators Disinterpreter Posted December 22, 2016 Other Languages Moderators Share Posted December 22, 2016 Можно. 2 Link to comment
Fabervox Posted December 22, 2016 Share Posted December 22, 2016 @ShadowHumannn, есть и просто без нетворка, и длительность зависит от мощности сервера и нагруженности другими вещами. Конкретно с отдельными точками, уже немало серверов, и даже публично наверно можно найти это решение. Такое решение также будет иметь недостатки. Но делиться вариантами нормального решения, я конечно же не буду. Стандартная "система" релута, в целом обладает очень существенными недостатками. Ну а переписать под таймеры на каждую точку, как это сделали многие, в принципе рутинно даже. 1 Link to comment
kashtesov Posted December 23, 2016 Share Posted December 23, 2016 19 hours ago, fabervox said: Ну а переписать под таймеры на каждую точку, как это сделали многие, в принципе рутинно даже. Глупо каждую точку на таймеры садить, 3-4к таймеров - кайф ;D (увы, так делают) On 22.12.2016 at 4:06 AM, ShadowHumannn said: В Arma 2 Dayz, система немного другая В ArmA II DayZ сервер автоматически перезагружается каждые несколько часов, не надо тут ля-ля. 1 Link to comment
TheNormalnij Posted December 23, 2016 Share Posted December 23, 2016 Как вариант, можно ограничить количество обрабатываемых точек за один подход. 2 Link to comment
kashtesov Posted December 23, 2016 Share Posted December 23, 2016 3 hours ago, TheNormalnij said: Как вариант, можно ограничить количество обрабатываемых точек за один подход. Однажды kenix рассказал мне что такое coroutine теперь я эту пихаю куда попало. Но вот в релуте ей самое место 1 Link to comment
Fabervox Posted December 23, 2016 Share Posted December 23, 2016 @SalwadoR, ну дык хорошо же что делают так с таймерами, если люди не могут ничего сами сделать, и даже не пытаются научиться, пусть их сервера глючат и раздражают игроков. Это на самом деле хороший процесс, хороший для мта, каждый выдаст пяток админок, каждый админ приведет пару человек в мта. Десятки и сотни таких серверов, сотни и тысячи новых игроков Вообще-то там можно обойтись и без короутин. Ну и в простом релуте, одна из двух задач лишняя. Отдельное время релута каждой точке, тоже можно сделать, просто люди сделали по своим возможностям, в одной строчке) Там в релуте, ещё веселая штука с вероятностью выпадения, многие ведь думают что циферка за вероятность отвечает, а там ещё и положение в таблице имеет значение. 2 Link to comment
TheNormalnij Posted December 24, 2016 Share Posted December 24, 2016 13 hours ago, SalwadoR said: Однажды kenix рассказал мне что такое coroutine теперь я эту пихаю куда попало. Но вот в релуте ей самое место Это основной вариант. Можно еще рассчитывать индекс в таблице точек лута, или использовать индекс в функции next. Link to comment
Misha_Konsta Posted December 24, 2016 Share Posted December 24, 2016 Как вариант, ставить ярлык с таймером на каждую точку лута, и при появлении игрока в определенном от неё радиусе - проверять последнее время обновления этой точки, если обновлялась давно - обновляем. Как итог - отпадает необходимость в массовом обновлении всех точек лута, и без лишних таймеров. Да и потребность в обновлении не нужных точек лута отпадает, так как они по сути никак не грузят сервер, пока в них нет потребности. Link to comment
Kenix Posted December 24, 2016 Share Posted December 24, 2016 (edited) 1) Можно использовать корутины (если их очень много) и getTickCount и один таймер для обновления всех точек лута. Сами тики обновлять, когда игрок зашел в точку лута, отсюда отпадает необходимость обновлять точки лута, в которые не заходил игрок. И потом просто смотреть разницу, если разница в тиках больше чем Например:10 мин (60 * 1000 * 10), то делаем обновление точки лута. 2) Можно использовать кулшейпы и getTickCount и проверять только тогда, когда в него зашел игрок. Если разница в тиках большая, то обновляем точку лута. Edited December 24, 2016 by Kenix Link to comment
TheNormalnij Posted December 25, 2016 Share Posted December 25, 2016 По-моему там в точках лута создавались предметы, которые можно увидеть на расстоянии, поэтому эти два варианта с эстетической точки зрения не очень подойдут Link to comment
Kenix Posted December 25, 2016 Share Posted December 25, 2016 Радиус можно сделать больше, я не думаю, что это кому-то нужно будет видеть предмет на расстоянии в 250м. Link to comment
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 accountSign in
Already have an account? Sign in here.
Sign In Now