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

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


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

Unnamed Black Wolf,

не совсем понятно, можно подробнее насчёт полётов в падении?

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Извините за настойчивость,но всё-таки можно отключить гравитацию в аномалиях или нет? И ещё вопрос к опытным мододелам-реально ли сделать так что-бы при попадании в определёную зону(например в ту же аномалию)живое тело считалось неживым-не умирая,что-бы импульс на него действовал

Изменено пользователем Юра Семецкий
Я не мододел-я только учусь
Ссылка на комментарий

Юра Семецкий,

по второму вопросу ответ однозначно нет. Когда объект живой, он под управлением анимации, и тогда на него физика не действует. Когда умирает - включается регдолл анимация (т.е. собственно физика) и отключаются анимации обычные. Либо так - либо этак, но никак вместе. Да и если подумать, как это можно вообще совместить?

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

malandrinus, Интересно - может можно убивать его временно а потом воскрешать...

Будет ли заметна подмена?

 

Кстати еще вопрос по теме почти: сталкеры умирают и стволы у них выпадают из рук (а проще говоря исчезают и спавнятся) НО иногда такой баг - ствол остается прилепленным к руке.Не берется.

Почему?

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

Monnoroch,

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

Если предмет остался в руках, значит он скорее всего остался в инвентаре и просто продолжается действие метода game_object.set_item(...) (проверить бы).

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

 

По воскрешению.

Ни разу мне не удалось воскресить дохлого непися. Я видел функцию, где переписывается нетпакетом здоровье, но у меня она ни разу не сработала. Был либо вылет, либо просто никакого эффекта. Для меня сейчас смерть выглядит как некий внутренний флажок, который устанавливается движком и к которому нет доступа скриптами. Самому хотелось бы этот вопрос прояснить. Если у кого-то есть сейв с дохляком, которого точно можно воскресить, был бы премного благодарен. Опять же с практической точки зрения для мгновенного перевода непися из регдолла обратно "к жизни" такой метод всяко бы не сгодился, поскольку манипуляции с нетпакетом подразумевают предварительный перевод в оффлайн.

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

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Monnoroch, это не баг. Уже не помню где, но точно знаю, что есть параметр который за это отвечает (в профилях зомби (или в скриптах, относящихся к ним) точно есть, что-то типа weapon_unstrapped = true\false)

У меня такой вопрос, немного не по теме - где-то видел мануал как сделать в Photoshop'e буквы в стиле логотипа AMK-TEAM, дайте ссылку, пожалуйста.

Изменено пользователем xzeyzz
Жду NLC 6.....
Ссылка на комментарий

malandrinus, Ты плохо искал.

Предмет удаляется и спавнится предмет с той же секцией и случайным повреждением.

Так говорит death_manager.script

malandrinus, по воскрешению - ну можно сохранить НПС,убить,подождать немного,заспавнить нового и прописать ему нетпакет старого.Кроме id() и всякого системного.

 

Добавлено через 1 мин.:

TREWKO, Да,пихаешь в оффлайн и он пропадает.

 

Добавлено через 5 мин.:

Кстати,кому интересно - мы тут сделали странное открытие - регистр букв в переменной важен!

Т.е.

local a = 2

не то же,что и

local A = 2

 

иначе не обьяснить странное явление -

function(Npc,Item)

if not npc then return end

local id = Npc:id() -- тут вылет на Npc = nil

 

 

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

Всем привет. Нужна помощь. Как добавить в ветку разговора вывод доп. меню, наподобие как ogg playera или кейса под артефакты.?

Мои работы ТЫЦ

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

Monnoroch

Так ведь это написано в самом начале оф. справки по Луа :)

"Lua является языком, чувствительным к регистру символов: and – ключевое слово, тогда как And и AND – два разных допустимых идентификатора."

Ссылка на комментарий
иначе не обьяснить странное явление -

function(Npc,Item)

if not npc then return end

local id = Npc:id() -- тут вылет на Npc = nil

ну почему же:

if not npc then return end //тут npc еще не нил

//тут нпс становится нилом

local id = Npc:id() //- вылетаем

хотя чесно говоря не встречал такого быстрого обниливания объекта

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

Таймер выброса на ЧАЭС и выжигания мозгов в Х-18

section_name = space_restrictor

type = dec

 

Что есть type space_restrictora? Я смотрел на другие, они все ссылки на секцию смарт террейна.Где находится определение dec - не нашел.

Прошел Солянку, иду в NLC

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

qwertyuiop, в 3.9.10 Sr_timer (Настройка логики) написано же :

type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec).

Если поле не задано - счетчик будет инкриментирующий

декриментирующий - отсчёт в обратном порядке

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

Что там ключевые слова, а что-имена переменных? [sr_timer1] - ключевое слово, которое говорит ,что это таймер (всё,что начинается на sr_timer ?), или type = dec говорит ,что это таймер?

 

Я хочу понять всю логику.Оно создает объект action_timer из sr_timer.script.Откуда оно знает и каким образом секция привязывается к скрипту ?

Кто вызывает action_timer:update и почему он тикает только внутри рестриктора?

Там

time_global() - db.storage[self.object:id()].activation_time , то есть время глобальное,пока я не внутри,он по идее тоже должен идти.

 

Протрассировал, activation_time меняется при повторном входе в рестриктор.Где?

 

Где вообще определены поля class action_timer : start_value, activation_time type...?

 

Вроде понял,позже объясню.

 

xr_logic.script activation_time инициализируется time_global(), а при записи save_logic() и загрузке пишется разница с текущим временем, то есть оно замораживается при выходе из любой логики, когда она становится неактивной.Эта переменная и используется таймером в том числе.

Чтобы таймер показывал время до настоящего выброса, надо патчить sr_timer.script:

 

value_time = (timer_next_blow - game_minutes()) * 60000

 

timer_next_blow определяется с помощью кода, скопированного из news_main.script:

local timer_next_blow = 0

 

function get_next_blowout_time()

if (timer_next_blow == 0)

then

local name, delay

for a=1,100,1 do

local tmp = amk.load_variable("gt"..a,nil)

if tmp ~= nil then

name = amk.load_variable("gt"..a, nil)

delay = amk.load_variable("gd"..a, nil)

if (name and delay and name == "blow_shift") then

timer_next_blow = delay

end

end

end

end

end

 

 

только на ЧАЭС и в Припяти это не работает и выдает все время 0.наверное в этих местах выбросы не происходят по обычному расписанию.Непорядок, опять надо пофиксить.

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

Прошел Солянку, иду в NLC

Ссылка на комментарий
Предмет удаляется и спавнится предмет с той же секцией и случайным повреждением.

Так говорит death_manager.script

Нет там ничего подобного. Предмет не создаётся заново, а ему меняется состояние. Кстати, это означает, что в момент вызова death_manager, т.е. фактически в колбеке на смерть непися, предмет ещё в инвентаре. В оригинальной игре вообще нет почти ни одного вызова drop_item для неписей. В паре мест встречается, но всё это какие-то специальные квестовые ситуации и то, вроде как не задействованы. Опять же, предмет исправно выпадает из рук непися, у которого биндер не прописан вовсе, т.е. привязка к скриптам отсутствует, и поведение определяется исключительно движком. Значит, дроп активного предмета - фича движковая, и искать почему иногда не срабатывает - смысла нет.

 

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

Оно так, но речь то шла о том, чтобы это сделать незаметно с целью временного включения регдолла =)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Тут такая проблема, прихожу - Фанат мертвый , переиграть уже не выйдет(дешевле заново начинать) а на болота перехода нет.

Мне его нужно прописать в награду за любой квест, ну инфу об переходе на Болота.

Подскажите как и что.

 

Мод: Народная Солянка от 26.01.2010

 

Сори если офф-топ.

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

Не соответствует. Изучите правила. N6260

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

Жаль,конечно(это по вопросу о воскрешении дохляков!) :ny_unsure: Ну а про отключение гравитации в аномалиях кто-нибудь что-нибудь может быть знает?Я как-то непомню где,скачал мини-мод,дак вот автор сделал там так что под аномалией"Ржавые волосы" можно было подпрыгивать очень высоко! Мод не сохранился,давно это было,а вот сейчас понадобилось,а нету :ny_unsure: У самого сообразить-ума нехватает,может кто знает-подскажите.

Я не мододел-я только учусь
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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