ao_craft_calc Калькулятор крафта для Аллодов Онлайн v 0.1.0a Copyright © 2014 Александр (Sagrer) Гриднев http://personal.sagrer.ru/tracs/ao_craft_calc sagrer@yandex.ru Программа распространяется на условиях Modified LGPL v2.1 см. файл COPYING.modifiedLGPL.txt ___________________________________________________ Программа представляет из себя простенький калькулятор крафта (т.е. улучшения качества экипировки) для Аллодов Онлайн. Нужно оно в общем то по той простой причине что начиная с сезона 60 уровней система улучшения экипировки в АО стала такова что прикинуть "на глазок" оптимальную последовательность расхода реагентов и количество необходимых ресурсов не так то просто а просчитать вручную все возможные варианты чтобы выбрать из них оптимальный - вообще невозможно за вменяемое время. Первым подобный калькулятор, насколько мне известно, появился на сайте статистики desperado что очень помогло многим игрокам, однако у тамошнего калькулятора есть (или был по крайней мере когда писался этот текст) один существенный недостаток - считать он мог только заранее заложенные в него варианты и комбинации, если в игровой механике что-то менялось или просто игроки добирались до нового контента с неизвестными на момент последней правки калькулятора улучшителями - приходилось ждать когда администрация сайта допилит калькулятор с учётом новых реалий. Поэтому когда пришло мне время крафтить последнюю стадию для оружия о чём калькулятор на десперадо к концу сезона не знает до сих пор - решил написать свой калькулятор, с блекджеком и далее по тексту : )). А поскольку просто повторять существующий функционал как то неинтересно - калькулятор был сделан универсальным т.е. теоретически если механика игры изменится или добавится что-то новое, на момент релиза последней версии программы неизвестное - хотя-бы немного разбирающиеся в компьютерах игроки должны быть вполне способны самостоятельно внести изменения в настройки калькулятора - все "рецепты" крафта хранятся в обычном текстовом файле во вполне пригодном для редактирования\добавления и, я надеюсь, понятном виде. Вот, собственно, и всё. Версия 0.1.х планировалась быть на уровне "работает и ладно" поэтому не оборудована ни инсталлятором, ни визуальным редактором рецептов (всё ручками через файлик config.ini), ни даже банальной защитой от дурака т.е. если вместо цифры ввести куда нибудь что-нибудь не то (например буквы там где программа ждёт увидеть цифры) - скорее всего калькулятор умрёт страшной смертью, предварительно обматерив своего убивцу каким-нибудь error-ом ). В принципе я планирую по мере изменения игровой механики или появления новых сведений обновлять калькулятор с тем чтобы он считал всё актуально происходящему на боевых серверах но всё это будет в рамках всё той же 0.1.х т.е. принципиальных улучшений функционала ждать не стоит, такие дела. Если у меня когда-нибудь появится стимул и дойдут руки - может быть появится какая-нибудь 0.2.х вся такая красивая, безглючная, с инсталлятором, автообновлением базы рецептов через интернет и прочими полезностями - но вполне вероятно что произойдёт оно не в этой жизни, как то так ). Но вообще исходник открыт так что не только от меня это зависит. ___________________________________________________ Теперь про то как собрать это всё из исходника. Может быть вы решили добавить в главное окно "здесь был Вася", может быть хотите самостоятельно поправить или даже улучшить что-то, ну а может быть вы просто параноик который боится злобных вирусов и хочет убедиться что программа чиста от всякой гадости. Для сборки вам потребуется наличие: 1. Установленного Lazarus v. 1.2.4. Более новые а также более старые %) версии Lazarus предположительно тоже подойдут. Тестировалось под WindowsXP Pro SP3, Windows7 64bit. Под другими win32\64 системами сборка весьма вероятна. Возможность сборки под linux и другими системами, с которыми совместим Lazarus - лишь теоретическая (в SagrersLib используются специфические для Windows вещи да и в самой программе открытие внешних текстовиков типа лицензии и руководства сделано через вызов Notepad). Хотя при минимуме усилий наверное можно собрать, да, только зачем (вспоминаем троллейбус из буханки). 2. И всё ))). Если бы я не был ленивым слоупоком которому влом сделать автоматическую сборку в инсталлятор - тут было бы ещё 5 или больше пунктов, но пока что всё тут просто как валенок. Чтобы собрать исходник просто открываем лазарусом файл проекта ao_craft_calc.lpi и собираем его через меню Запуск->собрать (Run->Build скорее всего в английской версии). Скомпиллированный бинарник упадёт в папку generated\build. Можно просто скопировать полученный экзешник в папку 2bin (для работы ему нужен configs\config.ini) и запускать, ну а если нужна отладка - скопировать содержимое 2bin в generated\build. __________________________________________________ Ежели кто-то решит что-то поправить и прислать мне результаты для включения в мою версию - этакий Code Guidelines. 1. Lazarus это LCL а LCL это клон VCL т.е. это мир Borland а не Microsoft - не налегайте на венгерскую нотацию пожалуйста. Пользуйтесь принятой в VCL нотацией - классы обозначаются большой первой буквой T (TObject например), если идентификатор состоит из нескольких слов - слова разделяются заглавными буквами (TheExampleIdentificator) и так далее. 2. Вложенные блоки выделяются отступами - по 2 пробела. 3. Используется ООП - не надо особо налегать на структурный программинг. 4. Не надо стараться напихать как можно больше классов в один файл, больше 1 класса в файле - только если это необходимо или если дополнительные классы - мелкие, вспомогательные. 5. Комментарии - каждую функцию или метод - прокомментировать в той же строчке где её объявление. В реализации функции\метода - продублировать комментарий, во второй строчке - под строчкой описывающей имя функции и параметры. Реализацию функций\методов - следует располагать в том же порядке, в котором они объявлялись в интерфейсе - если это классы или "подразделы" классов, то в реализации надо эти разделы разделить комментами, указав что за раздел. 6. Обработка екзепшнов. Если это необходимо - т.е. вызывается функция, которая в принципе небезопасна и может вернуть экзепшн - то надо пользоваться try-except-finally. Но не надо передавать екзепшоны до самого верха - желательно чтобы функция могла "в штатном режиме" справиться с ошибкой, если же это невозможно - вернуть ошибку - например через булевый результат функции или код ошибки. 7. Не забывайте в шапке измененного вами файла оставлять свой ник с мылом, для новых файлов - добавлять стандартную шапку с отсылкой на лицензию и прочим. ___________________________________________________ О локализации. Её нету! Всмысле мне лень было прикручивать gettext ). Может быть, когда нибудь... ) ___________________________________________________ Сообщения о багах, предложения по улучшению, патчи - принимаются либо на трекере проекта - http://personal.sagrer.ru/tracs/ao_craft_calc - нажно зайти на трекер, авторизоваться (при необходимости зарегистрировать аккаунт), создать новый ticket, не забыв указать тип тикета (баг\предложение\патч) и номер версии, которой вы пользовались. Но скорее всего мне лень (естественно) было прикрутить капчу на регистрацию поэтому зарегистрировать аккаунт на трекере вы не сможете, так что всё что хотелось сказать - смело отсылайте на sagrer@yandex.ru, только в теме чего-нибудь заметное про АО-шный калькулятор напишите.