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

AI additions


Bak

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

@Bak, Снова приветствую. Возникла проблема со схемой лечения раненых в ОП-2: НПС подходит к раненому товарищу, приседает, чтобы начать лечение, и все, дальше ничего! Он просто замирает в таком положении и стоит как истукан, а ранений как лежал не вылеченным так и лежит. Возможно к проблеме имеет отношение вот этот лог (интересно, что эта ошибка выдается при работающей игре, и не вызывает ее вылета): 
 

Expression    : fatal error 
Function      : CScriptEngine::lua_error 
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp 
Line          : 73 
Description   : <no expression> 
Arguments     : LUA error: ...\stalker\gamedata\scripts\state_mgr_animation.script:431: attempt to index a nil value
Добавлено Bak,

Вот исправление, проверь.

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

@Bak, у меня вопрос офтопный:

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

andreyholkin.gif

rod_cccp.gif

 

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

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

Вот это "что-то" как раз и не работает как надо. Либо звук вообще не провоцирует создание денжера, либо денжер какого-то другого типа считается приоритетней и впоследствии успешно игнорируется скриптом. Изменено пользователем Bak
  • Полезно 1
Ссылка на комментарий

Ребят, у меня часто встречается такая ситуация - после боя NPS начинают собирать лут, подбирают ствол, выбрасывают свой и......опять подбирают свой, но выбрасывают тот, который подобрали, и так раз 5-6 подряд. Это я так понял это и есть" Менеджер оружия" да (ну выбирают лучший ствол). Можно  как нибудь исправить этот многоуровневое выбирания оружия?( а то выглядит как-то странно)

Изменено пользователем Витязь
Добавлено Bak,

находишь в m_stalker строку use_single_item_rule = on, и меняешь on на off

  • Полезно 1

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

DarkSnowder.gif

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

, в файле config\creatures\m_stalker.ltx строку can_select_items = off замени на can_select_items = on, строку use_single_item_rule = on замени на use_single_item_rule = off.

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

Bak привет.

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

Версия 2.03 работает отлично с выбросом,_а вот версия 2.04 постоянный вылет. Надоело уже. Что делать?

 

версия сталкер 1.6.02

Изменено пользователем Kirgudu
Добавлено Bak,

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

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

@alexandr95, Адаптация неправильная. Total Commander может помочь, там есть замечательна утилита как "сравнение файлов по содержимому."

  • Согласен 1

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

DarkSnowder.gif

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

Почему то

WinMerge

«Бесплатная программа для визуального сравнения текстовых документов в ОС Windows на предмет изменений в них. WinMerge умеет работать с DOS, UNIX и MAC форматами файлов, поддерживает Unicode и имеет подсветку синтаксиса. Может оказаться очень полезной, например, для определения того, что изменилось в одной версии мода по сравнению с другой, а также для слияния изменений, выполненных в различных модификациях и аддонах. Если Вы «клепайте» солянку из пары десятков модов, то без этой программы вам не обойтись.

Вес инсталлятора около 2,8 Мб»

Официальный сайт http://winmerge.org/ 

 

Ну и вообще полезное: http://www.amk-team.ru/forum/topic/1481-instrumentarij-dlia-mododelov/

Изменено пользователем Space.Marine
  • Спасибо 1
  • Нравится 1
  • Согласен 1
  • Полезно 1
Ссылка на комментарий

В общем, долго думал над этим вопросом, решил написать в эту тему.

В движке сталкера существует баг стрельбы NPC из РГ-6.
Видео:

https://yadi.sk/i/CFYituV8uESy3
кодек h264-mp4
CRC32: 2BBC6ABC
MD5: 8B3799F09508733F8F7F7CD293C65B74
SHA-1: 304C0B28856C7D4F0690E40ED7426052DFA51A0E

Поясню - при выстреле, производимом NPC(на игрока баг не распостраняется) из гранатомёта,
стреляющего 40мм гранатами, создаётся два объекта fake_grenade(один отрабатывает как заряд, второй просто виснет в воздухе). Причём оба объекта считаются для NPC как граната,
поэтому и такие танцы. Если например взять винтовку с подстволом, разрядить магазин, переключить в режим подствольника,
зарядить подствольник и в таком виде продать NPC вместе с парой гранат, происходят ровно такие же танцы.
Перезагрузка/перезаход на уровень не удаляют гранату, висящую в воздухе, не помогает даже стрельба по ней.
В связи с этим первое предложение по менеджеру оружия - сделать так, чтобы если NPC получил РГ-6, либо
винтовку со включенным гранатомётом, то включался запрет на обычную движковую стрельбу и стрельба велась через схему xr_grenadier.

 


Схема "не стрелять по своим" использует неверный алгоритм расчёта точности NPC.
Дело в том, как движок расчитывает точность стрельбы NPC :

- При выстреле используются две компоненты. Формула расчёта :
        {суммарная точность} = {компонента точности стрелка} + {компонента точности оружия}

- Компонента точности стрелка для ИИ считается равной одной из величин
----------------------------------------------------------------------------------------------
;---FIRE DISPERSIONS--------------------------------------------------
disp_walk_stand     = 8 ;6
disp_walk_crouch    = 4 ;3
disp_run_stand     = 14 ;12;8
disp_run_crouch     = 6  ;4
disp_stand_stand    = 4
disp_stand_crouch    = 2
disp_stand_stand_zoom   = 1.5 ;1
disp_stand_crouch_zoom   = 1.25;1
----------------------------------------------------------------------------------------------
        в профиле NPC (для сталкеров это [stalker] в файле m_stalker.ltx, для вояк же например это [m_army_soldier] в файле m_army.ltx)
        в зависимости от положения тела и режима прицеливания.

- компонента точности оружия для ИИ вычисляется по формуле
        {компонента точности оружия} = {fire_dispersion_base}*{fire_dispersion_base_k(для глушителя, если есть)}*{k_disp(для патрона)} +
                + {cam_dispersion(для автоматической стрельбы)}*{cam_dispersion_k(для глушителя, если есть)} +
                        + {cam_dispersion_inc(для автоматической стрельбы)}*{cam_dispersion_k(для глушителя, если есть)}
        при этом параметры
        ----------------------------------------------------------------------------------------------
        cam_dispertion_frac
        cam_max_angle
        cam_max_angle_horz
        cam_step_angle_horz
        ----------------------------------------------------------------------------------------------
        не учитываются для ИИ

В связи с этим возникает ещё одна проблема, тянущаяся всю серию сталкера - боты не могут стрелять нормально из снайперских винтовок,
если параметры _zoom в разделе FIRE DISPERSIONS более чем в 10 раз превышают значение fire_dispersion_base*k_disp
По этой же причине в тенях чернобыля для снайперов на ЧАЭС были созданы отдельные профиля со своими параметрами точности.

Поэтому пара следующих предложений :
- переделать формулу расчёта в модуле "не стрелять по своим"
- если у оружия, выбранного ботом, значение fire_dispersion_base*k_disp меньше, чем в 10 раз по отношению к disp_stand_stand/crouch_zoom
        и это оружие является снайперской винтовкой(проверка по признакам - темп стрельбы ниже 180 выстрелов в минуту, высокая точность патрона,
        класс, такой как W_VINT или W_SVD), то в менеджере оружия задать алгоритм, что лучше сменить оружие, например на пулемёт, или автомат под 7.62

 

 


На этот раз схема сбора предметов с земли.
Как оказалось, она во многих случаях не хочет работать нормально. Совсем.
Просто опишу, что хотелось бы видеть :
- Настройку в конфиге, чтобы не обыскивали тех, кто лежит ближе N метров от аномалии, либо захвачен аномалией
- Настройку в отдельном конфиге в виде списка в специальной секции, меняемого вручную, либо в отдельном скрипте в виде lua-таблицы,
        чтобы не обыскивали тех, кто имеет определённые xml профили и определённые профили в секции респавна, либо
        имеют определённые квестовые предметы(которые не должны подбираться NPC)
- Настройку в отдельном конфиге в виде списка в специальной секции, меняемого вручную, либо в отдельном скрипте в виде lua-таблицы,
        чтобы не подбирали с земли определённые квестовые предметы с определёнными секциями, либо именами spawn-объекта(которые не должны подбираться NPC)
- Настройку в конфиге, чтобы не обыскивали тех, кто лежит дальше N метров от NPC/лагеря, либо вне радиуса видимости, либо вне прямой видимости, либо за радиусом подгрузки Alife
- Настройку в конфиге, чтобы не обыскивали тех, кто лежит ближе N метров от игрока и не собирали предметы ближе N метров от игрока,
        ибо когда выхватывают предметы из-под ног, это уже слишком, в жизни бы драка началась за такое.

- В дополнение, чтобы NPC не превращались в склад хабара, прописать Alife:release() для вещей типа обрезов, если NPC они не нужны.

 

 


Добавить модуль "компаньоны" от Kamikazze в качестве "аддона к аддону", вот это была бы бомба.
Возможно, вам может пригодиться вот этот скрипт http://www.amk-team.ru/forum/topic/8243-vashi-pravki-dlia-stalker-zp/?p=1032110, для менеджера оружия?
        При помощи него, в менеджере оружия можно было бы напрямую использовать таблицу, в которой будет указано время перезарядки конкретного ствола.

 

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

Ничто общее из частного не следует.

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

 

 

для вояк же например это [m_army_soldier] в файле m_army.ltx)

Файлы m_army.ltx, m_bandit.ltx, m_fraction.ltx игра не видит, и они для неё не существуют.

Прописывание этих файлов в system.ltx ничего не даёт, как и прочие "пляски с бубном".

Так что работает только m_stalker.ltx

 

 

если параметры _zoom в разделе FIRE DISPERSIONS более чем в 10 раз превышают значение fire_dispersion_base*k_disp

Все кто озабочен повышенной боеспособностью НПС уже давно подправили точность стрельбы.

Например у меня значения disp_stand_stand_zoom и disp_stand_crouch_zoom не превышают 0.005 и 0.001.

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

 

p.s.

И не надо задавать никаких алгоритмов...  ;) 

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

Все кто озабочен повышенной боеспособностью НПС уже давно подправили точность стрельбы. Например у меня значения disp_stand_stand_zoom и disp_stand_crouch_zoom не превышают 0.005 и 0.001.

И в результате, новички попадают из пистолета через пол-карты...

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

Файлы m_army.ltx, m_bandit.ltx, m_fraction.ltx игра не видит, и они для неё не существуют. Прописывание этих файлов в system.ltx ничего не даёт, как и прочие "пляски с бубном". Так что работает только m_stalker.ltx

Эти файлы можно подключить при использовании модифицированного движка, и чтобы те, кто их подключает в своих модах, могли нормально использовать AI additions ,не помешала бы единая функция парсинга. Изменено пользователем Bak

Ничто общее из частного не следует.

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

 

 

И в результате, новички попадают из пистолета через пол-карты...

С чего бы это ?  :blink:

Надо правильно настраивать оружие - тогда всё будет сбалансировано.

 

 

без таких лютых накруток конфига по точности.

А вы эти накрутки проверяли ?

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

 

 

Эти файлы можно подключить

Интересно было бы посмотреть...

 

p.s.

Вообще лучше не спорить на эту тему.

Всё давно перепробовано, и протестировано.

Почитайте - http://www.amk-team.ru/forum/topic/13148-oruzhejka/page-1

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

 

 

 

Надо правильно настраивать оружие

 

 

А вы эти накрутки проверяли ?

 

Проверено, и не единожды. Если закрутить точность стрельбы NPC, то получаются снайперские пистолеты, DESERT EAGLE с прицелом и прикладом отдыхает.

Если же понизить точность стволов с 0.04-0.1 до 1-2 радиан, то после такой стрельбы пропадает желание играть.

 

НПС безбожно мажут из за невозможности правильно компенсировать отдачу оружия

cam_relax_speed_ai

при раскомментировании дефайна прекрасно работает

 

Вообще лучше не спорить на эту тему.

 

этак можно вообще не спорить.

 

 

Ничто общее из частного не следует.

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

 

 

больше что то доказывать не собираюсь.

 

 

надо чтобы руки росли из правильного места...

 

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

У нас идёт спор о сути : Вы утверждаете, что не нужен специальный алгоритм, заставляющий менять высокоточную винтовку на автомат/пулемёт, если боту точность не позволяет, и что надо снижать точность оружия, а точность ботов целенаправленно повышать до максимума, я же считаю с точностью до наоборот.

 

Не работает. Плохо читали предложенную тему - ВСЁ !!! давно перемусолено не один десяток раз...

 

Понимаю, много лет пытались и не получалось, но сейчас-то, когда есть открытые исходники движка, что мешает ?

 

 


Upd. Вообще то, что мы так ломаем копья - не здорово и безблагодатно.


Кстати, вот, пришла такая мысль, а никто не пробовал слить профайлы типа m_bandit в m_stalker.ltx, ведь возможно, просто ограничения на С++ парсер конфигов не позволяют раскрыть вопрос.


А по поводу моих предложений по AI additions  - вообще, подозреваю, что изначально разрабы GSC сделали всё оружие точным(да и в жизни, например печенег, утёс или браунинг - это "снайперские пулемёты"), хотели наделать много профилей отдельно для снайперов(высокий скилл стрельбы у бота), для высокоранговых штурмовиков(средний скилл стрельбы, но большой ранг плюс хороший костюм решают) и для обычных сталкеров. Причём у снайперюг в приоритете были бы снайперские винтовки, но снайпера не любили бы пулемёты(баланс, однако, дабы снайперюги не косили всё живое из пулемёта со снайперской точностью) ; у штурмовиков в приоритете оружие с большим разбросом, но высокой огневой мощью, у остальных - в приоритете автомат. И это, и то,что всё не успели реализовать как надо -  более-менее понятно. Другое дело, что сейчас то при помощи нескольких скриптовых алгоритмов ситуацию можно сгладить.

Кстати, чтобы исконный пост не потерялся - ссылка http://www.amk-team.ru/forum/topic/4653-ai-additions/?p=1032302

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

Ничто общее из частного не следует.

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

включался запрет на обычную движковую стрельбу

Если бы это было возможно, я бы сделал. Есть простое решение - запретить использование РГ-6.

 

Схема "не стрелять по своим" использует неверный алгоритм расчёта точности NPC.

Супер-точность расчета в данном случае не нужна и не имеет смысла.

 

боты не могут стрелять нормально из снайперских винтовок,

Что это значит? Где проблема, и причём тут менеджер оружия?

 

 

На этот раз схема сбора предметов с земли. Как оказалось, она во многих случаях не хочет работать нормально. Совсем.

Да ну? И как это понимать? ЧТО по-твоему значит "не хочет работать нормально"? Где баги-то? 

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

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

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


UPD простая схема необыска там естественно имеется, но хотелось бы видеть распределение по фракциям, либо по имени лагеря, в котором находится NPC. В настройки я естественно лазил, но всё равно, хотелось бы иметь более тонкую настройку, дабы не возникало ситуаций, как я только что написал. Так и не нашёл настройку "не трогать вещи ближе чем N метров от игрока", да и по аномалиям, почему-то всё равно как лезли, так и лезут за трупсами вслед.


___

Файлы настроек открывал, конечно же ;)


@shahvkit, возможная причина этого -

 

 

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

 - перехват скриптовой схемы движковой, а движок читает, но не обрабатывает параметры min_distance и max_distance.

Изменено пользователем Alex Rinic
Добавлено Bak,

Ты хотя бы открывал файлы настроек, прежде чем всё это тут писать?

Ничто общее из частного не следует.

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

@Bak, Я так понимаю ты просто решил удалить моё сообщение с логом ошибки на вылет во время выброса. Мне просто нужна твоя помощь, чтоб ты проверил, в чём проблема. Разве так трудно это сделать?

Я не понимаю?! Я просто прошу твою помощь, проверить и узнать, почему он ссылается на вылет во время выброса с модов повелителем зоны и без повелителя зоны. Что же так трудного просто напросто проверить?!

Добавлено warwer,

Потом ты захочешь, чтобы проверили с "супер-повелителем", потом с "мега..." и т.д

Автор работает над своим модом, а не адаптациям по желаниям пользователей.

Добавлено Bak,

Я тебе уже ответил. Совмещай файлы.

Ссылка на комментарий
всегда думал, что anomaly_evader идёт в комплекте

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

Возможно вопрос будет идиотским, я не смог найти решения с гуглами, негуглами... ТЧ 4 патч. Включаем ПНВ и любой стелс, какой вообще возможен, пропадает. Звук/или иная печаль заставляет слышать/... враждебным НПС ГГ в зоне алайф. Образовывается вопрос, я плохо искал решение, вина 4 патча (на других не проверял) или криворукость?

 

 

Звук

Тут попытался найти, а также изменить диапазон этого звука до отметки 0, как на самом деле. Но вот задача, который звук подхватывается ПНВ, все равно стелс невозможен с этим прибором.

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

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

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

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

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

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

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

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

Войти

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

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

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