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

[SoC] Ковыряемся в файлах


Halford

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

Здрасьте.

 

В [textures\ui\] есть вариант рамки для окон КПК [ui_pda_frame_sub.dds] с описанием частей в одноименном INI-файле:

Spoiler

[frame]
shader		= hud\default
lt 		= 0,	0,	32,	32
l  		= 0,	32,	32,	32
lb 		= 0,	64,	32,	32
b  		= 32,	64,	32,	32
rb 		= 64,	64,	32,	32
r  		= 64,	32,	32,	32
rt 		= 64,	0,	32,	32
t  		= 32,	0,	32,	32
back 		= 32,	32,	32,	32

 

 

Изменил имя обоих файлов (при той же начинке) и указал новую ссылку в конфиге окна "Справка" (энциклопедия) – вылет "текстура не найдена". Знаю, что обычная текстура рамки привязана через XML-описание файла [ui_old_textures.dds], но хочется понять, действует ли в каком-нибудь виде способ с INI-файлом или это мусор, оставшийся от ранних билдов?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@Pug-Lover Если в пределах одной локации, то можно через level.add_call(f1, f2): прервать скрипт, поставить отсчет на 3 секунды в первой функции, получить true, запустить скрипт через вторую функцию. В самом скрипте для прерывания/запуска должно быть условие вида "если flag = true, то работать".

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

В оригинале ТЧ примеров нет. Логика следующая:

Spoiler

local flag = true
local t = 0
local timeout = 3000

function main()
    if flag then (основные действия) end
end

function check()
	if (условие остановки скрипта) then
		flag = false            -- отключение main()
		t = time_global()        -- начало отсчета
		level.add_call(delay, restart)
	end
end

function delay()    -- проверка каждый апдейт
	return time_global() > t + timeout
end

function restart()    -- срабатывание при delay() == true
	flag = true        -- включение main()
end

 

 

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@AndrewMor Под "моментом прерывания" понимается значение какой-то переменной? Если переменная в том же скрипте и хранится вне основной функции, то есть не обнуляется при каждом запуске, то "момент" должен запомниться правильно.

Изменено пользователем Norman Eisenherz
  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@СЕРА В конфиге окна complex_mode=1 – перенос по словам и доп. форматирование (переносы, цвет текста). Выложи файл, из которого текст читается – быстрее будет, чем гадать.

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@СЕРА До правок в этой фразе был один слэш? Для XML-текста перенос \n, для скриптового \\n.

Вот такая фраза переносится правильно:

        <text>Интересно... Странно как то для доктора это. Я слышал он дальше с болот редко куда ходит...\n
        Ладно. Я сюда-то по делу пришёл. Ты учёных как раз то не видел?</text>

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

alife():release( alife():object( db.actor:object(section):id() ) )

или

db.actor:item_in_slot(…)

или

alife():object(name) -- если есть точное имя (секция + номер спавна)

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

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@Ninna Циклическая проверка в actor_binder:update(delta), в исполняемой части db.actor.power = x – требуемая прибавка к запасу сил за цикл (для имитации отключенного в ТЧ эффекта Аномальной кожанки x = 0.02 в секунду). Предварительно проверять броню в слоте и текущий запас сил, чтобы зря не гонять апдейт.

Другой вариант: правка движка для обработки свойств, уже существующих в конфигах брони (для ТЧ).

  • Полезно 2

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@Libery Основной метод: get_hud():GetCustomStatic(name). Новые статики (окно + текстура) указывать в [config\ui\ui_custom_msgs.xml].

Можно сделать SEQ-файл со списком текстур ("облачка" разного размера) и проигрывать по кругу, пока в слоте есть броня с противогазом. Пример: анимация указателя – [textures\ui\ui_ani_cursor.seq]

Можно взять одну текстуру и добавить в описание статика анимацию со словом "blinking" в названии. В базовой игре есть варианты с циклом 1 или 2 секунды, оба с плавным затуханием.

Можно отслеживать стамину и переключать текстуры по какому-то правилу – в "солянке" такой эффект есть.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@Libery Версия игры? Глобальные моды? В ЧН, например, есть обработка hit_callback для специального кровососа (который неписей раскидывает) с переводом всего входящего урона в прибавку к ХП – может, что-то подобное включено.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@exDeMODER В базовой версии ТЧ у класса CUITrackBar всего два уникальных скриптовых метода: задать и прочитать значение, причем оба метода работают только в булевом режиме – false/true = значение 0 или > 0.

Кроме того, окно CUITrackBar дает вылет, если в XML-описании нет блока <options_item entry=… /> с названием одной из указанных в [xr_3da\xr_ioc_cmd.cpp] настроек игры, и настройка реально меняется этим новым ползунком.

 

Пример применения есть в моде "Золотой шар" под ТЧ: условный электрощиток как раз с такими ползунками и учетом положения "вкл/выкл" (X-18, колонна на входе).

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение

@Askar На всякий случай, сверим формат команды: db.actor:eat( db.actor:object("секция") ). При пустом объекте не будет ни действия, ни вылета; если объект указан, будет действие без сообщения – сообщение выдается только при использовании предмета через контекстное меню в инвентаре.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...