dosinabox / g2nr_unofficial_update

Исходники скриптов, релизы, хотфиксы и тестовые версии неофициального обновления для игры "Готика 2: Ночь Ворона".
https://worldofplayers.ru/threads/36817
The Unlicense
15 stars 1 forks source link

Бонусы и Штрафа не влияют(влияют) на обучение #187

Open Kor-Angar opened 4 years ago

Kor-Angar commented 4 years ago

Сейчас в игре бонусы и штрафы не влияют на обучение. а можно сделать это опциональным, что бы можно было переключить и бонусы/штрафы влияли на стоимость обучения?

ITRI_ORCELITERING - Кольцо предводителей орков ItMw_Addon_Keule_1H_01 ItMw_Addon_Keule_2H_01

Kor-Angar commented 4 years ago

И по умолчанию бонусы и штрафы влияют на обучение как в оригинале.

по умолчанию в неофициальном обновление бонусы от колец/поясов/амулетов не влияют на обучение. а вот в оригинале они влияли на обучение. это изменение сделано не опционально. оно просто сделано. Так видимо людям удобно играть, так как не надо снимать/одевать/переодевать кольца/амулета/пояса перед обучение у учителя. и учитель видимо как бы не замечает эти магические бонусы от артефактов.

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

Kor-Angar commented 4 years ago

B_GetLearnCostAttribute.d попробовал так же поменять силу. Кольцо Орка Военачальника заработало :-) https://www.youtube.com/watch?v=Li6f7rb-RZY

    if(attribut == ATR_STRENGTH)
    {
        if(other.attribute[ATR_STRENGTH] >= 120)
//      if(oth.aivar[REAL_STRENGTH] >= 120)
        {
            kosten = 5;
        }

        else if(other.attribute[ATR_STRENGTH] >= 90)
//      else if(oth.aivar[REAL_STRENGTH] >= 90)
        {
            kosten = 4;
        }
        else if(other.attribute[ATR_STRENGTH] >= 60)
//      else if(oth.aivar[REAL_STRENGTH] >= 60)
        {
            kosten = 3;
        }

        else if(other.attribute[ATR_STRENGTH] >= 30)
//      else if(oth.aivar[REAL_STRENGTH] >= 30)
        {
            kosten = 2;
        }
        else
        {
            kosten = 1;
        };
    };

попробовал поменять в B_GetLearnCostTalent.d else if(oth.aivar[REAL_TALENT_1H] >= **) на else if(other.HitChance[NPC_TALENT_1H] >= **) и бонусы / штрафы от оружия стали учитываться в игре. в практическом плане это значит что можно использовать штрафы от ItMW_Addon_Keule_1h_01 и ItMW_Addon_Keule_2h_01 при прокачке навыка двуручного/одноручного оружия и сэкономить очки обучения.

Kor-Angar commented 4 years ago

в целом это серьезное кол-во опыта выпилиться. так на вскидку думаю что от 2 до 5 уровней. поэтому вопрос серьёзный конечно.

при прокачке с "штрафами" на кольце орка и "штрафах" от оружия можно как раз сэкономить 2-5 уровней :-)

dosinabox commented 4 years ago

попробовал так же поменять силу. Кольцо Орка Военачальника заработало :-)

В оригинале классики без аддона влияет? А в оригинале аддона?

Kor-Angar commented 4 years ago

В оригинале классики без аддона влияет?

в Готика 2 классик прокачка 1 силы требовала 1 ЛП. поэтому там кольцо работало следующим образом: игрок докачивал силу до 90, учитель отказывался учить героя дальше. игрок одевал кольцо, сила снижалась и учитель учил опять. таким образом кольцо работало.

в Готике 2 НВ всё стало сложнее. Учителя проводили проверку на условие обучения по навыку/атрибуту с учётом бонусов и штрафов other.HitChance[NPC_TALENT_2H] (в коде НПС на примере Ли if(other.HitChance[NPC_TALENT_2H] < 75). а вот при фактическом обучение как я понял в Готике 2 НВ уже проверка шла на oth.aivar[REAL_STRENGTH] и oth.aivar[REAL_TALENT_2H] т.е. без учёта бонусов и штрафов от оружия и вещей.

в Готике 2 НВ неофициальном обновление всё свели к проверкам на REAL_TALENT_2H, REAL_STRENGTH. точнее почти всё :-) у Корда до сих пор стоит проверка на навык с учётом бонусов так как она реализована вообще по другому принципу.

Kor-Angar commented 4 years ago

(в коде НПС на примере Ли if(other.HitChance[NPC_TALENT_2H] < 75). а вот при фактическом обучение как я понял в Готике 2 НВ уже проверка шла на oth.aivar[REAL_STRENGTH] и oth.aivar[REAL_TALENT_2H] т.е. без учёта бонусов и штрафов от оружия и вещей.

поставлю Готика 2 НВ чистую немецкую и попробую посмотреть как сработает скрипт если герой придёт с 2р=75%, при этом у самого героя 2р=65% и еще 10% от оружия. Что же в этом случае будет делать генерал ЛИ? :-)

Kor-Angar commented 4 years ago

Что же в этом случае будет делать генерал ЛИ? :-)

в Готике 2 НВ Ли смотреть на итоговый параметр (с учётом бонуса оружия). https://www.youtube.com/watch?v=ycW3lUl57ws на расценки обучения бонус/штраф при этом не влияет.

Kor-Angar commented 4 years ago

в Готика 2 классик прокачка 1 силы требовала 1 ЛП. поэтому там кольцо работало следующим образом: игрок докачивал силу до 90, учитель отказывался учить героя дальше. игрок одевал кольцо, сила снижалась и учитель учил опять. таким образом кольцо работало.

в Готике 2 НВ кольцо орка позволяет прокачивать опустить силу с 200 до 180 и таким образом тренировать силу у учителей. https://www.youtube.com/watch?v=0fev7OnGrOs

Kor-Angar commented 4 years ago

в неоф. обновление Готика 2 НВ кольцо перестало работать https://www.youtube.com/watch?v=JWfbL5ptCD0

dosinabox commented 4 years ago

Значит, в новой версии:

Правильно?

Kor-Angar commented 4 years ago

влиять на обучение должны только дубинки и кольцо орков все кольца/пояса/амулеты не должны влиять на обучение, чтобы их не нужно было снимать

мне кажется вот это не правильно: что бы сохранить игровую логику надо что бы на стоимость влияли и бонусы и штрафы.

иначе будет просто удобно, но антилогично.

Kor-Angar commented 4 years ago

и это всё можно сделать опционально в рамках "честного расчета стоимости обучения"

Kor-Angar commented 4 years ago

но это мне так кажется :-)

dosinabox commented 4 years ago

антилогично

Потому что игрок не видит ту же характеристику, что видит учитель? Считает одно, а получает другое?

Kor-Angar commented 4 years ago

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

Kor-Angar commented 4 years ago

а во вторых я попробую расписать в троллейбусе

dosinabox commented 4 years ago

Как-то не понятно.

Опция влияния включена (будет по умолчанию):

Опция влияния выключена:

Kor-Angar commented 4 years ago

Опция влияния выключена(по умолчанию сейчас, оставить выключенным по умолчанию): штраф кольца орков - не влияет штраф дубинок - не влияет *Бонусы так же не влияют

Опция влияния включена : *влияют и штрафы и бонусы

Отправлено из мобильного приложения Яндекс.Почты

Kor-Angar commented 4 years ago

Так же можно наконец переписать проверку Корда. Сделать её такой же как идёт у Ли. Что бы включение/выключение влияло на него.

dosinabox commented 4 years ago

*штраф кольца орков - не влияет

Совершенно непонятна логика. Оригинал Г2нв - кольцо работает Обновление Г2нв - кольцо не работает, а чтобы работало как раньше, нужно включать читы, куда-то там заходить и что-то менять.

Kor-Angar commented 4 years ago

Извини. Пишу не понятно.В Готике 2 НВ кольцо работает в одном аспекте, но не работает в другом аспекте. Оно работает позволяя прокачать силу за Лп за 200. Но не влияет на стоимость прокачки. 

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

dosinabox commented 4 years ago

не влияет на стоимость прокачки

А в чистом оригинале Г2НВ?

Kor-Angar commented 4 years ago

Не влияет на стоимость

Kor-Angar commented 4 years ago

В скриптах у НПС проверка идёт по одному значению(учитывает бонусы/штрафы) , а в расчётах стоимости ЛП по дорогому(не учитывает бонусы/штрафы).

Kor-Angar commented 4 years ago

Как сейчас

Я ничего пока не напутал?

еще раз перепроверил в Готика 2 НВ немецкая версия https://www.youtube.com/watch?v=amhZNkkuuR4

Есть проверка в коде у НПС. НПС проверяет параметр/навык героя что бы понять достаточно ли Герой хорошо, что бы его учить(Например Ли учит с 75) или может ли учитель учить героя(например Бастер учит до 60). В этом случае в оригинальной Готике 2 НВ учитывается бонус/штраф оружия. Так же учитывается и бонус/штрафы колец. Проверка в Готике 2 НВ проходит по other.HitChance[NPC_TALENT_2H]

А вот стоимость обучения в Готике 2 НВ уже рассчитывается по oth.aivar[REAL_STRENGTH] и oth.aivar[REAL_TALENT_2H] т.е. без учёта бонусов и штрафов от оружия и вещей.

В неофициально обновление проверки у НПС переписали, поменяв на REAL_***. таким образом сиситема бонусов/штрафов в неоф. обновление с учителями перестала работать в целом.

Kor-Angar commented 4 years ago

собственно моё предложение в том что бы бонусы/штрафы влияли на все проверки и у НПС и в B_GetLearnCostAttribute и в B_GetLearnCostTalent что бы не получалось что Карл поднимает герою силу со 100 до 120 при одетом кольце орка по расценке 5 ЛП за 1 единицу силу. хотя по логике должен по 4 ЛП за 1 единицу.

Kor-Angar commented 4 years ago

Не получилось у меня мысль донести? 😀🙃

dosinabox commented 4 years ago

Получилось, но пока не знаю как сделать. Разбираться надо.

Kor-Angar commented 4 years ago

А напиши какую ты переменную планируешь использовать. Я потыкаю может тебя на светлую мысль наведу

Kor-Angar commented 4 years ago

вот кстати в игре есть пример того как НПС определяет параметр силы героя. Квест Рода. Род определяет силу герою по тому способен герой поднять его меч или нет. Соответственно в таком случае бонусы/штрафы силы от колец/амулеты.

Таким образом можно предположить что и учитель определяет уровень силы героя исходя из того может ли он поднять то или иное оружие, а значит бонусы/штрафы силы от колец/амулетов должны работать :-)

Kor-Angar commented 4 years ago

image тут важно понимать что в Ночь Ворона они не влияли на стоимость обучения. т.е. в интернете нет ни одной версии игры(к сожалению) в которой бы через штрафы от колец, дубинок можно было бы сэкономить ЛП. Рассуждение Диего1987 строятся на предположение которое является ложным.

Kor-Angar commented 4 years ago

Пример использования 1р оружия со штрафом 10% на владение 1р.

3 глава. Бонусы к навыку 1р получал по ходу игры. Докачал навык 1р до 90% далее никто навык не поднимает. Одел 1р со штрафом. Навык "упал" до 80%. Учителя опять учат героя. Поднял навык до 90%. Снял штрафное оружие. Навык поднялся до 100%.

В игре есть всего один учитель который тренирует 1р до 100% это ОНД в 4 главе.

Kor-Angar commented 4 years ago

https://github.com/dosinabox/g2nr_unofficial_update/issues/206

Kor-Angar commented 4 years ago

Привет. Хочу паладином поиграть с 1h. ты планируешь работу "кольцо орка" восстановить? :-)

dosinabox commented 4 years ago

Могу заняться завтра, а ты тогда проверишь

Kor-Angar commented 4 years ago

хорошо. опционально планируешь сделать?

dosinabox commented 4 years ago

Пока нет, без настроек. А может и получится с настройкой. Распиши подробно, как должно работать кольцо орка.

Kor-Angar commented 4 years ago

если с настройками то в файле B_GetLearnCostAttribute.d добавляем проверку

если что то там, то if(other.attribute[ATR_STRENGTH] >= 120) // влияет иначе if(oth.aivar[REAL_STRENGTH] >= 120) / невлияет

Kor-Angar commented 4 years ago

вот так наверное? B_GetLearnCostAttribute.d

    if ((attribut == ATR_STRENGTH) && (qweqweqweqwe == TRUE))  // влияет
    {
        if(other.attribute[ATR_STRENGTH] >= 120)
        {
            kosten = 5;
        }

        else if(other.attribute[ATR_STRENGTH] >= 90)
        {
            kosten = 4;
        }
        else if(other.attribute[ATR_STRENGTH] >= 60)
        {
            kosten = 3;
        }       
        else if(other.attribute[ATR_STRENGTH] >= 30)
        {
            kosten = 2;
        }
        else
        {
            kosten = 1;
        };
    }

    else if ((attribut == ATR_STRENGTH) && (qweqweqweqwe == false)) // невлияет
    {

        if(oth.aivar[REAL_STRENGTH] >= 120)
        {
            kosten = 5;
        }
        else if(oth.aivar[REAL_STRENGTH] >= 90)
        {
            kosten = 4;
        }
        else if(oth.aivar[REAL_STRENGTH] >= 60)
        {
            kosten = 3;
        }       
        else if(oth.aivar[REAL_STRENGTH] >= 30)
        {
            kosten = 2;
        }
        else
        {
            kosten = 1;
        };
    };
Kor-Angar commented 4 years ago

в файле B_TeachAttributePoints.d я не понял как лучше сделать проверку

realAttribute = oth.aivar[REAL_STRENGTH]; // невлияет
realAttribute = other.attribute[ATR_STRENGTH]; // влияет


в файле B_GetLearnCostTalent.d else if(oth.aivar[REAL_TALENT_1H] >= ) // невлияет else if(other.HitChance[NPC_TALENT_1H] >= ) // влияет

Kor-Angar commented 4 years ago

кстати а в Райзен кольца и амулеты тоже влияют. при том что в Райзен еще за обучение деньги берут. Забыл снять кольцо/амулет и денег лишних за обучение заплатил. а понял потом. и думаешь такой "млин..". это ещё один довод о том что влияние колец и амулетов это авторская задумка, а никакая то там ошибка :-)

dosinabox commented 4 years ago

Всё равно непонятно, напиши словами. Кольцо должно снижать реальное значение силы или нет?

Kor-Angar commented 4 years ago

про кольцо. всего в игре возможно три варианта

Kor-Angar commented 4 years ago

это касается не только кольца которое снижает, но и колец/амулетов/поясов которые повышают

Kor-Angar commented 4 years ago

Всё равно непонятно, напиши словами. Кольцо должно снижать реальное значение силы или нет?

я не понимаю, что ты имеешь ввиду, когда пишешь про "реальное значение". сейчас уже все перемешалось. я как понял "реальное значение" изначально появилось в игре для того что бы статистика героя не ломалась из-за превращений в животного. Сейчас "реальное значение" это в одном случае "атрибут поднятый за ЛП + перманентные бонусы", а в другом "атрибут поднятый за ЛП"?

Kor-Angar commented 4 years ago

получилось у меня написать словами? :-)

dosinabox commented 4 years ago

Кажется, получилось. А что делать с дубинками?

Kor-Angar commented 4 years ago

то же включить. в файле B_GetLearnCostTalent.d

ты опционально делала?

Kor-Angar commented 4 years ago

Кажется, получилось

надо проверить не появятся ли глюки из-за превращений

dosinabox commented 4 years ago

Влияние на порог - всегда. Влияние на стоимость - включается у помощника, по умолчанию выключено. Сделано только для кольца орков. Проверь пожалуйста, если всё работает и я поняла тебя правильно, то сделаю для дубинок тоже. Нужна установленная релизная версия 24.

PenaltiesAffectTest.zip