T-800 Mod для Heroes of Might and Magic II

Модератор: t800

Re: T-800 Mod для Heroes of Might and Magic

Сообщение t800 » 30 июл 2016, 23:33

Чтобы русские буквы не отражались квадратиками в информации о строениях под 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());


Тогда квадратиков не будет!
Создатель Free Heroes II: T-800 Mod
t800
 
Сообщения: 199
Зарегистрирован: 19 окт 2015, 14:52
Откуда: Казахстан, Алматинская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: T-800 Mod для Heroes of Might and Magic

Сообщение t800 » 31 июл 2016, 08:41

Запишу чтобы не забыть

Чтобы собрать сборку под 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\

Дополнение: вот сделал для памяти видео как это все делается чтобы не забыть.

Создатель Free Heroes II: T-800 Mod
t800
 
Сообщения: 199
Зарегистрирован: 19 окт 2015, 14:52
Откуда: Казахстан, Алматинская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: T-800 Mod для Heroes of Might and Magic

Сообщение t800 » 03 авг 2016, 21:30

На 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);
}



Видно что они совершенно по разному сделаны и в этом причина почему молния выгляди совсем не правильно и
бьет какой то тонкой линией сверху вместо того чтобы бить молнией из посоха Героя как Ледяной Луч.

Думаю надо передалать Молнию так же как Ледяной Луч и тогда она будет бить нормально и Посоха героя.
Создатель Free Heroes II: T-800 Mod
t800
 
Сообщения: 199
Зарегистрирован: 19 окт 2015, 14:52
Откуда: Казахстан, Алматинская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: T-800 Mod для Heroes of Might and Magic

Сообщение t800 » 04 авг 2016, 08:28

Как включить в игре русский язык (инструкция для тех кто при установке забыл включить русский и для тех у кого не работает Youtube)

1) Запускаем игру нажимаем сверху Изменение Конфигурации Устройства

1.jpg



2) Нажимаем загрузки

2.jpg



3) Ставим галочки на

I ) T-800 Mod Russian Grafics Pack

3.jpg


и на
II) Russian translation

4.jpg


4) Нажимаем Продолжить

5.jpg


5) Попадаем на следующую вкладку и опять нажимаем Продолжить

6.jpg


6) Пакет Русского языка устанавливается и игра становится по Русски.

7.jpg
Создатель Free Heroes II: T-800 Mod
t800
 
Сообщения: 199
Зарегистрирован: 19 окт 2015, 14:52
Откуда: Казахстан, Алматинская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.

Вернуться в Free Heroes 2 t800 mod

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron