Готика 2: Другая история Gothic II: Other Story - Описание мода
  • 11.479
  • 54
Готика 2: Другая история / Other Story - это глобальная модификация для игры «Готика 2: Ночь Ворона». Её цель - сделать игру более нелинейной, с большим количеством вариантов выбора и...
Новости Старт 6го сезона Grim League
  • 2.300
  • 1
4 мая в 18-00 стартует шестой сезон Community лиги по одной из лучших игр в жанре arpg Grim Dawn. Сезон представляет собой глобальную модификацию игры, включающую в себя расширение мира, изменение...
Новости Дата релиза Baldur's Gate III
  • 21.380
  • 1
Наконец-то дождались - "Baldur's Gate III" покидает ранний доступ, и в августе 2023 выходит в полноценный релиз, о чём стало известно на церемонии "The Game Awards 2022". С момента выхода игры в...
Новости Итоги года от The Game Awards 2022
  • 15.116
  • 0
Вчера прошла ежегодная церемония награждения проектов в индустрии компьютерных игр и киберспорта. Самую главную награда - "Игра года" забрала игра "Elden Ring" от японских разработчиков...

Решено Инвентарь у торговцев при смене главы

Статус
Закрыта

firespace

Житель города
Участник форума
Регистрация
29 Июл 2017
Сообщения
102
Реакции
27
Баллы
57
Лучшие ответы
0
#1
Имеет ли смысл ДО смены главы по максимуму покупать что-то у торговцев? Нет такого, что, допустим, при смене главы торговцу добавляется 10 хлеба, но только если предыдущий был скуплен?
 

WoOliN

Паладин
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
4.918
Реакции
2.758
Баллы
646
Лучшие ответы
330
#2

V.I.

Постоялец
Участник форума
Регистрация
24 Июл 2016
Сообщения
85
Реакции
28
Баллы
21
Лучшие ответы
2
#3
Имеет ли смысл ДО смены главы по максимуму покупать что-то у торговцев? Нет такого, что, допустим, при смене главы торговцу добавляется 10 хлеба, но только если предыдущий был скуплен?
В каждой главе Торговцу инвентарь заполняется заново, но уже в другом составе. Но некоторые товары у торговца выкупить полностью невозможно - они генерируются при каждом открытии торга. Например, стрелы у Боспера.
 

WoOliN

Паладин
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
4.918
Реакции
2.758
Баллы
646
Лучшие ответы
330
#4
@firespace, @V.I., инвентарь торговцев не заполняется заново - торговцу просто добавляются новые товары при смене главы, а уже имеющиеся товары НЕ удаляются.
Некоторым торговцев, типа Боспера, Каледа и паре других - раз в сутки добавляются расходные товары, например болты и стрелы, но только если игрок полностью выкупил их ранее.
 

V.I.

Постоялец
Участник форума
Регистрация
24 Июл 2016
Сообщения
85
Реакции
28
Баллы
21
Лучшие ответы
2
#5
@firespace, @V.I.,
Некоторым торговцев, типа Боспера, Каледа и паре других - раз в сутки добавляются расходные товары, например болты и стрелы, но только если игрок полностью выкупил их ранее.
Я специально проверял - у Боспера можно покупать стрелы по 50 штук, не сходя с места, лишь бы было за что.
Т.е. стрелы добавляются ему не раз в сутки, а каждый раз когда игрок хочет посмотреть товар. У Каледа не проверял, но думаю, что код одинаковый для расходников.

А вот стальные заготовки, например, можно купить только один раз за всю главу.
 

WoOliN

Паладин
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
4.918
Реакции
2.758
Баллы
646
Лучшие ответы
330
#6
@V.I., стрелы или болты добавляются торговцу при экипированном луке/арбалете.
Можно сказать, что это старый баг, еще со времён классической Г2, где каждому торговцу можно было продать лук, дождаться его экипировки и скупать стрелы.
По идее, Юнион должен был бы фиксить такие моменты.
В любом случае - это я исправлять не буду.
 

V.I.

Постоялец
Участник форума
Регистрация
24 Июл 2016
Сообщения
85
Реакции
28
Баллы
21
Лучшие ответы
2
#7
@V.I., стрелы или болты добавляются торговцу при экипированном луке/арбалете.
По идее, Юнион должен был бы фиксить такие моменты.
В любом случае - это я исправлять не буду.
Да и не надо исправлять это,))) Тут в соседней ветке, наоборот, делают плагин, С добавлением лута неписям и в сундуки.

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

1.
var int Bosper_ItemsGiven_Chapter_1;
var int Bosper_ItemsGiven_Chapter_2;
var int Bosper_ItemsGiven_Chapter_3;
var int Bosper_ItemsGiven_Chapter_4;
var int Bosper_ItemsGiven_Chapter_5;

func void B_GiveTradeInv_Bosper(var C_Npc slf)
{
if((Kapitel >= 1) && (Bosper_ItemsGiven_Chapter_1 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,50);
CreateInvItems(slf,ItRw_Arrow,30);
CreateInvItems(slf,ItRw_Bow_L_01,1);
CreateInvItems(slf,ItRw_Bow_L_02,1);
CreateInvItems(slf,ItRw_Bow_L_03,1);
CreateInvItems(slf,ItRw_Bow_L_03,1);
CreateInvItems(slf,ItRw_Bow_L_04,1);
CreateInvItems(slf,ItBE_Addon_Leather_01,1);
CreateInvItems(slf,ItRi_Dex_02,1);
Bosper_ItemsGiven_Chapter_1 = TRUE;
};
if((Kapitel >= 2) && (Bosper_ItemsGiven_Chapter_2 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,100);
CreateInvItems(slf,ItRw_Arrow,50);
CreateInvItems(slf,ItRw_Bolt,50);
CreateInvItems(slf,ItBe_Addon_DEX_5,1);
CreateInvItems(slf,ItRw_Bow_M_01,1);
CreateInvItems(slf,ItRw_Bow_M_02,1);
CreateInvItems(slf,ItRw_Bow_M_03,1);
CreateInvItems(slf,ItRw_Bow_M_04,1);
Bosper_ItemsGiven_Chapter_2 = TRUE;
};
if((Kapitel >= 3) && (Bosper_ItemsGiven_Chapter_3 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,100);
CreateInvItems(slf,ItRw_Arrow,100);
CreateInvItems(slf,ItRw_Bolt,100);
CreateInvItems(slf,ItBe_Addon_DEX_10,1);
Bosper_ItemsGiven_Chapter_3 = TRUE;
};
if((Kapitel >= 4) && (Bosper_ItemsGiven_Chapter_4 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,150);
CreateInvItems(slf,ItRw_Arrow,180);
CreateInvItems(slf,ItRw_Bolt,160);
CreateInvItems(slf,ItRw_Bow_H_01,1);
CreateInvItems(slf,ItRw_Bow_H_02,1);
CreateInvItems(slf,ItRw_Bow_H_03,1);
CreateInvItems(slf,ItRw_Bow_H_04,1);
Bosper_ItemsGiven_Chapter_4 = TRUE;
};
if((Kapitel >= 5) && (Bosper_ItemsGiven_Chapter_5 == FALSE))
{
CreateInvItems(slf,ItMi_Gold,200);
CreateInvItems(slf,ItRw_Arrow,200);
CreateInvItems(slf,ItRw_Bolt,170);
Bosper_ItemsGiven_Chapter_5 = TRUE;
};
};

2.
func void B_GiveTradeInv(var C_Npc slf)

{
var C_Npc Trd_Bosper;
Trd_Bosper = Hlp_GetNpc(VLK_413_Bosper);
B_ClearRuneInv(slf);
if(slf.aivar[AIV_ChapterInv] <= Kapitel)
{
if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(Trd_Bosper))
{
B_ClearJunkTradeInv(slf);
B_GiveTradeInv_Bosper(slf);
};
};
if(Npc_IsInState(slf,ZS_Dead) || Npc_IsInState(slf,ZS_Unconscious))
{
if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(Trd_Bosper))
{
B_ClearDeadTrader(slf);
};
};
};

В общем, судя по коду, на примере Боспера, восстановление инвентаря у торговцев происходит потому что функция NPS_ItemsGiven_Chapter_X = TRUE; сбрасывается на FALSE, по какой то причине, при повторном обращении к инвентарю, )))
 
Последнее редактирование:

WoOliN

Паладин
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
4.918
Реакции
2.758
Баллы
646
Лучшие ответы
330
#8
@V.I., если бы по 50 стрел/болтов добавлялось именно через скрипты, это давно было бы пофикшено.
Скрипты инвентаря торговцев там не при чём.
 

V.I.

Постоялец
Участник форума
Регистрация
24 Июл 2016
Сообщения
85
Реакции
28
Баллы
21
Лучшие ответы
2
#9
@V.I., если бы по 50 стрел/болтов добавлялось именно через скрипты, это давно было бы пофикшено.
Скрипты инвентаря торговцев там не при чём.
Скрипты не могут быть не причем. Потому что вся программа игры состоит из скриптов, и в программе, кроме скриптов, - ничего другого нет (ну, кроме рисунков и констант, а рисунки - баги создавать не могут). Где - то в скриптах есть логическая ошибка, которую никто не замечает, вот и все.

Я в VBA частенько находил такие баги, прогоняя циклы построчно через отладчик, и проверяя правильность значений переменных. Чтоб найти ошибку, нужно хорошее средство отладки; наверное, для среды разработки Готики, такого отладчика нет (не знаю). В "СИ++" я не силен, не углублялся, а вот в Бейсике, или в Паскале, такую ошибку, нашел бы за полчаса.
 
Последнее редактирование:

WoOliN

Паладин
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
4.918
Реакции
2.758
Баллы
646
Лучшие ответы
330
#10
@V.I., отвечу еще проще, раз выше не было понятно - нигде в скриптах мода не создается ровно 50 стрел или болтов.
Это делает либо напрямую движок игры, либо какой-то из сторонних патчей, если они установлены.
Примитивный поиск по ключевым словам в скриптах Готики был ещё 20 лет назад, а более-менее продвинутый способ (за 2 клика) существует не менее 10 лет)
 
Статус
Закрыта
Сверху Снизу