• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, спешите принять участие в поэтическом конкурсе "Весенние поэты 2024"!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Готика 2: НВ Out Of My Way

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
  • Первое сообщение
  • #1
редакция от 1 марта 2023 года.
один архув с аудио репликами и субтитрами. второй архив со скриптами. два архива лишние, удалить не смог. у правильного архива в название указано "оно"
***
настройки восприятия можно изменить в файле gothic.ini. параметры по умолчанию
DIST_MoveNpc=300
DIST_PERC_MOVENPC=100
***
  • реплики собраны в посте #3 топика Готика 2: НВ - Out Of My Way
  • Сердце "проекта", цикл ZS_MoveNpcWait в посте #4 Готика 2: НВ - Out Of My Way
  • C_AmIFRIENDLY - у героя есть «друзья». Какие то есть изначально, какие то появляются по сюжету, какие то в рамках фракционных отношений. Друзья не бьют героя и не хомят ему на ровном месте. Друзья говорят «Привет друг». пост про друзей #5 Готика 2: НВ - Out Of My Way
  • C_AmIStronger - если НПС не друг героя и достаточно крепок, то он будет угрожать герою. Проверка на то крут НПС или нет в посте #6 Готика 2: НВ - Out Of My Way
 

Вложения

  • 2023_01_03_G2_OUTOFMYWAY_RU_SPEECH.zip
    1,7 MB · Просмотры: 9
  • оно_2023_01_03_G2_OUTOFMYWAY_scripts.zip
    9,9 KB · Просмотры: 10
  • 2023_03_10_G2_OUTOFMYWAY_scripts.zip
    10,7 KB · Просмотры: 7
  • 2023_03_13_G2_OUTOFMYWAY_scripts.zip
    10,9 KB · Просмотры: 9
Последнее редактирование:

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
Надеюсь в ближайшем будущем мы все сможем насладиться полноценным патчем!
для этого надо прописать все правила и все исключение ;-) а это скорее коллективный труд. я игру не знаю на столько хорошо :)
Пост автоматически объединён:

любой дурак с палкой, на ГГ 400 уровня в топовой броне, лезет... и соответственно отгребает.
каким оружием должен быть вооружен герой что бы у НПС отпало желание с ним связываться? :)
Код:
// НПС оценивает оружие героя и принимает решение не идти на открытый конфликт
       var C_ITEM equipMeleeWeap; equipMeleeWeap = Npc_GetEquippedMeleeWeapon(oth);
    if (equipMeleeWeap.damageTotal >= Damage_Orkschwert_01)
    {
        return FALSE;
    };
Пост автоматически объединён:



или вот Бандиты. можно предусмотреть развитие сюжета, когда бандиты перестанут угрожать герою:
например герой убил Эстебена или герой убил Бладвина или герой убил Равена
Код:
if (slf.guild== GIL_BDT)   // НПС бандит
    {
        if (MIS_Send_Buddler == LOG_SUCCESS)                // или герой убил Эстебена
        || (Npc_KnowsInfo (hero,DIA_Addon_Thorus_Speech)    // или герой убил Бладвина
        || (RavenIsDead == TRUE)                            // или герой убил Равена
        {
            return FALSE;
        };
};

***
  • если герой паладин, то кто ему может угрожать? ОнД?
  • кто может угрожать герою магу?
 
Последнее редактирование:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
каким оружием должен быть вооружен герой что бы у НПС отпало желание с ним связываться? :)
Думаю немного по другому:
Daedalus:
// НПС оценивает оружие героя и принимает решение не идти на открытый конфликт
       var C_ITEM equipHeroMeleeWeap;
       var C_ITEM equipSelfMeleeWeap;
       equipHeroMeleeWeap = Npc_GetEquippedMeleeWeapon(oth);
       equipSelfMeleeWeap = Npc_GetEquippedMeleeWeapon(slf);
    if (equipMeleeWeap.damageTotal >= (equipSelfMeleeWeap.damageTotal + 100))
    {
        return FALSE;
    };
Такое кстати и к трусости приплести можно.
например герой убил Эстебена или герой убил Бладвина или герой убил Равена
Про бандитов в Ярике - да, но как быть с другими локациями, которые могут и не знать про убийство этих...
Надо что-то другое придумать...
если герой паладин, то кто ему может угрожать? ОнД?
Ну да, плюс отдельные личности, типа борзых.
кто может угрожать герою магу?
Думаю так же, ОнД + борзые
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
Думаю немного по другому:
такое условие не будет корректно работать с 1р.

Про бандитов в Ярике - да, но как быть с другими локациями, которые могут и не знать про убийство этих...
другие бандиты в других локациях вообще не ходят, а стоят/сидят на одном месте.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
такое условие не будет корректно работать с 1р
А если переменную вынести за пределы условий, в начало файла:
Daedalus:
// НПС оценивает оружие героя и принимает решение не идти на открытый конфликт
       var C_ITEM equipHeroMeleeWeap;
       var C_ITEM equipSelfMeleeWeap;
       equipHeroMeleeWeap = Npc_GetEquippedMeleeWeapon(oth);
       equipSelfMeleeWeap = Npc_GetEquippedMeleeWeapon(slf);
var int bous;
bous = equipSelfMeleeWeap.damageTotal + 100;
    if (equipMeleeWeap.damageTotal >= bous)
    {
        return FALSE;
    };
Или пофиг?
другие бандиты в других локациях вообще не ходят, а стоят/сидят на одном месте.
Мелкие точки - да, а в лагере Декстера, просто не помню, там тоже все стоят или временами ползают...
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
Мелкие точки - да, а в лагере Декстера, просто не помню, там тоже все стоят или временами ползают...
мне кажется это не принципиально. лагерь декстера по сюжету проходится до попадания в Ярик и поведение бандитов в лагере Декстера должно быть сдержанно агрессивное :)

А если переменную вынести за пределы условий, в начало файла:
объясни что ты имеешь ввиду? мне кажется что НПС просто смотрит видит крутую "пушку" у ГГ и решает с ним не связываться. крута пушка то у чего условно ущерб как у меча орка и больше.
у тебя есть сравнение оружие героя с оружием НПС. у самого НПС будет оружие с ущербом 40-60. если к этой цифре накинуть еще 100, то получаем 140-160. то есть мы получаем небольшой диапазон цифер и в таком случае вроде как и смысла сравнивать оружия нпс и героя нет. если взять исключения что у НПС какая то палка это значит с большой вероятностью что НПС был побит и в таком случае идёт проверка в начале скрипта на то был ли побит НПС героем.
Daedalus:
    // НПС уже получал на орежи от ГГ
    if (slf.aivar[AIV_VictoryXPGiven] == TRUE)
    {
        return FALSE;
    };
возвращаюсь к цифре 140-160. эта цифра большая. такого оружия 1р нет, если не брать супер оружие типа благословенного меча паладина или самогонного меча. т.е. герой с 1р не будет проходить эту проверку :)
 
Последнее редактирование:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
возвращаюсь к цифре 140-160 эта цифра большая
Ну это я вообще к примеру писал))
можно и +10 и +5.
Но вообще согласен, что можно указать просто на крутость пухи. + можно еще добавить условие на уровень непися и ГГ...
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
+ можно еще добавить условие на уровень непися и ГГ...
это работало в готики 1. в готики 2 уровни НПС высокие и плохо коррелируются с уровнем героя. то есть какой нибудь крестьянин 30 уровня и герой 30 уровня это небо и земля. наёмник 40 уровня и герой 40 уровня( который уже ОнД с глазом инноса и перебил драконов) тоже тяжело сравнивать. даже НПС послушник в монастыре скорее всего будет выше уровнем чем гг маг :) то есть сравнение по уровню это такая средняя ЗП по стране. она нужна для отчётов королю Миртаны ;-) если сравнивать по навыку владения и параметрам они так же будут плохо биться с навыками / параметрами героя.

Но вообще согласен, что можно указать просто на крутость пухи
вот я и пытаюсь понять что есть круто :) шпага мастера это наверное круто. у неё ущерб 120. какой нибудь изысканный полуторный меч которым вооружён Скатти тоже круто, у него ущерб 110. меч паладина из руды тоже круто у него ущерб 100. у меча орка тоже ущерб 100. ну вот наверное это и есть то от чего можно отталкиваться.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
MW 7, Давай тада так:
оценка оружия героя >= 100, тогда атаки не происходит.
ГГ нейтралГГ ментГГ наёмГГ ОНДГГ палГГ послушникГГ маг
НПС ментнет с поправкойнетдаданетнетнет
НПС наёмдададада с поправкойда с поправкойданет
НПС онддадададададада с поправкой
НПС бандитдадададададада
НПС пиратдадададададада
НПС крестьянинда с поправкойнетнетнетнетнетнет
НПС послушникданетнетнетнетда с поправкойнет
НПС другнетнетнетнетнетнетнет
НПС горажанинда с поправкойнетнетнетнетнетнет
НПС зэкдадададададада
НПС магнет с поправкойнетнетнетнетнетнет
НПС высший магнетнетнетнетнетнетнет
НПС ВатрасПодходит под друга
НПС КсардасПодходит под друга
НПС рабочийда с поправкойнетнетнетнетнетнет
НПС рабнетнетнетнетнетнетнет
ГГ нейтрал - НПС мент: атакует, только в случае, если ГГ накосячил с законом(подтвержденный факт, и не оплаченный штраф)
ГГ ОнД/Пал - НПС наем: атакует, если не отхватывал от ГГ.
ГГ маг - НПС ОнД: атакует в случае если не огребал от ГГ.
ГГ нейтрал - НПС крестьянин/горожанин/рабочий: атакует если не огребал от ГГ.
ГГ послушник - НПС послушник атакует если не огребал от ГГ.
ГГ нейтрал - НПС маг: атакует в случае нарушения закона, либо правил монастыря.
Остается определиться с "борзыми"(кому пофиг кто есть ГГ и отхватывал ли он от ГГ):
Сильвио, Булко, Бладвин(точно не помню, ползает ли...), Торус(не помню, ползает ли), из ментов/палов/послушников/магов не припомню ни кого, кто еще?
Онар - нападает в случае, если ГГ послушник или нейтрал, в остальных случаях только предупреждает вытащив оружие
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
пиратам было логично тоже сделать какую то проверку по сюжету игры. ну там например на выполнения квеста по зачистки каньона. ведь фактически героя Грег назначает командиром по отряда по сюжету игры.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
пиратам было логично тоже сделать какую то проверку по сюжету игры. ну там например на выполнения квеста по зачистки каньона. ведь фактически героя Грег назначает командиром по отряда по сюжету игры.
Да, давай тогда еще им условие, если не выполнен квест по зачистке - нападают.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
а если ГГ ОнД или наём? те же условия?
Думаю нет, т.к. "За твои косяки ты будешь платить перед законом самостоятельно".
Хотя, если правила монастыря.... то можно
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
Тут примерно тоже самое))
ну там же прямой запрет на это. и штрафы и вплоть до отчисления. то есть я понимаю что там например есть Агон и для него есть свои законы и понятия. Но подавляющее большинство если будут агрится в часовне перед Пирокаром на ГГ послушника это будет мягко говоря странно. Не помню что бы у нас на паре били морды студенты перед профессором :-D
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
ну там же прямой запрет на это. и штрафы и вплоть до отчисления. то есть я понимаю что там например есть Агон и для него есть свои законы и понятия. Но подавляющее большинство если будут агрится в часовне перед Пирокаром на ГГ послушника это будет мягко говоря странно. Не помню что бы у нас на паре били морды студенты перед профессором :-D
Согласен, а если сделать условие на 23:00 +? Или когда ни кого рядом, допустим 20 метров из магов нет? Хотя это редкость... Да и радиус этот действует и вверз и вниз...
Ладно уболтал... Можно поставить их в "нет" ))
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
можно еще про GIL_NOV подумать :) может что то надумается
MEG@VOLT, проверь общие правила
Daedalus:
//////////////////////////////////////////////////////////////////////////
//    C_AmIStronger
//    =============
//    Ьberfrьft, ob der NSC 'slf' stдrker als der NSC 'her' ist. Diese
//    Funktion ist genau das gegenteil von C_AmIWeaker().
//////////////////////////////////////////////////////////////////////////

// her это герой

func int C_AmIStronger (var C_Npc slf, var C_Npc her)
{
    /*
    if ((2*slf.level) > her.level)
    {
        return             TRUE;
    }
    else
    {
        return             FALSE;
    };
    */
    

    
    if (slf.npcType == NPCTYPE_FRIEND)
    {
        return FALSE;   
    };

    // именные НПС
    // маг огня Дарон, на что то там проверки, так как не пройдёт проверку по гильдии
    // Сильвио
    // Онар - нападает в случае, если ГГ послушник или нейтрал, в остальных случаях только предупреждает вытащив оружие
    // Булко
    // иные борзые НПС

    // НПС уже получал на орехи от ГГ
    if (slf.aivar[AIV_VictoryXPGiven] == TRUE)
    {
        return FALSE;
    };   

    // проверка оружия ГГ
    // НПС оценивает оружие героя и принимает решение не идти на открытый конфликт
       var C_ITEM equipMeleeWeap; equipMeleeWeap = Npc_GetEquippedMeleeWeapon(her);
    if (equipMeleeWeap.damageTotal >= Damage_Orkschwert_01)
    {
        return FALSE;
    };


    
    if (slf.guild == GIL_MIL)   // НПС MIL
    {
         if (her.guild == GIL_NONE)   { return   true; }; // добавить доп проверку на преступления?
         if (her.guild == GIL_SLD)    { return   true; }; // добавить доп проверку на преступления?
        if (her.guild == GIL_DJG)    { return   true; }; // добавить доп проверку на преступления?
        return FALSE;
    };
    
       if (slf.guild == GIL_PAL)   // НПС PAL
    {
        // проверка на приступление для нейтрала / онд / наёма?
        return FALSE;
    };
    
       if (slf.guild == GIL_KDF)   // НПС маг
    {
        // проверка на приступление для нейтрала / онд / наёма?
        return FALSE;
    };
  
      if (slf.guild == GIL_NOV)   // НПС послушник
    {
        // проверка на приступление для нейтрала / онд / наёма?
        return FALSE;
    };

  


    if (slf.guild == GIL_SLD)   // НПС наём
    {
         if (her.guild == GIL_KDF)   { return   FALSE; };
        return true;
    };

      if (slf.guild == GIL_DJG)   // НПС ОНД
    {
        return true;
    };
    
    
      if (slf.guild == GIL_PIR)   // НПС пират
    {
       if (MIS_Addon_Greg_ClearCanyon == LOG_SUCCESS)    // герой очистил Canyon
       {
            return   false;
       };
       return true;
    };
  
      if (slf.guild == GIL_BDT)   // НПС бандит
    {
        if (MIS_Send_Buddler == LOG_SUCCESS)                        // или герой убил Эстебена
        || (Npc_KnowsInfo(hero,DIA_Addon_Thorus_Speech) == true)    // или герой убир Бладвина
        || (RavenIsDead == true)                                    // или герой убил Равена
        {
            return false;
        };
        return true;
    };

    // подстраховка
     if (her.guild == GIL_PAL)   // герой паладин
    {
        if  (slf.guild == GIL_DJG)   { return    TRUE; };    // НПС ОНД
        return   FALSE;
        /*
        if      (slf.guild == GIL_PAL)   { return    FALSE; }    // НПС Паладин
        else if (slf.guild == GIL_MIL)   { return    FALSE; }    // НПС Мент
        else if (slf.guild == GIL_KDF)   { return    FALSE; }    // НПС Маг Огня
        else if (slf.guild == GIL_KDW)   { return    FALSE; };   // НПС Маг Воды
        */
    };

    // подстраховка
     if (her.guild == GIL_KDF)   // герой маг огня
    {
        if  (slf.guild == GIL_DJG)   { return    TRUE; };    // НПС ОНД
        return   FALSE;
        /*
        if      (slf.guild == GIL_PAL)   { return    FALSE; }    // НПС Паладин
        else if (slf.guild == GIL_MIL)   { return    FALSE; }    // НПС Мент
        else if (slf.guild == GIL_KDF)   { return    FALSE; }    // НПС Маг Огня
        else if (slf.guild == GIL_KDW)   { return    FALSE; };   // НПС Маг Воды
        */
    };

    // проверка на то достаточно ли сильный НПС и сможет ли вломить ГГ
    // проверка брони ГГ
    // проверка на то сколько людей убил ГГ
    // проверка еще на что то
    
    return             TRUE;
};
и можно будет заняться исключениями из общих правил.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
@MEG@VOLT, проверь общие правила
Проверил))
Проверку на огребание от ГГ надо убрать из основного, и пихать в проверку гильдий, т.к. почти все неписи будут атаковать, в не зависимости от огребания, например наём-наёма...
И непись - послушник, то тут ни каких проверок, просто в false оставить.
Остальное да, можно уже накидывать полные условия)
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.930
Благодарности
929
Баллы
275
Проверку на огребание от ГГ надо убрать из основного, и пихать в проверку гильдий, т.к. почти все неписи будут атаковать, в не зависимости от огребания, например наём-наёма...
а сколько раз НПС наёмник должен получить в тык что бы понять что тебе дорогу герой не уступит. я не говорю про Булко и прочих упоротых нпс :) т.е. я думал что это база ГГ обламал рога НПС и тот к ниму больше не лезет бодаться.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.215
Благодарности
6.195
Баллы
1.565
а сколько раз НПС наёмник должен получить в тык что бы понять что тебе дорогу герой не уступит. я не говорю про Булко и прочих упоротых нпс :) т.е. я думал что это база ГГ обламал рога НПС и тот к ниму больше не лезет бодаться.
Ну ониж по большей части все отмороженные)
 
Сверху Снизу