Перейти к контенту

Рекомендуемые сообщения

3 минуты назад, nego сказал:

Здравствуйте ВАМ. Как можно в ТЧ...04 сделать арты, увеличивающие переносимый вес? 

 

Меня этот вопрос интересовал и давно, но для ТЧ даже таких модов не встречалось или инструкций. Лучше на ЧН или ЗП переходи.

Ссылка на комментарий

Прямо в соседней теме и было. Только к скриптам отношения не имеет: чистый конфиг. Создаем пистолет на n патронов, создаем для него патроны с отрицательным весом, устанавливаем в нем патроны через set_ammo_elapsed()

 

Сами патроны ни куда не спавнить. Ни при каких обстоятельствах.

Ссылка на комментарий
1 час назад, TIGER_VLAD сказал:

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

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

Ссылка на комментарий
3 часа назад, Graff46 сказал:

Нету

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

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

Ссылка на комментарий

Согласен с TIGER_VLAD, для себя такую проблему решал давным-давно - похоже, тем же способом, что и в ЧН на болотах (точно не помню, в ЧН не играл с момента выхода игры, наверное :) ). 2 варианта: первый попроще, если вокруг левелчейнджера есть много свободного места, "накрываем" его рестриктором, с шейпом, бОльшим, чем у левелчейнджера. В его логике выставляем условия, при которых рестриктор будет "возвращать" игрока в заданную (заданные) точки функцией set_actor_position+set_actor_direction, не давая ему "добраться" до левелчейнджера. И, может быть, даже с соответствующим сообщением, типа "дорога закрыта" :) . Второй вариант, если пространство у перехода ограничено, и рестриктором не получается надёжно перекрыть левелчейнждер - логику рестриктора, перемещающую игрока оставляем, как и в первом случае, а вот сам левелчейнджер придётся спонить/удалять уже либо из логики рестриктора (что очень удобно, в общем-то), либо где-то в другом месте, где удобнее разработчику.

Изменено пользователем =VENOM=
  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

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

GUIWindow:GetFont()

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

Изменено пользователем Graff46
Ссылка на комментарий
6 минут назад, Graff46 сказал:

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

С объектом\классом все понятно - CGameFont. Вот только толку от этого мало - в скрипты из этого класса ничего не экспортировано, кроме флагов выравнивания текста.

Цитата

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

Не выйдет у Вас ни чего, т.к. для этого надо много чего иметь экспортированного в скрипты - а нету ! Ну не нужно это было ПЫСам... 

Самый простой вариант - правка движка. Я вот у себя экспортнул AdjustHeightToText() - проверил, все прекрасно работает.

Ссылка на комментарий
В 19.08.2017 в 23:23, Lebedev30 сказал:
В 19.08.2017 в 23:19, nego сказал:

Здравствуйте ВАМ. Как можно в ТЧ...04 сделать арты, увеличивающие переносимый вес? 

Меня этот вопрос интересовал и давно, но для ТЧ даже таких модов не встречалось или инструкций. Лучше на ЧН или ЗП переходи.

Сразу видно, в OLR не играли.:crazy2:

Ссылка на комментарий
Цитата
Сразу видно, в OLR не играли

Я не играю. Я делаю мелкие модификации для мальчишек. Вот они играют.

Изменено пользователем nego

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

Ссылка на комментарий
В 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 это объект статика

Изменено пользователем Graff46
Ошибки исправлял
Ссылка на комментарий
2 часа назад, Graff46 сказал:

Вот реализация ввода строки...

И где это будет работать ? Т.е. под какую версию исходного движка ?

2 часа назад, Graff46 сказал:

list это объект статика

doc_viewer.DocUI() - а это что ? "kegl" каким образом задается\вычисляется ? GetFontGraffiti22() - это из какой версии движка ?
Ссылка на комментарий
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

 

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

Изменено пользователем Graff46
Описал кегль
Ссылка на комментарий

@Graff46 Беру свои слова обратно.

Хотя так и не получил ответа: "kegl" - как вычисляется\откуда берется, + смущают как всегда "волшебные" числа

str_ln_px = string.len(t)*(0.35*kegl) и offst_ht = math.ceil(cnt_str*30)...

Ссылка на комментарий
31 минуту назад, UnLoaded сказал:

Хотя так и не получил ответа:

Числа подбирал и пользовался конвертерами из пунктов в пиксели + некоторые свои расчёты...

Всё это очень приблизительно с округлением в большую сторону, т. е. скролл возмет весь текст + немного пустого места снизу будет.

_________________

Хотел бы получить разъяснения как писать шрифты в метод :SetFont(СFont*).

Изменено пользователем Graff46
Ссылка на комментарий

Внимание в моём посте была ошибка:  параметр t  - это не  какой не шрифт, а  вводимый в статик текст!

Ссылка на комментарий
44 минуты назад, Graff46 сказал:

Хотел бы получить разъяснения как писать шрифты в метод :SetFont(СFont*).

local font = GetFontGraffiti22Russian()
какой-то-статик:SetFont(font)

Список шрифтов, доступных в скриптах(нашел поиском в движке, то что экспортировано(в 1.0007rc1)), в виде ф-ций их получения:

"GetFontSmall"
"GetFontMedium"
"GetFontDI"
"GetFontGraffiti19Russian"
"GetFontGraffiti22Russian"
"GetFontLetterica16Russian"
"GetFontLetterica18Russian"
"GetFontGraffiti32Russian"
"GetFontGraffiti50Russian"
"GetFontLetterica25"

  • Спасибо 1
Ссылка на комментарий

В дополнение...

Что бы в ГУИ элементах работали переносы строк стоит провести такое преобразование:

function inline_str (str)
	return string.gsub(str, "[\r\n]",'\\n')
end

 

Ссылка на комментарий

Подскажите что за число возвращает метод?

какоетоЧисло, ключ, секция = ini_file:r_line(string)

 

Изменено пользователем Graff46
Ссылка на комментарий
6 часов назад, UnLoaded сказал:

писок шрифтов, доступных в скриптах(нашел поиском в движке, то что экспортировано(в 1.0007rc1)), в виде ф-ций их получения:

"GetFontSmall"

"GetFontMedium"
"GetFontDI"
"GetFontGraffiti19Russian"
"GetFontGraffiti22Russian"
"GetFontLetterica16Russian"
"GetFontLetterica18Russian"
"GetFontGraffiti32Russian"
"GetFontGraffiti50Russian"
"GetFontLetterica25"

 

Мне, в своё время, удалось реально задействовать только эти:

 

GetFontLetterica16Russian())
GetFontLetterica18Russian())
GetFontGraffiti19Russian())
GetFontGraffiti22Russian())
GetFontArialN21Russian())
GetFontHeaderRussian())
GetFontBigDigit())

 

Вообще, неплохо-бы если-б ещё шрифтов добавили...

всё легко

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

AMK-Team.ru

×
×
  • Создать...