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

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


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

Gonarh, а кажись в падание с прыжка мона полетать.. Криво реализовали в оригинале..

Unnamed Black Wolf,

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

 

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

Изменено пользователем Юра Семецкий

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

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

 

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

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

 

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

Почему?

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

Monnoroch,

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

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

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

 

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

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

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

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

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

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

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

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() //- вылетаем

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

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

section_name = space_restrictor

type = dec

 

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

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
Предмет удаляется и спавнится предмет с той же секцией и случайным повреждением.

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

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

 

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

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

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

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

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

 

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

 

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

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

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

Юра Семецкий, может точно не скажу, но посомтри конфиги аномалий, и тутор прочти, может поможет

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

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

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

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

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

Войти

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

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

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