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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Не стесняюсь спросить....

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Хм, получается это не беда в самих функциях mobinter?
Из кода ниже запуск диалога происходит не у her, а у self. В неофобновлении это исправило эту ошибку.
Daedalus:
func void MAKERUNE_S1()
{
    var C_Npc her;
    her = Hlp_GetNpc(PC_Hero);
    if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
    {
        self.aivar[AIV_INVINCIBLE] = TRUE;
        PLAYER_MOBSI_PRODUCTION = MOBSI_MakeRune;
        //AI_ProcessInfos(her);
        AI_ProcessInfos(self);
    };
};
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
ElderGamer, сложно сказать, но копия гг пишется именно в сейв локации, т.е. багает только определенная локация, а не все.
Подозрения падают на прерывание анимации с mobInter, но воспроизвести баг не получается.
И у копии ГГ и у настоящего героя id = 0, instance = PC_HERO.
Причем у двойника героя еще и инвентарь забит вещами :)
Однако, указатель player совпадает только с реальным героем, а у двойника адрес в памяти другой и не совпадает с player (что логично, так как это другой воб)

В принципе, причину бага устанавливать и не обязательно уже. Копия удаляется при загрузке сейва и баг исчезает.
 
Последнее редактирование:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Откуда берется этот двойник? Само по себе такое не произойдет. Никто там Марвином не пользуется часом?
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Gratt, в том то и дело, что никто баг воспроизвести не может.
В сейве баговом я проверил, марвин не юзался (имею ввиду после использования марвина игрок не сейвился на данном сейве, я в АБ это отслеживаю для технических целей)
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
И у копии ГГ и у настоящего героя id = 0, instance = PC_HERO.
Я почему спрашиваю? В Г1 в локации "Храм Спящего", похоже, имеет место такая вот хрень или что-то похожее. Функция Hlp_GetInstanceID(PC_Hero) может выдавать разные значения.
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
ElderGamer, да, видимо тоже две копии героя.
Gratt, баг видел этот в В2 на Ирдорате, когда игрок стримил. Это точно не из-за марвина.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
Если так, то это может быть причиной необъяснимых ранее глюков с возвращением камеры к ГГ после полётов свободной камеры при срабатывании триггеров.
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Gratt, этот двойник не находится в мире в списке вобов, однако, у него свой EventManager, из-за этого диалог с MobInter и не срабатывает. Он добавляется в очередь OnMessage и сразу убивается, так как туда приходит "копия" героя, у которого HomeWorld() == 0.
Собственно - это причина отсутствия диалогов у MobInter.
А вот откуда берется копия героя - фиг знает.

Код:
void zCEventManager :: OnMessage (zCEventMessage *eventMessage, zCVob* sourceVob)   
{   
    if ( !hostVob->GetHomeWorld() && !GetCutscene() )     
    
        {
            Delete(eventMessage);
        }

    else
    ...
}
 
Последнее редактирование:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
В В2 еще был баг, когда приходишь на Ирдорат, все статы гг сбрасывались, как будто новый PC_HERO создавался.
Видимо баг влияет на многие вещи в игре.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
А у того дублёра говоришь инвентарь был. Собственный или повторяющий игровой в какой-то промежуток времени?
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Gratt, у него было на 10 уровней меньше, другой шмот одет немного НАДЕТ. Примерно за 2 часа до багового сейва. Ну т.е. некоторая копия гг в определенный момент времени.

Вот он, к примеру, у копии надета корона, а у нормально гг она уже снята.
1602062116575.png
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Сделай плагин, который зафиксирует момент появления дублёра. Мультиплатформенный. Дай на тесты, затем пусть кто-то побегает с ним и со включенным зспаем. Тогда будет примерно понятно, какое событие провоцирует на создание копии.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Это наверно будет очень сложно, но почему бы и нет?
Скорее всего надо будет намерено пытаться сломать взаимодействие с любым mobinter, только нужна извращенная фантазия.

На фотке выше, игрок убил двойника? Посмотрел, куда он ТП если сделать set time 12? Где-то же должно лежать тело НПС.
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Gratt, я пока лучше сам попробую, потому что баг довольно редкий. Попробую на Ирдорате словить копию героя, и дальше уже смотреть.
N1kX, нет, он живой стоит. Копия гг по координатам в храме ворона в круглой комнате где печеньки. Я его для скрина засумонил к гг и в мир добавил.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Попробуйте. Как только в мире появляется персонаж с индексом pc_hero - движок выдает сообщение. Дополнительно в папке system будет создаваться лог zFakeHeroLocator.log с крайне полезной инфой.

LikerGothic, когда нпс создаётся, то у него может быть указатель на world. А вот после загрузки он будет нулевой, так как у hero нет рутины.
 

Вложения

  • zFakeHeroLocator.7z
    12,1 KB · Просмотры: 3

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Gratt, хорошо попробую, тока лог файл лежать будет в корневой папке, а не систем :)
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Ну возможно
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Gratt, в любом случае проблема в том, что не ясно как именно забагать. Просто при переходе в локацию баг вроде как и не возникает...
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.662
Благодарности
2.487
Баллы
380
Итак, у меня есть 2 разных сейва от разных игроков.
В обоих случаях, "невидимый" герой находится здесь. Около двери в комнату в Храме где Ворон.
Быть может, это триггер двери так багается? Хм.
dasdsad.jpg
вфывыфв.jpg

Анимация двойника такая-я, как и на другом сейве. Или как будто он руну держит, или как будто дерется.
d2.jpg

В общем, если баг словлю, отпишусь.
 
Последнее редактирование:
Сверху Снизу