naxac 2 477 Опубликовано 18 Июля 2016 (изменено) @Kondr48, если ты хочешь изменить цвет кнопки, чтобы видно было, что она нерабочая, то достаточно сделать копку на классе CUI3tButton (если через xml, то это xml:Init3tButton) и покрасить нужным цветом текстуру *_d кнопки. А потом просто: button:Enable(false). Окно подсказки к кнопке (hint) скриптово на чистом движке сделать не получится. Изменено 18 Июля 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 19 Июля 2016 @CRAZY_STALKER666, позиция вертекса на текущем уровне: level.vertex_position(int <level_vertex>) Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 19 Июля 2016 каким образом в ЗП можно назначить текст кнопке с помощью скрипта? button:TextControl():SetText("text") 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 20 Июля 2016 (изменено) @mortan, сделай через CUISpinFloat(). Изменено 20 Июля 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 5 Августа 2016 (изменено) @Kober(BRUC), в ТЧ открыть: level.start_stop_menu(gui_ryukzak(), true) Закрыть внутри класса: self:GetHolder():start_stop_menu(self, true) В ЗП: открыть: gui_ryukzak():ShowDialog() закрыть внутри класса: self:HideDialog() Изменено 5 Августа 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 8 Августа 2016 @Kober(BRUC), button:Enable(false) 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 8 Августа 2016 @Kober(BRUC), сохраняй кнопки в разных переменных класса, а потом выключай те, которые надо. self.button1 = xml:InitButton.... ... self.button1:Enable(false) 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 10 Августа 2016 @Kober(BRUC), ТЧ/ЧН: self.txtt:SetText("Новый текст для static, который завется txtt.")ЗП: self.txtt:TextControl():SetText("Новый текст для static, который завется txtt.") 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 10 Августа 2016 (изменено) @Kober(BRUC), с тем, что функция, в которой ты обращаешься к self, не является методом никакого класса. Соответственно, и self в ней равен nil. И, заодно, здесь: if tonumber(_G.main_menu.get_main_menu():GetGSVer()) <= 1.0004 then local ver_gm = "1.0004 или меньше"И ниже - надо убрать local, т.к. с его помощью инициализируется новая переменная, которая действует только до elseif. Изменено 10 Августа 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 10 Августа 2016 В начале - да, она будет действовать во всем коде ниже ее. Но далее - ты каждый раз делаешь новую переменную, которая будет удалена после завершения блока кода. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 19 Августа 2016 (изменено) @CRAZY_STALKER666, метод position класса game_object возвращает экземпляр класса vector, в котором содержaтся текущие координаты объекта. Что тебе надo перепаковывать и зачем? Передавай как есть. local pos = db.actor:position() func ( pos ) Если надо что-то сделать с координатами, то используй методы класса vector - правда, для этого хотя бы немного надо векторную алгебру знать. Можно костыльно: local x,y,z = pos.x,pos.y,pos.z -- тут что-то делаешь со значениями... pos = vector():set(x,y,z) func ( pos ) Изменено 19 Августа 2016 пользователем naxac 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 20 Августа 2016 (изменено) @TIGER_VLAD, код клавиши по экшену: local dik = bind_to_dik(key_bindings.kSPRINT_TOGGLE) upd: пардон, эта функция из X-Ray Extensions, в чистом ТЧ только dik_to_bind есть. Изменено 20 Августа 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 23 Августа 2016 @FonSwong, вернет новую таблицу. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 13 Сентября 2016 (изменено) @FonSwong, 1. Никак. Если только подогнать звук под время анимации. 2. Нет. @tatarinrafa, get_console():get_float() возвращает число с плавающей точкой, т.е. val у тебя станет числом, а ты с ним пытаешься обращаться как с массивом. Изменено 13 Сентября 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 13 Сентября 2016 (изменено) @FonSwong, так бы и писал, что надо синхронизировать смену текстуры со звуком. Я думал, ты про смену кадров анимации. В подписи к видео написано, что для смены текстуры прицела используется Луа-перехватчик от Alpet - для изменения адреса в памяти. Изменено 13 Сентября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 16 Сентября 2016 (изменено) @Sla-Sla, function get_ammo_size(obj) local pk = net_packet() obj:STATE_Write(pk) pk:r_seek(pk:w_tell()-2) return pk:r_u16() -- ammo_left end function ammo_count(section) local n = 0 local sobj db.actor:iterate_inventory( function (actor, item) if item:section() == section then sobj = alife():object( item:id() ) if sobj then n = n + get_ammo_size(sobj) end end end, db.actor) return n end Изменено 16 Сентября 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 17 Сентября 2016 (изменено) @Sla-Sla, ЗП? Тогда так: function get_ammo_size(obj) local pk = net_packet() pk:w_begin(0) obj:STATE_Write(pk) pk:r_seek(pk:w_tell()-2) return pk:r_u16() -- ammo_left end function ammo_count(section) local n = 0 local sobj db.actor:iterate_inventory( function (actor, item) if item:section() == section then sobj = alife():object( item:id() ) if sobj then n = n + get_ammo_size(sobj) end end end, db.actor) return n end Использовать: ammo_cnt = ammo_count("ammo_12x70_buck")Это если надо конкретные патроны посчитать. А если все подряд, то вместо проверки по секции поставить проверку по классу. Типа if item:clsid() == clsid.ammo or item:clsid() == clsid.ammo_s then Изменено 17 Сентября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 15 Октября 2016 (изменено) @TIGER_VLAD, в ЧН/ЗП для этого экспортирован отдельный gui-класс, в ТЧ - можно с помощью CUIStatic сделать. Изменено 15 Октября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 15 Октября 2016 @FonSwong, в распакованном спавне не все параметры написаны, а только те, которые отличаются от дефолтных. Для того, чтобы узнать структуру пакета, открывай acdc.pl (желательно тот, который чисто для ЗП предназначен) и изучай классы - начиная с того, который тебе нужен - и дальше по наследованию. Или проще - есть много готовых парсеров (от Artos, xSrteam), используй их (есть в теме "Сборочный цех"). 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение
naxac 2 477 Опубликовано 15 Октября 2016 (изменено) @Карлан, при чем тут SetWndPos? Я про экспортированный в ЗП и ЧН класс прогресс-бара, которого нет в ТЧ. upd: пардон, в ТЧ он тоже есть, но недоэкспортирован нормально. Изменено 15 Октября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Поделиться этим сообщением Ссылка на сообщение