Kober(BRUC) 99 Опубликовано 14 Июля 2016 Поделиться Опубликовано 14 Июля 2016 @Kirgudu, то что math.randomseed результат не возвращает - я знал. Но вот не знал что она действует только для следующей math.random. Вот и добовлял её в локальную переменную. А отступ обще принятый? Или можно хоть сколько пробелов ставить? А навыков у меня не только в чтении мало... Ссылка на комментарий
Kondr48 314 Опубликовано 14 Июля 2016 Поделиться Опубликовано 14 Июля 2016 (изменено) Kober(BRUC), сколько угодно конечно! Можно делать для себя наглядно, чтобы было видно что и откуда. Возникла такая задача. В гуи окне нужно сделать несколько кнопок. Причем заранее не известно сколько будет этих кнопок. Можно ли делать название кнопки в gui по кускам, например как строку? local num = 4 local button_name = "button_"..num То же самое интересует для самого кода, например: self.button_1 = CUIButton() self.button_1:SetAutoDelete(true) self.button_1:Init(x,y,h,w) self.button_1:InitTexture("ui\\gz_gui\\ui_gz_icon") self.button_1:SetOriginalRect(x,y,h,w) self.button_1:SetStretchTexture(true) self:Register(self.button_1,"button_1") self.back:AttachChild(self.button_1) self:AddCallback("button_1",ui_events.BUTTON_DOWN,self.button_1_clicked,self) button_1 уже не строка, потому как это можно (и можно ли) сделать? Изменено 14 Июля 2016 пользователем Kondr48 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 14 Июля 2016 Поделиться Опубликовано 14 Июля 2016 (изменено) Хм, коли начинаем говорить о GUI, давайте расскажу про CUITrackBar() в ТЧ. Класс изначально вообще очень беден, и в нем в качестве дополнительных методов есть только управление активностью кнопки (то есть сделать можно только ползунок со спамом в лог о значении и ничего более), что же делать, подумал я, когда для реализации моей задумки мне нужно было сделать именно трек-бар. А делать надо было только одно, идти в движок и разбираться. В движке все не столь трагично было, изначально существует несколько ошибок, которые не дают нормально работать базовым функциям, то есть они очень нужны, они необходимы для нормальной работы трек-бара, но они используются только в стороннем классе, что меня совершенно не устраивало, пришлось исправлять эти недочеты. Так же совершенно не было методов получения значений трек-бара, их пришлось писать самому, но там функции примитивные, на установке значения я еще перемещаю ползунок в соответственное значение, и в результате безоговорочный успех! Выдержка из хелпера (для демонстрации результатов моей работы): C++ class CUITrackBar : CUIWindow { --// расширения для класса CUITrackBar позволяют создавать и управлять трек-баром (последнее было невозможно) function IsChanged(); --// значение изменилось? function SetStep(number); --// устанавливает шаг трекинга function GetStep(); --// получает шаг трекинга function GetValue(); --// текущее значение function SetValue(number); --// установить значение (также меняется позиция ползунка в зависимости от значения) function GetBackupValue(); --// получить предыдущее значение function SetBackupValue(number); --// установить предыдущее значение function GetBtn(); --// получить кнопку в виде объекта CUI3Button function GetFrame(); --// получить первый фрейм в виде объекта CUIFrameLineWnd function GetFrameD(); --// получить второй фрейм в виде объекта CUIFrameLineWnd };Видео-демонстрация конечного результата, чтобы всем было понятно о чем я говорю (поясняю: на видео этот ползунок и есть трек-бар): По окончанию работ я вспомнил про GUI сна в ЗП, и решил обратиться к классу трек-бара в коде ЗП и с радостью обнаружил, что мои функции получились технологичнее. Да, если кто помнит, я тот, кто потащил функционал в ТЧ, но до конкретных редких классов как этот у меня руки не дошли, разбираюсь с ними только когда мне это нужно. @Kondr48, да, можно, если неизвестно сколько кнопок будет, то делай через цикл while. Кнопка button_1 в твоем случае это поле, а поле можно получить по ключу, а ключом может выступать любой lua тип. Твоя задача весьма проста, и абсолютно точно реализуема. Изменено 14 Июля 2016 пользователем Карлан 1 1 Ссылка на комментарий
dsh 3 824 Опубликовано 14 Июля 2016 Поделиться Опубликовано 14 Июля 2016 @Kondr48, вот тут не строка self.button_1 А вот тут уже строка self[ "button_1" ] Оба варианта - одно и то же. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 15 Июля 2016 Поделиться Опубликовано 15 Июля 2016 Ребят, такой вопрос. Нужно подменить звуки ходьбы ГГ для определенной локации. Как бы это сделать? Укажите хотя-бы, в какую сторону смотреть) Не соответствует правилам. Ссылка на комментарий
HellRatz 2 892 Опубликовано 15 Июля 2016 Поделиться Опубликовано 15 Июля 2016 (изменено) Нужно подменить звуки ходьбы ГГ для определенной локации. Как бы это сделать? Создаешь новые материалы песка, земли, асфальта, травы (или один материал, смотря что за локация, может она вся из травы) и назначаешь им путь до своих звуков. Назначаешь эти материалы на террейн своего уровня, собираешь его. Готово. Вопрос вообще-то больше для темы сдк, вряд ли скриптами во время игры можно менять путь звуков материалам. Изменено 15 Июля 2016 пользователем HellRatz 1 GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 15 Июля 2016 Поделиться Опубликовано 15 Июля 2016 @HellRatz, к сожалению, возможности делать что-нибудь в СДК нет. Просто нужно сделать интересную вещь - зиму на одной из локаций, когда на остальных осень... Если с террейном, снегом, и текстурами НПЦ проблем нет, то вот со всем остальным(деревья,звуки,дома машины) - беда... Ну идеальная зима не нужна, можно ограничиться звуками пока. Знать бы, как контролируется система звуков. Если для каждого материала читается звук по уникальному пути - беда. Ну ладно, посмотрим что ещё народ скажет... Не соответствует правилам. Ссылка на комментарий
Sla-Sla 43 Опубликовано 15 Июля 2016 Поделиться Опубликовано 15 Июля 2016 Всем привет, может ли кто-нибудь кинуть функцию проверки в какой аномалии находится ГГ? Ссылка на комментарий
Kondr48 314 Опубликовано 15 Июля 2016 Поделиться Опубликовано 15 Июля 2016 (изменено) Насколько я знаю, здесь при вызове функции аргументы передавать нельзя. self:AddCallback(upgrade_icon, ui_events.BUTTON_CLICKED, self.play_repair_sound, self) Вот как можно при вызове play_repair_sound передать в неё строку? Может есть какие способы? Изменено 15 Июля 2016 пользователем Kondr48 Ссылка на комментарий
Charsi 440 Опубликовано 15 Июля 2016 Поделиться Опубликовано 15 Июля 2016 @Kondr48, например так self:AddCallback(upgrade_icon, ui_events.BUTTON_CLICKED, function() self:play_repair_sound("stroka") end) 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 16 Июля 2016 Поделиться Опубликовано 16 Июля 2016 Как получить через скрипт размер файла? Читал руководства по Lua, что-то отдельной функции не нашел... Не соответствует правилам. Ссылка на комментарий
Charsi 440 Опубликовано 16 Июля 2016 Поделиться Опубликовано 16 Июля 2016 (изменено) @CRAZY_STALKER666, метод seek с аргументом "end" переводит позицию чтения в конец файла и возвращает размер файла. function fsize (file) local current = file:seek() -- получаем текущую позицию local size = file:seek("end") -- получаем размер файла file:seek("set", current) -- восстанавливаем позицию return size end -- пример print(fsize(io.open("C:\\test_file.txt"))) Изменено 16 Июля 2016 пользователем Charsi 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
mortan 143 Опубликовано 16 Июля 2016 Поделиться Опубликовано 16 Июля 2016 @CRAZY_STALKER666, а можно же сделать несколько пресетов с разным набором звуков и в игре уже менять? Ну или перезагружать конфиг когда посещаешь определённую локацию. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 16 Июля 2016 Поделиться Опубликовано 16 Июля 2016 (изменено) @mortan, как я понял, в игре к каждому материалу звук идет - и прописывется он не в скриптах. Так что пока - думаем дальше... Изменено 16 Июля 2016 пользователем CRAZY_STALKER666 Не соответствует правилам. Ссылка на комментарий
Kondr48 314 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 (изменено) Как можно затемнить кнопку в скриптовом окне? Визуально показать, что нажатие недоступно?Мои скудные знания английского, уровень гугл переводчик, подсказали, что, возможно, поможет SetHighlightColor(number), вот только как передать нужный цвет в этот метод? Поиск по форуму и файлам оригинала ничего мне не дал( --- P.S. Также интересует возможность создания hint окна. То есть окошка, появляющегося при наведении на элемент окна. Текст окошка мне надо сгенерировать в самом скрипте. А план-максимум еще и с картинками) Патч 1.0007 Изменено 17 Июля 2016 пользователем Kondr48 Ссылка на комментарий
UnLoaded 313 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 Поиск по форуму и файлам оригинала ничего мне не дал( Ну да, а в "Справочнике по ф-циям и классам" -> "Оконные классы" видимо рецепты садоводства ? 1 Ссылка на комментарий
Kondr48 314 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 (изменено) UnLoaded, однако никаких видимых изменений от метода не вижу: self.btn_yes:SetHighlightColor(255,0,0,0), комбинация 255,255,255,255 тоже результата мне не дала) P.S. Кнопка если что - текстура, без текста. --- Есть таблица, в которой в качестве строк переписаны названия элементов окна. (Кнопки, статики) for i = 1, #table_to_del, 1 do self[table_to_del[i]] = nil news_manager.send_tip(actor, "Найден: "..table_to_del[i]) end Такой вариант не срабатывает, обычно, к примеру, если было: local maps = CUIStatic() Потом можно удалить просто: maps = nil А как поступить в этом случае? --- Существуют ли методы, чтобы повернуть статик на определенный угол? Изменено 17 Июля 2016 пользователем Kondr48 Ссылка на комментарий
SkyLoader 53 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 (изменено) Kondr48, SetHighlightColor(GetARGB(255, 255, 255, 255)). Порядок: alpha, red, green, blue Изменено 17 Июля 2016 пользователем SkyLoader 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 (изменено) @Kondr48, немного не ясно что ты хочешь от кода. Ты собираешься красить кнопку, но красишь текст, текстуру красят другим методом (метки например), а SetHighlightColor красит, очевидно, текст, в случае с кнопкой - на кнопке. По второму вопросу я вообще не понял о чем ты спрашиваешь. Статик можно повернуть методом SetHeading. @SkyLoader, метод называется SetColor (также SetColorAll), а не SetHighlightColor. Например: void CUITradeWnd::ColorizeItem(CUICellItem* itm, bool { if(! itm->SetColorAll(color_argb(255,255,100,100)); } Изменено 17 Июля 2016 пользователем Карлан 1 Ссылка на комментарий
Kondr48 314 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 (изменено) Карлан, по сути я про то и спрашивал, КАК мне покрасить текстуру, лишь уточнил, поможет ли мне этот метод? А так в lua_help есть аж три метода: SetHighlightColor(number); и SetTextColor(number, number, number, number); и SetColor(number); А что касается второго вопроса, как удалить кнопку с окна, по имени строки? То есть есть строка "btn_yes" кнопка была зарегана как self.btn_yes = CUIButton()P.S. еще бы понять, чем эти три метода друг от друга отличаются. Изменено 17 Июля 2016 пользователем Kondr48 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти