Jump to content

Recommended Posts

Доброго времени суток! Подскажите есть ли в классе CUIStatic метод поворота текстуры, (я искал не нашёл) платформа ТЧ?


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

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)

При таком подходе статики не пропадают при диалогах, открытом инвентаре, пда и так далее. Я хотел таким способом миникарту сделать, а для этого нужно вращать текстуру.

 


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Всем доброго времени суток! У меня вопрос: Как сохранить значение переменной при переходах между локациями и загрузкой\сохранением? Дело в том, что я написал ф-цию которая высчитывает некоторое число и присваивает его переменной, далее ф-ция должна будет возвратить истину если игровой час (время в игре) соответствует значению переменной, проблема в том, что при переходе на другую локацию значение переменной "сбрасывается". ТЧ. 
P.S. Я не уверен, но вроде как для таких случаев разработчики прописывали целую систему записи переменных, но как этим пользоваться - я не знаю.


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

 

 


Сохряняй это значение в pstor актера, и загружай оттуда-же
Как это сделать, прописать?

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Помогите с кодом. Нужно что бы по нажатию на кнопку 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
 

 

 

Edited by Graff46

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

У меня вопрос возможно ли скриптово "перемещать" НПС? НПС в игре двигаются по нодам, но двигает их ИИ, в логике мы можем лишь управлять навигацией НПС по нодам ( ищи нод в том направлении и иди на него). А меня интересует, можно ли "двигать" сталкера, мол в том направлении  столько то метров, анимация не обязательна...


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Подскажите ф-цию что бы заставить НПС ТЧ смотреть в заданную вектором позицию?


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Заспавненый в ящик предмет пропадает после перезагрузки игры, респавнер ящика удалён, в чём может быть дело?


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

 

 

в момент спауна ящик в онлайне был?
Нет, но если придти к ящику сразу, то предмет в нём будет, а если после разговора, из которого вызывается спавн в ящик предмета, сохраниться и выйти из игры, а потом загрузится, то предмета в ящике не будет.

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

сделай трансфер этого предмета из ящика в тот же ящик. Типа 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

 

Edited by Graff46
  • Полезно 3

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Не нахожу нет-пакета куда записываются не стартовые диалоги НПС, есть пакет только для стартовых диалогов. Кроме как в XML профиле, больше ни как нельзя НПС задать нестартовые диалоги?


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

У меня вопрос из области GUI, можно ли сделать скролл InitStatic'ку, а то большой текст за статик вылазит?

Скрытый текст

875a05134f48783c7a06e360ae333289.jpg

 

Edited by Graff46

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
Только что, Lebedev30 сказал:

можно через скрипты или как-то блокировать срабатывание перехода с локации на локацию

Можно спавнить переход по условию, до определённого события перехода просто не будет.

  • Согласен 1

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
Только что, UnLoaded сказал:

этой ф-ции ведь нет в чистом ТЧ ?

Нету


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
1 час назад, TIGER_VLAD сказал:

Вот только тогда игрок сможет выйти за пределы локации и упасть например)

Ставите невидимую стену или пишите скрипт который будет вызывать нужные эффекты когда ГГ входит в заданную область координат


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
3 часа назад, Graff46 сказал:

Нету

Нету в чистом ТЧ в Экстейсшоне есть, но у меня не робит...

Выходом из этой ситуации я вижу только составление математического выражения которое из расчета длины строки передаваемой в статик будет задавать статику высоту...


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Можно ли на ТЧ получить имя шрифта или размер шрифта в GUI статике?

GUIWindow:GetFont()

Возвращает непонятный объект\класс

Edited by Graff46

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
В 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 это объект статика

Edited by Graff46
Ошибки исправлял

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
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

 

Кегль задаём сами - это как правило число в конце названия шрифта.

Edited by Graff46
Описал кегль

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...