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

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


Halford

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

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

Дед, сделать можно, но тогда игрок сможет выйти за пределы локации, что не есть хорошо. Можно попробовать удалить level changer и на его месте заспавнить аномалию, которая при входе в неё отталкивала бы ГГ обратно, чтобы не выходил за пределы.

Starter, можно попробовать во всех секциях костюмов (в ltx) прописать class = II_ATTCH.

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение

Без модов... вроде не должно такого быть.

1.Прописываю патроны 9х39_pab9 с ВАЛом для НПС.

Это всё прописывалось в character_desc_*.xml или где-то в другом месте?

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение

Возможно ли добавить смарт в рестрикторы неписю? Не будет ли вылета? (спрашиваю потому, что сам сейчас не имею возможности протестировать)

 

Поделиться этим сообщением


Ссылка на сообщение

Kopcap, без модификации скрипта smart_terrain.script и customdata всех смартов в all.spawn - никак. В прошлом году сталкивался с точно такой же проблемой, но для меня она была некритична. Проблема в том, что нужно полностью менять формат настроек (которые в customdata), отвечающих за возможность "проживания" в смарте NPC той или иной группировки.

В оригинале они перечисляются так:

(с1, с2, c3 ... - группировки)

[smart_terrain]
...
communities = c1, c2, c3, ...
...

 

А чтобы этот список зависел от каких-то событий, нужно сделать так:

[smart_terrain]
...

[communities]
c1 = {+infoportion1}
c2 = {-infoportion2}
...

Выполнение этих условий, если мне не изменяет память, нужно проверять через xr_logic.parse_condlist(...)

Соответственно, нужно полностью переделывать ту часть файла smart_terrain.script, которая отвечает за считывание этих настроек.

 

Поделиться этим сообщением


Ссылка на сообщение
Хотя ... если делать по-серьезному, т.е. не для одиночных случаев, то ты прав, может и стОит озаботиться именно модификацией имеющейся 'штатной' логики.

При ответе я подразумевал, что автор собирается проделать такое явно не с одним смартом, поэтому так написал :)

 

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

Хотел сделать, чтобы неписи при переходе из смарта в смарт не шли прямо через вражеские лагеря (вроде в ЗП такое сделали, только другим способом). Например, чтобы на Кордоне новички и бандиты шли не под мостом, а обходили по "колючке". Увеличить радиус - тоже не проблема.

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение
Поставил аптечке приём за 2 использования, но как сделать так чтобы при втором использовании появился предмет "Использованая аптечка"? Чтобы лечила потом в 2 раза меньше.

Найди коллбек на использование предметов в bind_stalker.script и пропиши туда спавн использованной аптечки при использовании ещё не использованной.

 

Можно же сделать хождение по трупам? По-моему да. Так вот что для этого надо (в общем)?

Можно при смерти НПС удалить его и на том месте заспавнить обычный физический объект с моделью этого НПС. Но тогда нельзя будет рыться по рюкзакам убитых + удаление и спавн могут быть заметны.

Поделиться этим сообщением


Ссылка на сообщение
Причем удалются уже ПОСЛЕ отработки десменеджера. То есть, если бы удалялось в нем, что происходит с другими предметами - удаление было бы раньше

По идее, в скриптах есть только 2 коллбека на смерть NPC: клиентский (xr_motivator.script, функция death_callback) и серверный (se_stalker.script, функция on_death). Тот скрипт (если это скрипт делает), который удаляет патроны, должен быть прописан в одной из них.

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

Поделиться этим сообщением


Ссылка на сообщение
проверив их на наличие "владельца" и на то, что это мертвый гуманоид - получаем псевдо-коллбэк иного типа ..

Сделать-то можно для какого-то данного конкретного NPC. Но делать таким способом коллбек для всех (!!) NPC не очень разумно - это просто трата ресурсов.

 

Причём, когда я в death_manager полностью убрал спавн и удаление предметов (кроме фонариков, гитар, болтов) ничего подобного не наблюдалось: после смерти НПС патроны всегда оставались при нем.

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

Так при смерти НПС оружие не удаляется. Или как?

 

 

Поделиться этим сообщением


Ссылка на сообщение
подскажите за что отвечают эти параметры в конфиге бинокля:

Какого бинокля? Есть wpn_binoc, ему эти строки вроде бы без разницы (можешь закомментировать и проверить).

Если binocular_a, то эти строки необходимы для отыгрыша анимации (например, в самом начале когда Петруха смотрит в бинокль на бандитов).

Поделиться этим сообщением


Ссылка на сообщение
метод освещенности гейм-объекта

Что под этим понимается? Если имеется в виду определение освещённости предмета или NPC - нет. Иначе разрабы не стали бы заморачиваться с sr_light-рестрикторами.

 

Есть только параметры, регулирующие "зрение" NPC, но выполняется это всё внутри движка и в LUA не экспортировано.

Поделиться этим сообщением


Ссылка на сообщение

 

 

Имеется биндер, в нём переменная initialized

Так из биндера её и надо читать, а не из внешнего скрипта.

local my_mob_binder = obj:binded_object()
if my_mob_binder.initialized then

(где obj - объект, с биндера которого надо прочитать переменную)

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

BFG

Отправку сообщений лучше делать на sr_tip - она срабатывает только когда игрок внутри зоны, т.е. дополнительно писать on_actor_inside не надо. on_timer тоже писать не надо, т.к. для этой схемы есть параметр timeout. Условие выдачи сообщения пишется в параметре cond.

[logic]

active = sr_tip

[sr_tip]

cond = {+ataka_start}

single = true

timeout = 6000

name = ;Сюда подставляем имя tips, которое используется внутри функции arhara_dialog.ataka2_sms

on_signal = tip_sended| nil %+ataka2_start%

 

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

Тогда так


[logic]

active = sr_tip@1

 

[sr_tip@1]

cond = {+ataka_start}

single = true

name = сюда подставляем имя tips, которое используется внутри функции arhara_dialog.ataka_sms

on_signal = tip_sended| sr_tip@2

 

[sr_tip@2]

single = true

timeout = 6000

name = сюда подставляем имя tips, которое используется внутри функции arhara_dialog.ataka2_sms

on_signal = tip_sended| nil %+ataka2_start%

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

Поделиться этим сообщением


Ссылка на сообщение

Раскопал в исходниках одну особенность. Для монстров можно индивидуально переопределить некоторые параметры, читаемые из их секций в system_ini. Делается это при помощи добавления секции "settings_overrides" в customdata. Можно добавлять следующие параметры:

 

 

SoundThreshold

RunAttack_PathDistance

RunAttack_StartDistance

DayTime_Begin

DayTime_End

distance_to_corpse

satiety_threshold

DamagedThreshold

idle_sound_delay

eat_sound_delay

attack_sound_delay

distant_idle_sound_delay

distant_idle_sound_range

eat_freq

eat_slice

eat_slice_weight

LegsCount

max_hear_dist

attack_effector

 

 

Они будут перекрывать те параметры, которые пишутся в секциях монстров. Возможно, подобное есть и для других типов объектов, но я пока не нашёл.

Изменено пользователем Полтергейст
  • Нравится 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

 

 

npc:set_mental_state( anim.free ) npc:set_body_state( move.crouch ) - вылет error in stalker with visual actors\novice\green_stalker_4 В куда копать ?

Это движковый вылет, я его уже описывал. Вылечить без ковыряния движка нельзя. Просто надо учитывать, что сочетание anim.free и move.crouch недопустимо.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
Причем, при внимательном изучении оказалось, что по npc:best_danger() он постоянно получает этот самый danger с типом attack_sound, источником является он сам.

Похоже на какие-то косяки в реализации скрипта xr_danger.

Evaluator для stalker_ids.property_danger должен возвращать false, если источником опасности является сам объект, или он далеко, или опасность была давно. Помимо этого можно для "просроченных" или неуместных опасностей дописать удаление объекта из памяти (через enable_memory_object). В оригинале, насколько я помню, такое удаление происходит только для игнорируемых врагов.

Хотя определять тип звука по ogg-комментарию, а не по событию, вызывающему этот звук - это как-то... странно.

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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