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

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

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

1 час назад, DarkSnowder сказал:

никаких рестрикторов в том то и дело на пути ни у кого нет.

А как вы это определили?  Посмотрите радиус и тип  рестра, который сказал вам ВинКап - возможно, он дстатоточно большой, чтобы захватывать доступные нпс точки пути.
Тут такое дело - если рестриктор с типом 2, то он будет добавлен каждому  неписю в ин_рестрикшнс без всяких доп. указаний, по умолчанию. 
Лучше всего - вывести для проблемного НПС-а всё, что у него в ин_рестрикшнс, и уже там будет видно, что конкретно ему мешает.

  • Нравится 1

След от кругов на воде - это тоже след (с)

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

@WinCap @Okichi Да, действительно дело было в реестре - удалил их всех и всё заработало. Чтож, буду восстанавливать их потихоньку и смотреть, какой реестр был глючным.

  • Согласен 1

Лучше сделать мод с 0, чем пытаться залатать багованный.

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

Добро всем.

 

Решил адаптировать функцию медика в ТЧ, перенёс диалог, внёс все нужные функции, и при старте диалога на мед помощь выскакивает вот такой вылет

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

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:330: attempt to compare number with nil
 

stack trace:

 Ссылается он вот на эту функцию проверки состояния здоровья игрока

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

function actor_needs_bless(first_speaker, second_speaker)
    if db.actor.health < 1 or
            db.actor.radiation > 0 or
            db.actor.bleeding > 0 then
        return true
    end

    return false
end

В частности на db.actor.bleeding > 0 then.

Я так понял всё дело в цифре 0, но как тогда в ТЧ проверку на кровотечение сделать в пределах этой функции. В скриптах родного ТЧ ничего такого не находил пока что.

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

-- Medic support
function medic_magic_potion(first_speaker, second_speaker)
    db.actor.health = 1
    db.actor.power = 1
    db.actor.radiation = -1
    db.actor.bleeding = 1
end

function actor_needs_bless(first_speaker, second_speaker)
    if db.actor.health < 1 or
            db.actor.radiation > 0 or
            db.actor.bleeding > 0 then
        return true
    end

    return false
end

function actor_is_damn_healthy(first_speaker, second_speaker)
    return not actor_needs_bless(first_speaker, second_speaker)
end

 

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

Лучше сделать мод с 0, чем пытаться залатать багованный.

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

@DarkSnowder, если правильно помню, в ТЧ для кровотечения только чтение - db.actor:get_bleeding().

Изменено пользователем WinCap
  • Согласен 3

S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


Подарки

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

    @WinCap тут дело в том, что функция при диалоге на лечение в случае оказании помощи игроку не может это кровотечение остановить, то бишь значение > 0 она не определяет как прекращение кровотечения у ГГ. Если ёё закомментировать, вылет пропадает, но кровотечение у ГГ не вылечивается. Дело не в том, что там некорректно указано db.actor.bleeding, а то, что числовое значение > 0 для него указано некорректно. Вот меня и интересует, какое значение там должно быть, чтобы лечение ГГ шло как по маслу.

    Лучше сделать мод с 0, чем пытаться залатать багованный.

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

    @DarkSnowder а после db.actor разве не двоеточие?

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

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

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

    @UriZzz Нет, в оригинальном скрипте одна точка. При двоеточии вылет без лога, проверял.

    • Спасибо 1

    Лучше сделать мод с 0, чем пытаться залатать багованный.

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

    @DarkSnowder В оригинале тч можно только проверить есть ли кровотечение, убрать его скриптами у тебя не выйдет.

    • Согласен 3
    • Полезно 1
    • Сочувствую 1

    Подарки

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

    @I am Dead но можно эмулировать, путём спавна в инвентарь и съедания бинта. Костыльно конечно...

    Мож что в x-ray ext есть???

    • Согласен 2

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

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

    @I am Dead Я помню, что когда ещё в команде DRDA был тоже эту функцию переносил и над ней сидел, сидел, и вроде бы как то я даже смог заставить кровотечение исчезать при лечении ГГ. Но вот ток как я это сделал (а главное, сделал ли вообще) уже и не помню, давно это было.

     

    Просто давать возможность ГГ вылечиваться у медика без аннулирования кровотечения - такое себе мероприятие.

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

    Лучше сделать мод с 0, чем пытаться залатать багованный.

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

    Мож что в x-ray ext есть???

    @UriZzz, heal_wounds(float).

    @DarkSnowder , отрицательный хит попробовать? Хотя, далеко не факт...

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

    Ребята а как сделать рандомное выпадение лута в ящиках и кейсах. Может скрипт у кого есть или только в алл. спавне

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

    @Stalkersof В all.spawn указывать нужный комьюнити бокса, а править конфиги лута боксов в файлах ph_box_items_бла-бла-бла и если есть новые секции боксов, их в xr_box.script.

    • Спасибо 1
    • Полезно 3

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


    Подарки

  • 2
  • 5
  • 3
  • 4
  • Ссылка на комментарий

    @DarkSnowder для RMA (правда, он на X-ray extensions) делал лечение как в ЗП, для прекращения кровотечения:

            db.actor:heal_wounds(1.0)

    • Полезно 3

    Подарки

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

    Непонятки со спавном, по наводке... 

    в файле alife_l06_rostok.ltx встречается ограничение для зомбированных:
    base_out_restrictors = bar_evil_veterans_restrictor
    Хотя такого рестриктора в оригинале вообще нет. Подозреваю, остатки от билдов 2232, 2571 и 2588, где были безумные ветераны на Ростке и квест на их устранение. Попробую посмотреть, где этот рестриктор в спавне билдов...

    UPD. Такой рестриктор есть в спавне 2571, а ограничения base_out_restrictors прописаны для секций тех самых безумных ветеранов. В оригинале их секции тупо заменили на секции зомбированных (да ещё и с профилями yan_zombied). В общем, теперь только бы знать, куда рестриктор правильно заспавнить, можно как-нибудь узнать соответствие координат билда 2571 относительно оригинала?

    В 2571 координаты такие:

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

    position = -239.153427124023, 3.92397832870483, 17.28244972229
    direction = 0, -0.516600370407104, 0
    game_vertex_id = 1289
    level_vertex_id = 69328

     

    Изменено пользователем Капрал Хикс

    Подарки

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

    @Капрал Хикс тут либо дворик с кэмпом за стройкой, где мерки респавнятся, это касаемо ветеранов. По моему на этот счёт какой-то квест в РМА есть, но это не точно. Либо туннель с жарками, что бы не пропускать жмуров дальше - на Росток.

    Вобщем как то так...

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

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

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

    Вобщем как то так...

    001.png

    Вот тут этот рестриктор должен находиться в оригинале, если кому интересно.

    Изменено пользователем Капрал Хикс

    Подарки

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

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

    Изменено пользователем UriZzz
    • Согласен 3

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

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

    X-Ray Extensions.

    При переходе между конкретными локациями движок крашит:

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

    stack trace:
    0023:05355AF0 xrGame.dll
    0023:00423CF5 XR_3DA.exe, IInputReceiver::IR_OnDeactivate()
    0023:76B25DAA USER32.dll
    0023:76B25487 USER32.dll
    0023:76B11F8B USER32.dll
    0023:757D9259 d3d9.dll
    0023:76B2EDEB USER32.dll
    0023:76B25DAA USER32.dll
    0023:76B259AA USER32.dll
    0023:76B2956F USER32.dll
    0023:77BA4E7D ntdll.dll
    0023:00DC8728 BugTrap.dll
    0023:00DC6BDB BugTrap.dll, BT_MakeSnapshot()
    0023:00DC6C25 BugTrap.dll, BT_SehFilter()
    0023:779BEA92 KERNELBASE.dll
    0023:77BD4883 ntdll.dll
    0023:77B97A4E ntdll.dll
    [error][    1400]    : Недопустимый дескриптор окна.

    Никто не сталкивался? В какую сторону пробовать копать?

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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