[ГАЙД] Топы

В этом гайде расскажу как сделать топы
Для создания топов нам нужна переменная, по который вы хотите сделать топ, у меня это %player%_money
Минимальный ранг, чтобы сделать топы Legend
В коде топы сделаны на 10 мест, можно сделать меньше по желанию
Проверить работоспособность кода можно на /ad топы
Топы без красивого дизайна (пример ниже), и не имеют команды на бан и разбан в топе

1716386901020.png

Код:
Событие игрока вход
 Присв. переменную += (@allid@, 0)
 Если переменная = (@allid@, 0) [
  Работа с массивами создать массив (#leaderboard#)
  Работа с массивами создать массив (#leaderboard_nicks#)
  ]
 Присв. переменную += (@%player%_id@, 0)
 Если переменная = (@%player%_id@, 0) [
  Присв. переменную += (@allid@, 1)
  Присв. переменную = (@%player%_id@, @allid@)
  Присв. переменную / (@%player%_divid@, @%player%_id@, 100000)
  Присв. переменную обьединить тексты (@nick, "%player%")
  Работа с массивами добавить в конец массива (#leaderboard#, @%player%_divid@)
  Работа с массивами добавить в конец массива (#leaderboard_nicks#, @nick)
  ]
 Игровое действие начать цикл ("leaderboard")
Код:
Цикл leaderboard 20
 Выбрать обьект все игроки
 Присв. переменную + (@%selected%_masupd, @%selected%_money@, @%selected%_divid@) -- в данном блоке нужно заменить плейсхолдер %player% на %selected% в вашей переменной монет
 Работа с массивами заменить элемент массива (#leaderboard#, @%selected%_id@, @%selected%_masupd)
 Выбрать обьект случайный игрок
 Работа с массивами сортировать массив (#leaderboard#, #leaderboard_sorted) {Сортировка по убыванию}
 Работа с массивами создать массив (#leaderboard_string)
 Присв. переменную = (@rec_num, 0)
 Присв переменную = (@in_holo, )
 Вызвать функцию (top make)
Код:
Функция top make
 Присв. переменную += (@rec_num, 1)
 Если переменная сравнить число легко (@rec_num, 10) {Меньше или равно} [
  Работа с массивами получить элемент массива (#leaderboard_sorted, @rec_num, @text)
  Если переменная текст НЕ равняется (@text, "0") [
   Присв. переменную парсить число (@id_top, @text)
   Присв. переменную округлить число (@money, id_top)
   Присв. переменную - (@id_top, @id_top, @money)
   Присв. переменную округлить число (@id_top, @id_top, 5)
   Присв. переменную * (@id_top, @id_top, 100000)
   Присв. переменную округлить число (@id_top, @id_top)
   Работа с массивами получить элемент массива (#leaderboard_nicks#, @id_top, @nick_top)
   Присв. переменную обьединить текст (@in_lb, "&a", @rec_num, "&8 - &e", @nick_top, "&8 - &d", @money) -- В этой строке можно менять стиль строки в голограмме
   Присв. переменную обьединить текст (@in_holo, @in_holo, @in_lb)
   ]
  Игровое действие ждать (1) {В тиках}
  Выбрать обьект случайный игрок
  Вызвать функцию (top make)
  ]
 Если переменная сравнить числа легко (@rec_num, 10) {Больше} [
  Игровое действие создать голограмму (Местоположение, "leaderboard", "&d&lТОП ПО МОНЕТАМ", "&f &f", @in_holo, "&a &a", "&8&oОбновление раз в 5 сек") -- Тут менять стиль голограммы
  ]

↓ Прочти перед написанием кода
() - Что находится внутри сундука
[] - Скобки, в коде майнленда это поршни
{} - Что выбрать в переключателе
`` - Что появляется после Шифт + ПКМ по табличке
"" - Только текст

# - Перед значением означает то что это массив
# - Перед и после значением означает то что это постоянный массив
-- После строки - коментарий автора
@ - Перед значением означает то что это динамическая переменная
@ - Перед и после значения означает то что это сохраненая динамическая переменная
Если значение содержит только цифры то это число
Остальные переменые в коде обозначаются ихними названиями, к примеру Игровое значение местоположение игрока или же Эффект редстоун
 
Последнее редактирование:

8MO

Участник
Регистрация
11 Мар 2024
Сообщения
14
сделай топ 3 с нпс
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
357
Функция holo make Работа с массивами получить элемент массива (#leaderboard_string, 1, @top1) Работа с массивами получить элемент массива (#leaderboard_string, 2, @top2) Работа с массивами получить элемент массива (#leaderboard_string, 3, @top3) Работа с массивами получить элемент массива (#leaderboard_string, 4, @top4) Работа с массивами получить элемент массива (#leaderboard_string, 5, @top5) Работа с массивами получить элемент массива (#leaderboard_string, 6, @top6) Работа с массивами получить элемент массива (#leaderboard_string, 7, @top7) Работа с массивами получить элемент массива (#leaderboard_string, 8, @top8) Работа с массивами получить элемент массива (#leaderboard_string, 9, @top9) Работа с массивами получить элемент массива (#leaderboard_string, 10, @top10)
это кринж
лучше одной рекурсивкой это всё делать, у меня в 1 функцию умещается 3 и 4 пункт твой
 

kiryxa_vip

Эксперт
Регистрация
3 Май 2023
Сообщения
133
это кринж
лучше одной рекурсивкой это всё делать, у меня в 1 функцию умещается 3 и 4 пункт твой
я немного забыл про это при написании кода, изменил теперь все умещается в 1 функции
 

legendaleto

Участник
Регистрация
31 Янв 2024
Сообщения
17
В этом гайде раскажу как сделать топы
Для создания топов нам нужна переменная по который вы хотите сделать топ, у меня это %player%_money
Минимальный ранг чтобы сделать топы Legend
В коде топы сделаны на 10 мест, можно сделать меньше по желанию
Проверить работоспособность кода можно на /ad топы
Топы без красивого дизайна (пример ниже), и не имеют команды на бан и разбан в топе


Код:
Событие игрока вход
 Присв. переменную += (@allid@, 0)
 Если переменная = (@allid@, 0) [
  Работа с массивами создать массив (#leaderboard#)
  Работа с массивами создать массив (#leaderboard_nicks#)
  ]
 Присв. переменную += (@%player%_id@, 0)
 Если переменная = (@%player%_id@, 0) [
  Присв. переменную += (@allid@, 1)
  Присв. переменную = (@%player%_id@, @allid@)
  Присв. переменную / (@%player%_divid@, @%player%_id@, 100000)
  Присв. переменную обьединить тексты (@nick, "%player%")
  Работа с массивами добавить в конец массива (#leaderboard#, @%player%_divid@)
  Работа с массивами добавить в конец массива (#leaderboard_nicks#, @nick)
  ]
 Игровое действие начать цикл ("leaderboard")
Код:
Цикл leaderboard 20
 Выбрать обьект все игроки
 Присв. переменную + (@%selected%_masupd, @%selected%_money@, @%selected%_divid@) -- в данном блоке нужно заменить плейсхолдер %player% на %selected% в вашей переменной монет
 Работа с массивами заменить элемент массива (#leaderboard#, @%selected%_id@, @%selected%_masupd)
 Выбрать обьект случайный игрок
 Работа с массивами сортировать массив (#leaderboard#, #leaderboard_sorted) {Сортировка по убыванию}
 Работа с массивами создать массив (#leaderboard_string)
 Присв. переменную = (@rec_num, 0)
 Присв переменную = (@in_holo, )
 Вызвать функцию (top make)
Код:
Функция top make
 Присв. переменную += (@rec_num, 1)
 Если переменная сравнить число легко (@rec_num, 10) {Меньше или равно} [
  Работа с массивами получить элемент массива (#leaderboard_sorted, @rec_num, @text)
  Если переменная текст НЕ равняется (@text, "0") [
   Присв. переменную парсить число (@id_top, @text)
   Присв. переменную округлить число (@money, id_top)
   Присв. переменную - (@id_top, @id_top, @money)
   Присв. переменную округлить число (@id_top, @id_top, 5)
   Присв. переменную (@id_top, @id_top, 100000)
   Присв. переменную округлить число (@id_top, @id_top)
   Работа с массивами получить элемент массива (#leaderboard_nicks, @id_top, @nick_top#)
   Присв. переменную обьединить текст (@in_lb, "&a", @rec_num, "&8 - &e", @nick_top, "&8 - &d", @money) -- В этой строке можно менять стиль строки в голограмме
   Присв. переменную обьединить текст (@in_holo, @in_holo, @in_lb)
   ]
  Игровое действие ждать (1) {В тиках}
  Выбрать обьект случайный игрок
  Вызвать функцию (top make)
  ]
 Если переменная сравнить числа легко (@rec_num, 10) {Больше} [
  Игровое действие создать голограмму (Местоположение, "leaderboard", "&d&lТОП ПО МОНЕТАМ", "&f &f", @in_holo, "&a &a", "&8&oОбновление раз в 5 сек") -- Тут менять стиль голограммы
  ]

↓ Прочти перед написанием кода
() - Что находится внутри сундука
[] - Скобки, в коде майнленда это поршни
{} - Что выбрать в переключателе
`` - Что появляется после Шифт + ПКМ по табличке
"" - Только текст

# - Перед значением означает то что это массив
# - Перед и после значением означает то что это постоянный массив
-- После строки - коментарий автора
@ - Перед значением означает то что это динамическая переменная
@ - Перед и после значения означает то что это сохраненая динамическая переменная
Если значение содержит только цифры то это число
Остальные переменые в коде обозначаются ихними названиями, к примеру Игровое значение местоположение игрока или же Эффект редстоун
Извините, что возрождаю старые темы, но это стоит заметить.
Напиши, пожалуйста, как топы работают и объяснение некоторых непонятных действий, потому что новички, которые полезут на форум ради гайда, они просто копирнут код и даже не поймут, что они сделали, а вы же потом жалуетесь, что игроки делают плохие режимы без кода
 
Последнее редактирование:

legendaleto

Участник
Регистрация
31 Янв 2024
Сообщения
17
Извините, что возрождаю старые темы, но это стоит заметить.
Напиши, пожалуйста, как топы работают и объяснение некоторых непонятных действий, потому что новички, которые полезут на форум ради гайда, они просто копирнут код и даже не поймут, что они сделали, а вы же потом жалуетесь, что игроки делают плохие режимы без кода
По сути гайд это не только скопированный код, а ещё и объяснение этого кода
 

Kodeus

Участник
Регистрация
18 Май 2024
Сообщения
14
Kiryxa_Vip у тебя в 3 спойлере там есть
Форматирование (BB-код):
Присв. Переменную (@id_top, @id_top, 100000
И не понятно что ставить из-за этого у меня баг с кодом исправь пожалуйста.
А также в 3 спойлере получить элемент массива там @nick_top# что это?
 

kiryxa_vip

Эксперт
Регистрация
3 Май 2023
Сообщения
133
Kiryxa_Vip у тебя в 3 спойлере там есть
исправил
И не понятно что ставить из-за этого у меня баг с кодом исправь пожалуйста.
ну это твоя проблема, у меня все абсолютно понятно
А также в 3 спойлере получить элемент массива там @nick_top# что это?
это переменная, исправил
 

snegovik666

Новичок
Регистрация
21 Авг 2024
Сообщения
0
почему пишет ошибка цикл > заменить элемент массива всё проверял вроде правильно но пишет ошибка
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
357
почему пишет ошибка цикл > заменить элемент массива всё проверял вроде правильно но пишет ошибка
это значит, что не срабатывает код в событии входа, либо неверный массив положил
Сообщение объединено:

либо в твоём мире ранее были топы, и их надо очистить
 

Kodeus

Участник
Регистрация
18 Май 2024
Сообщения
14
почему пишет ошибка цикл > заменить элемент массива всё проверял вроде правильно но пишет ошибка
Это говорит о том что или ты сделал что то не по гайду либо у тебя не чистены переменные очисти переменные
Сообщение объединено:

А я вообще в бане...
 
Сверху