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

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

Готика 2: НВ Баги и ошибки

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
17.135
Благодарности
7.555
Баллы
1.950
  • Первое сообщение
  • #1
Готика 2 - Баги и ошибки.png
В данной теме задаем вопросы по багам и ошибкам, возникающим в игре, не связанным с технической составляющей.
Для технических вопросов есть отдельная тема.
В теме разрешено давать чит-коды, если это является одним из способов обхода бага.
Важно: в этой теме обсуждается только баги и ошибки оригинала Г2 НВ! Если вы играете с неофициальным обновлением, то идите в эту тему!
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
I think that PC_Levelinspektor is another one NPC for a testing purposes. I don't know how Piranhas planned to use him, but in the scripts he has a disabled perceptions for the talk with a player (B_AssessTalk()), enemy and player detection (B_AssessEnemy(), B_AssessPlayer()). Monsters can't detect him as an enemy too (B_MM_AssessEnemy()).
 

Matteo

Участник форума
Регистрация
21 Июн 2015
Сообщения
86
Благодарности
3
Баллы
170
I see... what about this?

Код:
instance DragonIsle_Keymaster(Default_AmbientDementor)
{
    name[0] = "Key Master";
    id = 1236;
    aivar[AIV_EnemyOverride] = TRUE;
    CreateInvItem(self,ItKe_EVT_UNDEAD_02);
    start_aistate = ZS_Stand_Dementor;
};

It's in DMT_DementorAmbient file.

And one more thing: why some NPCs' names, such as Vino or Engrom, are all in capital letters? There is a specific purpose in game?

Код:
instance VLK_4131_Engrom(Npc_Default)
{
    name[0] = "ENGROM";
    guild = GIL_OUT;
    id = 4131;
    voice = 12;
    flags = 0;
    npcType = npctype_main;
    B_SetAttributesToChapter(self,3);
    fight_tactic = FAI_HUMAN_STRONG;
    EquipItem(self,ItMw_1h_Vlk_Axe);
    EquipItem(self,ItRw_Mil_Crossbow);
    B_CreateAmbientInv(self);
    B_SetNpcVisual(self,MALE,"Hum_Head_Bald",Face_N_NormalBart20,BodyTex_N,ITAR_Leather_L);
    Mdl_SetModelFatness(self,1);
    Mdl_ApplyOverlayMds(self,"Humans_Relaxed.mds");
    B_GiveNpcTalents(self);
    B_SetFightSkills(self,45);
    daily_routine = Rtn_Start_4131;
};

Код:
instance BAU_952_Vino(Npc_Default)
{
    name[0] = "VINO";
    guild = GIL_OUT;
    id = 952;
    voice = 5;
    flags = 0;
    npcType = npctype_main;
    B_SetAttributesToChapter(self,1);
    fight_tactic = FAI_HUMAN_COWARD;
    EquipItem(self,ItMw_1h_Bau_Axe);
    B_CreateAmbientInv(self);
    B_SetNpcVisual(self,MALE,"Hum_Head_Fatbald",Face_N_Weak_Herek,BodyTex_N,ITAR_Bau_L);
    Mdl_SetModelFatness(self,0);
    Mdl_ApplyOverlayMds(self,"Humans_Tired.mds");
    B_GiveNpcTalents(self);
    B_SetFightSkills(self,10);
    daily_routine = Rtn_Start_952;
};
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Are you've never been on the Irdorath island? Key master appears when the hero will play with the switches. Without his key hero can't pass on.

What scripts do you use? Because in the G2 MDK scripts names of these NPCs are written with a one capital letter at the beginning:
Код:
instance BAU_952_Vino (Npc_Default)
{
   // ------ NSC ------
   name      = "Vino";
   guild      = GIL_OUT;
   id        = 952;
   voice      = 5;
   flags  = 0;                                   //NPC_FLAG_IMMORTAL oder 0
   npctype     = NPCTYPE_MAIN;
 
   // ------ Attribute ------
   B_SetAttributesToChapter (self, 1);                                   //setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)
   
   // ------ Kampf-Taktik ------
   fight_tactic     = FAI_HUMAN_COWARD;   // MASTER / STRONG / COWARD
 
   // ------ Equippte Waffen ------                                   //Munition wird automatisch generiert, darf aber angegeben werden
   EquipItem       (self, ItMw_1h_Bau_Axe);
 
   // ------ Inventory ------
   B_CreateAmbientInv    (self);

   
   // ------ visuals ------                                       //Muss NACH Attributen kommen, weil in B_SetNpcVisual die Breite abh. v. STR skaliert wird
   B_SetNpcVisual      (self, MALE, "Hum_Head_Fatbald", Face_N_Weak_Herek, BodyTex_N, ITAR_Bau_L);   
   Mdl_SetModelFatness   (self, 0);
   Mdl_ApplyOverlayMds   (self, "Humans_Tired.mds"); // Tired / Militia / Mage / Arrogance / Relaxed

   // ------ NSC-relevante Talente vergeben ------
   B_GiveNpcTalents (self);
 
   // ------ Kampf-Talente ------                                     //Der enthaltene B_AddFightSkill setzt Talent-Ani abhдngig von TrefferChance% - alle Kampftalente werden gleichhoch gesetzt
   B_SetFightSkills (self, 10); //Grenzen fьr Talent-Level liegen bei 30 und 60

   // ------ TA anmelden ------
   daily_routine      = Rtn_Start_952;
};
Код:
instance VLK_4131_Engrom (Npc_Default)
{
   // ------ NSC ------
   name      = "Engrom";
   guild      = GIL_OUT;
   id        = 4131;
   voice      = 12;
   flags  = 0;                                   //NPC_FLAG_IMMORTAL oder 0
   npctype     = NPCTYPE_MAIN;
 
   // ------ Attribute ------
   B_SetAttributesToChapter (self, 3);                                   //setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)
   
   // ------ Kampf-Taktik ------
   fight_tactic     = FAI_HUMAN_STRONG;   // MASTER / STRONG / COWARD
 
   // ------ Equippte Waffen ------                                   //Munition wird automatisch generiert, darf aber angegeben werden
   EquipItem       (self, ItMw_1h_VLK_Axe);
   EquipItem       (self, ItRW_MIL_Crossbow);

   // ------ Inventory ------
   B_CreateAmbientInv    (self);
   
   // ------ visuals ------                                       //Muss NACH Attributen kommen, weil in B_SetNpcVisual die Breite abh. v. STR skaliert wird
   B_SetNpcVisual      (self, MALE, "Hum_Head_Bald", Face_N_NormalBart20, BodyTex_N, ITAR_Leather_L); 
   Mdl_SetModelFatness   (self, 1);
   Mdl_ApplyOverlayMds   (self, "Humans_Relaxed.mds"); // Tired / Militia / Mage / Arrogance / Relaxed
 
   // ------ NSC-relevante Talente vergeben ------
   B_GiveNpcTalents (self);
 
   // ------ Kampf-Talente ------                                     //Der enthaltene B_AddFightSkill setzt Talent-Ani abhдngig von TrefferChance% - alle Kampftalente werden gleichhoch gesetzt
   B_SetFightSkills (self, 45); //Grenzen fьr Talent-Level liegen bei 30 und 60

   // ------ TA anmelden ------
   daily_routine      = Rtn_Start_4131;
};
 
Последнее редактирование:

Matteo

Участник форума
Регистрация
21 Июн 2015
Сообщения
86
Благодарности
3
Баллы
170
I have Italian/English/Russian (those of L'Hiver Edition) scripts and in ITA and ENG (don't know in Russian) those names are written all in capital letters. I guess because they're those who belong to the Seekers?
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
I don't know why it happens in the English and Italian versions of L'HIVER Edition mod. For example, in a Russian version those names are written with a one capital letter at the beginning:
Код:
instance BAU_952_Vino(Npc_Default)
{
   name[0] = "Вино";
   guild = GIL_OUT;
   id = 952;
   voice = 5;
   flags = 0;
   npcType = npctype_main;
   B_SetAttributesToChapter(self,2);
   fight_tactic = FAI_HUMAN_COWARD;
   EquipItem(self,ItMw_1h_Bau_Axe);
   B_CreateAmbientInv(self);
   B_SetNpcVisual(self,MALE,"Hum_Head_Fatbald",Face_N_Weak_Herek,BodyTex_N,ITAR_Bau_L);
   Mdl_SetModelFatness(self,0);
   Mdl_ApplyOverlayMds(self,"Humans_Tired.mds");
   B_GiveNpcTalents(self);
   B_SetFightSkills(self,10);
   daily_routine = Rtn_Start_952;
};
Код:
instance VLK_4131_Engrom(Npc_Default)
{
   name[0] = "Энгром";
   guild = GIL_OUT;
   id = 4131;
   voice = 12;
   flags = 0;
   npcType = npctype_main;
   B_SetAttributesToChapter(self,3);
   fight_tactic = FAI_HUMAN_STRONG;
   EquipItem(self,ItMw_1h_Vlk_Axe);
   EquipItem(self,ItRw_Mil_Crossbow);
   B_CreateAmbientInv(self);
   B_SetNpcVisual(self,MALE,"Hum_Head_Bald",Face_N_NormalBart20,BodyTex_N,ITAR_Leather_L);
   Mdl_SetModelFatness(self,1);
   Mdl_ApplyOverlayMds(self,"Humans_Relaxed.mds");
   B_GiveNpcTalents(self);
   B_SetFightSkills(self,45);
   daily_routine = Rtn_Start_4131;
};
Therefore I propose to finish an off-topic discussion of L'HIVER Edition mod in this thread.

Прошу администрацию форума перенести оффтоп в тему Gothic II - L'HIVER Edition.
 

Pilger

Участник форума
Регистрация
3 Июл 2016
Сообщения
10
Благодарности
1
Баллы
150
А нет патчей, которые правят хотя бы поверхностные баги игры (коих тьма тьмущая), но не вносят никаких изменений в игровой процесс? Столько людей занимались скриптами и почему-то везде, где я искал, помимо исправления неимоверного количества ошибок, добавлены различные модификации и изменения игрового баланса, в том числе рекомендуемые патчи на этом сайте.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.131
Благодарности
5.628
Баллы
910
А нет патчей, которые правят хотя бы поверхностные баги игры (коих тьма тьмущая), но не вносят никаких изменений в игровой процесс? Столько людей занимались скриптами и почему-то везде, где я искал, помимо исправления неимоверного количества ошибок, добавлены различные модификации и изменения игрового баланса, в том числе рекомендуемые патчи на этом сайте.

https://worldofplayers.ru/threads/36817/
 

Pilger

Участник форума
Регистрация
3 Июл 2016
Сообщения
10
Благодарности
1
Баллы
150

SilentPrayerCG

Участник форума
Регистрация
2 Май 2015
Сообщения
36
Благодарности
4
Баллы
155
Пытался загуглить, но не знаю как сформулировать.

То что при прокачки чего-нибудь на 5 едениц с 29, силы к примеру, и тратится не 1 за 1lp и 4 за 8lp, а тупо вкачивается до 34 за 5 lp. Это баг или фича?
Или прокачиваться вкачивая по 1ой до 29 и потом прокачивая на 5 подешвле это все-таки эксплоит?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.131
Благодарности
5.628
Баллы
910
Пытался загуглить, но не знаю как сформулировать.

То что при прокачки чего-нибудь на 5 едениц с 29, силы к примеру, и тратится не 1 за 1lp и 4 за 8lp, а тупо вкачивается до 34 за 5 lp. Это баг или фича?
Или прокачиваться вкачивая по 1ой до 29 и потом прокачивая на 5 подешвле это все-таки эксплоит?

Это можно трактовать двояко, но относится к недоработкам игры (халява), например в В2, исправлен этот баг
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Не стоит забывать, что у тестового помощника ch можно прокачивать больше единиц атрибутов или навыков владения оружием: 1, 5, 10, 20. Если эта халява исправлена в В2, то мне хотелось бы изучить соответствующие скрипты и по возможности убрать её в неофициальном обновлении для G2a. Список скриптов в спойлере:
B_AddFightSkill.d
B_BlessAttribute.d
B_RaiseAttribute.d
B_RaiseFightTalent.d
B_TeachAttributePoints.d
B_TeachFightTalentPercent.d
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Кстати, могу предложить для включения в сборку обновления принцип, когда наличие ингредиентов при крафтинге проверяется ДО выбора соответствующей опции в диалоге.
001.png
 

Dimus

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

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
В данном случае происходит подмена параметра description инстанции диалога. Если выбрать соответствующую опцию, наличие ингредиентов будет проверено уже в Info-функции инстанции, и на экран будет выведено сообщение о недостаточном количестве ингредиентов. Если подкорректировать инстанции, добавив в них просто очистку и перезапуск выбора в случае отсутствия ингредиентов, то для игрока вообще ничего не произойдёт - он кликнет на строчке и увидит точно такой же список опций.
 

SilentPrayerCG

Участник форума
Регистрация
2 Май 2015
Сообщения
36
Благодарности
4
Баллы
155
Значит всё-таки это недоработка. Тогда не буду так качаться, предпочитаю честно играть. Спасибо что разъяснили.
 

Julius

Участник форума
Регистрация
28 Янв 2014
Сообщения
122
Благодарности
12
Баллы
185
Может кто встречался - одноручное оружие - боец 42%. Но стиль боёвки всё время сбивается на мастера. То есть 42% дерется как мастер. Восстанавливалось перезагрузкой с предварительным заглядыванием в меню способностей (кнопка "С"). + к 42% носил шпагу мастера, всё равно ж 52% только. Стиль мастера только бесит!
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Если у тебя аддон без неофициальных патчей, то вполне возможны сбои с назначением оверлеев владения оружием. Например, стиль мастерского боя с одноручным оружием мог остаться после использования шпаги мастера и кольца Моргана (42% + 10% + 10% = 62%).
 

Julius

Участник форума
Регистрация
28 Янв 2014
Сообщения
122
Благодарности
12
Баллы
185
fix 2.6.0.0-rev2, systempack-1.5
Да, одевал из интереса кольцо разок.
Но меня интересует можно ли исправить такую нестабильность просто. Или марвином? Переустановкой? Был ли такой опыт.
 

Юберион_09.05.1945

Участник форума
Регистрация
1 Апр 2016
Сообщения
117
Благодарности
15
Баллы
185
Если у тебя аддон без неофициальных патчей, то вполне возможны сбои с назначением оверлеев владения оружием. Например, стиль мастерского боя с одноручным оружием мог остаться после использования шпаги мастера и кольца Моргана (42% + 10% + 10% = 62%).
Это еще хорошо,беда в том когда ты мастер на 100 % двуручником,а он у меня дерется как при 5%,но критует как при 100%,как-то само проходит.

Помню был баг за паладина,освятил рудные доспехи рыцаря в итоге шлем два кольца на защиту щит и сами доспехи станкули в двойне в броне,имел 500 защиты от всего ,кроме магии и огня,уже в 3 главе ни один урок не мог пробить ВООБЩЕ.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
В качестве временного решения в случае сбоя можно назначить нужный оверлей через консоль:
apply overlaymds humans_1hst1 - одноручник уровня "боец";
apply overlaymds humans_1hst2 - одноручник уровня "мастер";
remove overlaymds humans_1hst1 - удаление обоих оверлеев,
remove overlaymds humans_1hst2 - одноручник уровня "новичок";
apply overlaymds humans_2hst1 - двуручник уровня "боец";
apply overlaymds humans_2hst2 - двуручник уровня "мастер";
remove overlaymds humans_2hst1 - удаление обоих оверлеев,
remove overlaymds humans_2hst2 - двуручник уровня "новичок";
apply overlaymds humans_bowt1 - лук уровня "стрелок";
apply overlaymds humans_bowt2 - лук уровня "снайпер";
remove overlaymds humans_bowt1 - удаление обоих оверлеев,
remove overlaymds humans_bowt2 - лук уровня "новичок";
apply overlaymds humans_cbowt1 - арбалет уровня "стрелок";
apply overlaymds humans_cbowt2 - арбалет уровня "снайпер";
remove overlaymds humans_сbowt1 - удаление обоих оверлеев,
remove overlaymds humans_сbowt2 - арбалет уровня "новичок".
Чтобы исключить возможность назначения не того оверлея, надо изменить функцию повышения боевых навыков:
Код:
func void B_AddFightSkill(var C_Npc slf,var int talent,var int percent)
{
   if(talent == NPC_TALENT_1H)
   {
     slf.HitChance[NPC_TALENT_1H] += percent;
     if(slf.HitChance[NPC_TALENT_1H] > 100)
     {
       slf.HitChance[NPC_TALENT_1H] = 100;
     };
     if(slf.HitChance[NPC_TALENT_1H] >= 60)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_1H,2);
       Mdl_ApplyOverlayMds(slf,"humans_1hST2.mds");
     }
     else if(slf.HitChance[NPC_TALENT_1H] >= 30)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_1H,1);
       Mdl_ApplyOverlayMds(slf,"humans_1hST1.mds");
     }
     else
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_1H,0);
       Mdl_RemoveOverlayMds(slf,"humans_1hST1.MDS");
       Mdl_RemoveOverlayMds(slf,"humans_1hST2.MDS");
     };
   };
   if(talent == NPC_TALENT_2H)
   {
     slf.HitChance[NPC_TALENT_2H] += percent;
     if(slf.HitChance[NPC_TALENT_2H] > 100)
     {
       slf.HitChance[NPC_TALENT_2H] = 100;
     };
     if(slf.HitChance[NPC_TALENT_2H] >= 60)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_2H,2);
       Mdl_ApplyOverlayMds(slf,"humans_2hST2.mds");
     }
     else if(slf.HitChance[NPC_TALENT_2H] >= 30)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_2H,1);
       Mdl_ApplyOverlayMds(slf,"humans_2hST1.mds");
     }
     else
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_2H,0);
       Mdl_RemoveOverlayMds(slf,"humans_2hST1.MDS");
       Mdl_RemoveOverlayMds(slf,"humans_2hST2.MDS");
     };
   };
   if(talent == NPC_TALENT_BOW)
   {
     slf.HitChance[NPC_TALENT_BOW] += percent;
     if(slf.HitChance[NPC_TALENT_BOW] > 100)
     {
       slf.HitChance[NPC_TALENT_BOW] = 100;
     };
     if(slf.HitChance[NPC_TALENT_BOW] >= 60)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_BOW,2);
       Mdl_ApplyOverlayMds(slf,"humans_bowT2.mds");
     }
     else if(slf.HitChance[NPC_TALENT_BOW] >= 30)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_BOW,1);
       Mdl_ApplyOverlayMds(slf,"humans_bowT1.mds");
     }
     else
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_BOW,0);
       Mdl_RemoveOverlayMds(slf,"humans_bowT1.MDS");
       Mdl_RemoveOverlayMds(slf,"humans_bowT2.MDS");
     };
   };
   if(talent == NPC_TALENT_CROSSBOW)
   {
     slf.HitChance[NPC_TALENT_CROSSBOW] += percent;
     if(slf.HitChance[NPC_TALENT_CROSSBOW] > 100)
     {
       slf.HitChance[NPC_TALENT_CROSSBOW] = 100;
     };
     if(slf.HitChance[NPC_TALENT_CROSSBOW] >= 60)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_CROSSBOW,2);
       Mdl_ApplyOverlayMds(slf,"humans_cbowT2.mds");
     }
     else if(slf.HitChance[NPC_TALENT_CROSSBOW] >= 30)
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_CROSSBOW,1);
       Mdl_ApplyOverlayMds(slf,"humans_cbowT1.mds");
     }
     else
     {
       Npc_SetTalentSkill(slf,NPC_TALENT_CROSSBOW,0);
       Mdl_RemoveOverlayMds(slf,"humans_cbowT1.MDS");
       Mdl_RemoveOverlayMds(slf,"humans_cbowT2.MDS");
     };
   };
};
 
Сверху Снизу