С Днём России!
  • 2.394
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 873
  • 1
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 1.072
  • 4
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...

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

Blackmail01

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

Beleriand

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

~𝔻𝕒𝕣𝕜𝕊𝕚𝕕𝕖~

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

Scout92

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

Blackmail01

Гвардеец
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.024
Реакции
1.042
Баллы
241
Лучшие ответы
62
#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

Гвардеец
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.024
Реакции
1.042
Баллы
241
Лучшие ответы
62
#6

BBDD

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

~𝔻𝕒𝕣𝕜𝕊𝕚𝕕𝕖~

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