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

Dennis_Chikin

Жители
  • Число публикаций

    6 272
  • Регистрация

  • Последнее посещение

  • Дней в топе

    33
  • AMKoin

    513 [Подарить AMKoin]

Весь контент пользователя Dennis_Chikin

  1. Ну это их делать врагами без всяких условий каждые ~2-3 секунды. И актор, повторяю, в игре появляется не сразу. Так что лучше бы посмотреть, как дальше проверяются условия.
  2. Ну и с какой целью оно сюда вставляется?
  3. Разумеется, не будет работать. В момент загрузки работ никаких гулагов в природе не существует. Актора - тоже. В фрагменте выше как функция называлась ?
  4. Если б они, спойлеры, еще работали, не превращая текст в фарш....

    Я пытался, да. С code оно несовместимо.

    1. Показать предыдущие комментарии  ещё 7
    2. Опричник
    3. Dennis_Chikin

      Dennis_Chikin

      Шаман, однако!

    4. Murarius

       Murarius

      В целом не могу не согласиться - кривоватенько реализовано, без плясок не сделаешь нормально. Но не невозможно.

  5. Карфаген должен быть разрушен, а те, кто делал эти спойлеры и кодовставки - осуждены на то, чтобы пожизненно играть в ОПу. Без правок.

  6. По поводу вылета [10.02.19 11:50:24.247] [LUA] 1 : [Lua] ...iles (x86)\op-2.1\gamedata\scripts\cycle_task.script(548) : check_task_props ... [10.02.19 11:50:24.247] [error]Arguments : Input object is nil! Посмотрел сейчас файл, в котором я лично откручивал тормоза. Строка выглядит так: end Вывод слегка очевиден. И, да, если напрячь телепатию, и погадать на кофейной гуще, то весь кусок должен выглядеть примерно так: Впрочем, и даже это - тоже неправильно, и переписывать надо ВСЕ.
  7. Dennis_Chikin

    Разговоры о модах

    "А мы бы сидели в кустах и хихикали над этими тупыми, слепошарыми неписями." - что и наблюдается с самого оригинала, продолжая модами, где "неписям улучшен интеллект" путем включения рентгеновского зрения через всю локацию и спавна гранат из подствольника под ноги актору не взирая ни на какие препятствия и отстутствия у неписей собственноподствольников, ага. P.S. И, да, не понимаю, кто заставляет использовать "тупой скрипт" вместо скрипта "не тупого".
  8. Dennis_Chikin

    Разговоры о модах

    А при чем здесь "логика игры", если вопрос чисто конфиговый? Что поставили, то и есть. А, ну, кроме того, что любой, покусившийся на Священные и Неприкосновенные Конфиги, даже по просьбе основного разработчика мода, является Читером Поганым, и должен быть везде забанен и отправлен на лесоповал, вместе с разработчиком, который об этом просил.
  9. Dennis_Chikin

    У Костра XVII

    - Ну и сколько нам еще здесь сидеть? - Их Преосвященство сказало - "на костер" - значит будете сидеть на костре, пока Их Преосвященство не отдаст другое распоряжение! (C) из диалога обвиняемых в колдовстве и тупого стражника.
  10. Dennis_Chikin

    Разговоры о модах

    Это неправда. Не только о вине актора в смерти неписей. На тех же АС актор виноват даже в том, что рядом с базой есть хоть какие-то враги или монстры. И еще во всем остальном, а также во многом другом.
  11. Вам заняться нечем? gulag_escape.script: function load_states(gname, type) if type == "esc_blokpost" then и далее по тексту. Заменить проверку видимости на проверку расстояния и на агр неписей - ни одна из известных религий не запрещает. Опять же, с оригинала же, gulag_military.script: function check_state (gulag) и т.д. - знаменитое покраснение свободы, если рядом есть актор и хоть какие-нибудь враги. Впрочем, рестрикторов там тоже есть. Для надежности.
  12. Dennis_Chikin

    Разговоры о модах

    Формально, игра - это деятельность, при которой любому объекту приписываются любые (и только они) свойства, которые требуются играющему, чтобы данная деятельность была самоценна. Реальные физические ограничения, которые не получается обойти - являются помехой, а не целевым свойством игры. И есть понятие "достоверности" - когда происходящее не обосновывается через аналогии, а просто не вызывает вопроса "но как???", который в любом случае является разновидностью помехи.
  13. Dennis_Chikin

    Разговоры о модах

    "как найти тот баланс" - там же, где и "реализм": в военкомате.
  14. Спущен флаг, открыты люки, В коридорах бродят глюки... Хей, моддер! В моде бродят глюки! И, да, разводить - это нынче умеют...
  15. Тьфу, трамплинам - не wound, а explosion. Поправил.
  16. "В книге речь пойдет в осовном о хоббитах..." (C) JRRT Точнее, о такой штуке, как "импульс", многообразно представленной в разных конфигах. Подозреваю, что нижеприводящиеся эмпирические данные зависят от чего-попало еще из тех же конфигов, но в движок за подтверждением или опровержением лазить лень, так что имеем то, что имеем. Итак, импульс - это то, что по идее должно швырять нечто, подвергшееся какому то воздействию, но на практике - швыряется отнюдь не все, и не всем. А если швыряет, то значение имеет именно связка из оного импульса и типа хита + то, на что действует. Для аномалий упомянутая связка выглядит как hit_type =, hit_impulse_scale = + min_start_power =, max_start_power = + расстояние от центра, для оружия - hit_impulse =, hit_type = + k_impulse = патрона + расстояние В скриптах - local h = hit() h.impulse = h.type = Практический интерес представляет воздействие на монстров/неписей живых, на трупы, на актора живого и на тушку актора дохлого. Как уже сказал, разница есть, зачастую - принципиальная. И еще важный момент: живые и дохлые монстры/неписи - это абсолютно разные вещи, и если в результате воздействия на что-то живое получился труп, то труп о произошедшем уже "ничего не знает". Хотя вот труп актора - знает даже слишком хорошо. Результаты, соответственно, иногда получаются странные, и для того, чтобы получить то, что мы хотим, это самое воздействие надо организовывать раздельно и для живого, и для образовавшегося трупика, а в случае с актором - не просто раздельное, но противоположное. Практически на все, то есть, абсолютно на все, воздействует хит типа explosion. Так что если мы хотим, чтобы у трамплинов работала "сбыча мечт" - меняем им удар на взрыв. Но, на трупы, особенно, на труп актора, взрыв действует на много сильнее, и то, что слегка подбрасывает актора живого, мертвую тушку запускает в космос. Также, на тушку актора неплохо действует hit.shock На все без исключения трупы, как и на неживые объекты, действует hit.fire_wound - наверное, все заметили, что вертолет замечательно отправляет актора полетать даже без посадки в оный. На практике достаточно примерно hit_impulse = 40 в характеристиках оружия, чтобы обеспечить этот самый полет. Почему оно срабатывает не всегда ? Как уже говорилось, труп - ничего не знает и не помнит ни про какой хит. Потому что во время смерти этого трупа просто не существовала, и замена ранее бодро бегавшего непися на этот самый труп происходит тогда, когда до него дойдет апдейт, каковой зависит от расстояния до актора, и может случиться чере 20ms, а может - аж через 2 секунды. Отсюда, если хотим, чтобы свежий покойник как-то сдвинулся с того места, где образовался, хит следует повторить уже искусственно, после того, как удалось получить npc:get_physics_shell() - что свидетельствует о наконец-то свершившейся замене. Ну и внезапно, на живого актора очень хорошо действует hit.wound Что же нам нужно, чтобы МЕЧТА наконец сбылась? Во-первых, ставим трамплинам hit_type = explosion Во-вторых, добавляем актору отслеживание хита. Поскольку коллбэка для этого в оригинале ТЧ нет - отслеживаем изменение здоровья. Ну и далее все очевидно: Если в момент получения хита актор был в радиусе трамплина - вычисляем предполагаемую траекторию, и отправляем актора в управляемый полет. Сам полет: Собственно, разные значения для разных фаз полета и в зависимости от состояния тушки. Ограничение if actor.health < 0.02 then - для прекращения действа, если актор и без того близок к состоянию трупа, на который, как мы помним, импульс действует иначе. А вот это - для ограничения на выход трупа актора в стратосферу, куда он может быть закинут по тысяче причин даже без нашего участия: Как-то так.
  17. Dennis_Chikin

    У Костра XVII

    @Okichi, "Сбыча мечт" в данном случае имеется в виду другая. Я так и не понял местную политику относительно роликов с ютуба, а демонстрация кода тут оффтопик, тем более что спойлеры не работают, так что кому интересно - ищите местных Иллюминатов и получайте посвящение. Впрочем, да, про 400 вертолетов - тоже в какой-то степени, гм... да...
  18. Dennis_Chikin

    Разговоры о модах

    Собственно, если не заниматься "рационализацией", а плясать непосредственно от Дойля нашего, не побоюсь этого слова, Артуровича, и Бачило - то за событиями в Зоне может следить хоть сам "Нейрон" простите, Монолит.
  19. Dennis_Chikin

    У Костра XVII

    Тем не менее, ранние nlc/simbion. Возможно, что и какой-либо из сборников wawka. Ну а сбыча мечт - это уже другой (не будем показывать пальцем, какой именно) мод.
  20. Dennis_Chikin

    У Костра XVII

    .А это уже контейнерная перевозка получается. Этим трансагентство занимается в сельской местности.
  21. Ну, вообще-то все зависит от того, как именно вошел, и состава судей. А то могут оценку аж на 30% снизить.
  22. @Alexander_Vesker, я тут подумал (хотя думать - вредно, от этого мысли в голове появляются), можно попробовать как-то так: local ini local pos = actor:position() -- actor должен быть определен где-то раньше, пока его нет в игре - не вызывать for k, v in pairs( db.creatures ) do -- что есть в онлайне if t_mobs[v:clsid()] then -- табличку с классами монстров не забываем прописать if ( not v:alive() ) and ( ( v:story_id() == 4294967296 ) or ( v:story_id() == -1 ) ) - не уникальные and v:position():distance_to_sqr( pos ) < 2500 then -- 50 метров ограничение v = sim:object( v:id() ) -- local sim = alife() где-то должно быть if v and v.looted then sim:release( v ) end -- .looted ставим в on_use монстров end elseif v:clsid() == c_npc then -- класс сталкеров прописать if ( not v:alive() ) and ( ( v:story_id() == 4294967296 ) or ( v:story_id() == -1 ) ) -- не уникальные and v:position():distance_to_sqr( pos ) < 2500 then -- ну и далее по тексту v = sim:object( v:id()) if v and v.looted then sim:release( v ) end -- .looted ставим в on_use сталкеров end end end в bind_monsters/bind_stalker дописать типа function stalker_binder:use_callback(obj, who) if self.object:alive() then ... else ... local v = alife():object( obj:id() ) if v then v.looted = true end end ... end Хотя все еще возможны всякие вылеты имени Павлика и убирание трупов, нужных для чего-нибудь странного. Попробуем сегодня. @Гасан Салихов, говорил же уже - попробовать двигаться в направлении вылета, регулярно применяя котика.
  23. Dennis_Chikin

    У Костра XVII

    У вопросу о чемоданах - да, надо добавить, чтобы грибы можно было только в чемодан класть. Или за ними сундуком ходят (забыл уже)?
  24. Dennis_Chikin

    У Костра XVII

    Вообще-то Земля имеет форму чемодана. А Вселенная изоморфна коробке. Потому и не рекомендуется плевать в колодцы.

AMK-Team.ru

×
×
  • Создать...