- Сообщений: 3147
- Спасибо получено: 2651
[VX Ace] Радиокнопки в списках
9 года 3 мес. назад - 9 года 2 мес. назад #95772
от DeadElf79
Информация:
Автор: DeadElf79
Версия: 1.2
Описание:
Позволяет использовать иконки для выбора вместо прямоугольника.
Установка:
Демо:
Скачать архив ZIP (1,31 МБ)
Скриншот:
Код:
DeadElf79 создал тему: [VX Ace] Радиокнопки в списках
Радиокнопки в списках
de79 radio selectables
de79 radio selectables
Информация:
Автор: DeadElf79
Версия: 1.2
Описание:
Позволяет использовать иконки для выбора вместо прямоугольника.
Установка:
- ставим скрипт как обычно
- в модуле De79Radios ставим следующее:
ICON_DRAW_RADIO = № иконки из иконсета, которая будет использоваться, когда элемент выделен
ICON_THROW_RADIO = № иконки, которая будет использоваться, когда элемент не выделен.
Демо:
Скачать архив ZIP (1,31 МБ)
Скриншот:
Код:
Code:
# de79 radio selectables
# version: 1.2
module De79Radios
# № иконки из иконсета, которая будет использоваться, когда элемент выделен
ICON_DRAW_RADIO = 3
# № иконки, которая будет использоваться, когда элемент не выделен
ICON_THROW_RADIO = 2
end
class Window_Selectable
alias de79radios_initialize initialize
def initialize(x, y, width, height)
de79radios_initialize(x, y, width, height)
@last_index = @index
end
def radio_offset
26
end
def draw_radio_icon
De79Radios::ICON_DRAW_RADIO
end
def throw_radio_icon
De79Radios::ICON_THROW_RADIO
end
alias de79radios_item_rect item_rect
def item_rect(index)
rect = de79radios_item_rect(index)
rect.x += radio_offset
rect
end
def update_cursor
if @cursor_all
draw_all_radios
self.top_row = 0
elsif @index < 0
throw_all_radios
else
ensure_cursor_visible
throw_radio( item_rect( @last_index ) )
draw_radio( item_rect(@index) )
@last_index = @index
end
end
def draw_all_radios
item_max.times do |index|
draw_radio( item_rect( index ) )
end
end
def throw_all_radios
item_max.times do |index|
throw_radio( item_rect( index ) )
end
end
def clear_all_radios
item_max.times do |index|
clear_radio( item_rect( index ) )
end
end
def draw_radio( rect )
rx = rect.x - radio_offset
ry = rect.y
clear_rect = Rect.new( rx, ry, 24, 24 )
contents.clear_rect( clear_rect )
icon = draw_icon( draw_radio_icon, rx, ry )
end
def throw_radio( rect )
rx = rect.x - radio_offset
ry = rect.y
clear_rect = Rect.new( rx, ry, 24, 24 )
contents.clear_rect( clear_rect )
icon = draw_icon( throw_radio_icon, rx, ry )
end
def clear_radio( rect )
rx = rect.x - radio_offset
ry = rect.y
clear_rect = Rect.new( rx, ry, 24, 24 )
contents.clear_rect( clear_rect )
end
alias de79radios_activate activate
def activate
refresh
de79radios_activate
end
alias de79radios_deactivate deactivate
def deactivate
clear_all_radios
de79radios_deactivate
end
alias de79radios_refresh refresh
def refresh
de79radios_refresh
throw_all_radios
update_cursor
end
end
class Window_HorzCommand
alias de79radios_horz_item_rect item_rect
def item_rect(index)
rect = de79radios_horz_item_rect(index)
rect.x += radio_offset
rect
end
def alignment
return 0
end
end
Последнее редактирование: 9 года 2 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад #95774
от Paranoid
Paranoid ответил в теме [VX Ace] Радиокнопки в списках
В предметах и экипировке не видно первой иконки.
А в сохранениях все тот же прямоугольник.
А в сохранениях все тот же прямоугольник.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад - 9 года 3 мес. назад #95775
от DK
Насколько я помню для предметов специальный класс Window_ItemList или как-то так и в нем своя прорисовка "команд". Наверное, тоже самое и с сохранениями.
P.S. Может мне такое же на мв замутить
P.S.S. А, неправильно прочитал коммент. Если не видно только первой, то там скорее всего пустой предмет ?
DK ответил в теме [VX Ace] Радиокнопки в списках
Paranoid пишет: В предметах и экипировке не видно первой иконки.
А в сохранениях все тот же прямоугольник.
Насколько я помню для предметов специальный класс Window_ItemList или как-то так и в нем своя прорисовка "команд". Наверное, тоже самое и с сохранениями.
P.S. Может мне такое же на мв замутить
P.S.S. А, неправильно прочитал коммент. Если не видно только первой, то там скорее всего пустой предмет ?
Последнее редактирование: 9 года 3 мес. назад пользователем DK.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад #95788
от DeadElf79
DeadElf79 ответил в теме [VX Ace] Радиокнопки в списках
В предметах и экипировке, насколько я помню, используются дети класса Window_HorzCommand, с которым как раз могут возникуть такие проблемы. Поправлю, когда доберусь.
В сохранениях вообще используется не список в одно окно, а десяток отдельных окон. Тут не буду править, потому что мало ли у кого какие скрипты на экран сохранения. С нестандартными должно работать на ура.
Дк, замути, реализация несложная, как видишь)
В сохранениях вообще используется не список в одно окно, а десяток отдельных окон. Тут не буду править, потому что мало ли у кого какие скрипты на экран сохранения. С нестандартными должно работать на ура.
Дк, замути, реализация несложная, как видишь)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад #95789
от DK
DK ответил в теме [VX Ace] Радиокнопки в списках
Точно не HorzCommand. HorzCommand для категорий используется. Это же горизонтальное непрокручивающееся окно
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад #95793
от DeadElf79
DeadElf79 ответил в теме [VX Ace] Радиокнопки в списках
ДК, ты, кажись, запутался в классах и сценах
Еще раз перечитай посты.
Отвлекся от проекта, сделал обновление с исправлением ошибок, заодно демку сделал. Демку, скриншоты из нее и код сейчас добавлю в топик.
Еще раз перечитай посты.Отвлекся от проекта, сделал обновление с исправлением ошибок, заодно демку сделал. Демку, скриншоты из нее и код сейчас добавлю в топик.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад #95805
от Paranoid
Paranoid ответил в теме [VX Ace] Радиокнопки в списках
Псс, Эльф. Сделай в самом коде объяснялку напротив нужных строк, а то можно и забыть.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад #95806
от DeadElf79
DeadElf79 ответил в теме [VX Ace] Радиокнопки в списках
Готово, пара комментариев в модуль настроек добавлена.
Спасибо сказали: Paranoid
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 2 мес. назад #96672
от DeadElf79
DeadElf79 ответил в теме [VX Ace] Радиокнопки в списках
Сделал небольшое обновленьице, которое выносит настройки из модуля в настройки внутри окна. Теперь вы можете поменять номера иконок глобально для всех окон, но для некоторых окон взять и заменить номера иконок без необходимости писать алиасы под каждое окно, просто скопируйте нужный метод и вставьте свое число вместо De79Radios::ICON_*_RADIO. Не знаю, зачем вам это может быть нужно, но мало ли кто-то решит сделать индивидуальные иконки в каждом окне.
Код в топике и в демке обновлён.
Код в топике и в демке обновлён.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.104 секунд
