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

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

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

Имею дело с 1.0006, NLC 6 Начало. Обычно не спрашиваю, а ищу через notepad++ зацепку. Но судя по всему этот параметр вшит в движок.

У нас есть db.actor.power - но это количество сил , тогда подскажите куда присвоить значение power_restore_speed - то есть скорость восстановления сил ?

Я думаю и так понятно зачем мне это.

P.S.: Значение скорости восстановления в параметрах самого актора я не нашел :( . Иначе бы придумал бы как-то сам. А придумывать колесо которое уже есть - глупо.

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

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

function kill(actor, npc)

npc:kill(esc_paren_npc)

end

 

esc_paren_npc - это что ?

И вообще, я не понял смысл всей конструкции.

 

если есть онлайновый npc, и его надо убить - пишем ровно вот это npc:kill(npc) - ВСЕ. Вот в том самом месте, где таки надо убить.

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

 

 

2 BlooderDen:

 

Вот слегка не понял. В конфигах костюмов есть строки, касающиеся выносливости: восстановление actor.power от максимума за тик (таки в добавок к восстановлению самого актора, в конфиге именно актора), и k потери выносливости от веса тащимого.

 

Надо-то что ?

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
В конфигах костюмов есть строки, касающиеся выносливости

Насколько я знаю, это power_restore_speed и power_loss. От второго зависит колличество затрачиваемых сил в процентах - это мне не надо. Первое как я говорил не работает - потому и обращаюсь. То есть это то что вы сказали. Все верно но...

 

 

В конфигах костюмов есть строки, касающиеся выносливости: восстановление actor.power от максимума за тик

Но оно, тоесть power_restore_speed - не работает у меня.

 

 

Надо-то что ?

Хотябы формулу по которойсчитается выносливость. Тоесть формулу где фигурируют эти значения.

Повторюсь power_restore_speed есть в артефактах. В костюмах же оно не работает.

Тоесть мне нужно знать куда его отправить. Ведь где-то происходит подсчет "выносливостей" размещенных на поясе (слоте) артефактов.

Я просто добавлю туда "выносливость" одетого костюма (зная что оно тоже в слоте, но другом). Но как я это сделаю если я не знаю куда добавлять?

Может я не туда пишу и есть движковая правка ?

Заранее спасибо!

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

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

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

Чтобы скриптом - читать из костюма, и менять db.actor.power как надо.
Формулу при этом лучше использовать вообще свою, поскольку движковые нормальный человек все равно не восстановит - они там странны весьма.

Навскидку - stand_power из actor.ltx * power_restore_speed из костюма за тик, или что-то типа этого, но кто такой тик - неизвестно. Скорее всего он вообще меняется постоянно.

 

upd: да, не может быть, что просто со знаком напутано ? Я вот тоже не помню, где там "+", а где "-".

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
Если это про NLC - там, часом, не правленный уже движок, как раз с отрезанными параметрами ?

@Dennis_Chikin, в HEX-е не силен, но попробовал пройтись по папочке bin с помощью поиска notepad++.

Задал искомое "power_restore_speed" и тип файлов *.dll. Искал и в ОП-2 и в NLC.

Результат одинаковый: в файле  xrGame.dll у обоих находит искомое после класса артефактов.

Следовательно эта штука нигде не работае.

Если и есть движковая правка то только чтобы оно заработало. К стати нашел один пост где был сходный вопросс. Там некий CoIRiT утверждал что этот параметр в костюмах безнадежно висит еще со времен ПЫС версии. Висит и ничего не дает. Вот так вот.

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

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

Забавно. При том, что power_loss работает вполне отчетливо.

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

Это если надо именно восстановление.

 

А если потерю - то прекрасно работает пара в конфиге без всякого скрипта.

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

 

 

Ну и тем лучше - просто по нужным костюмам банально скриптом в апдейте изменяем power актору

@Dennis_Chikin, собственно я так себе и решил. Беда в том что я не знаю как. То есть какие переменные и функции использовать. Потому и спрашивал про формулу, и счетчик в котором считаются суммы или произведения всех power_restore_speed. По сути, если бы в костюме оно работало, то это было бы как артефакт на выносливость в другом слоте. Тогда вся выносливость, допустим, была бы "сумма выносливостей на поясе"+"выносливость в слоте костюма". Ну и по любому есть некая штука типа:

db.actor.power = "формула ращета выносливости в которой есть power_restore_speed и прочее".

Ну или некий db.actor.power_restore_speed = power_restore_speed("пояса")+power_restore_speed("костюма").

Но где это, и что это такое - куча знаков вопросов в голове.

В том посте CoIRiT отправил интересующегося копаться в каком-то моде. Но я не знаю что искать и честно говоря надеялся что мне тут подскажут. Попробую еще постучать в правку движка. Может есть лекарство.

Скриптом бы сам написал - не хочу колесо придумывать если оно есть. Надо его просто найти. Мало опыта пока у меня чтобы колесо новое лепить.

 

Спасибо за подсказку про stand_power. Но этого мало.

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

@BlooderDen,

так почему ты не хочешь/не можешь сделать так:

db.actor.power = my_script_power_restore_speed * delta

Пусть движок сам обсчитывает свое движковое, тебе только остается учесть твою добавку.

  • Спасибо 1
Ссылка на комментарий

Ну, как бы, в оригинале нет, но в любом моде уже есть подобный уродец (bind_stalker.script):

if upd_time1 == nil then upd_time1 = time + 1000

elseif upd_time1 < time then upd_time1 = time + 1000

 

вот прямо следующей строкой и дописываем банально: db.actor.power = 0.1

это будет полное восстановление выносливости за 10 секунд.

Чуть более продвинутый вариант, с проверкой костюма:

local outfit = db.actor:item_in_slot( 6 )

if outfit and outfit:section() == "my_super_duper_outfit" then db.actor.power = 0.1 end

 

Ну и т.д., по вкусу и что конкретно надо.

Формулы - ффсад. Движок пусть свое сам считает, а мы просто тупо добавим, что хотим.

 

 

2 abramcumner: разве дельта, а не абсолютное значение ?

Изменено пользователем Dennis_Chikin
  • Спасибо 1
Ссылка на комментарий

@abramcumner, спасибо, но увы это пока не мой уровень. Слаб я пока в скриптах для того чтобы писать с нуля my_script_power_restore_speed. Но за идею спасибо.

@Dennis_Chikin, Огромное спасибо. Немного не то конечно что предложил @abramcumner, но как раз подходит для моего уровня.

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

 

 

разве дельта, а не абсолютное значение ?

По хорошему, любые линейные, да и, если надо, нелинейные(хотя имхо бред), формулы, которые описывают движение чего-либо, т.е. возрастание или убывание параметра (координаты или показатели здоровья/выносливости), должны быть зависимы от дельты. Очевидно, что использование константы приведет к моментальному восполнению сил на "быстрых" ПК, у которых FPS много больше 60 кадров, и наоборот, на "тормозах" мы будем ждать очень долго, пока пройдут эти овер9000 апдейтов. Вообще, думаю, это единственное назначение этой самой дельты, делать адекватное смещение. Ну ок, измерение FPS в некоторых случаях, больше вариантов мне на ум не приходит.

  • Спасибо 1

ТЧ 1.0004. SAP и Trans mod

github

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

Собственно Desertir все расписал. В "формуле" нет ничего сложного - 3-й класс: путь равен скорость помноженное на время. my_script_power_restore_speed - это просто переменная, которую можно менять в зависимости от каких-либо условий, а delta аргумент binder:update.

 

вот прямо следующей строкой и дописываем банально: db.actor.power = db.actor.power + 0.1

это будет полное восстановление выносливости за 10 секунд.

2 abramcumner: разве дельта, а не абсолютное значение ?

С дельтой можно без уродца, а простой и понятной формулой.
  • Нравится 1
Ссылка на комментарий

Интересно. Но я если честно пока испытываю страх ко всему что касается таймеров и времени.

Есть одна идейка. Я просто попробую проследить через вывод сообщений за разными переменными которые уже есть (в зависимости от артефактов на поясе, со значениями этих переменных).

Честное слово - нет желание придумывать колесо. Я лучше движок перерою и найду, чем буду посвещать этому целую закономерность. Мне не интересно придумать формулу лучшую чем у ПЫС. Я просто хочу заткнуть дырку.

 

 

Собственно Desertir все расписал

Посмотрим, попробуем. Если все же кто-то знает как считаются выносливости артефактов на поясе - прошу сообщить. Я хочу сделать это костюму(-ам) по той же схеме.

Суть очевидна: если движок читает power_restore_speed в артефактах, и гдето там у себя его сумирует - то почему бы не заставить его скриптом читать этот power_restore_speed в костюмах.

Вот только я не знаю точно, то ли power_restore_speed и есть то что я ищу, то ли это часть формулы которую я ищу. Позже проверю то что задумал.

Ближе всего мне пока вариант тов. @Dennis_Chikin, хоть он и приметивен, но зато прост. Но я еще его не проверял.

 

Главное то, что если я узнаю то что хочу - выпущу какую-то универсальную правку. Главное чтоб ее опубликовали и все ею пользовались. Не люблю дырки, но судя по всему эту проблему никто не решил. А если вы играете в NLC 6 с портящимися артефактами, то вам эта правка ох как нужна если вы достали костюм с повышением выносливости.

Это же к стати и касается других свойств ускоряющих все остальное(выздоровление, заживление и пр.)

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

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

Поясняю:

 

elseif upd_time1 < time then upd_time1 = time + 1000 -- это действия, производимые раз в секунду.

уродец оно по тому, что как тот Бармалей пытается сделать все сразу, а потом еще такие же проверки обычно производятся в других местах.

 

Вариант с * delta -- это действия, производимые каждый апдейт.

Чем оно плохо - можно увидеть на примере работы acr*.script

 

В общем, думайте сами, решайте сами...

 

if db.actor.power < 0.99 then

local outfit = db.actor:item_in_slot( 6 )

if outfit and outfit:section() == "my_super_duper_outfit" then db.actor.power = db.actor.power + 0.1 end

end

 

где - my_super_duper_outfit -- название "артефактного" костюма в конфиге, исполняемое раз в секунду - это действительно наиболее просто и наглядно.

 

Но, кстати, в NLC должно быть где-то нечто подобное, которое на каждый чих этот самый db.actor.power уменьшает. И то же самое для всякого разного другого. Проще найти, и оторвать.

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

 

 

Вариант с * delta -- это действия, производимые каждый апдейт.

И это единственно верный вариант для моделирования более мене реального поведения системы.

 

 

Чем оно плохо - можно увидеть на примере работы acr*.script

Что это? Для тех, кто не знает названий скриптов популярных модов, например для меня, это ничего не говорит. Частенько замечал за тобой такое, приводи мод или стразу код. Может я зенки не протер, но в ориге я не нашел такого.

ТЧ 1.0004. SAP и Trans mod

github

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

У меня здесь еще и опечатка. 8(
Не acr, а arc. Это сам себе мод - контейнеры для артефактов, дневники контролеров и еще какие-то стимуляторы.
 
В общем, плохо оно работает. Криво и глючно.

"И это единственно верный вариант для моделирования более мене реального поведения системы." - случайны интервалы от 20 до 70 ms, да еще их все учитывать и хранить ? Когда надо одно действие раз в n секунд ?

Ландавшиц смотрит на этот пост с удивлением.

 

upd: сдаюсь. Я не готов к дискуссии о вкусе фломастеров.

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

Приветствую!.. Подскажите как исправить в Зове Припяти логику отряда, когда буквально все его участники после перестрелки идут добивать раненых противника?.. Можно сделать так, чтобы контрольный выстрел делал ближайший к врагу?  :unsure:  

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

Не acr, а arc. Это сам себе мод - контейнеры для артефактов, дневники контролеров и еще какие-то стимуляторы.

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

 

"И это единственно верный вариант для моделирования более мене реального поведения системы." - случайны интервалы от 20 до 70 ms, да еще их все учитывать и хранить ? Когда надо одно действие раз в n секунд ?

Ничего хранить не надо. Просто одно умножение и одно присваивание. Прямой аналог - равномерное прямолинейное движение - чтобы посчитать путь надо просто умножить скорость на прошедшее время.

 

Ландавшиц смотрит на этот пост с удивлением.

Так и есть - он непонимает, зачем его приплели :)
Ссылка на комментарий
случайны интервалы от 20 до 70 ms

Это не просто случайная величина, это как раз число, которое вносит, порядок в игру, благодаря которой сталкеры не бегают со скоростью света, а пули не падают в обморок, пролетев 10 метров, т.к. их движение описывается формулами, которые зависят от времени, т.е. дельты. Любое программное движение (изменение чего либо), надо рассчитывать через дельту. Это не спор, тут просто не о чем спорить. Мы живем в таком мире, где законы кинематики статичны и время течет с постоянной скоростью. Вот если бы время ускорялось и замедлялось, тогда можно подумать о дельте как бы второго порядка :)

PS: я докумекал, почему @Dennis_Chikin говорит про константу, у него же таймер на 1 секунду... Эх невнимательность.

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

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий
Но, кстати, в NLC должно быть где-то нечто подобное, которое на каждый чих этот самый db.actor.power уменьшает. И то же самое для всякого разного другого. Проще найти, и оторвать.

Действительно - не подумал. Ведь там силы у актора выедаются быстрее чем где либо. Сяко-реализм =).

Собственно поступлю по вашей схеме, которую мне разжевал и улучшил Charsi. Да прибудут с нами его болты =)

Основная суть в том чего я не понял сразу.

А не понял я то, что новый простейший скрипт основанный всего лишь на этом

if power_restore_speed>0 and power_restore_speed ~= 1 then
    db.actor.power = db.actor.power + power_restore_speed 
end   

и добавленный в апдейт актору (или вызваный оттуда), при этом  не мешает движку добавлять те же свойства артефактов.

Просто вбил себе в голову.

Попробую так же и с delta-й - интерес.

Всем огромное спасибо! =) Благодаря вам я еще немного продвинулся в понимании работы скриптов и движка! =)

 

Увы в любом случае эта штука не сильно многим нужна. Все равно мы сталкеры охотимся на артефакты а не на уникальную бронь. Лучше написать скрипт для артов с увеличением переносимого веса, чем разширять возможности костюма чтобы заменить его артами.

Разширение возможностей костюма актуально будет только тогда когда везде артефакты будут портится, и не портящиеся артефакты будут нарушением правил форума =)

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

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

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

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

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

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

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

Войти

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

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

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