есть одно узкое место, объекты с системе отмена повтора идентифицируются в виде hammerid для того чтобы когда мы отменяем и повторяем действия мы делали это с одними и теми же предметами над которыми были произведены и записаны действия.
но проблема заключается в том что чтобы найти предмет который имеет нужный нам hammerid нам нужно перебрать все 2048 возможных пропов, выходит если вы делали действия с 200 предметами и хотите их отменить то сумма итераций цикла неободимых для того чтобы найти нужные предмета будет: 200 на 2048 = 409600 итераций, это очень много..
для групповых действий которые по сути своей личные для игроков, можно сделать вот что:
вместо того чтобы искать каждый предмет всегда по новому нужно перед запуском отмены/повтора группового действия сделать цикл с с данными из стека объектов игрока где хранятся данные с уникальными entity refference ссылками к пропам и записывать hammerid предмета в качестве ключа а в качестве значения entity refference код пропа, так вот у нас получится готовая пачка данных и серверу не придется делать 409600 итераций, мы это сделаем за 200 собрав данные перед запуском цикла отмены, дальше уже цикл отмены будет просто обращатся к KeyValue пакету указывая hammerid получая entity refference код предмета.
Рекомендуемые комментарии
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.