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

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


Halford

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

@Han Sola

 

	    if lname=="l04_darkvalley" then
	        local obj = AI:story_object(story_ids.val_borov)
	        if obj and IAmAStalker[obj:clsid()] and obj:alive() then
	            if has_alife_info("val_bandit_talk") then
	                relation_registry.set_community_goodwill("bandit", 0, 500)
	            end
	        elseif relation_registry.community_goodwill("bandit", 0) > 0 then
	            relation_registry.set_community_goodwill("bandit", 0, -2000)
	        end
	    elseif sname == "l04_darkvalley"
	        and relation_registry.community_goodwill("bandit", 0) > 0
	    then
	        relation_registry.set_community_goodwill("bandit", 0, -2000)
	    end
	

lname - текущий уровень

sname - предыдущий уровень (с которого перешли)

Всё это вызывается из net_spawn актера.

Изменено пользователем naxac
  • Спасибо 1
  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@Вася Сапля, подбирать не надо, можно просто рассчитать, если хочешь сделать параметры, эквивалентные оригинальным.

Считается выводимый в описании артефакта параметр "Кровотечение" вот по такой формуле:

value = -(w/b)*100

где w - это параметр wound_incarnation_v в секции actor_condition, а b - параметр bleeding_restore_speed в секции артефакта. А value, соответственно, само выводимое значение.

Отсюда

b = -100*w/value

И остальные параметры примерно так же. См. xrGame\ui\ui_af_params.cpp

Изменено пользователем naxac
  • Нравится 1
  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


Ссылка на сообщение
19 часов назад, Вася Сапля сказал:

где можно изменить размер надписи игра окончена

config\ui\game_tutorials.xml, туториал game_over.

 

19 часов назад, Вася Сапля сказал:

поменять названия сложностей

Ищи по содержимому в файлах в папке config\text\rus.

  • Спасибо 1
  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

 

21 час назад, Beliy123 сказал:

Function      : CALifeSimulator__spawn_item

...
Arguments     : Invalid section!

Где-то спавнится несуществующая секция.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@Space.Marine, это игра не может понять некоторые клавиши твоей клавиатуры, настройки тут ни при чём.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@monk, это на широкоформатах, наверное, так? Из-за сжатия иконки по горизонтали, когда она в слоте, такое происходит. Если бы она не сжималась, то аддон был бы на своём месте, но иконка была бы растянутой. Тут в движке надо править - при сжатии иконки положение аддона по Y тоже изменять на тот же коэффициент.

  • Спасибо 1
  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@Ninna, причина может быть в том, что у нпс, которые есть с начала игры, визуал прописан в all.spawn.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@ru trash_, "ридми" читал? Там же всё подробно описано. Если у тебя его нет, то вот, на всякий случай:

 

Утилита для слияния глобальных графов ggrc.pl v.0.6 Использование: ---------------------------------------------------- --------------СОВМЕЩЕНИЕ ГРАФОВ--------------------- ---------------------------------------------------- 1) Собираете в gamedata/levels/ все уровни, которые вы хотите объединить. Ну или хотя бы положите туда нужные файлы - level.gct и level.ai. У ЧН и ЗП уровни не имеют файлов level.gct, класть не надо. 2) Кладете в корень геймдаты (где лежит game.graph) нужные game.graph и/или section4.bin (тоже геймграф, только от ЧН/ЗП. Запакован в all.spawn, ищите там). 3) Делаете нужный батник для сборки, запускаете. Если батник составлен правильно, заработает скрипт, который будет вас информировать о ходе работы всякими буковками. В данной версии чтение/запись level.ai работает медленно, терпите. 4) На выходе получите: -в корне геймдаты результирующий граф - game.graph.new -в папках уровней файлы level.gct и level.ai. 5) переименовываете game.graph.new в game.graph (ну или в section4.bin, если родительский граф у вас от ЗП), копируете level.ai и level.gct (если утлитика не совмещена с игрой) и запускаете с ними игру. Чтобы добавить подключенные локации в спавн, в all.ltx распакованного спавна в секции [alife_objects] добавляете alife_локация.ltx от ваших локаций. Еще поменяйте level_count в секции [header] на значение согласно получившегося графа. Главное, не трогайте больше ничего в [header]! Команда: ggrc.pl [-g1 ] [-l1 ] [-g2 ] [-l2 ] Значения параметров: -g1 - родительский граф, т.е. от того билда, к которому вы планируете присоединить локации. указывается в формате: game.graph,1935. Список ключей смотрите ниже. -l1 - список уровней, которые хотите оставить в родительском графе, через запятую (без пробелов!) -g2 - дочерний граф, т.е. от того билда, откуда берете локации. указывается в формате: game.graph,1935. Список ключей смотрите ниже. -l2 - список уровней, которые хотите взять из дочернего графа, через запятую (без пробелов!) !!!Внимание! Уровни указывать в том же порядке, в каком они идут в гейм.графе! !!!Для совмещения графов БОЛЬШЕ НИКАКИХ КЛЮЧЕЙ НЕ УКАЗЫВАТЬ! Пример: ggrc.pl -g1 game.graph,soc -l1 l01_escape,l02_garbage -g2 section4.bin,cop -l2 zaton,pripyat Замечание: таким образом можно подключать локации к финальным версиям сталкера или к билдам не старше 2006 года. Причина проста - для работы локации в билдах 22xx, например, требуется корректный level_sectors.ai и правка level. Генерация level_sectors.ai пока не реализована. ------------------------------------------------------------ --------------------РАСПАКОВКА ГРАФА------------------------ ------------------------------------------------------------ Также поддерживается распаковка графа от любого билда. Функционал аналогичен ggtool.pl. Использовать просто. Кладете граф в папку с программой, запускаете батник для распаковки. Команда: ggrc.pl [-g1 ] [-o ] [-l] [-i] [-g] [-rct] -g1 - граф для распаковки -o - файл вывода результатов. Указывать расширение! -l - декомпиляция level.graph. Из-за неправильного заголовка при декомпиляции level.graph от 1475,1510 неверно определяется edge_count (начиная с 1834 все нормально). Ориентируйтесь на число секций edge. -g - выводит список уровней, отсортированных по гейм_вертексу, в отдельный файл guids.txt. Для билдов старше 1849 (24 февраля 2004) также выводятся связи между уровнями. -i - игнорирование левел-поинтов. Существенно ускоряет работу программы. У билдов младше 1472 (включая) левел-поинты в game.graph не содержатся, указывать ключ не надо. -rct - читать и выводить кросс-таблицы (для ЧН, ЗП). Лучше не пользовать, кросс-таблицы оооочень большие, читаются долго, а практического толку от них ноль. Для распаковки графа БОЛЬШЕ НИКАКИХ КЛЮЧЕЙ НЕ УКАЗЫВАТЬ! Пример: ggrc.pl -g1 game.graph,2215 -o links.txt -g -i ------------------------------------------------------------ --------------------ДОБАВЛЕНИЕ АИ-ПЕРЕХОДОВ----------------- ------------------------------------------------------------ АИ-переходы необходимы для оффлайн-навигации неписей между разными локациями. Выбираете два вертекса, один на одной локации, второй на другой, соединяете связью - переход для непися готов. Команда: ggrc.pl [-g1 ] [-ai ] -g1 - граф для добавления переходов -ai - соединяемые вертексы, через запятую (без пробелов!). Пример: ggrc.pl -g1 game.graph,2215 -ai 14,134 На выходе получите файл типа game.graph.new_edge. Это геймграф с готовыми переходами. Больше ключей не нужно. ------------------------------------------------------------- Ключи билдов: 1469 - билд 1469 1472 - билд 1472 1510 - билды с датой компиляции от июня 2003 (1475) по первую половину августа 2004 (1902) 1935 - билды с датой компиляции от второй половины августа 2004 (1911) по февраль 2005 (2201) 2215 - билды с датой компиляции от апреля 2005 (2203) по декабрь 2005 (2365) SOC - билды с датой компиляции от начала 2006 по билд 3120. COP - от ЧН и выше. ------------------------------------------------------------- История версий: v.0.6 - добавлена коррекция вертексов в кросс-таблицах. Добавлена правка версии xrLC в файле level при переносе локаций в билды/из билдов. v.0.5 - пофиксен ряд багов, тестово добавлена поддержка билдов 1911-2201. v.0.4 - отключено чтение неизменяемых файлов (родительские level.ai, level.gct, дочерние level.ai, если версии графов одинаковы) v.0.3 - включена возможность добавления аи-переходов между локациями. v.0.2 - включено восстановление level.graph по game.graph (работает для всех версий, начниная по крайней мере с 2005 года - более ранние пока не проверял, теоретически тоже должны корректно восстанавливаться). Немного изменен алгоритм коррекции game_vertex_id у связей. v.0.1 - реализован основной функционал (совмещение графов, обновление кросс-таблиц и аи-сетки) -------------------------------------------------------------- Авторство: Исходный код распаковки графа финалки ТЧ - bardak (огромное ему спасибо) Все остальное - K.D.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@Pir@t@s, вернее всего в какую-то движковую функцию передаются неправильные аргументы, либо nil.

 

15 часов назад, Ренсон сказал:

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

Они и аллспауновскими тоже не могут. Для перемещения между уровнями нпс используют так называемые аи-переходы - связи между вершинами графа (гейм-вертексами). Добавить их можно через СДК или при помощи game.graph recompiler (ggrc).

  • Спасибо 1
  • Согласен 2
  • Полезно 3

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@СЕРА, надо подгонять global rect под bound rect, т.е. менять растяжение текстуры по пропорциям уровня, т.к текстура, полученная через demo_record, квадратная.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


Ссылка на сообщение
8 часов назад, Houdini_one сказал:

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

Либо установить такую погоду по умолчанию для нужной локации в конфигах, либо добавлять условия, по которым должна быть твоя погода, в level_weathers.script, туда, где включается погода (где происходит level.set_weather). Например, при установке погоды выдавать инфопоршень, а в level_weathers проверять наличие этого инфопоршня.

  • Спасибо 1
  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

@Ворон545, попробуй этот вариант адаптировать: https://yadi.sk/d/oUCJq2xExL68Iw

Я раньше его использовал, работало нормально.

для каждой секции патронов в конфигах создаётся фейковая секция вида

[ammo_fake]:ammo

и затем в инвентаре все патроны, которые находятся не на поясе, заменяются на эти фейки. При открытии окон обыска, инвентаря или торговли фейки меняются обратно на настоящие патроны, при закрытии окон - снова происходит замена на фейки. 

Алгоритм простой и надёжный (=

  • Нравится 1
  • Согласен 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


Ссылка на сообщение
4 часа назад, mole venomous сказал:

 if sobj:clsid()>172 and sobj:clsid()<180 then

Вот из-за этого и не удаляются. Не надо так делать. Есть же движковый класс clsid - сделай массив с классами нужных аномалий, и по нему проверяй, что удалять.

local anom_classes = {

  [clsid.zone_mbald] = true,

  [clsid.zone_electra_s] = true,

...и т.д.}

...

if anom_classes[sobj:clsid()] then

...

  • Нравится 1
  • Согласен 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

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