Перейти к содержанию

Mass

Сталкеры
  • Публикаций

    391
  • Зарегистрирован

  • Посещение

Весь контент Mass

  1. denis2000 Похоже движок(best_weapon) ссылается на файл weaponeffectiveness.efd
  2. denis2000 Ничего подобного. Сделал. Переместил тоз34 в ранг 3, пм оставил на том же месте и при спавне непися у него best_weapon и active_item оружие pm. Хотя видно что анстрапнулось оружие toz34
  3. На сколько я помню mp_ranks не используется для выбора оружия. Пм они юзают для того чтобы стрелять на дальние расстояния. Предположим в оригинале мы спавним непися с рангом новичок. Допустим у нас попался нпс, который имеет wpn_toz34 и wpn_pm. Кидаю рядом другой обрез спа14. Ничего! Нуль реакции. Кидаю отбойник, который у меня в ранге 4. Тоже ничего. Меняю Протекте ef_weapon_type и непись с тем содержимым бежит за отбойником
  4. стрелок_2009 Новые пистолеты добавлялись? И точно используется чистая версия ЗП без модов?
  5. Забыл прописать группировку, либо не настроил communities_relations в game_relations.ltx. Похоже что эти монстры не юзают группировку monster. Не смотрел - не знаю. Также сталкеры могут быть в зоне(ресктрикторе) где нельзя агриться. Можно на апдейте у монстров или через выход в онлайн посмотреть какая группировка через логирование Объясню по-простому. Ищут с помощью движковой схемы property_items, подбирают они через take_items_enabled с булевым значением, а выбор оружия неписями best_weapon. А дальше используют оружие через эвалуатор(ы) и апдейта state_mgr нужно ли оружие страпать или нет
  6. NewValveCom в xr_gather_items.script в evaluator_gather_items:evaluate() Добавить проверку после if self.object:section() == "название секции актора в кат сцене, которого спавнить" then return false end А также в добавить в логику take_items = false, можно и в секцию логики, тогда предмет он точно не должен подбирать Если и это не поможет, то тут несколько вариантов: повис алайф или биндер, что в свою очередь сказалось на логике, либо нпс просто не берется под логику, тут проверять правильность пути файла до логики сталкера
  7. Ничего подозрительного не вижу. Объект точно берется под схему? С путями всё нормально? Тогда добавить в эвалуатор проверку по секции на отсечение заспавненного актора, если конечно секция не идентична ЗП
  8. Создать константу со значением 30 (дефолтным значением) где-нибудь вверху функции punch и лучше всего присвоить local. Делаешь новую функцию с любым неповторяющемся именем с тремя аргументами, 3-тьим будем параметр, который мы передадим в функцию punch. Дальше уже в функции punch делаем: если есть параметр присваиваем новое значение, иначе дефолт? Почему я не расписываю функцию. А вот хочу чтобы было хоть какое-нибудь понимание в скриптовой области. Если не получиться расписать могу - не проблема, но лучше сам постарайся Дополнено 3 минуты спустя А вот так незя! xr_logic проверяет значение параметра по последовательности сначала актор, нпс и сам параметр см функцию pick_section_from_condlist Это касается только вызова из логики объекта
  9. Ошибка в моём понимании - это не только краш, зависание игры или порча данных! Всякие коллизии, баги, рекурсии одной и той же функции и недочёты тоже являются для меня ошибками. Я не зря уточнил в своём посте о И ты же сам пишешь тоже самое Далеко нет.. Я бы вынес переменную за пределы функции, создал новую функцию, вызвал бы эту самую функцию из новоявленной уже с новым значением константы. Можно сделать или через флажок или например через новые аргументы функции и по проверке параметра вызвать с новым значением, или создать аналогичную функцию, но уже с измененным значением. Вот тебе, как минимум, 3 идеи подкинул
  10. И получишь ошибку, если захочешь использовать анимацию под названием "punch" .А также если будет настройка в схеме meet при abuse = true. В результате актор будет проверять расстояние от самого себя до самого себя. В вызове функции из анимации 1-ым стоит не актор, а нпс
  11. Лог работоспособный? Если да! раскомментируй строчку printf("LOGIC[%s]: Object... в xr_logic activate_by_section
  12. Если анимка используется не в анимпоинте - это нормальная реакция. В таких анимках крутится только верхняя часть туловища. А метод is_body_turning всегда возвращает false. Попробуй убрать moving = true у этой анимации в state_mgr_scenario.script. А лучше создай новую с тем же содержанием например с именем jup_b41_novikov_stand_with_turn, и убери то что я указал
  13. И что? Это не означает что скрипт виноват в ошибке. При проверки не дошел ли нпс до смарта, возникает какая-то серьёзная ошибка. Вот здесь и стоит задуматься почему obj == nil. Используй trace и логирование. Если со скриптами на Вы, то сверяй файлы логики и смарта, а также про сквады не забудь
  14. Убирать string.find из функции не рекомендую. дело в том что, игра гинеририрует id и добавляет его к имени, можно убрать цифры например с помощью шаблона %d* в string.sub. Но тогда столкнешься с идентичной проблемой predbannik_ment_guard_1 и predbannik_ment_guard_2 вернет predbannik_ment_guard_. Оно надо? стрелок_2009 Скрипт из оргинала? Если да, то возможно проблема в сквадах local squad = smart.board.squads[obj.group_id] Эта же строчка? Возможно значение потерялось в таблице arriving_npc. Но тогда это критическая ошибка, нужно делать логирование
  15. IncognitaGames Условия надо ставить в каждой ветке. Обычно использую <has_info>, <dont_has_info>... Нужно действовать аккуратно чтобы не получить знаменитую ошибку с логом No available phrase to say
  16. Это тоже мусор! затрется другой строчкой Вот тут логическая ошибка! если актор враг, то гг может юзнуть нпс Иногда схема xr_meet может перебить другие схемы так как имеет высокий приоритет, поэтому проверку на условия я бы всё-таки поставил Нужно дополнить условие use = {+pred_samostrel_hodunok_start_info !actor_enemy = dist_to_actor_le(7)} self, {=actor_enemy} false, true
  17. Гляди у тебя тут постоянный инфопоршен активирован. Тебе надо выдать инфо когда закончится диалог. и в условии проверять нет ли инфо Как-то так: use = {+pred_samostrel_hodunok_start_info -new_info !actor_enemy = dist_to_actor_le(7)} self, true Где new_info это инфопоршен который ты пропишешь после диалога или по какому-то событию, не важно snd_on_use = {=actor_has_weapon} meet_hello, nill Правильно nil combat_ignore_cond = false combat_ignore = combat_ignore; Бред сивой кабылы combat_ignore_keep_when_attacked = false invulnerable = false ; бессмертие А также no_move = true ; Это тоже мусор Совсем нужно удалить
  18. По поршню например: on_info = {+поршен} walker. Примеров в оригинале предастаточно
  19. Переведи его в новую секцию схемы и используй новую секцию meet, но без use = self
  20. IncognitaGames Пути для этого смарта walk и look есть в достаточном кол-ве? Как написали вам выше?
  21. Проверка только для секции hit! Поддерживает список. Полный перечень костей можно взять из m_stalker.ltx В логике пишите on_hit = hit в самой секции hit on_info = {=hitted_on_bone(bip01_head:bip01_pelvis:bip01_neck:bip01_spine2:bip01_spine1) -hit_po_kosti} %+hit_po_kosti =destroy_object% Внимание: функция hitted_on_bone есть только в ЗП. Чтобы понадобилась в чн нужно просто перенести эту функцию из xr_conditions cop в cs. А для ТЧ нужен еще xr_hit.script поменять