Топ по монетам

silencee

Участник
Регистрация
25 Авг 2023
Сообщения
3
Как сделать топ-10 по монетам, используя массивы и вывод в голограмму, примерно такого типа:
1700894202664.png
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
357
врят-ли тут кто-то напишет, по этому могу просто посоветовать свой магазин кода - https://discord.gg/X9gNHfAtJM
там можно купить топы

ну а что-бы не казаться совсем зажравшимся, расскажу принцип

у игрока есть переменная %player%_id, и %player%_id2
когда игрок заходит, мы проверяем, существует ли эта переменная, если не существует - мы в переменную all-id прибавляем 1, и ставим в %player%_id = all-id
чтобы получить %player%_id2 надо разделить %player%_id на 100000
в массив top-not-sorted (это массив в котором хранятся все значения) помещаем %player%_id2
этот процесс - регистрация топа

так-же в этот процесс входит регистрация ника игрока (есть массив all-nicks, в него надо в конец записать ник игрока)

у игрока его айди = положению ника в таблице ников, это важно понимать

дальше цикл
в самом начале ставим выборку всех игроков, дальше мы в отдельную переменную сохраняем следующее:
%selected% mas-update = %selected%_id2 + %selected%_money
дальше мы заменяем элемент в топе top-not-sorted используя за индекс %selected%_id, а за значение %selected% mas-update
в нём происходит обновление топа
нужно отсортировать массив top-not-sorted по убыванию в массив top-sorted
есть условная переменная mas-recursion для проведения рекурсии по 10-и игрокам. изначально она равна нулю
дальше функция, самое наверно сложное

эту функцию вызываем повторно 10 раз
прибавляем к переменной рекурсии по 1, и получаем элемент, используя mas-recursion как индекс
дальше извлекаем значение монет игрока:
округлить к меньшему значение
дальше айди:
id = elem - money (money - это распакованное значение)
этот айди так-же нужно умножить на 100000, и опять округлить к меньшему

теперь у нас есть айди, и значение
получаем из массива ников ник игрока, используя за индекс наш айди
затем объединяем все тексты, и сохраняем в переменную

возвращаемся к циклу
после вызова нашей функции надо поставить задержку 10 тиков, и после чего спавним голограмму, где в качестве значений будет 1 переменная со всеми топами
 
Сверху