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

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


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

Всегда говорил, что спавн через СДК - зло. Только что в очередной раз убедился. То есть, там, конечно, не через СДК сделано, но с СДК по-другому вообще в принципе невозможно.

  • Согласен 2
  • Не согласен 1
Ссылка на комментарий

@ed_rez , а что там за косяки с бампами в ЧН?

 

@BFG , давно использую немного изменённый скрипт (вывод позиции гг) бардака:

 

в \scripts\_g.script добавить,

function vec_to_string(vector)
	if vector == nil then return "nil" end
	return string.format("%s,%s,%s", vector.x, vector.y, vector.z)
end

в \scripts\ui_main_menu.script, в функцию function main_menu:OnKeyboard, где действия на опр. кнопки,

if dik == DIK_keys.DIK_P then
	if (level.present() and db.actor ~= nil and db.actor:alive()) then
		local pos = db.actor:position()
		local gvid = db.actor:game_vertex_id()
		local lvid = db.actor:level_vertex_id()
		local lv = level.name()
		local pos2 = level.vertex_position(lvid)
		local ai = pos2:distance_to(pos) <= 0.7
		console:execute("load log:"..string.format("actor_pos: %s,%s,%s,%s,%s", vec_to_string(pos), tostring(gvid), tostring(lvid), tostring(lv), tostring(ai)))
	end
end

Ид кнопки (DIK_P) можно взять из \scripts\lua_help.script, class DIK_keys. В консоли, при нажатии, будет: actor_pos: 0.0,0.0,0.0,92,66380,l05_bar,true - где true / false - наличие аи-сетки.

  • Нравится 1
Ссылка на комментарий

@h0N0r У меня вот такой вывод координат на экран

local function show_actor_position()
  if level.present() and (db.actor ~= nil) then
   local text
   local vid, gvid
   local a = vector()
   a = db.actor:position()
   lvid = db.actor:level_vertex_id()
   gvid = db.actor:game_vertex_id()
   text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..lvid.."\\ngame_vertex_id= "..gvid
   news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
end
show_actor_position()

Тоже назначен на кнопку через ui_main_menu.script

Вроде похожи некоторые строки. Впрочем они наверно у всех похожи в разных вариантах.

"Кругом зомби.....у меня кончаются патроны...."

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

что там за косяки с бампами в ЧН?

Сделаны под OpenGL движок. А Сталкер бегает на Direct3D. 

  • Смешно 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

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

Что-то мне кажется, я как-то сильно торможу. Не могу понять, в подземных локациях, в X-10 например, изначально нет миникарты? В смысле, она с оригинала там пустая? Я за столько лет только сейчас обратил на это внимание.

 

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

Не могу понять ... в X-10 ... изначально нет миникарты? В смысле, она с оригинала там пустая?

Точно так, нет её изначально.

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

@monk мда... вон оно как, а я на движок новый грешу уже неделю. А в каких-нибудь модах делал кто-нибудь недостающие миникарты к подземельям?

 

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

@dsh кстати недавно был вопрос по миникартам в подземках, вот в ЗП, в х-8, миникарта отображается по уровням/этажам, т.е. где находится ГГ, та часть карты/текстурка и подгружается, а в ТЧ такого нету, там только одна текстура, и на миникарте не разберёшь где находишься, а когда в подземке много уровней в высоту/глубину.... Вот это бы в движке посмотреь. Ну как я понял - в ЗП текстурки привязываются к секторам локации, надо в ЗП посмотреть.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Отцы модостроя !  Вопрос жизни и смерти.

- имеется стандартный рестр. ГГ кидает в него итем\ствол\колбасу\документ\артефакт. Есть ли способ отследить что именно ЭТО попало в ЭТОТ рестр ?

Ну и соотвественно выдать маленький поршенёк по этому незначительному событию.

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

Спасибо.

"Кругом зомби.....у меня кончаются патроны...."

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

@BFG ты уверен, что хочешь именно такой извращенный способ? Почему бы не упростить задачу: если актор находится в рестрикторе и он выбросил предмет X, выдать поршень Y. Зачем вот этом вот "рядом", зачем вот это, что бы оно именно попало в какую-то область пространства? Иногда проще изменить условия задачи, чем реализовать, если это не является прямо уж так необходимым. А переформулированная задача, кстати, в солянке уже сделана. Это варка артефактов.

 

 

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

Именно рестриктором - нет. Можно только отслеживать, что что-то выброшено, и проверять координаты.выброшенного.

В частности для Мухи -

function life_heart2( item )
    local obj = sim:object( item:id() )
    local obj1 = sim:object( "hospital_muha_trup" )
    if obj and obj1 and obj1.position:distance_to_sqr( actor:position() ) < 9 then

 

Для живого  сердца -

function life_heart1( item )
    local obj = sim:object( item:id() )
    if obj and level.vertex_position( 1379 ):distance_to_sqr( actor:position() ) < 5 then

 

подробности см. в xl_story_hospital.script

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

@Romann мне бы простую миникарту осилить починить, а ты тут такое предлагаешь. Кстати, а разве X-18 не отображается по этажам на миникарте?

 

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

@BFG Петрович, могу предложить такой вариант - использование коллбека на выбрасывание предмета из инвентаря, там проверять наличие ГГ в нужном рестрикторе. Какая разница, кого проверям в зоне - ГГ или итем? Расстоянием в ~0,5 м можно пренебречь, согласись. Тогда в bind_stalker.script, после actor_binder:on_item_drop (obj) помещаем такой код:

if xr_conditions.actor_in_zone(nil, nil, {"your_restr"}) and obj:section() == "medkit" and not has_alife_info("your_info") then
	db.actor:give_info_portion("your_info")
end

Расшифровываю: your_restr - имя рестриктора, в котором должен быть ГГ, medkit - секция нужного тебе предмета (в данном случае аптечка), your_info - выдаваемый инфопоршень при выполнении всех условий.

Ранее был известен под ником BoBaH_671.

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

Кстати, а разве X-18 не отображается по этажам на миникарте?

В X-8, в ЗП да, да даже в текстурки загляни - даже когда в ТЧ тащили X-8, зачем-то и все миникарты затянули, xотя зачем, если в ТЧ оно не используется.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Разве она не по этажам отображается

Неа, ну по крайней мере в соли(первой/ОП-1/ОП-2 не отображается, xотя текстурка и разделена на сектора. Может задумывалось, но не было доделано.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Почему бы не упростить задачу

Да без проблем. Упрости. Мне лишь бы код для рестра  с поршнем. А там у ж я сам наворочу такого... уууу....

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

использование коллбека на выбрасывание предмета

Проверю. Спасибо.

 

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

В частности для Мухи -

Денис, я ничо не понял. 

Мне нужна логика для рестра, а не этот код, который я не понимаю вообще. Ни куда его вставлять, ни чо с ним делать.

Я не скриптер. Мне нужно готовое решение для нуба.

"Кругом зомби.....у меня кончаются патроны...."

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

@BFG чем тебя варка артефактов не устраивает-то? Создай уникальную аномалию, без спецэффектов, невидимую, да добавь рецепт варки с нужным тебе предметом. По окончании варки пусть твой инфопоршень выдается. Как с Камнем Удачи, который из осколка монолита варится. Вот из старой солянки кусок, из amk_mod.script:

				["mozno_varit"] = {
					komp = {["af_part_monolit2"]=true},
					cel = {["af_kamen_udachy"]=true},
					vremya = {0,0,1},
					not_for_mutator = true,
					info = "spawn_kamen_udachy"
				},

Мне кажется, это самый простой вариант будет.

 

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

@dsh в том то и дело, что ЭТОТ вариант не работает при оживлении Мухи в Госпитале.

Я проверил уже ВСЕ рестры и экшены. Я проверил уже ВСЕ поршни и координаты. на текущей Соли по сравнению с Солью 2010.

Не работает.

Иначе я бы не задавал этого вопроса.

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

Поэтому надо поменять условия оживления. Надо просто кинуть арт в рестр и выдать поршень. БЕЗ всякой варки. А уж остальное я в экшенах пропишу как надо.

Мне главное отследить чтобы определённый арт упал в определённый рестр и выдался поршень.

 

p.s.  я НЕ понимаю почему так происходит, что у 99% юзеров возникают проблемы с оживлением Мухи. Поэтому надо измениь и условия и действие и сделать всё проще.

Какая-то неведомая мне правка мешает. А поскольку Людмила (lsclon)покинула моддинг навсегда, а кроме неё никто не знает, то я прошу помощи у форума.

"Кругом зомби.....у меня кончаются патроны...."

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

Там две причины:

 

1. Привязка к аномалии, которая по разным причинам может удалиться.

2. Неправильно считается радиус аномалии.

Говорю же, лучше всего, если Алексей сам поправит/дополнит.

Добавлено BFG,

Аномалия НЕ удаляется. Она там есть всегда.

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

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

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

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

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

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

Войти

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

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

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