Вопрос Научите делать dropdown'ы для otc

Начинающий
Статус
Оффлайн
Регистрация
23 Июл 2019
Сообщения
43
Реакции[?]
3
Поинты[?]
1K
Научите делать dropdown'ы, желательно бесплатно. Пытался раз 20 сделать самому, ничего не выходило и не выходит:roflanPominki:.
 
Начинающий
Статус
Оффлайн
Регистрация
24 Фев 2019
Сообщения
74
Реакции[?]
2
Поинты[?]
0
СОВЕТ: найди jsку с дропдаунами и просто смотри, как там реализовано
и по примеру старайся сделать что-то свое
удачи)
 
Начинающий
Статус
Оффлайн
Регистрация
23 Июл 2019
Сообщения
43
Реакции[?]
3
Поинты[?]
1K
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,746
Реакции[?]
1,465
Поинты[?]
2K
Ну... начнем.
В кряке есть 2 вида дропдаунов -
JavaScript:
UI.AddDropdown(name, [list]) //default dropdown
UI.AddMultiDropdown(name, [list]) //multidropdown
В обычном дропдауне ты можешь выбрать ТОЛЬКО один вариант, в то время как в мультидропдауне ты можешь выбрать несколько.
Во всех дропдаунах индекс начинается с 0!

Чтобы получить значение из обычного дропдауна, нужно сделать следующее:
JavaScript:
const value = UI.GetValue('Script items', 'Ur dropdown')
Этот код вернет тебе значение от 0 до бесконечности, в зависимости от количества указанных вариантов.
Чтобы выставить значение в обычный дропдаун, нужно сделать следующее:
JavaScript:
UI.SetValue('Script items', 'Ur dropdown', 0)
Прописав этот код, мы выставим активным первый элемент дропдауна.

С мультиДропдаунами немного сложнее, чтобы получить значение из мультиДропдауна, нужно прописать следующий код:
JavaScript:
const value = (UI.GetValue('Script items', 'Ur multidropdown') & (1 << 0))
Можно его немного упростить, для понимания
JavaScript:
const dropdown = UI.GetValue('Script items', 'Ur multidropdown')
const value = (dropdown & (1 << 0 /*0 its index in dropdown*/))
Этим кодом мы узнаем, активирован ли 0 индекс.

Т.е. если мы хочешь узнать, активирован ли 3 индекс, мы пропишем следующее:
JavaScript:
const dropdown = UI.GetValue('Script items', 'Ur multidropdown')
const value = (dropdown & (1 << 3))
Сделать элемент в мультиДропдауне активным можно так:
JavaScript:
UI.SetValue('Script items', 'Ur multidropdown', UI.GetValue('Script items', 'Ur Multidropdown') | 0)
Немного сократим код
JavaScript:
const dropdown = UI.GetValue('Script items', 'Ur Dropdown')
value = dropdown | 0
UI.SetValue('Script items', 'Ur Dropdown', value)
Тут я хочу подметить, что не разобрался в этом. Происходят какие то аномалии: Вместо 0 поставишь 3 - активируются первые 2 варианта, поставишь 5 - активируются первый и третий вариант. Хуйня какая-то...

Сделать элемент в мультиДропдауне неактивным можно так:
JavaScript:
dropdown = UI.GetValue('Script items', 'Ur Dropdown')

var value = dropdown &~ 2 /*2 its index in dropdown*/
UI.SetValue('Script items', 'dropdown', value)
Надеюсь ты хоть что то понял и ко мне не придут люди бить меня палками.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
23 Июл 2019
Сообщения
43
Реакции[?]
3
Поинты[?]
1K
Ну... начнем.
В кряке есть 2 вида дропдаунов -
JavaScript:
UI.AddDropdown(name, [list]) //default dropdown
UI.AddMultiDropdown(name, [list]) //multidropdown
В обычном дропдауне ты можешь выбрать ТОЛЬКО один вариант, в то время как в мультидропдауне ты можешь выбрать несколько.
Во всех дропдаунах индекс начинается с 0!

Чтобы получить значение из обычного дропдауна, нужно сделать следующее:
JavaScript:
const value = UI.GetValue('Script items', 'Ur dropdown')
Этот код вернет тебе значение от 0 до бесконечности, в зависимости от количества указанных вариантов.
Чтобы выставить значение в обычный дропдаун, нужно сделать следующее:
JavaScript:
UI.SetValue('Script items', 'Ur dropdown', 0)
Прописав этот код, мы выставим активным первый элемент дропдауна.

С мультиДропдаунами немного сложнее, чтобы получить значение из мультиДропдауна, нужно прописать следующий код:
JavaScript:
const value = (UI.GetValue('Script items', 'Ur multidropdown') & (1 << 0))
Можно его немного упростить, для понимания
JavaScript:
const dropdown = UI.GetValue('Script items', 'Ur multidropdown')
const value = (dropdown & (1 << 0 /*0 its index in dropdown*/))
Этим кодом мы узнаем, активирован ли 0 индекс.

Т.е. если мы хочешь узнать, активирован ли 3 индекс, мы пропишем следующее:
JavaScript:
const dropdown = UI.GetValue('Script items', 'Ur multidropdown')
const value = (dropdown & (1 << 3))
Сделать элемент в мультиДропдауне активным можно так:
JavaScript:
UI.SetValue('Script items', 'Ur multidropdown', UI.GetValue('Script items', 'Ur Multidropdown') | 0)
Немного сократим код
JavaScript:
const dropdown = UI.GetValue('Script items', 'Ur Dropdown')
value = dropdown | 0
UI.SetValue('Script items', 'Ur Dropdown', value)
Тут я хочу подметить, что не разобрался в этом. Происходят какие то аномалии: Вместо 0 поставишь 3 - активируются первые 2 варианта, поставишь 5 - активируются первый и третий вариант. Хуйня какая-то...

Сделать элемент в мультиДропдауне неактивным можно так:
JavaScript:
dropdown = UI.GetValue('Script items', 'Ur Dropdown')

var value = dropdown &~ 2 /*2 its index in dropdown*/
UI.SetValue('Script items', 'dropdown', value)
Надеюсь ты хоть что то понял и ко мне не придут люди бить меня палками.
Ахуеть! Спасибо
 
Сверху Снизу