Перейти к содержанию

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

 

1491319448148138184.png

Тема посвящена моддингу на платформе Зов Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.
  • Так же, если вы модифицируете готовый мод, обязательно указывайте какой. Некоторые модификации очень сильно отличаются от Call of Chernobyl. 
  • Лайк 4
  • Хабар 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Сталкер из прошлого да как обычно через alife():create. Или через xr_effects.script функция "spawn_object_in", но туда надо сид передавать

  • Хабар 1

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Вопрос такой: требуется отключить переход на другую локацию до выполнения определённых действий (условно говоря - нельзя уйти с Кордона на Свалку, пока не получим инфопоршень у Сидора). Насколько я понял, это делается в логике перехода, по типу "имеем инфопоршень - пропускаем, не имеем - отбрасываем обратно, типа "Вы не знаете дороги". Но видимо я что-то неправильно понял, ибо логики переходов так и не нашёл. Может кто подскажет, как такую фичу реализовать и какие файлы как править, либо даст наводку на то, где это уже сделано. 
СоС чистый, 1.4.22 версии



ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Сталкер из прошлого вроде в mlr переходы с флешек выдавались

  • Спасибо 1

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Сталкер из прошлого у меня в AREA, там тоже основа это MLR и COC есть файлы - transitions.script и transitions_list.script, по идее у тебя должно быть, что-то наподобие, там переходы реализованы не через логику, а через скрипты и функции типа -

function open_transition(sr_name)
	if get_story_object_id(sr_name) then
		if check_spot(ret_id_spot_hint(sr_name)) == false then
			enable_transition(sr_name)

где sr_name имя перехода из transitions_list.script, таким образом открываются переходы, но в АРЕИ свои заморочки там не все переходы изначально открыты, но есть и открытые сначала игры через функцию-

function on_game_start()
    RegisterScriptCallback("actor_on_item_use",actor_on_item_use)
    RegisterScriptCallback("actor_on_first_update",start_show_transitions_by_faction)

function start_show_transitions_by_faction()
	if mlr_utils.load_var('transitions_start_show_transitions_by_faction') then
		return
	end
	function enable_transition_start(table)
		for k1,v1 in pairs(table) do
			for k2,v2 in pairs(v1) do
				enable_transition(v2)
				--send_mess(v2)
			end
		end
	end
	enable_transition_start(transitions_list.sr_always_open['general'])

	local transitions_faction = transitions_list.sr_always_open[mlr_utils.load_var('transitions_faction')]
	if transitions_faction then
		enable_transition_start(transitions_faction)
	end
	
	mlr_utils.save_var('transitions_start_show_transitions_by_faction', true)
end

открытые переходы для всех и всегда (transitions_list.sr_always_open['general') и для игрока из определенной фракции (transitions_list.sr_always_open[mlr_utils.load_var('transitions_faction')]), остальные переходы, покупаются, выдаются через диалоги в dialogs_mlr.script (по квестам), ну и через юзание карт, флешек, открываются и закрываются рандомно после выбросов, все функции описаны в transitions.script, разберешься думаю)

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Извините, не в тот тред.

Изменено пользователем Friorianf
Ошибся тредом.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Назрел вопрос: а возможно ли заспавнить рестриктор через скрипт? Т.к. каждый раз компилить all.spawn и запускать новую игру не очень удобно. В интернете нашёл только функцию типа такой (без кирилицы ессно)

Спойлер

function create_my_restriktor()
create_restrictor([[путь\к_логике.ltx]],радиус,координаты,lvid,gvid)
end

(Источник)

но она для SGM и результата на СоС не приносит, а даёт лишь вылет "attempt to call method 'create_restrictor' (a nil value)".  



ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

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


Ссылка на сообщение
Поделиться на другие сайты
 
7 минут назад, Сталкер из прошлого сказал:

create_restrictor

 

7 минут назад, Сталкер из прошлого сказал:

attempt to call method

Нет


Дополнено 2 минуты спустя
В 29.05.2022 в 14:46, Сталкер из прошлого сказал:

требуется отключить переход

Нужен SR и хотя бы один вейпоинт в зоне перехода, а сам переход в недосигаемости игроком.


Дополнено 8 минуты спустя
В 29.05.2022 в 14:46, Сталкер из прошлого сказал:

либо даст наводку

Шева сталкер на Ютубе создание переходов, я там учился.

  • Спасибо 1

Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

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


Ссылка на сообщение
Поделиться на другие сайты
 
17 часов назад, Сталкер из прошлого сказал:

а возможно ли заспавнить рестриктор через скрипт?

По идее, в секции спавна можно указать custom_data, но как там указать радиус (и можно ли вообще) - без понятия, я не пробовал. А так, с редактированием нет-пакета спавнить можно (но это лучше только для теста, а готовое потом прописать в оллспавн). Например (то, что можно отредактировать посмотрите в stpk_utils.script)

Спойлер

local new_restr = alife():create("space_restrictor",pos,lv,gv)
local data = stpk_utils.get_object_data(new_restr)
	if data then
		data.restrictor_type = 0	
		data.shapes = {}
		data.shapes[1] = {}
		data.shapes[1].shtype = 0
		data.shapes[1].offset = vector():set(0,0,0)
		data.shapes[1].radius = 5
		data.custom_data = "[logic]\n"..
					"active = sr_idle\n"..
					"[sr_idle]\n"..
					"on_actor_inside = %=test_restr%"
				
		stpk_utils.set_object_data(data,new_restr)
	end

 

Если нужно править только логику - можно в кастом дате прописать путь к файлу и уже его редактировать без пересборки оллспавна

Спойлер

custom_data = <<END
[logic]
cfg = scripts\escape\esc_space_restrictor_wait_trader.ltx
END

 

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Функция kamp была удалена из CoC?

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


Ссылка на сообщение
Поделиться на другие сайты
 

ParaworldFan xr_campfire_point.script есть


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 

Делает тоже самое? А где можно почитать как пользоваться ей?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Можно ли задать рестриктору логику, на срабатывание строго в определённое время? Условно - рестриктор срабатывает если актор попадёт в него с 23:00 по 03:00 игр. времени, в остальное же время неактивен? Если да, то какой функцией это можно задать.

UPD: Так же интресно, можно ли выдать инфопоршень, когда в определённый рестриктор заходит определённый НПС. Или это делается через логику этого НПС? 

Изменено пользователем Сталкер из прошлого


ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

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


Ссылка на сообщение
Поделиться на другие сайты
 

ParaworldFan так в коке везде нпс у костра сидят, ту же деревню новичков посмотрите, как там сделано. Статей именно по коку не попадалось


Дополнено 16 минуты спустя
В 13.06.2022 в 15:01, Сталкер из прошлого сказал:

Условно - рестриктор срабатывает если актор попадёт в него с 23:00 по 03:00 игр. времени

В on_actor_inside проверяйте время. Логика как и в зп, так что, можно в той теме спрашивать, больше народу ответит. А в этой только если есть отличия от зп

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Привет всем. Такой вопрос, как увеличить количество артефактов на поясе в сталкер аномали, или в других модах на базе Сталкер Зов припяти? требуется больше 5. Увеличение слотов на броне не помогает (все равно пишет 5 контейнеров) в файле system тоже не реагирует. в файле инвентори, прописал 20 ячеек, в игре прорисовываются, но ограничение в 5 слотов не спадает. что нужно подправить что б увеличить количество слотов?

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


Ссылка на сообщение
Поделиться на другие сайты
 

ГоРеЦ это движок надо править, чтоб корректно работал "увеличенный пояс для артов" (т.е .в случае ЗП больше 5 артов на комбез), смотри в правках движка на форуме, если хочешь этим заморачиваться)

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


Ссылка на сообщение
Поделиться на другие сайты
 
22 минуты назад, ГоРеЦ сказал:

как увеличить количество артефактов на поясе в сталкер 

В файле system.ltx изменяем параметр max_belt с 5 на 10 (max_belt = 10)

Ищем файл inventory_new.xml и в нём меняем

cell_width = "60" cell_height="60" rows_num="1" cols_num="5"/>
на
cell_width = "52" cell_height="52" rows_num="2" cols_num="5"/>

что соответствует 10 артефактам.

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


Ссылка на сообщение
Поделиться на другие сайты
 
7 минут назад, Викт сказал:

В файле system.ltx изменяем параметр max_belt с 5 на 10 (max_belt = 10)

Ищем файл inventory_new.xml и в нём меняем

cell_width = "60" cell_height="60" rows_num="1" cols_num="5"/>
на
cell_width = "52" cell_height="52" rows_num="2" cols_num="5"/>

что соответствует 10 артефактам.

1172657605_.png.74b072c06bd1723e91b653beaff1d588.png

в файле inventory_new.xml. я нарисовал слоты как на скрине выше. и тут же прикладываю как это выглядит в игре. но использовать могу только 5 из них. т.к. на броне написанно 5 слотов. и в эт овсё упирается. правки брони (прописал 20 слотов) всеравно в игре 5

 

uaCd5NbTey3m2MDO_hIQ7dZ9ZpZKDYjcen4pKR5bWaXm2SHXua3p1p6MVkgzgm83B7H9VkRXXzKG88cRQZnQlHvC.jpg

изображение.png


Дополнено 9 минуты спустя
26 минут назад, CiberZold сказал:

ГоРеЦ это движок надо править, чтоб корректно работал "увеличенный пояс для артов" (т.е .в случае ЗП больше 5 артов на комбез), смотри в правках движка на форуме, если хочешь этим заморачиваться)

что то я там глянул, вопрос такой был но ответа на него не было

Изменено пользователем ГоРеЦ
лишний скрин

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


Ссылка на сообщение
Поделиться на другие сайты
 

Столкнулся с проблемой. Мне нужно поставить graph_point для смарта в сдк, но при выборе прописанного мною в graph_point-e значения сдк ставит почему-то другое совсем. Может быть я не туда прописал? 
 Прописывал сюда в конец списка game_graphs.ltx

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


Ссылка на сообщение
Поделиться на другие сайты
 

ГоРеЦ если нет готовой правки, тебе нужно будет декомпилить двиг Аномали, точнее dll-библиотеки, чтобы извлечь файлы в C++, вот на примере из OpenXray:

Откроем файл Inventory.cpp и найдём строчку

m_iMaxBelt = pSettings->read_if_exists<s32>("inventory", "max_belt", 5);

Нам нужно изменить цифру(большую не ставьте, не рекомендую, например ?

m_iMaxBelt = pSettings->read_if_exists<s32>("inventory", "max_belt", 8);


Так как мы изменили системное кол-во артефактов, нам надо изменить макс. кол-во ячеек которые могут быть открыты с помощью костюма.
Откроем файл CustomOutfit.cpp и найдём функцию:

void CCustomOutfit::Load(LPCSTR section)

В этой функции найдём строчку:

clamp(m_artefact_count, (u32)0, (u32)5);

И изменим на:

clamp(m_artefact_count, (u32)0, (u32)8);


Так же в файле найдём функцию(да я знаю что переменная, но всё же):

bool CCustomOutfit::install_upgrade_impl(LPCSTR section, bool test)

А в ней найдём точно такую же строку и изменяем ее также:

clamp(m_artefact_count, (u32)0, (u32)5);

На:
 

clamp(m_artefact_count, (u32)0, (u32)8);

Теперь вы можете просто изменить кол-во артефактов в outfit.ltx, UI и System.ltx также, как делали, по идее так же делается и в Аномали и любом движке на основе ЗП)

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Что в Dead Air меняет стандартную систему веса в инвентаре? Хочу вернуть из CoM.

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


Ссылка на сообщение
Поделиться на другие сайты
 

ziken в каком плане? Скриптово ничего не меняет


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 в инвентаре указан максимальный вес из actor.ltx и только это значение работает.

DA:    

max_walk_weight     = 20    < actor.ltx   Значение из инвентаря

max_weight              = 5  
max_ruck          = 92

CoM:

max_walk_weight       = 150

max_weight            = 35       < system.ltx    Значение из инвентаря
max_ruck            = 92

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

ziken в акторе еще второе значение есть. Вес меняется по стандарту


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 какое? Я ничего там не вижу. Только это значение и ещё несколько влияющие на стамину.

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


Ссылка на сообщение
Поделиться на другие сайты
 

ziken загуглите как в оригинале вес поменять, я с телефона


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу