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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Готика 2: НВ Gothic 2 Steam Fix (сборник патчей для Steam)

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.175
Благодарности
3.344
Баллы
485
  • Первое сообщение
  • #1
Всё необходимое для запуска Steam-версии игры, одним файлом с простой установкой.

rSGxppW.png


Начиная с июля 2022 года в сборник не включается русификация от Акеллы, так как она стала официально доступна в Steam-версии игры. Проверьте свойства игры в библиотеке, чтобы сменить её язык. Если по какой-то причине вам нужна русификация в составе Gothic 2 Steam Fix, то используйте архив версий на GitHub проекта.
Содержимое сборника:
  • Оптимизатор лаунчера Steam: мгновенный запуск модов из Мастерской;
  • Union (v1.0m): дальнейшее развитие проекта SystemPack с дополнительными исправлениями, также позволяющий использование продвинутых пользовательских плагинов;
  • Поддержка любых XInput-совместимых геймпадов (плагин для Union zGamePad от 29.06.2022);
  • Неофициальное обновление: исправления многочисленных недоработок и ошибок в квестах, диалогах, мирах, моделях и анимациях (версия 30 от 02.09.2024, запускается отдельно);
  • Широкоформатные загрузочные экраны в высоком разрешении.
В декабре 2021 года в контент Steam-версии игры были официально включены некоторые исправления, которые теперь больше не входят в состав сборника и не требуют дополнительной установки:
  • Официальный патч 2.6.0.0 rev2 (репорт-версия);
  • Официальный набор для запуска модификаций Player Kit (v2.6f);
  • Патч, снимающий ограничение использования памяти в 2 ГБ (Large Address Aware Hack);
  • SystemPack (v1.8): пакет обновлений для запуска игры на современных системах, добавляет поддержку высокого разрешения экрана, улучшает производительность, исправляет системные ошибки;
  • Неофициальное исправление русской озвучки, убирающее оговорки, щелчки, помехи, повторения и тому подобное (версия от 08.04.2019).
Установка:

Установка производится на чистую версию игры. Если ранее устанавливались какие-либо другие патчи или моды, то игру необходимо удалить: сначала через Steam, а затем всю папку steam/steamapps/common/gothic II.
  1. Скачать Gothic II: Gold Edition через Steam;
  2. Скачать Gothic 2 Steam Fix (72.8 МБ);
  3. Запустить скачанный файл, указать папку с установленной игрой и выбрать необходимые компоненты для установки.
Установка дополнительных обновлений или патчей не требуется и не рекомендуется. Но если по какой-либо причине это необходимо, то проверяйте работоспособность игры до их установки.
 
Последнее редактирование:

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.175
Благодарности
3.344
Баллы
485
Кста у меня конкретно в этой версии, начиная уже с диалога с Ксардасом (и т. д.) многие строчки (которые нажимать) не влезают в диалоговое окно . Не критично конечно, но неприятно.
Попробуй Scale=0 в system/SystemPack.ini.
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
А как отключить вуду утилиту? Мне кажется она не совместима с моей nvidia GT 555m ибо лаги постоянные почти всегда, а как в порт например первый раз зашел дак вообще 10 фпс. Или из за чего лаги?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.175
Благодарности
3.344
Баллы
485
А как отключить вуду утилиту? Мне кажется она не совместима с моей nvidia GT 555m ибо лаги постоянные почти всегда, а как в порт например первый раз зашел дак вообще 10 фпс. Или из за чего лаги?
Проверь, на какой видеокарте запускается игра: дискретной или встроенной.
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Раньше (с патчем от димуса) точно на встроеной запускалась. Щас в настройках игры стоит Voodoo и т.д. , раньше там было Intel HD, так что я протупил с дискретной видюхой, но лагает короче, что делать?) Запустить мб на интегрированной?


П.С. - щас судя по настройка нвидии - готик2.еxe запускается на дискретной видеокарте.
 
Последнее редактирование:

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.175
Благодарности
3.344
Баллы
485
Щас в настройках игры стоит Voodoo
Так и должно быть, но на самом деле этот параметр не показывает, через какую видеокарту сейчас запущена игра. Там всегда будет показываться встроенная или враппер вуду. Зафорси запуск игры (gothic2.exe) через высокопроизводительную видеокарту в настройках драйвера.
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Зафорси запуск игры (gothic2.exe) через высокопроизводительную видеокарту в настройках драйвера.

В том то и дело, что на интегрированной раньше не лагало, а щас на высокопроизводительной запускается и лагает. Что за shit, непойму.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.175
Благодарности
3.344
Баллы
485
Ну, тогда удали из папки Gothic II/system файлы DDraw.dll и D3DImm.dll. Это полностью отключит dgVoodoo.
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Спс, но пока удалять не буду, перенесу в другую папку. Проверю. Просто мне банально проще запускать на интегрированной видяхе, ибо она меньше ноут греет, а я его давно не чистил и нвидиа когда работает он сильно шумит и греется, что не есть хорошо. Но графика конечно по сравнению с прошлой игрой получше выглядит. Попробую щас на бубне поиграть, мб че получится.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
Я знаю только один способ пролететь с квестом Бальтазара: раньше времени вступить в ополчение или монастырь. Потому что он напрямую связан с квестом Торлофа прогнать ополчение с фермы Бенгара, который будет отменён при вступлении в эти сообщества. И так было всегда, потому что PB сделали эти квесты доступными только для нейтрала, наёмника или ОнДа.
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Я был тогда нейтралом. Почему так получилось - хз.)
Примерно был такой порядок
Был вечер, все сидели у костра и Тилл стоял рядом.
1. Поговорил С Тиллом.
2. Поговорил с Бронко, он сказал спроси про меня.
Далее не помню то ли я поговорил с Тиллом ,(про Бронко), а потом с Баберой, Регой (или как их там) то ли с Баберой и Регой, а потом уже с ним.
Так же я обращался к Бальтазару, но спрашивал его только о Бронко. (опять же не помню точно, обращался ли я вообще к нему =\)
3. Надавал по гриве Бронко.
4. Сдал квест Тиллу и не упустил лишней возможности подколоть его.
5. Пошел говорить с Бальтазаром. Обворовал его.
6. Рефлекторно проклацал\пропустил по порядку все последующие реплики, начиная с первой, в надежде получить квест на ферму гомосеков, но в итоге осталась последняя, повторяющаяся реплика и квест не взялся. ( я даже проверил его наличие в B)
Возможно просто что-то не то нажал, раньше у меня с этим квестом никогда проблем не было.

Одел дубинку ветра (-10% одноруч) навык владения не изменился, зато после того как снял, навсегда добавилось +10%. Лол.
Странно, после того как навсегда добавилось +10%, теперь если снимаю и одеваю дубинку она работает нормально (отнимает\прибавляет)
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
Одел дубинку ветра (-10% одноруч) навык владения не изменился, зато после того как снял, навсегда добавилось +10%. Лол.
То же самое происходит и с двуручной дубинкой бури. Похоже, что в функциях скриптпатча вида Equip_1H_xx(), UnEquip_1H_xx(), Equip_2H_xx(), UnEquip_2H_xx() есть какой баг, не позволяющий корректно использовать их в обратном порядке.
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Вот куски когда из папки PrjGOTHIC\Items
Файл называется IT_Addon_Weapons.d


instance ItMW_Addon_Keule_1h_01(C_Item)
{
name = "Дубинка ветра";
mainflag = ITEM_KAT_NF;
flags = ITEM_AXE;
material = MAT_WOOD;
value = Value_Windknecht;
damageTotal = Damage_Windknecht;
damagetype = DAM_BLUNT;
range = Range_Windknecht;
on_equip = UnEquip_1H_10;
on_unequip = Equip_1H_10;

cond_atr[2] = ATR_STRENGTH;
cond_value[2] = Condition_Windknecht;
visual = "ItMW_Club_1H_01.3DS";
description = name;
text[2] = NAME_Damage;
count[2] = damageTotal;
text[3] = NAME_Str_needed;
count[3] = cond_value[2];
text[4] = NAME_ADDON_MALUS_1H;
count[4] = Waffenbonus_10;
text[5] = NAME_Value;
count[5] = value;
};

instance ItMW_Addon_Keule_2h_01(C_Item)
{
name = "Дубинка бури";
mainflag = ITEM_KAT_NF;
flags = ITEM_2HD_AXE;
material = MAT_WOOD;
value = Value_Sturmknecht;
damageTotal = Damage_Sturmknecht;
damagetype = DAM_BLUNT;
range = Range_Sturmknecht;
on_equip = UnEquip_2H_10;
on_unequip = Equip_2H_10;

cond_atr[2] = ATR_STRENGTH;
cond_value[2] = Condition_Sturmknecht;
visual = "ItMW_Club_2H_01.3DS";
description = name;
text[2] = NAME_Damage;
count[2] = damageTotal;
text[3] = NAME_Str_needed;
count[3] = cond_value[2];
text[4] = NAME_ADDON_MALUS_2H;
count[4] = Waffenbonus_10;
text[5] = NAME_Value;
count[5] = value;
};

instance ItMw_FrancisDagger_Mis(C_Item)
{
name = "Хороший кинжал";
mainflag = ITEM_KAT_NF;
flags = ITEM_SWD | ITEM_MISSION;
material = MAT_METAL;
// value = 0;
value = Value_VLKDolch * 2;
damageTotal = Damage_VLKDolch;
damagetype = DAM_EDGE;
range = Range_VLKDolch;
on_equip = Equip_1H_05;
on_unequip = UnEquip_1H_05;

cond_atr[2] = ATR_STRENGTH;
cond_value[2] = Condition_VLKDolch;
visual = "Itmw_005_1h_dagger_01.3DS";
description = name;
text[2] = NAME_Damage;
count[2] = damageTotal;
text[3] = NAME_Str_needed;
count[3] = cond_value[2];
text[4] = NAME_ADDON_BONUS_1H;
count[4] = Waffenbonus_05;
text[5] = NAME_Value;
count[5] = value;


Есть файлы с бонусом для однорука и двурука надо глянуть их, там 100% ошибка ибо тут вроде все правильно, значения наоборот выставлены. Хотя я не программист может и ошибаюсь, это так, из логических соображений. В тех файлах перечисляются номера от 001 и т.д. - бонусы от оружия, своего рода переменные, куда ссылается игра при одевании того или иного оружия.

Вот эти файлы:
Einhand_EquipBonus.d
Zweihand_EquipBonus.d

Вот кусок кода отвечающий за дубинку ветра (и другие одноручные оружия дающие +10% к навыку)

func void Equip_1H_10()
{
if(Npc_IsPlayer(self))
{
if((self.HitChance[NPC_TALENT_1H] + Waffenbonus_10) > 100)
{
hero_1h_max_bonus = 100 - self.HitChance[NPC_TALENT_1H];
B_AddFightSkill(self,NPC_TALENT_1H,hero_1h_max_bonus);
b_meleeweaponchange(hero_1h_max_bonus,0,0);
}
else
{
hero_1h_max_bonus = -1;
B_AddFightSkill(self,NPC_TALENT_1H,Waffenbonus_10);
b_meleeweaponchange(Waffenbonus_10,0,0);
};
};
};

func void UnEquip_1H_10()
{
if(Npc_IsPlayer(self) && (MELEEWEAPONCHANGEDHERO || (SCRIPTPATCHWEAPONCHANGE == FALSE)))
{
if(hero_1h_max_bonus < 0)
{
B_AddFightSkill(self,NPC_TALENT_1H,-Waffenbonus_10);
b_meleeweaponundochange();
}
else
{
B_AddFightSkill(self,NPC_TALENT_1H,-hero_1h_max_bonus);
b_meleeweaponundochange();
};
};
};


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

В коде есть следующие строчки:
При одевании оружия:
hero_1h_max_bonus = -1
B_AddFightSkill(self,NPC_TALENT_1H,Waffenbonus_10);
b_meleeweaponchange(Waffenbonus_10,0,0);

При снятии оружия:
if(hero_1h_max_bonus < 0)
{
B_AddFightSkill(self,NPC_TALENT_1H,-Waffenbonus_10);
b_meleeweaponundochange();
}
else
{
B_AddFightSkill(self,NPC_TALENT_1H,-hero_1h_max_bonus);
b_meleeweaponundochange();



Так как значения стоят наоборот, когда мы одеваем дубинку ветра, игра выполняет функцию UnEquip_1H_10, однако в момент одевании дубинки на нашего героя, у нас hero_1h_max_bonus не меньше нуля, и поэтому не выполняется следующая часть функции. (Когда мы одеваем другое оружие, например шпагу мастера, hero_1h_max_bonus становится -1, и навык владения одноручным оружием+10%, когда снимаем - все возвращается в норму)

После того, как мы один раз сняли дубинку (т.е. выполнили функцию Equip_1H_10) навык растет на 10% и hero_1h_max_bonus = -1.(при этом оружия в руках у нас нет)
Поэтому дубинка потом работает "исправно". (Одеваешь - уменьшает, снимаешь - прибавляет 10%)
Если после этого, одеть другое оружие, которое должно при одевании присваивать значение -1, (шпага мастера например) оно, по идее, значение обновляет (опять до -1) и при этом накладывает сверху свои временные бонусы, а кода снимаешь сбрасывает значение к норме. В итоге если по новой одеть дубинку ветра и снять ее, получим опять халявные 10%. Все запускается по кругу,

Точно такой же баг был с кольцом командиров орков когда-то. Можно было прокачивать силу на халяву))

Решение:
Создать функции Equip_1H_11 и UnEquip_1H_11 для дубинки ветра и выставить там соответствующие значения. Потом присвоить эти функции к дубинке ветра в IT_Addon_Weapons.d
Тоже самое и с дубинкой бури.


Надеюсь я не ошибаюсь) Все таки первый опыт в этом деле))
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
Хмм... Было бы гораздо лучше переработать стандартные функции экипировки и снятия оружия с бонусами или штрафами к уровню владения, а не создавать для этих дубин специальные функции.

Раз речь пошла о кольце предводителей орков, то вот немного изменённый алгоритм экипировки (раньше если у носителя было меньше 20 силы, то ничего не происходило, а сейчас выдаётся сообщение о её недостатке):
Код:
instance ItRi_OrcEliteRing(C_Item)
{
    name = "Кольцо предводителей орков";
    mainflag = ITEM_KAT_MAGIC;
    flags = ITEM_MISSION | ITEM_RING | ITEM_MULTI;
    value = Value_OrcEliteRing;
    visual = "ItRi_Str_02.3ds";
    visual_skin = 0;
    material = MAT_METAL;
    on_equip = Equip_OrcEliteRing;
    on_unequip = UnEquip_OrcEliteRing;
    description = name;
    text[0] = "Это грубое кольцо кажется";
    text[1] = "странно холодным.";
    text[5] = NAME_Value;
    count[5] = value;
    wear = WEAR_EFFECT;
    effect = "SPELLFX_WEAKGLIMMER";
    inv_zbias = INVCAM_ENTF_RING_STANDARD;
    inv_rotz = INVCAM_Z_RING_STANDARD;
    inv_rotx = INVCAM_X_RING_STANDARD;
};


func void Equip_OrcEliteRing()
{
    var string strMessage;
    if(self.attribute[ATR_STRENGTH] >= 20)
    {
        Npc_ChangeAttribute(self,ATR_STRENGTH,-20);
        Print(PRINT_OrcEliteRingEquip);
        OrcEliteRing_Equipped = TRUE;
    }
    else
    {
        strMessage = ConcatStrings(PRINT_STRENGTH_MISSING," ");
        strMessage = ConcatStrings(strMessage,IntToString(20 - self.attribute[ATR_STRENGTH]));
        Print(strMessage);
        OrcEliteRing_Equipped = FALSE;
    };
};

func void UnEquip_OrcEliteRing()
{
    if(OrcEliteRing_Equipped == TRUE)
    {
        Npc_ChangeAttribute(self,ATR_STRENGTH,20);
        Print(PRINT_Eat3);
        OrcEliteRing_Equipped = FALSE;
    };
};
 
Последнее редактирование:

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Ну, я подумал, что так легче будет.
Дак че, фикс будет или нет?))

раньше если у носителя было меньше 20 силы,

Разве этот кусок когда сюда приемлем? Или вы так, просто конкретно про кольцо?
Вроде как надо либо новые переменные создавать, либо переработать что-то типа [if(hero_1h_max_bonus < 0)] в самом коде, но там уже сложнее ибо начнутся несовместимости с другим оружием и надо очень умно это все делать .


P.S. Можно создать функцию проверки Equip_дубинка_ветра - True\False, и внедрить ее в Equip_1H_10 \ Unequi_1H_10
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
Дак че, фикс будет или нет?))
Если нужен сделанный на скорую руку костыль, тогда выложи свои варианты функций Equip_1H_11 и UnEquip_1H_11, Equip_2H_11 и UnEquip_2H_11.
Разве этот кусок когда сюда приемлем? Или вы так, просто конкретно про кольцо?
Если уж вспомнили про это кольцо, то почему нельзя опубликовать доработанный алгоритм?

P.S.: Устное предупреждение за даблпостинг (статья 4.15 правил форума).
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
тогда выложи свои варианты функций

Ок, щас попробую. А где я даблпостил? оО может инет завис у меня..

Еще такой вопрос, чему равно по умолчанию значение hero_1h_max_bonus? Нулю?


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

func void Equip_1H_11()
{
if(Npc_IsPlayer(self))
{
if((self.HitChance[NPC_TALENT_1H] - Waffenbonus_10) < 0)
{
hero_1h_max_bonus = 100 - self.HitChance[NPC_TALENT_1H];
B_AddFightSkill(self,NPC_TALENT_1H,-hero_1h_max_bonus);
b_meleeweaponchange(-hero_1h_max_bonus,0,0);
}
else
{
hero_1h_max_bonus = -1;
B_AddFightSkill(self,NPC_TALENT_1H,-Waffenbonus_10);
b_meleeweaponchange(-Waffenbonus_10,0,0);
};
};
};

func void UnEquip_1H_11()
{
if(Npc_IsPlayer(self) && (MELEEWEAPONCHANGEDHERO || (SCRIPTPATCHWEAPONCHANGE == FALSE)))
{
if(hero_1h_max_bonus < 0)
{
B_AddFightSkill(self,NPC_TALENT_1H,Waffenbonus_10);
b_meleeweaponundochange();
}
else
{
B_AddFightSkill(self,NPC_TALENT_1H,hero_1h_max_bonus);
b_meleeweaponundochange();
};
};
};

Вот, моя версия на одноручки.

Активировать новую анимацию можно только изучением навыка

Дак этож уже не готика))
 
Последнее редактирование модератором:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
А этот алгоритм учитывает возможность неправильного изменения навыков при использовании заклинаний превращения? Например, перед превращением в зверя ГГ может быть экипирован оружием, временно повышающим или понижающим HitChance. Или же он может автоматически надеть такое оружие при возвращении в облик человека. Насколько я вижу, здесь нет учёта ситуации с дубинами ветра и бури, у которых при экипировке вызывается функция вида UnEquip, а при снятии Equip?

Спасибо за объяснение, сегодня вечером проверю эту систему если она работает как часы, то пошлю к чёрту явно переусложнённый код из скриптпатча.
 
Последнее редактирование модератором:

tatun

Участник форума
Регистрация
31 Янв 2009
Сообщения
1.030
Благодарности
274
Баллы
245
Вот мне интересно. Часто слышал такое: одену кольцо орков минус-20 к силе, и ДЕШЕВЛЕ прокачаюсь.
Я конечно такого не пробовал с этим кольцом. Но тут писалось о дубинах ухудшающих владение...
Так вот. Ставил Русик без мод-фикса. У меня бонусы от вещей не влияли на стоимость прокачки. И эта хвалёная дубинка тоже ничего не дала.
ЧТО(какая программа) изменила эти фишки? Хотя это логично и правильно, и мне нравится. Но тогда смысл в этих дубинах и кольце?
 

007009

Забанен
Регистрация
30 Дек 2017
Сообщения
69
Благодарности
13
Баллы
165
Ну не то что бы читерить, а немного прокачать эти самые навыки. Например 64 превращается в 54 и можно 10% выучить за 20 очков обучения, а не за 30. Но насколько я знаю, когда одета пушка увеличивающая навык, это не влияет на стоимость обучения у НПС. Например при реальных 59 и одетой шпагой мастера, я буду по прежнему повышать навыки за 2 очка, а не за 3 (По крайне мере актуально для этой стим. фикс версии) А вот наоборот я еще не проверял. Хотел вчера проверить и обнаружил баг. Но в интернете есть инфа по поводу этих дубинок, что мол реально когда-то они работали так, что можно было схалявить при повышении навыков.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
Всё верно, наличие бонуса к владению одноручным оружием у кольца Моргана ломает кажущуюся простоту и логичность системы. Я категорически против ликвидации этого бонуса, сильно помогающего боевому магу, который в случае возникновения проблем с маной должен уметь отбиться от врага в ближнем бою на уровне "мастер", потому что бонусы от этого кольца и шпаги мастера (нужно 60 ловкости с учётом бонусов от кольца и амулета ловкости) позволяют прокачать одноручник всего лишь до 40%. Похоже, что снова придётся возвращаться к старой системе, которую придумал Фредерик "Fizzban" Вейманн.
Это смотря как учителя настроены.
Если они реагируют на текущее владение, а не на реальное, то дубина со штрафом даст возможность выучить у учителя чуть больше, чем положено.
Ты прав, в G2a учителя работают только с реальными значениями атрибутов и параметров ГГ, за исключением предела для обучения (исправлено в неофициальном обновлении).
 
Последнее редактирование:
Сверху Снизу