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

Space.Marine

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

    663
  • Регистрация

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

  • Дней в топе

    1
  • AMKoin

    13,017 [Подарить AMKoin]

Сообщения опубликованы Space.Marine

  1.  

     

    не может найти диалог "dm_hello_dialog"

     

    Автор: Моддер



    Как лечить раненных НПС-врагов
    Сложность: оч. легко
    Совместимость с модами: легко совместимо
    Многие люди в своих модификациях хотят добавить возможность лечить раненных врагов, как, например, в Солянке. Я тоже однажды заинтересовался этим вопросом и, не найдя на него ответа в интернете, занялся решением проблемы сам. В итоге мне это удалось и теперь выкладываю плоды своих стараний на просторы интернета :) .
    Скрыть Инструкции

    Запрет диалога с раненными противниками находится в файле xr_wounded.script, и выглядит так (я снабдил его комментариями, если вы не сильно шарите в скриптах):


    if self.object:relation(db.actor) == game_object.enemy then --если отношение НПС к ГГ = отношению к врагум
    self.object:disable_talk() --блокировать диалоги
    else --иначе
    self.object:enable_talk() --разрешить диалог
    end --конец условия (if)
    Дабы позволить ГГ говорить с врагами (только раненными) достаточно удалить лишнее и оставить всего одну строку:
    self.object:enable_talk()
    Но! Если ГГ попробует обратиться к раненным представителям бандитов, монолитовцев, наёмников, зомби (возможно), военных или противников на Арене - скорее всего произойдёт Фатал Еррор с логом на отсутствие подходящей фразы для диалога (в оригинальной игре с вероятностью 99%). Так вот, лично для себя я нашёл простое решение, которое подходило и по концепции моего мода - запретить диалог с данными группировками. Вот таким макаром:
    local comm = self.object:character_community() --переменной обозначил "понятие" группировки обьекта (НПС)
    if comm == "zombied" or --если НПС - зомби, или
    comm == "bandit" or --НПС - бандит, или
    comm == "monolith" or --НПС - монолитовец, или
    comm == "arena_enemy" or --НПС - боец арены, или
    comm == "killer" or --НПС - наёмник, или
    comm == "military" then --НПС - вояка, тогда
    self.object:disable_talk() --запретить диалог
    else -- иначе
    self.object:enable_talk() --разрешить диалог
    end -- The End!
    просто заменить изначальные строки этими и теперь ГГ сможет лечить врагов одиночек, долговцев, свободовцев и учёных.
    Но есть ещё один момент. При лечении врагов, если всё сделать как было написано будет ещё одна проблемка - они так и останутся врагами после лечения и будут дальше атаковать ГГ.
    Разумно было бы сделать НПС если не другом, то по крайней мере нейтралом. Для этого необходимо в файле dialogs.script кусок скрипта
    if second_speaker:relation(first_speaker) ~= game_object.enemy then
    second_speaker:set_relation(game_object.friend, first_speaker)
    end
    first_speaker:change_character_reputation(10);
    end
    заменить на
    if second_speaker:relation(first_speaker) == game_object.enemy then
    second_speaker:set_relation(game_object.friend, first_speaker)
    first_speaker:set_relation(game_object.friend, second_speaker)
    end
    first_speaker:change_character_reputation(10);
    end
    Всё! ;)

     

  2. перенеси вызов dinamic_hud.update() повыше

    Спасибо, помогло. Признателен за помощь !

     

    @Bak,
    Приветствую ! Платформа ТЧ. Обновил АИ до свежей версии и пошли вылеты сохранений (после начала новой игры):

    Expression : fatal error


    Function : CScriptEngine::lua_error
    File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
    Line : 73
    Description :
    Arguments : LUA error: c:\stalkersoc\gamedata\scripts\dialog_manager.script:393: attempt to compare number with nil

     

     

    Версии везде правильные (7) и >=0. Дело в том, что установлен ещё и Динамический Худ. Проблема, мне кажется, в разных xr_utils. Можно попросить подружить Ваши два творения.

  3. Ну, раз пошла такая пляска... По поводу эффектов стрельбы из Динамического Худа... Попробовав раз, больше не могу играть без него вообще. Очень атмосферная весчь. К сожалению никак не смог адаптировать к моду "Call of Chernobyl". Эффект от выстрела появляется только спустя пару секунд после выстрела. Если кто поможет с адаптацией, то размеры моей благодарности не будут иметь границ.  :)

AMK-Team.ru

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