Graff46 625 Опубликовано 16 Марта 2014 Доброго времени суток! Подскажите есть ли в классе CUIStatic метод поворота текстуры, (я искал не нашёл) платформа ТЧ? Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 16 Марта 2014 Graff46 Поворот возможен только при использовании *.xml файлов. Мне метод когда статики выводят через *.xml не подходит, они под родной худ уходят и удаляются ф-цией level.hide_indicators() Я делаю статики методом таким local hud = CUIStatic()hud:Init(0,0,1024,768) hud:InitTexture("my\\krepost\\glass") hud:Show(true) hud:SetStretchTexture(true) get_hud():AddDialogToRender(hud) При таком подходе статики не пропадают при диалогах, открытом инвентаре, пда и так далее. Я хотел таким способом миникарту сделать, а для этого нужно вращать текстуру. Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 16 Марта 2014 Вращать не выйдет Понятно. Жаль. Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 7 Мая 2014 Всем доброго времени суток! У меня вопрос: Как сохранить значение переменной при переходах между локациями и загрузкой\сохранением? Дело в том, что я написал ф-цию которая высчитывает некоторое число и присваивает его переменной, далее ф-ция должна будет возвратить истину если игровой час (время в игре) соответствует значению переменной, проблема в том, что при переходе на другую локацию значение переменной "сбрасывается". ТЧ. P.S. Я не уверен, но вроде как для таких случаев разработчики прописывали целую систему записи переменных, но как этим пользоваться - я не знаю. Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 8 Мая 2014 Сохряняй это значение в pstor актера, и загружай оттуда-же Как это сделать, прописать? Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 6 Февраля 2016 (изменено) Помогите с кодом. Нужно что бы по нажатию на кнопку save происходило сохранение с именем из текста введенного в edit1, дело в том, что стандартная функция из скрипта возвращает пустую строку.скрипт class "season" (CUIScriptWnd) function season:__init() super() self:InitControls() self:InitCallBacks() end function season:__finalize() end function season:InitControls() local xml = CScriptXmlInit() self:Init(0,0,1024,768) xml:ParseFile("season.xml") self.frame1 = xml:InitFrame("frame1", self) self.edit1 = xml:InitEditBox("edit1", self) self.Static1 = xml:InitStatic("Static1", self) self:Register(xml:Init3tButton("frame1:save", self.frame1), "save") self:Register(xml:Init3tButton("frame1:otmena", self.frame1), "otmena") self:Register(xml:Init3tButton("frame1:next", self.frame1), "next") end function season:InitCallBacks() self:AddCallback("save", ui_events.BUTTON_CLICKED, self.save_button_clicked, self) self:AddCallback("otmena", ui_events.BUTTON_CLICKED, self.otmena_button_clicked, self) self:AddCallback("next", ui_events.BUTTON_CLICKED, self.next_button_clicked, self) end function season:edit1_GetText() --/получить введенный текст в edit1 self.text = self.edit1:GetText() end function season:save_button_clicked() get_console():execute("save" .. self.edit1:GetText()) end function season:otmena_button_clicked() self:GetHolder():start_stop_menu(self, true) end function season:next_button_clicked() get_console():execute ("disconnect") level.start_stop_menu(var, true) end function season:Hide() self:GetHolder():start_stop_menu(self, true) end Изменено 6 Февраля 2016 пользователем Graff46 Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 9 Января 2017 У меня вопрос возможно ли скриптово "перемещать" НПС? НПС в игре двигаются по нодам, но двигает их ИИ, в логике мы можем лишь управлять навигацией НПС по нодам ( ищи нод в том направлении и иди на него). А меня интересует, можно ли "двигать" сталкера, мол в том направлении столько то метров, анимация не обязательна... Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 30 Марта 2017 Подскажите ф-цию что бы заставить НПС ТЧ смотреть в заданную вектором позицию? Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 31 Мая 2017 Заспавненый в ящик предмет пропадает после перезагрузки игры, респавнер ящика удалён, в чём может быть дело? Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 31 Мая 2017 в момент спауна ящик в онлайне был? Нет, но если придти к ящику сразу, то предмет в нём будет, а если после разговора, из которого вызывается спавн в ящик предмета, сохраниться и выйти из игры, а потом загрузится, то предмета в ящике не будет. Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 1 Июня 2017 (изменено) сделай трансфер этого предмета из ящика в тот же ящик. Типа box:transfer_item(item, box)Не помогло, но потратив 2 дня на парсинг тематических форумов я нашёл, то что нужно ящик перевести в оффлайн, а потом в онлайн, для перезаписи его нэт-пакетов. Вот рабочий код: function spawn_in(box, item) -- Заспавнить НПСу в инвентарь, rewrite = true если спавним в ящикalife():create(item ,box:position(),box:level_vertex_id(),box:game_vertex_id(),box:id()) alife():create(item ,box:position(),box:level_vertex_id(),box:game_vertex_id(),box:id()) switch_offline(box) switch_autoline(box:id()) end function switch_offline (npc) if npc == nil then return end local sim = alife () if sim ~= nil then sim:set_switch_online (npc:id (), false) sim:set_switch_offline (npc:id (), true) end end ------------------------------------------------------------------------------------------- function switch_autoline (id) -- Это моё by Graff46 22.05.14, переводим НПС в нормальный режим local sim = alife () --если мы рядом - НПС онлайн, далеко - НПС оффлайн if sim ~= nil and sim:object(id) then sim:set_switch_online (id, true) sim:set_switch_offline (id, true) end end Изменено 1 Июня 2017 пользователем Graff46 3 Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 17 Августа 2017 Не нахожу нет-пакета куда записываются не стартовые диалоги НПС, есть пакет только для стартовых диалогов. Кроме как в XML профиле, больше ни как нельзя НПС задать нестартовые диалоги? Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 19 Августа 2017 (изменено) У меня вопрос из области GUI, можно ли сделать скролл InitStatic'ку, а то большой текст за статик вылазит? Скрытый текст Изменено 19 Августа 2017 пользователем Graff46 Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 19 Августа 2017 Только что, Lebedev30 сказал: можно через скрипты или как-то блокировать срабатывание перехода с локации на локацию Можно спавнить переход по условию, до определённого события перехода просто не будет. 1 Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 19 Августа 2017 Только что, UnLoaded сказал: этой ф-ции ведь нет в чистом ТЧ ? Нету Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 19 Августа 2017 1 час назад, TIGER_VLAD сказал: Вот только тогда игрок сможет выйти за пределы локации и упасть например) Ставите невидимую стену или пишите скрипт который будет вызывать нужные эффекты когда ГГ входит в заданную область координат Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 19 Августа 2017 3 часа назад, Graff46 сказал: Нету Нету в чистом ТЧ в Экстейсшоне есть, но у меня не робит... Выходом из этой ситуации я вижу только составление математического выражения которое из расчета длины строки передаваемой в статик будет задавать статику высоту... Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 20 Августа 2017 (изменено) Можно ли на ТЧ получить имя шрифта или размер шрифта в GUI статике? GUIWindow:GetFont() Возвращает непонятный объект\класс Изменено 20 Августа 2017 пользователем Graff46 Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 21 Августа 2017 (изменено) В 20.08.2017 в 23:38, UnLoaded сказал: Не выйдет у Вас ни чего, Вот реализация ввода строки с переносами в кастом статик и его растягивание под текст function start(t, fntName, kegl) -- t - вводимый текст: fntName* - шрифт; kegl* - размер шрифта var = doc_viewer.DocUI() level.start_stop_menu(var, true) str_ln_px = string.len(t)*(0.35*kegl) cnt_str = math.ceil(str_ln_px/list:GetWidth()) for str in string.gmatch(t, "\\n") do cnt_str = cnt_str+1 end offst_ht = math.ceil(cnt_str*30) list:SetHeight(offst_ht) --list:SetFont(GetFontGraffiti22()) list:SetText(t) end list это объект статика Изменено 22 Августа 2017 пользователем Graff46 Ошибки исправлял Поделиться этим сообщением Ссылка на сообщение
Graff46 625 Опубликовано 22 Августа 2017 (изменено) 9 часов назад, UnLoaded сказал: И где это будет работать ? ТЧ оригинал. doc_viewer.script Скрытый текст local var, list, str_ln local str_ln_px, offst_ht, cnt_str = 0, 0, 1 --*************************************************************** function start(t, fntName, kegl) var = doc_viewer.DocUI() level.start_stop_menu(var, true) str_ln_px = string.len(t)*(0.35*kegl) cnt_str = math.ceil(str_ln_px/list:GetWidth()) for str in string.gmatch(t, "\\n") do cnt_str = cnt_str+1 end offst_ht = math.ceil(cnt_str*30) list:SetHeight(offst_ht) --list:SetFont(GetFontGraffiti22()) list:SetText(t) end --*************************************************************** class "DocUI" (CUIScriptWnd) function DocUI:__init() super() self:InitControls() self:InitCallBacks() end function DocUI:__finalize() end function DocUI:InitControls() local xml = CScriptXmlInit() self:Init(0,0,1024,768) xml:ParseFile("DocUI.xml") self.frame1 = xml:InitFrame("frame1", self) self.st = xml:InitStatic("frame1:Static1", self.frame1) self.descr_scroll = xml:InitScrollView("frame1:Static1:descr_scroll", self.st) list = xml:InitStatic("frame1:Static1:Static2", self.descr_scroll) self:Register(xml:Init3tButton("frame1:button1", self.frame1), "button1") end function DocUI:InitCallBacks() self:AddCallback("button1", ui_events.BUTTON_CLICKED, self.button1_button_clicked, self) end function DocUI:button1_button_clicked() self:Hide() end function DocUI:Hide() self:GetHolder():start_stop_menu(self, true) end Кегль задаём сами - это как правило число в конце названия шрифта. Изменено 22 Августа 2017 пользователем Graff46 Описал кегль Поделиться этим сообщением Ссылка на сообщение