никогда не перестану удивляться бравлу, а именно - тому как он работает.
вы помните пинпаки? ну те, с которых вы получали 3 пина (2 обычных и 1 редкий/эпический)
однако, если вы много открывали эти самые пинпаки, то могли заметить одну странную особенность - в какой-то момент... игра просто не будет вам давать открывать их. хотя у вас вроде-как есть ещё неразблокированные пины. и такие случаи имели место быть. вспомните, например, арткула, который не мог выбить эпический пин на кольта.
так а почему это происходит? давайте погрузимся поглубже!
покопав код игры, можно набрести на фукнцию валидации LogicGemOffer (LogicGemOffer::isValid)
зная id пинпака, можно выйти на блок кода, который отвечает за то: можете ли вы открыть пинпак, или нет. (скрин 1)
и так, функция LogicDataTables::getObtainableEmotes возвращает пины, которые игрок может открыть. а что это за функция ниже?
а это как-раз таки та самая зараза. скажем так, плод всего убожества и зовите-как-хотите. (скрин 2)
говоря простым языком: функция получает количество доступных common пинов и проверяет: если можно выбить 2 или более, то она проверяет количество доступных редких пинов. и если это значение больше 0, то она возвращает true. я думаю вы уже поняли проблему.
если нет, то она не учитывает эпические пины, что, как-бы, учитывать всё-таки нужно, дабы окошко с альтернативной наградой не вылезало, а игрок мог до конца собрать все пины.
ну или как вариант можно было бы просто учитывать количество всех неоткрытых пинов и не оставлять проблем на будущее.
даёт ли это нам ответ на вопрос почему пинпаки убрали из игры? незнаю. но сейчас, с учётом количества пинов в игре, они бы были довольно полезными.
Post #12
2.12K


- 👍 6
- 💯 4
- 🤝 2
- ❤ 1