Одягаємо персонажа правильно!
Для грають в Аллоди Онлайн не є секретом наявність в грі різноманітності елементів екіпіровки і безлічі тих чи інших характеристик, значення яких необхідно підтримувати на належному рівні. На низьких рівнях підібрати для себе комплект одягу у НПС за ріпу або квести, або на аукціоні не так вже й складно, та й коштують експерименти по примірці не так вже й дорого. Але ... зростає ваш рівень, збільшується кількість надягають елементів екіпіровки, зростає і їх вартість. Доводиться або запасатися письмовим приладдям і скрупульозно вираховувати плюси чи мінуси заміни, наприклад, однієї куртки на іншу, або ж розраховувати виключно на «О! зразок потрібні мені параметри крутіше, ніж є зараз, треба брати! ».
Але і їжаку зрозуміло: ні перший, ні другий випадок не є страховкою від марної трати ігрових грошиків, коли абсолютно несподівано на який-небудь характеристиці перса з'являється щось типу «Значення цієї характеристики занадто мало для Вашого рівня». А грошей на обновки доводиться витрачати все більше і більше.
Коли мені це вкрай набридло, виникла ідея написати якусь допоміжну софтинку, яка сама б все вважала, а мені б залишалося тільки цілеспрямовано купувати ту одежину, результат одягання якої мені 100% відомий. В результаті, пропоную вже працездатний варіант такої програми: калькулятор, версія 1.0 J.
Не буду описувати алгоритм роботи (та й не цікаво це), а перейду безпосередньо до робочих функцій програми.
При запуску з'являється форма, над заповненням якої доведеться все-таки посидіти. Відштовхуватися в розрахунках доводиться від початкових параметрів, а де їх взяти? - правильно, запускаємо гру і копітко переносимо значення в клітинки J. Тобто відкриваємо в грі вікно персонажа, наводить на кожну з 14 характеристик і переносимо значення базових і бонусних величин в перші два рядки, виділені на першому малюнку зеленим прямокутником. А тепер повторюємо те ж саме для кожного з поточних елементів одягу і озброєння, якими оснащений персонаж і заповнюємо залишилися осередки (нулі на відсутніх в одязі параметрах вносити необов'язково).
Клопітно? Згоден, проте, зробити це доведеться всього 1 раз, а потім тільки виправляти змінилися значення після чергового переодягання, що відбувається з кожним новим рівнем все рідше і рідше. Після закінчення введення не забуваємо «Зберегти зміни». При виході з програми всі введені символи будуть автоматично зберігаються, і при наступному запуску потрібно всього лише натиснути кнопку «Завантаження з файлу». У верхній же рядку (червоний прямокутник), після збереження або завантаження відображається, як нескладно здогадатися, сума всіх значень кожної з 14-ти характеристик персонажа. Якщо ці числа відповідають в результаті того, що ви бачите у вікні персонажа, сміливо натискаємо кнопку «Перейти до обновок».
Один по одному за цією формою. Вгорі вже знайома рядок поточних значень характеристик персонажа. А ось далі ... Побачили нову дрібничку, або навіть дві? Виявили в сумці після грінда мобів пару черевиків і задумалися про корисність такої знахідки або її продажу іншому гравцеві? Вперед з піснею! У «Виборі елементів» шукаємо загальна назва елемента, в поле «Примітка» вказуємо розташування виявленої штучки (щоб бігаючи по локаціях і переглядаючи магазинчики НПС не забути у якого саме бариги ви бачили ті самі сережки). Потім вбиваємо в уже знайомі по попередній формі клітинки характеристики дрібнички і тиснемо «Додати в набір». До речі, при наведенні мишки на будь-який елемент в таблиці, ви побачите підказку, записану вами для нього в поле «Примітка».
Якщо ж після додавання нової речі в таблицю ви раптом виявили Очепятка, можна, виділивши будь-який осередок в рядку з помилкою, натиснути «Змінити запис». Відбудуться відразу 2 речі: елемент буде видалено з таблиці, і він же з'явиться в полях редагування. Внісши необхідні зміни, знову тиснемо «Додати в набір». Видалення непотрібного елементу виконується як і його зміна, з тією лише різницею, що при натисканні «Видалити тек. елемент »з таблиці він зникне, а в полях редагування не з'явиться.
Після виконаних додавань, вилучень і змін життєво необхідно «Зберегти набір», щоб не було потім болісно боляче ... J
А тепер, як то кажуть, цвях програми: найбільша на формі кнопка «рассчете». В результаті отримуємо ... хм, такий результат:
Перший рядок - знову та сама сума поточних характеристик персонажа, ще й виділена кольором типу violet. В інших рядках - змінені значення цих характеристик в залежності від варіантів поєднання поточних елементів обмундирування і нових, поки ще не куплених за кровні гроші одежек-сережок-амулетик. Відповідно зеленим кольором виділені числа в разі збільшення значення даної характеристики, червоним - зменшення, а дефолтних чорним - час, що залишився без змін. До речі, червоний колір ще не означає, що ця величина є неприйнятною для вашого персонажа - просто вона менше, ніж поточна.
При виділенні комірки в будь-якому рядку ви побачите, що саме послужило причиною таких змін. У нашому прикладі, варіант 3 вийде при спробі надіти пояс, куплений у Канійскої інтенданта замість того, який надітий на персонажа в даний момент. Якщо ж проаналізувати отримані результати, стає очевидно, що самий загальний-кращий для всіх результат буде досягнутий при варіанті №2 (на зображенні цього не видно, але зауважу, - це варіант покупки штанів на аукціоні, замість тих, яких на нас в даному прикладі вообще нету J) При бажанні, варіанти в цій таблиці можна сортувати по макс / хв значень, просто клацаючи по заголовку стовпця.
Але і цього мені здалося мало, і вирішив я додати ще один варіант сортування. Адже, якщо замислитися, в грі бере участь не один клас персонажів. Для кожного з них важливі лише певні характеристики, а на решту можна взагалі забити ... з високої дзвіниці.
Для цього й придумані чекбокси над кожною характеристикою в таблиці і стовпець «Сума». Як це працює? Дивимося на прикладі.
Припустимо, для сферичного персонажа в вакуумі мають першочергове значення: Моторність, Розум, Воля, Дух і Точність. Відзначаємо вищевказані чекбокси, сортуємо по спадаючій стовпець Сума і отримуємо:
Отримуємо, що для такого персонажа набагато цікавіше виглядає варіант №4 - якщо пояс він купить у канійца і штани на аукціоні ...
Так, прошу зауважити, що я не ставив перед собою завдання по визначенню ідеального варіанту. Кожен гравець прокачує унікального персонажа і індивідуально для себе вирішує про важливість тієї чи іншої характеристики.
Тепер ще трохи слів про функціонування калькулятор матеріалів.
Переміщення від 1-ї форми до 3-й здійснюється за допомогою кнопок «Перейти до обновок» -> «Розрахунок» (якщо ці кнопки не активні - ви забули зберегти або скасувати зміни). У зворотний бік - за допомогою кнопки «Назад» або закриття поточної форми. При закритті початкової форми (і тільки в цьому випадку) відбувається закриття самої програми.
Для збереження і завантаження введених даних я використовую 2 текстових файли, розташованих в одній папці з самою програмою. Фізична відсутність будь-якого з них призводить до непрацездатності калькулятор матеріалів. Дані вивантажуються в форми при натисканні кнопок завантаження і не змінюються всередині вищевказаних текстових файлів до тих пір, поки не буде натиснута кнопка збереження. Скасувати зміни в 1-й і 2-й формах можна просто натиснувши на завантаження. У разі ж, якщо зміни були збережені, відкату до попередніх значень поки не передбачено. І ще: зі збільшенням кількості нових шмоток для перебору в 2-й формі, кількість варіантів в результуючій таблиці збільшується в геометричній прогресії J (приклад: при 3-х нових - 8 варіантів, при 5-ти - 24 і т . Д.). Правда, від мене тут уже нічого не залежить - всі питання до науки математика.
Варто мати на увазі, що в даний момент Калькулятор працює тільки для одного персонажа, відповідно, якщо персонажів у вас кілька, для кожного з них необхідно зберігати exe-шник і йдуть з ним файли в окремій папці. У майбутньому, якщо калькулятор дійсно виявиться корисним, я постараюся довести його до розуму, включивши в нього можливість завантаження і збереження даних для необмеженого кількості персонажів і, можливо, додаткових методів сортування отриманих результатів з подальшим експортом в Excel або Word для подальшої обробки.
Всі побажання або зауваження (і навіть заохочення :)) можна залишати мені в личку - testeron (на оффсайте аллодов), або ж, виявивши мене на Горне війни під ніками Шериф (Ліга-Друль-каніец) або Ородруін (Ліга-Сталкер-каніец ).