T-800 Mod |
Здравствуйте, гость ( Вход | Регистрация )
T-800 Mod |
30 Jul 2016, 08:41
(Сообщение отредактировал t800 - 29 Aug 2016, 20:03)
Сообщение
#141
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Собрал Турнирную версию для Windows специально для ТУРНИРА T-800 на HandBookHMM
См. http://handbookhmm.ru/forum/viewtopic.php?...;p=14660#p14660 Пользуясь случаем приглашаю всех любителей Героев принять участие в Турнире T-800 Проходящем на HandBookHMM с 1 августа 2016 по 30 сентября 2016 (включительно!) ТУРНИР T-800 - HandBookHMM 2016 - c 1-ого августа по 30 сентября -------------------- |
|
|
30 Jul 2016, 15:30
(Сообщение отредактировал t800 - 30 Jul 2016, 16:14)
Сообщение
#142
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Напишу чтобы не забыть
Когда собираешь под Free Heroes 2 (T-800 Mod) для Windows Надо 1) Зайти в engine/tools.cpp Найти строчки Код #if defined(__FreeBSD__) || defined (__MINGW32__) || defined (__MINGW64__) size_t reslen = iconv(cd, &inbuf, &inbytesleft, &outbuf1, &outbytesleft); #else size_t reslen = iconv(cd, const_cast<char**>(&inbuf), &inbytesleft, &outbuf1, &outbytesleft); #endif 2) И изменить их вот так Код #if defined(__FreeBSD__) || defined (__MINGW32__) || defined (__MINGW64__) // size_t reslen = iconv(cd, &inbuf, &inbytesleft, &outbuf1, &outbytesleft); //#else size_t reslen = iconv(cd, const_cast<char**>(&inbuf), &inbytesleft, &outbuf1, &outbytesleft); #endif Что эти строчки делаю не знаю и что там меняется тоже не понял, но после этого игра собирается нормально 3) И в Makefile должно быть написано вот так Код TARGET := fheroes2 MAKE := make all: $(MAKE) -C src WITH_AI=simple WITHOUT_AUDIOCD=1 WITHOUT_NETWORK=1 WITHOUT_EDITOR=1 WITH_ICONS=1 @cp src/dist/$(TARGET) . clean: $(MAKE) -C src clean Что это значит тоже не понятно и почему оно все должно быть равно единицам не знаю, но если написать что равное еденицам тогда игра собирается, если написать что просто WITH_ICONS тогда не собирается. -------------------- |
|
|
30 Jul 2016, 16:41
(Сообщение отредактировал Эроласт - 30 Jul 2016, 16:42)
Сообщение
#143
|
|
Зануда Сообщений: 2 236 Спасибо сказали: 2894 раза |
Цитата Что эти строчки делаю не знаю #if #else #endif варьируют код в зависимости от компилятора. Ты, очевидно, используешь mingw, потому выбирается первый вариант (почему он не работает - не знаю). Чтобы каждый раз не подставлять слеши, просто убери MINGW из чека. Iconv - это библиотека для перевода строк из одной кодировки в другую. Цитата Что это значит тоже не понятно Что именно непонятно? Тут же все по словам читается. Сначала создаются переменные TARGET и MAKE, затем описываются задачи all (дефолтная задача) и clean (можешь вызвать ее с помощью make clean). Цитата почему оно все должно быть равно единицам не знаю Единица значит true. Ноль значит false. |
|
|
30 Jul 2016, 16:54
(Сообщение отредактировал t800 - 30 Jul 2016, 16:55)
Сообщение
#144
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Цитата Что эти строчки делаю не знаю #if #else #endif варьируют код в зависимости от компилятора. Ты, очевидно, используешь mingw, потому выбирается первый вариант (почему он не работает - не знаю). Чтобы каждый раз не подставлять слеши, просто убери MINGW из чека. Iconv - это библиотека для перевода строк из одной кодировки в другую. А я думал она иконки делает. Просто mingw ругался на этоу строчку. Я ее на пробу выключил и он перестал ругаться. ЗЫ В прошлый раз я ее тоже выключал. Просто забыл об этом. И сегодня долго мучалася пока вспомнил. Поэтому решил написать чтобы опять не забыть. ЗЫ Про еденицу понял СПАСИБО. Тоже долго мучался не мог понять почему когда я пишу просто WITH_ICONS она игру не собирает, а WITH_ICONS я писал чтобы игра для ТУРНИРА с иконками была. -------------------- |
|
|
30 Jul 2016, 17:43
Сообщение
#145
|
|
Зануда Сообщений: 2 236 Спасибо сказали: 2894 раза |
Цитата Поэтому решил написать чтобы опять не забыть. Лучше убери MINGW из проверки и не трахай себе мозг. |
|
|
30 Jul 2016, 20:35
(Сообщение отредактировал t800 - 30 Jul 2016, 20:39)
Сообщение
#146
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Цитата Поэтому решил написать чтобы опять не забыть. Лучше убери MINGW из проверки и не трахай себе мозг. Ну не знаю. Ее же то для чего то туда поставили. Поэтоу я просто выключил и написал рядом // T-800 перед началом и к в конце тоже написал // T-800 А вообще видно что движком давно никто не занимался. Я сегодня когда делал Турнирную сборку для Windows у меня Русские надписи в строения Квадратиками отражались причем только под Windows а в Ubuntu в Android нормально. Я решил посмотреть официальную сборку под Windows за 2015 год которая на SF лежит. А она оказывается ВООБЩЕ русский язык не поддерживает. Ни русский ни Уникод. Вот! И еще решил записать чтобы не забыть. Чтобы русские буквы не отражались квадратиками в информции о строениях под Windows Надо открыть файл src/fheroes2/castle/buildinginfo.cpp Найти строчки Код description = _("The %{building} produces %{monster}."); StringReplace(description, "%{building}", Castle::GetStringBuilding(building, castle.GetRace())); StringReplace(description, "%{monster}", StringLower(Monster(castle.GetRace(), building).GetMultiName())); И исправить на Код description = _("The %{building} produces %{monster}."); StringReplace(description, "%{building}", Castle::GetStringBuilding(building, castle.GetRace())); // StringReplace(description, "%{monster}", StringLower(Monster(castle.GetRace(), building).GetMultiName())); StringReplace(description, "%{monster}", Monster(castle.GetRace(), building).GetMultiName()); Тогда квадратиков не будет! -------------------- |
|
|
31 Jul 2016, 06:24
(Сообщение отредактировал t800 - 01 Aug 2016, 08:17)
Сообщение
#147
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Запишу чтобы не забыть
Чтобы собрать сборку под Windows. 1) Надо поставить VirtualBox, 2) Поставить туда Windows XP, 3) Потом в WindowsXP cкачать архив mingw-build-env-win32-20111117.zip 4) Распаковать его на диск C: Примечание: В архиве лежит папка mingw надо распаковать так чтобы эта папка лежала на диске C: можно распаковать в другое место, а потом просто выделить папку эту папку mingw и сделать вырезать вставить на диск C: 5) Перейти в папку c:/mingw/msys/1.0 и создать для файла msys.bat который там лежит ярлык на рабочий стол 5.1 ) Создать папку c:/mingw/home 6) Скопировать свою папку fheroes2 со своими исходниками в папку в Windows c:/mingw/home 7) Запустить msys.bat ярлыком с рабочего стола 8) В открывшейся консоли в черном окошке написать команды (не забыть переключить раскладку на английский язык) Код cd /mingw/home/fheroes2/ Примечание: Консоль работает плохо и ответы идут квадратиками поэтому команду лучше скопировать и вставить 9) Затем дать команду (эту можно просто написать) Код ls Если попали тут куда надо то увидем список файлов в папке fheroes2 10) После этого надо дать компанду Код make Если все собралось без ошибок надо перейти в Проводнике в папку C:\mingw\home\fheroes2 и запустить файл fheroes2.exe Цитата Примечание: Если в первый раз после разархивирования исходников из архива make ругнется по поводу gc++ 4.6 и что-то такое надо дать команду Код make clean И после этого опять запустить Код make И все должно собраться Примечание: для тестирования под Windows не забыть положить файл HEROES2.AGG в папку fheroes2\data\ Дополнение: вот сделал для памяти видео как это все делается чтобы не забыть. -------------------- |
|
|
31 Jul 2016, 08:47
Сообщение
#148
|
|
😸🧡✊✌️ Сообщений: 16 027 Спасибо сказали: 2672 раза |
Надо поставить VirtualBox, А VMware Player не пойдёт? А если основная система XP, виртуалка нужна?Поставить туда Windows XP, А в WinX не соберётся?
-------------------- |
|
|
31 Jul 2016, 09:07
(Сообщение отредактировал t800 - 31 Jul 2016, 13:47)
Сообщение
#149
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Надо поставить VirtualBox, А VMware Player не пойдёт? А если основная система XP, виртуалка нужна?Поставить туда Windows XP, А в WinX не соберётся?Не знаю. У меня VirtualBox. Что такое VMare Player не знаю. Может быть и там соберется может и нет. В VirtalBox и WindowsXP SP3 собрется точно если сделать по инструкции! И если основная система Windows XP наверное все равно лучше поставил VirtalBox И туда поставить этот образ Windows XP SP3 http://rutracker.org/forum/viewtopic.php?t=4485398 Потому что в ней по инструкции и с MinGW из архива по ссылке точно заработает. А если постаивть новую MinGW не соберется НИЧЕГО! И только много будет ругаться! А чтобы собралось. Надо распаковать тот котрый в архиве по ссылке. И все сделать по инструкии. И лучше в VirtualBox c образом WindpwsXP SP3 если хотите быстро собрать и не мучаться. ВОТ -------------------- |
|
|
03 Aug 2016, 06:42
(Сообщение отредактировал t800 - 03 Aug 2016, 07:22)
Сообщение
#150
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Вот постер для следующей кампании сделал:
PS. Героя в этот раз на постере я не нарисовал, так как проводится турнир, и еще неясно кто будет королём осьминогов, потому что по услолвиям турнира героями кампании должены быть победители турнира. -------------------- |
|
|
03 Aug 2016, 19:35
(Сообщение отредактировал t800 - 04 Aug 2016, 13:29)
Сообщение
#151
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
На Google Play мне пожаловались что заклинание Молния в битве выгляди совсем не правильно, хотя заклинание Ледяной Луч выглядит точно так же как в оригинальных HMM2
Стал разбираться. Запишу что понял чтобы не забыть Судя по всему заклинания рисуются в файле /src/fheroes2/battle/battle_interface.cpp Вот это заклинание Молния Код void Battle::Interface::RedrawActionLightningBoltSpell(Unit & target) { // FIX: LightningBolt draw RedrawTroopWithFrameAnimation(target, ICN::SPARKS, M82::FromSpell(Spell::LIGHTNINGBOLT), true); } void Battle::Interface::RedrawActionChainLightningSpell(const TargetsInfo & targets) { // FIX: ChainLightning draw //AGG::PlaySound(targets.size() > 1 ? M82::CHAINLTE : M82::LIGHTBLT); for(TargetsInfo::const_iterator it = targets.begin(); it != targets.end(); ++it) RedrawTroopWithFrameAnimation(*(it->defender), ICN::SPARKS, M82::FromSpell(Spell::LIGHTNINGBOLT), true); } А вот это заклинание Ледяной Луч Код void Battle::Interface::RedrawActionColdRaySpell(Unit & target) { Display & display = Display::Get(); Cursor & cursor = Cursor::Get(); LocalEvent & le = LocalEvent::Get(); const int icn = ICN::COLDRAY; u32 frame = 0; Point pt_from, pt_to; const HeroBase* current_commander = arena.GetCurrentCommander(); if(current_commander == opponent1->GetHero()) { const Rect & pos1 = opponent1->GetArea(); pt_from = Point(pos1.x + pos1.w, pos1.y + pos1.h / 2); const Rect & pos2 = target.GetRectPosition(); pt_to = Point(pos2.x, pos2.y); } else { const Rect & pos = opponent2->GetArea(); pt_from = Point(pos.x, pos.y + pos.h / 2); const Rect & pos2 = target.GetRectPosition(); pt_to = Point(pos2.x + pos2.w, pos2.y); } const u32 dx = std::abs(pt_from.x - pt_to.x); const u32 dy = std::abs(pt_from.y - pt_to.y); const u32 step = (dx > dy ? dx / AGG::GetICNCount(icn) : dy / AGG::GetICNCount(icn)); const Points points = GetLinePoints(pt_from, pt_to, step); Points::const_iterator pnt = points.begin(); cursor.SetThemes(Cursor::WAR_NONE); AGG::PlaySound(M82::COLDRAY); while(le.HandleEvents() && frame < AGG::GetICNCount(icn) && pnt != points.end()) { CheckGlobalEvents(le); if(Battle::AnimateInfrequentDelay(Game::BATTLE_SPELL_DELAY)) { cursor.Hide(); const Sprite & sprite = AGG::GetICN(icn, frame); sprite.Blit((*pnt).x - sprite.w() / 2, (*pnt).y - sprite.h() / 2); cursor.Show(); display.Flip(); ++frame; ++pnt; } } RedrawTroopWithFrameAnimation(target, ICN::ICECLOUD, M82::UNKNOWN, true); } Видно что они совершенно по разному сделаны и в этом причина почему молния выгляди совсем не правильно и бьет какой то тонкой линией сверху вместо того чтобы бить молнией из посоха Героя как Ледяной Луч. Думаю надо передалать Молнию так же как Ледяной Луч и тогда она будет бить нормально и из Посоха героя. -------------------- |
|
|
04 Aug 2016, 17:08
Сообщение
#152
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Так ну я передалал Молнию по подобию Ледяного луча.
Теперь она бьет из героя, а не понятно откуда и центра карты. Но есть проблема. Дело в том что ресурсах нет спрайтов удара молнии. Наверное в оригинальных героях ее рисовали как-то по другому. Я вот попробовал сделать спрайт сам. Но стокнулся с проблемой. Что молния должна красиво смотреться под когда разным углом, у меня получается что под каким-то углом она смотрится еще нормально а под другим совсем плохо. И как слелать так чтобы под всеми углами нормально было? -------------------- |
|
|
05 Aug 2016, 15:18
(Сообщение отредактировал t800 - 16 Aug 2016, 18:04)
Сообщение
#153
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Захотел сделать портреты героев для новой кампании Король Осминогов.
Решил начать с портрета Лорда Гарретта Лорд Гарретт Чародей -------------------- |
|
|
05 Aug 2016, 16:05
Сообщение
#154
|
|
😸🧡✊✌️ Сообщений: 16 027 Спасибо сказали: 2672 раза |
-------------------- |
|
|
07 Aug 2016, 21:06
(Сообщение отредактировал t800 - 16 Aug 2016, 17:54)
Сообщение
#155
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Вот переделал немного Чародея Лорда Гарретта
Дал ему артифакт и плащ Волшебника -------------------- |
|
|
05 Sep 2016, 10:39
Сообщение
#156
|
|
Это аргумент Сообщений: 2 655 Спасибо сказали: 2293 раза |
А в этой сборке кеш обязательно нужно в определенное место класть или можно путь задать? Просто мой планшет маниакально ставит все во внутреннюю память без возможности переноса на флешку, и я хотел бы, чтобы хотя бы кем не занимал основную память, а лежал на флеш.
-------------------- |
|
|
05 Sep 2016, 11:10
(Сообщение отредактировал t800 - 05 Sep 2016, 11:11)
Сообщение
#157
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
А в этой сборке кеш обязательно нужно в определенное место класть или можно путь задать? Просто мой планшет маниакально ставит все во внутреннюю память без возможности переноса на флешку, и я хотел бы, чтобы хотя бы кем не занимал основную память, а лежал на флеш. Можно задать любой путь так же путь к папке DATA можно прописать вручную в fheroe2.cfg Код # path to directory data data = DATA где вместо DATA прописасть /Ваши полный путь на флешке к папке/DATA -------------------- |
|
|
05 Sep 2016, 12:13
(Сообщение отредактировал Господин Уэф - 05 Sep 2016, 19:31)
Сообщение
#158
|
|
Это аргумент Сообщений: 2 655 Спасибо сказали: 2293 раза |
Наконец решился поставить и попробовать. В качестве кеша использовал рип-версию с сайта old-games. Впечатления в целом положительные, автору респект. Кроме того, есть надежда на дальнейшее развитие, в отличие от оригинальных fh2.
И, да, банальный вопрос - если я не хочу пользоваться загружаемой демой, какие файлы от оригинальной игры мне нужны? Только те, что в папках data и maps? -------------------- |
|
|
05 Sep 2016, 20:58
(Сообщение отредактировал t800 - 05 Sep 2016, 21:07)
Сообщение
#159
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
И, да, банальный вопрос - если я не хочу пользоваться загружаемой демой, какие файлы от оригинальной игры мне нужны? Только те, что в папках data и maps? Для работы из оригинальной игры нужны только файлы heroes2.agg и heroes2x.agg из папки DATA и карты из папки MAPS. -------------------- |
|
|
07 Sep 2016, 11:58
Сообщение
#160
|
|
Это аргумент Сообщений: 2 655 Спасибо сказали: 2293 раза |
А нельзя сделать, чтобы игровые настройки (скорость, боевая сетка, интерфейс) сохранились? А то приходится при каждом заходе в игру заново выставлять.
-------------------- |
|
|
Текстовая версия | Сейчас: 24 April 2024 - 20:48 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |