IPB

Здравствуйте, гость ( Вход | Регистрация )

11 страниц V  « < 6 7 8 9 10 > »   
Reply to this topicStart new topic
> T-800 Mod
t800
сообщение 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 сентября


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 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 тогда не собирается.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 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.
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 30 Jul 2016, 16:54 (Сообщение отредактировал t800 - 30 Jul 2016, 16:55)
Сообщение #144

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Цитата(Эроласт @ 30 Jul 2016, 19:41) *
Цитата
Что эти строчки делаю не знаю

#if #else #endif варьируют код в зависимости от компилятора. Ты, очевидно, используешь mingw, потому выбирается первый вариант (почему он не работает - не знаю). Чтобы каждый раз не подставлять слеши, просто убери MINGW из чека.
Iconv - это библиотека для перевода строк из одной кодировки в другую.


А я думал она иконки делает. Просто mingw ругался на этоу строчку. Я ее на пробу выключил и он перестал ругаться.
ЗЫ В прошлый раз я ее тоже выключал. Просто забыл об этом. И сегодня долго мучалася пока вспомнил. Поэтому решил написать чтобы опять не забыть.

ЗЫ Про еденицу понял СПАСИБО. Тоже долго мучался не мог понять почему когда я пишу просто WITH_ICONS она игру не собирает, а WITH_ICONS я писал чтобы игра для ТУРНИРА с иконками была.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 30 Jul 2016, 17:43
Сообщение #145

Зануда
Сообщений: 2 236
Спасибо сказали: 2894 раза




Цитата
Поэтому решил написать чтобы опять не забыть.

Лучше убери MINGW из проверки и не трахай себе мозг.
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 30 Jul 2016, 20:35 (Сообщение отредактировал t800 - 30 Jul 2016, 20:39)
Сообщение #146

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Цитата(Эроласт @ 30 Jul 2016, 20:43) *
Цитата
Поэтому решил написать чтобы опять не забыть.

Лучше убери 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());


Тогда квадратиков не будет!


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 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\

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



--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 Jul 2016, 08:47
Сообщение #148

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




Цитата(t800 @ 31 Jul 2016, 06:24) *
Надо поставить VirtualBox,
А VMware Player не пойдёт? А если основная система XP, виртуалка нужна?
Цитата(t800 @ 31 Jul 2016, 06:24) *
Поставить туда Windows XP,
А в WinX не соберётся?


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 31 Jul 2016, 09:07 (Сообщение отредактировал t800 - 31 Jul 2016, 13:47)
Сообщение #149

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Цитата(tolich @ 31 Jul 2016, 11:47) *
Цитата(t800 @ 31 Jul 2016, 06:24) *
Надо поставить VirtualBox,
А VMware Player не пойдёт? А если основная система XP, виртуалка нужна?
Цитата(t800 @ 31 Jul 2016, 06:24) *
Поставить туда 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 если хотите быстро собрать и не мучаться. ВОТ


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 03 Aug 2016, 06:42 (Сообщение отредактировал t800 - 03 Aug 2016, 07:22)
Сообщение #150

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Вот постер для следующей кампании сделал:



PS. Героя в этот раз на постере я не нарисовал, так как проводится турнир, и еще неясно кто будет королём осьминогов, потому что по услолвиям турнира героями кампании должены быть победители турнира.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 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);
}



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

Думаю надо передалать Молнию так же как Ледяной Луч и тогда она будет бить нормально и из Посоха героя.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 04 Aug 2016, 17:08
Сообщение #152

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Так ну я передалал Молнию по подобию Ледяного луча.
Теперь она бьет из героя, а не понятно откуда и центра карты.
Но есть проблема. Дело в том что ресурсах нет спрайтов удара молнии.
Наверное в оригинальных героях ее рисовали как-то по другому.

Я вот попробовал сделать спрайт сам. Но стокнулся с проблемой. Что молния должна красиво смотреться под
когда разным углом, у меня получается что под каким-то углом она смотрится еще нормально а под другим совсем плохо.



И как слелать так чтобы под всеми углами нормально было?





--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 05 Aug 2016, 15:18 (Сообщение отредактировал t800 - 16 Aug 2016, 18:04)
Сообщение #153

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Захотел сделать портреты героев для новой кампании Король Осминогов.
Решил начать с портрета Лорда Гарретта


Лорд Гарретт Чародей


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 05 Aug 2016, 16:05
Сообщение #154

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




https://www.google.by/search?q=Осминог


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 07 Aug 2016, 21:06 (Сообщение отредактировал t800 - 16 Aug 2016, 17:54)
Сообщение #155

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Вот переделал немного Чародея Лорда Гарретта
Дал ему артифакт и плащ Волшебника


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Господин Уэф
сообщение 05 Sep 2016, 10:39
Сообщение #156

Это аргумент
Сообщений: 2 655
Спасибо сказали: 2293 раза




А в этой сборке кеш обязательно нужно в определенное место класть или можно путь задать? Просто мой планшет маниакально ставит все во внутреннюю память без возможности переноса на флешку, и я хотел бы, чтобы хотя бы кем не занимал основную память, а лежал на флеш.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 05 Sep 2016, 11:10 (Сообщение отредактировал t800 - 05 Sep 2016, 11:11)
Сообщение #157

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Цитата(Господин Уэф @ 05 Sep 2016, 13:39) *
А в этой сборке кеш обязательно нужно в определенное место класть или можно путь задать? Просто мой планшет маниакально ставит все во внутреннюю память без возможности переноса на флешку, и я хотел бы, чтобы хотя бы кем не занимал основную память, а лежал на флеш.



Можно задать любой путь



так же путь к папке DATA можно прописать вручную в fheroe2.cfg

Код
# path to directory data
data = DATA


где вместо DATA прописасть /Ваши полный путь на флешке к папке/DATA


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Господин Уэф
сообщение 05 Sep 2016, 12:13 (Сообщение отредактировал Господин Уэф - 05 Sep 2016, 19:31)
Сообщение #158

Это аргумент
Сообщений: 2 655
Спасибо сказали: 2293 раза




Наконец решился поставить и попробовать. В качестве кеша использовал рип-версию с сайта old-games. Впечатления в целом положительные, автору респект. Кроме того, есть надежда на дальнейшее развитие, в отличие от оригинальных fh2.

И, да, банальный вопрос - если я не хочу пользоваться загружаемой демой, какие файлы от оригинальной игры мне нужны? Только те, что в папках data и maps?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 05 Sep 2016, 20:58 (Сообщение отредактировал t800 - 05 Sep 2016, 21:07)
Сообщение #159

Разработчик
Сообщений: 534
Спасибо сказали: 221 раз




Цитата(Господин Уэф @ 05 Sep 2016, 15:13) *
И, да, банальный вопрос - если я не хочу пользоваться загружаемой демой, какие файлы от оригинальной игры мне нужны? Только те, что в папках data и maps?


Для работы из оригинальной игры нужны только файлы heroes2.agg и heroes2x.agg из папки DATA и карты из папки MAPS.


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Господин Уэф
сообщение 07 Sep 2016, 11:58
Сообщение #160

Это аргумент
Сообщений: 2 655
Спасибо сказали: 2293 раза




А нельзя сделать, чтобы игровые настройки (скорость, боевая сетка, интерфейс) сохранились? А то приходится при каждом заходе в игру заново выставлять.


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post

11 страниц V  « < 6 7 8 9 10 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 24 April 2024 - 20:48
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика