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

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


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

Только что, Orсhello сказал:

не знаю, бредовая идея

Емнип должно работать. Что-то подобное у меня получалось. Но не точно, надо припомнить реализацию. Возможно я не только конфиги использовал.:)

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

Подскажите функцию телепортации ГГ по вэйпоинтам (где стоит и куда смотрит).
Такая вот функция:
 

Скрытый текст

function go_arena(npc, actor)  
    local point = patrol("zavros_gg_arena_walk")
    local look = patrol("zavros_gg_arena_look")
    
    db.actor:set_actor_position(point:point(0))
    local dir = look:point(0):sub(point:point(0))
    db.actor:set_actor_direction(-dir:getH())
    
end

Чего-то нормально не работает, хотя взята с ТЧ.
Проблема в ней в том, что гг не смотрит в сторону вэйпоинта zavros_gg_arena_look.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@Houdini_one, как делал я -

при создании нового ЛЧ я в позицию(куда_смотреть_ГГ) копирировал значения с существующих. Т.е., надо смотреть на север - брал с ЛЧ, где смотрит на север и т.д. Получалось норм. Точно не помню - на север с кордона на свалку, на юг - наоборот. На запад - свалка-агропром, на восток - наоборот. Как то так...

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

@Orсhello ну переход это другое, там всё просто как на меня, а вот тут...
Хотя в принципе я готов уже согласиться на телепортацию по координатам и поворотам, главное функцию найти)

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@Houdini_one, нашёл на компе такое:

function marsh_teleport_1 ( actor, npc)
    level.add_pp_effector("peace_fade.ppe", 160608)
    db.actor:set_actor_position(patrol("marsh_walk_1"):point(0))
    local dir = patrol("marsh_walk_1"):point(0):sub(patrol("marsh_walk_1"):point(0))
    db.actor:set_actor_direction(-dir:getH())
end

Не помню, откуда это.

P.S.

Из StalkerMapPack, скорее всего.

Если надо, посмотрю конкретнее.

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

@Orсhello ну это на мою похожа, тоже результатов не даёт.

Подскажите.

Вот вместе с оружейном паком идут партиклы, которые меняют эффекты аномалий.

Вот как их можно вырезать, дабы дефолтные остались?

Смотрел оригинальные партиклы и те, что в оружейном паке идут - настройки идентичны (смотрел в конфиге аномалии какой партикл она юзает, после смотрел в СДК).

Где ковырять?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

Хай всем
Кто нибудь знает, как сделать "именной" пда, который будет падать с каждого убитого, и иметь имя и фамилию владельца в названии?

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

При обыске трупа либо в момент смерти НПС можно спавнить всякое в этот самый труп, если предустановить какие-либо условия (по группировке, рангу, имени, секции объекта) для спавна определённых предметов. Но это требует создания множества секций того же ПДА, отличающимися только своим названием. Получать игровое название ПДА от имени его хозяина не выйдет, только если добавить ограниченное кол-во ПДА для уникальных НПС. И спавнить им ПДА сразу в конфигах либо скриптом по ходу игры.

Здесь могла быть ваша реклама.

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

Но это требует создания множества секций того же ПДА

 

1 минуту назад, mole venomous сказал:

И спавнить им ПДА сразу в конфигах либо скриптом по ходу игры.

Воу воу палехчи, зачем такие выкрутасы, ПДА и так есть у каждого нпс, и все они именные,

вот только после смерти нпс - death_manager.script их удаляет - а что-бы этого не происходило

нужно их пометить как не удаляемые, для этого в файле death_generic.ltx   в секцию [keep_items] 

добавь строку :

 

device_pda = true

и будет вам счастье :hm:

  • Спасибо 1
  • Согласен 1
  • Полезно 1
Ссылка на комментарий
2 минуты назад, ted.80 сказал:

Воу воу палехчи, зачем такие выкрутасы

Я понял вопрос юзера, как "сделать каждый пда уникальным, по имени его хозяина"

Может не так понял... 

Здесь могла быть ваша реклама.

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

сделать каждый пда уникальным, по имени его хозяина

они и есть каждый унникальный

Скрытый текст

ss-denis-09-27-22-22-34-55-l01-escape.jp

 

  • Полезно 1
Ссылка на комментарий
1 час назад, ted.80 сказал:

они и есть каждый унникальный

О как. Даже не знал, что ПЫСовые ПДА имеют привязку к имени владельца... 

9 часов назад, Houdini_one сказал:

главное функцию найти

Скрытый текст

-- в пределах локации (иначе - скриптом левел чейнджер с последующим удалением...)

function actor_displacement(position,rotation)
    if not rotation then rotation = 0 end
    db.actor:set_actor_position(position)
    db.actor:set_actor_direction(rotation)
end

 

Пример:

actor_displacement(vector():set(-196.908,-37.402,-268.777),3)

 

Изменено пользователем mole venomous
  • Смешно 1

Здесь могла быть ваша реклама.

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

3

А что значит 3?

И как понять исходя из твоего примера - где вычисляется разворот?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

А что значит 3

 

9 минут назад, Houdini_one сказал:

где вычисляется разворот?

db.actor:set_actor_direction(3)

  • Спасибо 1

Здесь могла быть ваша реклама.

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

@mole venomous я наверное неправильно использую, ибо вылетает, вставил в скрипт так:
 

Скрытый текст

function actor_displacement(position,rotation)
    if not rotation then rotation = 0 end
    db.actor:set_actor_position(position)
    db.actor:set_actor_direction(rotation)
end
 

function go_arena()  
    actor_displacement(vector():set(159,23,0,10,76,14),0)
end

Вызываю через go_arena. В моём понятии во второй функции идёт обращение к первой через actor_displacement, могу ошибаться, я не разбираюсь.

 

Скрытый текст

[27.09.22 22:08:03.830] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
[luabind::detail::class_rep::function_dispatcher] Caught unhandled exception!
stack traceback:
    [C]: at 0x07fedc169b80
    [C]: in function 'set'
    ...hadow of chernobymod\gamedata\scripts\dialogs_bar.script:396: in function <...hadow of chernobymod\gamedata\scripts\dialogs_bar.script:395>
[27.09.22 22:08:03.830] *********************************************************************************
[27.09.22 22:08:03.830] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : F:\Repos\OGSR-Engine\ogsr_engine\COMMON_AI\script_engine.cpp
[error]Line          : 52
[error]Description   : [CScriptEngine::lua_pcall_failed]: [luabind::detail::class_rep::function_dispatcher] Caught unhandled exception!

[27.09.22 22:08:03.830] ***************************[ScriptCrashHandler]**********************************
[27.09.22 22:08:03.830] stack traceback:
    [C]: at 0x07fedc169b80
    [C]: in function 'set'
    ...hadow of chernobymod\gamedata\scripts\dialogs_bar.script:396: in function <...hadow of chernobymod\gamedata\scripts\dialogs_bar.script:395>
[27.09.22 22:08:03.830]     Locals: 
[27.09.22 22:08:03.830]      string (*temporary) : [luabind::detail::class_rep::function_dispatcher] Caught unhandled exception!
[27.09.22 22:08:03.830]     End
[27.09.22 22:08:03.830]     Locals: 
[27.09.22 22:08:03.830]      userdata (*temporary) : (___VECTOR): 0000000057DBEF30
[27.09.22 22:08:03.830]      number (*temporary) : 159.000000
[27.09.22 22:08:03.830]      number (*temporary) : 23.000000
[27.09.22 22:08:03.830]      number (*temporary) : 0.000000
[27.09.22 22:08:03.830]      number (*temporary) : 10.000000
[27.09.22 22:08:03.830]      number (*temporary) : 76.000000
[27.09.22 22:08:03.830]      number (*temporary) : 14.000000
[27.09.22 22:08:03.830]     End
[27.09.22 22:08:03.830]     Locals: 
[27.09.22 22:08:03.830]      userdata position : (game_object): 000000003CE27CF0
[27.09.22 22:08:03.830]      userdata rotation : (game_object): 000000005AA94410
[27.09.22 22:08:03.830]      function (*temporary) : [[function]]
[27.09.22 22:08:03.830]      string (*temporary) : 2
[27.09.22 22:08:03.830]     End
[27.09.22 22:08:03.830] *********************************************************************************
[27.09.22 22:08:03.830] ********************************************************************************
[27.09.22 22:08:03.830] !![LogStackTrace] Thread: [UNKNOWN]
[27.09.22 22:08:04.180] !!stack trace:

 

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@ted.80, всё так. Когда с трупа берёшь пда - он именной. А в рюкзаке они стакаются, и становятся просто пда. И инфа на них одинаковая.

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

@Houdini_one 

Скрытый текст

В xr_effects.script есть функция teleport_actor, дополнил её с ЗП:

function teleport_actor(actor, npc, p)
	local path_name = p[1]
	if path_name == nil then
		abort("Wrong path_name for 'teleport_actor' function %s. For object %s", tostring(path_name), obj:name())
	end
	if not level.patrol_path_exists(path_name) then
		abort("Path %s doesnt exist. Function 'teleport_actor' for object %s ", tostring(path_name), obj:name())
	end

	local ptr = patrol(path_name)
	db.actor:set_actor_position(ptr:point(0))

	if p[2] ~= nil then
		local look = patrol(p[2])
		local dir = look:point(0):sub(ptr:point(0))
		db.actor:set_actor_direction(-dir:getH())
	end
end

В конфигах: %=teleport_actor(way_walk:way_look)%

В скриптах: xr_effects.teleport_actor(db.actor, nil, {"way_walk", "way_look"})

 

Ссылка на комментарий
8 часов назад, Houdini_one сказал:

actor_displacement(vector():set(159,23,0,10,76,14),0)

С количеством запятых нужно быть скромнее :biggrin:

actor_displacement(vector():set(159.23,0.10,76.14),0)

  • Полезно 1

Здесь могла быть ваша реклама.

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

@h0N0r @mole venomous к сожалению гг упорно продолжает игнорировать точку разворота.
У меня вот буквально через минуту запускается телепорт в котором гг нормально переносится.

В чём может быть дело?
Связано ли это с тем, что функция с диалога запускается?

В общем решил просто создать рестрикор и через него делать вызов %=go_arena% и всё работает.
Через диалог игнорирует точку разворота, четыре функции пробовал.

  • Полезно 1

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

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

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

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

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

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

Войти

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

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

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