Новости Релиз Of Ash and Steel состоится 6 ноября
  • 1.723
  • 1
Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Новости В Of Ash and Steel начался закрытый плейтест
  • 9.232
  • 12
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
С Днём России!
  • 7.848
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II

Решено Харад крысит ржавое оружие.

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.488
Реакции
1.486
Баллы
261
Лучшие ответы
78
#1
Если ГГ ученик Харада ему можно сдавать ржавые мечи. Он всегда забирает все имеющиеся и выдаёт по 1 заготовке за каждые 4 штуки.
Если количество ржавого оружия не делится нацело на 4, то увы. Нет разницы сдать 4 меча или 7, получишь одну заготовку за это дело.
Меньше четырёх он просто примет в обмен на благодарность.
Предлагаю чтобы он "запоминал" количество мечей не в зачёт и учитывал при следующем обмене.
 

Beleriand

Паладин
Участник форума
Регистрация
9 Сен 2021
Сообщения
4.917
Реакции
2.579
Баллы
436
Лучшие ответы
398
#2
ну или чтобы забирал только кол-во кратное 4
 

~𝔻𝕒𝕣𝕜𝕊𝕚𝕕𝕖~

Избранник богов
Почётный пользователь
Участник форума
Регистрация
17 Мар 2022
Сообщения
10.358
Реакции
6.124
Баллы
772
Лучшие ответы
352
#3
Кстати, да. Тоже обратил внимание на странный размен.
 

Scout92

Герой
Команда форума
Модератор раздела
Почётный пользователь
Участник форума
Регистрация
14 Ноя 2016
Сообщения
6.313
Реакции
2.253
Баллы
621
Лучшие ответы
594
#4
Не крысит, а отдает % Ликеру. :)
 
Автор
Автор
Blackmail01

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.488
Реакции
1.486
Баллы
261
Лучшие ответы
78
#5
@Liker если лень самому делать можешь этот:
Код:
var int HaradRustWMem;
func void dia_harad_haradbuymiscweap_info() {
    var c_item equipweap;
    var int misc_01;
    var int misc_02;
    var int misc_03;
    var int misc_04;
    var int misc_all;
    var int misc_temp;
    var int price_all;

    price_all = 2;
    ai_output(other, self, "DIA_Harad_HaradBuyMiscWeap_01_00"); //Я принес тебе ржавое оружие.
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_01"); //Хорошо!
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_03"); //Давай посмотрим, что тут у тебя...
    misc_01 = npc_hasitems(other, itmw_1h_misc_sword);
    misc_02 = npc_hasitems(other, itmw_1h_misc_gsword);
    misc_03 = npc_hasitems(other, itmw_1h_misc_axe);
    misc_04 = npc_hasitems(other, itmw_2h_sword_m_01);
    misc_all = ((misc_01 + misc_02) + misc_03) + misc_04 + HaradRustWMem;
    if (misc_all < 4){
        HaradRustWMem = misc_all;
    };
    misc_temp = (misc_all / 4);
    misc_temp = misc_temp * 4;
    if (misc_all >= misc_temp){
        HaradRustWMem = misc_all - misc_temp;
    };
    b_giveinvitemswithremove(hero, self, itmw_1h_misc_sword, npc_hasitems(hero, itmw_1h_misc_sword));
    b_giveinvitemswithremove(hero, self, itmw_1h_misc_gsword, npc_hasitems(hero, itmw_1h_misc_gsword));
    b_giveinvitemswithremove(hero, self, itmw_1h_misc_axe, npc_hasitems(hero, itmw_1h_misc_axe));
    b_giveinvitemswithremove(hero, self, itmw_2h_sword_m_01, npc_hasitems(hero, itmw_2h_sword_m_01));
    ai_playani(self, "T_YES");
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_04"); //Ну что же, неплохо.
    b_giveinvitems(self, other, itmiswordraw, misc_all / 4);
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_06"); //Если будет что-нибудь еще - приноси мне.
};
Что не делится на 4 запоминается и учитывается при следующей сдаче.

Код:
// Глобальная переменная для хранения "остатка" ржавого оружия между диалогами
var int HaradRustWMem;

// Диалоговая функция торговли ржавым оружием с NPC
func void dia_harad_haradbuymiscweap_info()
{
    // Объявление переменных:
    var c_item equipweap;        // Неиспользуемая переменная (возможно, остаток старого кода)
    var int misc_01;             // Счетчик мечей
    var int misc_02;             // Счетчик больших мечей
    var int misc_03;             // Счетчик топоров
    var int misc_04;             // Счетчик двуручных мечей
    var int misc_all;            // Общее количество оружия
    var int misc_temp;           // Временная переменная для расчетов
    var int price_all;           // Неиспользуемая переменная (возможно, планировалась для расчета цены)

    price_all = 2; // Неиспользуемое значение (возможно, заглушка)

    // Диалог с NPC
    ai_output(other, self, "DIA_Harad_HaradBuyMiscWeap_01_00"); // Игрок: "Я принес тебе ржавое оружие."
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_01"); // NPC: "Хорошо!"
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_03"); // NPC: "Давай посмотрим, что тут у тебя..."

    // Подсчет каждого типа оружия в инвентаре игрока
    misc_01 = npc_hasitems(other, itmw_1h_misc_sword);  // 1H ржавый меч
    misc_02 = npc_hasitems(other, itmw_1h_misc_gsword); // 1H ржавый большой меч
    misc_03 = npc_hasitems(other, itmw_1h_misc_axe);    // 1H ржавый топор
    misc_04 = npc_hasitems(other, itmw_2h_sword_m_01);  // 2H ржавый меч
    
    // Суммируем все найденное оружие + остаток с прошлого раза
    misc_all = ((misc_01 + misc_02) + misc_03) + misc_04 + HaradRustWMem;
    
    // Система накопления "неполных наборов":
    // Если общее количество меньше 4 - сохраняем в память для следующего раза
    if (misc_all < 4) {
        HaradRustWMem = misc_all;
    };
    
    // Расчет целых наборов (каждые 4 единицы оружия = 1 новый предмет)
    misc_temp = (misc_all / 4);    // Целое число наборов (деление нацело)
    misc_temp = misc_temp * 4;     // Общее кол-во оружия в полных наборах
    
    // Обновляем память - сохраняем остаток, который не вошел в наборы
    if (misc_all >= misc_temp) {
        HaradRustWMem = misc_all - misc_temp;
    };
    
    // Забираем ВСЕ ржавое оружие у игрока
    b_giveinvitemswithremove(hero, self, itmw_1h_misc_sword, npc_hasitems(hero, itmw_1h_misc_sword));
    b_giveinvitemswithremove(hero, self, itmw_1h_misc_gsword, npc_hasitems(hero, itmw_1h_misc_gsword));
    b_giveinvitemswithremove(hero, self, itmw_1h_misc_axe, npc_hasitems(hero, itmw_1h_misc_axe));
    b_giveinvitemswithremove(hero, self, itmw_2h_sword_m_01, npc_hasitems(hero, itmw_2h_sword_m_01));
    
    // Анимация и реакция NPC
    ai_playani(self, "T_YES"); // Проигрываем анимацию согласия
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_04"); // NPC: "Ну что же, неплохо."
    
    // Выдаем игроку награду: сырье для мечей (1 единица за каждые 4 единицы оружия)
    b_giveinvitems(self, other, itmiswordraw, misc_all / 4);
    
    // Прощальная реплика NPC
    ai_output(self, other, "DIA_Harad_HaradBuyMiscWeap_01_06"); // NPC: "Если будет что-нибудь еще - приноси мне."
};
 
Автор
Автор
Blackmail01

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.488
Реакции
1.486
Баллы
261
Лучшие ответы
78
#6

BBDD

Гвардеец
Пользователь VIP
Участник форума
Регистрация
22 Янв 2023
Сообщения
1.646
Реакции
1.885
Баллы
222
Лучшие ответы
9
#7
Не зря тему создавал. Проблема решена на корню.:P
Посмотреть вложение 156185
Всегда нравилось, как Ликёрх разбирается с проблемами. Когда-то давно в моем городе прорвало трубу в одном из домов. Так по итогу снесли дом.
Всё, как царь-батюшка любит. Решительный подход.
 

~𝔻𝕒𝕣𝕜𝕊𝕚𝕕𝕖~

Избранник богов
Почётный пользователь
Участник форума
Регистрация
17 Мар 2022
Сообщения
10.358
Реакции
6.124
Баллы
772
Лучшие ответы
352
#8
@BBDD, Ликёр на опыте просто уже и знает, что если что-то чинить то будут всякие баги вылезать то тут, то там и прочее. А так снес с жукам майским фичу и всё - проблема решена на корню, так сказать:P
 
Сверху Снизу