Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

DF2 :: ФОРУМЫ _ Heroes II _ T-800 Mod

Автор: t800 30 Aug 2015, 09:06

В ближайшее время выйдет мод под названием T-800 Mod.



Постер игры "Герои Меча и Магии II: Т-800 МОD"

В моде изменены:


1. Главная заставка (текущая версия)



2. Изменены некоторые герои




Скачать T-800 Mod (текщая версия) можно здесь http://wiki.kvkozyrev.org/doku.php?id=heroes2-t-800-mod

В дальнейшем появяться и другие дополнения.

Видео с игрой Чапаев против T-800 в T-800 Mod











Видео с главным меню (текущая версия)


Автор: Mantiss 30 Aug 2015, 09:35

Может лучше T.A.N.K.-800 ?

Автор: Day7 30 Aug 2015, 09:49

А тематика мода-то какая?

Автор: Лентяй 30 Aug 2015, 10:49


Автор: t800 30 Aug 2015, 10:58

Цитата
А тематика мода-то какая?



Тематика как у мода The Succession Wars Mod. Главное в моде - кампания Стратегический квест bdragon.gif

у этой кампании вот такой сюжет:

После того, как Петька и Василий Иванович doomguy.gif
спасли галактику и вернулись в Гадюкино, в одном заброшенном сарайчике они находят какую-то машину. Петька и Василий Иванович зашли туда и увидели какие-то кнопочки. Петька нажал первую попавшуюся кнопку, и машина переместила их на другую планету, которяя оказалась планетой Энрот. То есть тогда, когда четыре лорда выбирали, кто будет королём этой планеты. Петька и Василий иванович присоеденились к лорду Айронфисту, и стали драться за него. Но колдун Аламар заметив, какая у Айронфиста подмога, послал к Айронфисту своего героя Агара
terminator.gif , чтобы убить Петьку и Василия Ивановича...

Получаеться, что в моде будут герои Петька и Василий Иванович, возвращены Лорд Хаарт и Артуриус. А тебе что, сыграть в него хочеться?

Автор: t800 30 Aug 2015, 12:06

Также я собираюсь вместо трека главного меню игры поставить вот такую музыку (запишу звук видео)




Мод так сказать, в честь фильма Терминатор 1984 года. И также в честь Чапаева.

Автор: Axolotl 30 Aug 2015, 12:11


Автор: Cthulhu_55 30 Aug 2015, 12:20

От этой темы у меня монитор жиром заплыл(

Автор: t800 30 Aug 2015, 12:49

Цитата(Cthulhu_55 @ 30 Aug 2015, 13:20) *
От этой темы у меня монитор жиром заплыл(


Мод T-800 еще только развивается. А вобще планируется много разных изменений и дополнений. И еще я планирую сделать компанию и тоже включить ее в T-800 Mod

Автор: Vade Parvis 30 Aug 2015, 12:55

cat.gif

Автор: Orzie 30 Aug 2015, 13:00

Автору 11 лет, не пугайтесь. Мяу.

История болезни на форуме handbookhmm.

Автор: Corkes 30 Aug 2015, 13:37


Автор: t800 30 Aug 2015, 14:09

Цитата(Corkes @ 30 Aug 2015, 14:37) *


Вы любите кошек? В T-800 Mod кошек нет зато есть Годзила! good.gif good.gif good.gif


Автор: tolich 30 Aug 2015, 14:34


Автор: Kislolord 30 Aug 2015, 16:17

Господа, разве это не прекрасно?
А то кто ж будет сохранять наследие древних, когда участники HotaCrew постареют?

Автор: Cthulhu_55 30 Aug 2015, 17:38

Цитата(Orzie @ 30 Aug 2015, 17:00) *
Автору 11 лет, не пугайтесь


Это существо ведет себя черезчур неадекватно даже для 11-летнего возраста

Автор: Orzie 30 Aug 2015, 17:53

Напротив, он не побоялся поставить IDA Free и разобраться в необходимых ему операциях.

Главное, чтобы за 7-10 лет успело появиться чувство прекрасного и при этом сохранился энтузиазм.

Автор: Лентяй 30 Aug 2015, 19:06

согласен, учитывая что автор все таки что то сделал ручками, а не в пустую обсуждает свою "великолепнейшую идею которую за меня должны все сделать", как некоторые представители семейства васиньковых, можно надеяться что эта модификация - тренировка на кошках и в будущих версиях мы увидим нечто более интересное!
Например мини-кампанию в которой 2 терминатора (Т800 и Т1000) будут руководить армиями и бороться за предотвращение/наступление расплаты.

Автор: Cthulhu_55 31 Aug 2015, 06:30

Цитата(Orzie @ 30 Aug 2015, 21:53) *
Напротив, он не побоялся поставить IDA Free и разобраться в необходимых ему операциях.


Не, ну это то он молодец.
Но вот что у него появится чувство прекрасного... По крайней мере давича рассказанный им "анекдот", состоящий из малосвязанных фраз, вызывает опасения насчет шансов его появления.
Хотя, он даже вики себе запилил, неплохо так отформатированную. Ну ладно, буду верить в лучшее.

Автор: t800 31 Aug 2015, 09:57

Цитата(Cthulhu_55 @ 31 Aug 2015, 06:30) *
Но вот что у него появится чувство прекрасного... По крайней мере давича рассказанный им "анекдот", состоящий из малосвязанных фраз, вызывает опасения насчет шансов его появления.


Это просто анекдот, на форуме Battle for Wesnoth анекдот всем понравился http://forum.wesnothlife.ru/index.php?topic=102.120 Но давайте про анекдоты в анекдотах, а здесь про T-800 Mod.

В T-800 Mod есть еще дополнительные изменения.

Вербовка кабанов на карте.





Сейчас такое сделано для версий от Бука и для DosBox

Автор: t800 01 Sep 2015, 09:11

Вот для кампании нарисовал карту "Предвратье" это первая карта кампании:




Остальные будут позже

Автор: Эроласт 01 Sep 2015, 19:13

Цитата
Предвратье

Может, все-таки, https://ru.wiktionary.org/wiki/%D0%BF%D1%80%D0%B5%D0%B4%D0%B4%D0%B2%D0%B5%D1%80%D0%B8%D0%B5?

Автор: Orzie 01 Sep 2015, 19:45

Нет, я так понимаю это надмозговая калька с единички. Там первый сценарий назывался Gateway.

Автор: t800 17 Sep 2015, 15:47

Вот сделал постер для мода:



Автор: ivyl 17 Sep 2015, 17:51

Цитата(t800 @ 17 Sep 2015, 15:47) *
Вот сделал постер для моддификации:
Тогда уже и "T-800 modd"

Автор: t800 17 Sep 2015, 18:03

Цитата(ivyl @ 17 Sep 2015, 18:51) *
Цитата(t800 @ 17 Sep 2015, 15:47) *
Вот сделал постер для моддификации:
Тогда уже и "T-800 modd"


Я исправил уже.

Автор: t800 14 Oct 2015, 22:12

Решил в T-800 Mod поставить свою музыку в замок.
Вот сыграл на фортепиано и записал видео.



Осталось только придумать как переделать его в MIDI.

Автор: Лентяй 14 Oct 2015, 22:37

есть проги типа mp3 2 midi conventor, конвертируют, а тебе надо лишь лишние мусорные дорожки удалить и все.

Автор: Orzie 15 Oct 2015, 08:00

Проще эти же ноты в миди прописать. А конвертеров таких не знаю.

Только вот в двойке не обычное миди. Потребуется конвертер MIDI в двушный формат XMI. Найти можно на old-games.ru, тема работы с ресурсами игр в разделе "Мастерская".

Автор: samec 15 Oct 2015, 12:05

Так вот как выглядит Васинька!!! ecstatic.gif

Автор: t800 15 Oct 2015, 15:05

Цитата(samec @ 15 Oct 2015, 15:05) *
Так вот как выглядит Васинька!!! ecstatic.gif

Меня зовут не Васинька.

Автор: samec 15 Oct 2015, 16:16

А кто ты? shock.gif
Доктор Чай? crazy.gif

Автор: t800 15 Oct 2015, 16:20

Цитата(Лентяй @ 15 Oct 2015, 01:37) *
есть проги типа mp3 2 midi conventor, конвертируют, а тебе надо лишь лишние мусорные дорожки удалить и все.


Сейчас попробовал сделать через он лайн конвертор MIDI файл получился со страшным дребезжанием sad.gif



Цитата(samec @ 15 Oct 2015, 19:16) *
А кто ты? shock.gif
Доктор Чай? crazy.gif


Как меня зовут написано на http://wiki.kvkozyrev.org/

Цитата(Orzie @ 15 Oct 2015, 11:00) *
Проще эти же ноты в миди прописать.


А как их прописать?

Автор: Orzie 16 Oct 2015, 11:16

Цитата
А как их прописать?

Сначала программу для работы с миди достань. Там интуитивно всё.

Автор: t800 15 Nov 2015, 15:35

Сегодня ходил в горы! И нашел классное место для замка! Сделал фотки и хочу их вставить фоном в один из замков в T-800 Mod.









В какой замок еще не решил но место мне очень понравилось


Автор: Axolotl 16 Nov 2015, 12:47

Горы не горы, но где это территориально?

Автор: t800 16 Nov 2015, 14:19

Цитата(Axolotl @ 16 Nov 2015, 15:47) *
Горы не горы, но где это территориально?


Это за платиной на речке Талгарка в ущелье налево от шлагбаума по дороге в Алматинский заповедник, мы туда в это воскресенье в поход ходили. И эти скалы мне так понравились что я их решил вставить фоном в замок. Вот.

Автор: Axolotl 16 Nov 2015, 15:09

Цитата(t800 @ 16 Nov 2015, 18:19) *
Цитата(Axolotl @ 16 Nov 2015, 15:47) *
Горы не горы, но где это территориально?


Это за платиной на речке Талгарка в ущелье налево от шлагбаума по дороге в Алматинский заповедник, мы туда в это воскресенье в поход ходили. И эти скалы мне так понравились что я их решил вставить фоном в замок. Вот.


Черт, а мы когда были а Алма-Ате, очень хотели сходить там в горы, но мы были в марте и там случился какой-то природный катаклизм (нам все говорили, что это мы из Сибири с собой привезли) там в марте выпал суровый снегопад, а потом еще и дикая метель началась (даже на трассах движение было перекрыто полностью). Поэтому нам сказали, что и вообще это опасное время схода лавин, а сейчас и тем более лучше не соваться. Так и не сходили.
А так, Алма-Аты - город прикольный, мне очень понравился. И народ там классный и вообще - как-то он сочетал в себе и креативный движняк "столичных" городов и некоторую "уютность" маленьких. При этом какой-то очень позитвный. Но это было в году 98-м, как там сейчас, не знаю.

Автор: Doctor Tea 18 Nov 2015, 22:12


Автор: t800 19 Nov 2015, 07:44

Цитата(Doctor Tea @ 19 Nov 2015, 01:12) *


Зачем пишите про кошек? Эта тема про T-800 Mod! Но если вам нравятся кошки, так вот у меня на форуме есть раздел http://wiki.kvkozyrev.org/forum/viewforum.php?f=19 пишите там про кошек cat_laugh.gif cat_lurk.gif , а здесь про кошек писать не надо эта тема про T-800 mod! terminator.gif

Автор: Cthulhu_55 19 Nov 2015, 08:42

Цитата(Doctor Tea @ 19 Nov 2015, 03:12) *


Кто-то явно не понимает суть явления "васинька". Васинька по идее предлагает свои гениальные и креативные идеи, но требует, чтобы их реализовал кто-нибудь другой. ТС же реализует все свои гениальные идеи самостоятельно. Так что - изыдь.

Автор: t800 13 Mar 2016, 15:28

Новый постер мода:



Надпись "Герои Меча и Магии II" в стиле второй части, и надпись "Т-800 МОD" более реалистичная.

Автор: Лентяй 13 Mar 2016, 15:43

Крастоа happy.gif

Автор: t800 13 Mar 2016, 15:51

Цитата(Лентяй @ 13 Mar 2016, 18:43) *
Крастоа happy.gif


До этого играл в другие игры, даже самый старый шутер себе на сайт в виде онлайн поставил см. http://wiki.kvkozyrev.org/wolf3d/ Blood прошёл. Но вот решил опять модом занятся, и решил постер обновить. Так как старая надпись не по атмосфере Героям II, я и поставил от двойки надпись. Лучше смотрится!

Автор: Vade Parvis 13 Mar 2016, 16:15

А где Годзилла?

Автор: Лентяй 13 Mar 2016, 16:19

эм. а зачем ты только что опять картинку поменял?

Автор: Seiffear 13 Mar 2016, 21:25


Автор: t800 14 Mar 2016, 07:31

Цитата(Лентяй @ 13 Mar 2016, 19:19) *
эм. а зачем ты только что опять картинку поменял?


Потому-что я тень поставил. Надпись в этом случае хорошо видна!

Автор: t800 23 Jun 2016, 19:59

Решил освоить программу NTed. Это программа для Ubuntu, в ней можно рисовать ноты. Нашёл сайт с нотами (на нём и Годизлла brags.gif и всё такое), скачал "Terminator Main Theme" вставил ноты в NTed изменил по своему партитуру и экспортировал в Midi



И получилось вот такая музыка для T800 Mod clapping.gif



А вот и сами ноты


Автор: t800 24 Jun 2016, 10:17

В программе MuseScore (она получше. чем NTed, так как она реже вылетает) изменил тему Лавы из Героев Меча и Магии II.

Теперь в игре будет звучать вот такая музыка!



Чем-то напоминает Blood и войдёт в Т-800 Mod.

Автор: t800 24 Jun 2016, 10:51

Вот ещё из Blood вынул аудиотреки перевел их в ноты вот https://musescore.com/user/10604291/scores/2317306 можете послушать (и даже скачать! agree.gif ) музыку первого уровня (на сайте называется как Blood Main Theme). Не знаю, пойдёт ли в T-800 Mod.

Автор: t800 24 Jun 2016, 21:49

Фух сегодня весь день занимался изменением Midi запакованных в heroes2.agg как оказалось, это совсем не просто
потому что извлечь и отредактировать это только пол дела. Но самая большая проблема оказалось как обратно их запаковать в heroes2.agg! Дело в том что в существующем наборе тулзов есть только программа пребращования
xmi2midi.exe но програмки которая бы преборазовывала бы Midi в XMI которые понимает игра оказывается нет.
Поэтому пришлось гуглить что такое XMI и как можно в него преобразовать Midi, оказолось что
Надо скачать програмку Midpak см. http://www.vgmpf.com/Wiki/index.php?title=Midpak которая умеет преобразвывать midi в XMI поставить ее в Dosbox (потому что програмка 1992 года и работае только под DOS) и ей преобразовать файлы Midi в XMI которые потом запаковщиком надо упаковать обратно в heroes2.agg и в результате у меня получилось вот так


Автор: Господин Уэф 25 Jun 2016, 13:27

А вы говорите - Васинька! Нет уж, тут человек серьезную аналитическую работу проводит, а не тупо «генеальными идеями» испражняется. Пусть и эстетическая составляющая данного мода сомнительна, но полученный опыт будет весьма полезным. Молодец, так держать good.gif

Автор: Axolotl 26 Jun 2016, 10:57

Цитата(Господин Уэф @ 25 Jun 2016, 17:27) *
А вы говорите - Васинька! Нет уж, тут человек серьезную аналитическую работу проводит, а не тупо «генеальными идеями» испражняется. Пусть и эстетическая составляющая данного мода сомнительна, но полученный опыт будет весьма полезным. Молодец, так держать good.gif


Про нашего Терминатора да, давно (и по разным причинам) стало понятно, что не "Васинька". Хотя и было очень похоже в самом начале. И вообще, кмк, человек с немалым потенциалом.

Автор: t800 26 Jun 2016, 17:15

Выложил кампании для T-800 Мod, а также модификацию движка fheroes2



Сскылки для скачивания см. в соседней теме http://forum.df2.ru/index.php?showtopic=11622&pid=725498&st=160&#entry725498

Автор: Эроласт 27 Jun 2016, 11:04

Только, пожалуйста, пиши правильно - кампания. Компания - это организация. Кампания - поход.

Автор: t800 27 Jun 2016, 11:12

Цитата(Эроласт @ 27 Jun 2016, 14:04) *
Только, пожалуйста, пиши правильно - кампания. Компания - это организация. Кампания - поход.


Исправил.

Автор: t800 04 Jul 2016, 12:48

Сделал маленький обзор кампании T-800 на планшете









Автор: Doctor Tea 04 Jul 2016, 20:38

Молодец)
Извини за то, что вначале считал тебя свежекотом.

Автор: t800 05 Jul 2016, 07:10

Цитата(Doctor Tea @ 04 Jul 2016, 23:38) *
Молодец)
Извини за то, что вначале считал тебя свежекотом.


Все нормально!

Если хочешь можешь поставить Анроидную cборку T-800 Mod на свой телефон или планщет и поставить ей пять звездочек на Google Play https://play.google.com/store/apps/details?id=wiki.kvkozyrev.org.fheroes2t800



Автор: t800 10 Jul 2016, 10:54

Посмотрел в кабинете разработчика у Гугла. На T-800 Mod сейчас играет 17 человек. ВОТ! barb_metal.gif barb_metal.gif barb_metal.gif



И еще в комментах люди напсали что они очень хотят русский.
Поэтому я решил нарисовать свои кнопки вместо тех что стоят в ресурсах
и перерисовать заставку на чтобы была полностью на русском языке.
Что я хочу сделать. Просто все кто ставит T-800 Mod на телефоны и планшет оказывается берут
heroes2.agg из разных версий кто-то из английской кто-то из Буки, кто-то из старой DEMO от NW
в итоге кнопки у всех то английские, то кривые от буки см.



То вообще непонятно какие. Поэтому я подумал и решил нарисовать свои кнопки
чтобы у всех кто игравет в T-800 mod на телефонах и планшетах все было одинаковое
вне зависимости от того какой у кого heroes2.agg

Пока что получилось вот так:



Сейчас только одна кнопка моя - это которая Дуэль, остальные пока что от Буки.
И заставка еще не окончательная на Google Play другая пойдет это пробная чтобы посмотреть
сможет ли T-800 mod под Анроидом подгружать мои картинки котрые не входят в heroes2.agg
а просто лежат отдельно.

Автор: Господин Уэф 10 Jul 2016, 15:17

Вот то, что ты оригинальные кампании починил, молодец. Но не мог бы ты запилить еще и версию fh2 без своего мода-кампании, просто с исправлениями старой версии движка? Просто юмор такого сорта не всем интересен и хотелось бы просто чего-то максимально приближенного к оригинальным Г2.

Автор: t800 10 Jul 2016, 16:18

Немного передалал заставку главного меню для Русской версии T-800 Mod





Автор: t800 10 Jul 2016, 17:00

Цитата(Господин Уэф @ 10 Jul 2016, 18:17) *
Вот то, что ты оригинальные кампании починил, молодец. Но не мог бы ты запилить еще и версию fh2 без своего мода-кампании, просто с исправлениями старой версии движка? Просто юмор такого сорта не всем интересен и хотелось бы просто чего-то максимально приближенного к оригинальным Г2.



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

Просто мне дядя Женя объяснил (это он 25$ дал чтобы Google Play взнос заплатить) что Google строго сдедит за
нарушениями авторских прав и что если их нарушаешь то аккаунт просто удаляют и больше заведить не дадют.
Вот.

И он сказал что fheroes2 - это открытый GPL движок это значит я могу в нем все как захочу менять и спокойно на Google Play выкладывать. Это все можно потому что он приналежит сообществу. А оригинальные ресурсы выкладывать нельзя и распространять. Потому что они не открытые.

И что даже скриншоты с оригинальными ресурсами лучше в описании игры не выкладывать потому, что
Ubisoft может по этому поводу может рассердится и поэтому лучше выкладывать скриншоты котрые сам я сделал для Мода и что лучше вообще поробовать собрать рабочую версию со спрайтами чтобы только из открытых ресурсов.
Про спрайты я еще не знаю как буду делать. Сейчас решил переделать основную заставку и кнопки так чтобы они тоже были GPL.

Автор: Господин Уэф 10 Jul 2016, 17:47

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

Автор: t800 10 Jul 2016, 17:58

Цитата(Господин Уэф @ 10 Jul 2016, 20:47) *
А, про галочку не знал, тогда посмотрю.
Касаемо авторских прав - я ж и не предлагал использовать оригинальное название игры, а просто сделать свою версию сборки fh2 под андроид. В маркете существуют две версии сборки vcmi, и никому это не мешает. Ну раз твой мод опциональный и можно поставить fh2 с твоими доработками, но без мода, то вопрос снимается, будем тестить.



В той версии что сейчас выложена (3286.00) там от T-800 Mod только установка Кампания (2Мb) (ее надо ставить обязательно!) иначе кампании работать не будут.

Загрузку альтернативных спрайтов кнопок и главного меню (для русской и английской версий) я только готовлю потому что не все нарисовал и она будет в следующем обновлении и будет ставится как отдельное дополнение.
Так же как сейчас пакет для кампаний или пакет руссификации ставится


Автор: Orzie 10 Jul 2016, 18:06

Кампании-то проверял хоть кто, работают? А бонусы?

Автор: Эроласт 10 Jul 2016, 18:08

Цитата
И он сказал что fheroes2 - это открытый GPL движок это значит я могу в нем все как захочу менять и спокойно на Google Play выкладывать.

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

Это просто чтоб ты знал, для общего развития)

Автор: t800 10 Jul 2016, 19:22

Цитата(Эроласт @ 10 Jul 2016, 21:08) *
Цитата
И он сказал что fheroes2 - это открытый GPL движок это значит я могу в нем все как захочу менять и спокойно на Google Play выкладывать.

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

Это просто чтоб ты знал, для общего развития)


Исходники у меня на сайте любой может скачать. И здесь тоже ссылки есть на мои исходники. Кстати их уже скачали и даже альтерантивную сборку сделали barb_metal.gif barb_metal.gif barb_metal.gif

Их Герхард Стейн скачал который fheroes2 на Google Play все время выкладывет.
И сборку из них сделал и у себя выложил.

См. https://play.google.com/store/apps/details?id=net.sourceforge.fheroes2

Только почему у него белый квадрат получился этого я не знаю. У меня никакого квадрата нет ни VirtualBox-е




Ни на планшете




И то что там у него все на меня ругаются это не правильно. pissed.gif pissed.gif pissed.gif
Свою сборку Герхард Стейн сам собирал почему у него белый квадрат получился этого я не знаю.


ЗЫ Про белый квадрат у Герхарда думаю он наверное что-то с настройками сделал не так потому что в настройках у его сборки этот его белый квадрат можно отключить.




В моей сборке что я cделал никаких белых квадратов нету.
Кто не верит можете проверить сами что никаких квадратов нет ВООБЩЕ!

https://play.google.com/store/apps/details?id=wiki.kvkozyrev.org.fheroes2t800

PS Я понял почему у Герхарда Cтейна получился белый квадрат!!!

Вот здесь это понятно где он мои исходники у себя выложил см. https://github.com/gerstrong/fheroes2plus

Он их назвал fheroes2plus и написал что это Free Heroes 2 with Campaign Mode and more good stuff barb_metal.gif barb_metal.gif barb_metal.gif

А квадрат появился вот почему. Потому что он их изменил!!!
Вот от тут написал: improved delayed when menus are open. Should improve experience on some
см. https://github.com/gerstrong/fheroes2plus

Потому у него и получился БЕЛЫЙ КВАДРАТ!
Так чe это его белый квадрат а не мой. Вот!

Автор: Doctor Tea 11 Jul 2016, 19:55

Цитата(t800 @ 05 Jul 2016, 08:10) *
Цитата(Doctor Tea @ 04 Jul 2016, 23:38) *
Молодец)
Извини за то, что вначале считал тебя свежекотом.


Все нормально!

Если хочешь можешь поставить Анроидную cборку T-800 Mod на свой телефон или планщет и поставить ей пять звездочек на Google Play https://play.google.com/store/apps/details?id=wiki.kvkozyrev.org.fheroes2t800

Скачаю обязательно)

Автор: t800 12 Jul 2016, 18:58

Вот собрал Русскую Версию - Свободные Герои 2 (Т-800 Mod) v1.0 под адроид.
Нарисовал главную заставку, меню и кнопки.

Окончательно Главное заставка T-800 Mod выглядит вот так и в такой версии будет стоять в Google Play





Автор: Doctor Tea 12 Jul 2016, 19:58

Дуэль как в пятерке?

Автор: t800 12 Jul 2016, 20:37

Цитата(Doctor Tea @ 12 Jul 2016, 22:58) *
Дуэль как в пятерке?


Я не знаю, как там в пятёрке, у меня компьютер старый, слабый: бывший дедовский.
Полтора гигабайта оперативки в Ubuntu, и в VirtualBox в Windows XP с 512Mb пятерку не запустится.

Автор: t800 13 Jul 2016, 07:49

Сделал видео Как ставить русский графический T-800 mod на андроид


Автор: t800 13 Jul 2016, 09:13

Сделал новый обзор T-800 mod для Google Play для русской версии на планшете.


Автор: Эроласт 13 Jul 2016, 10:33

Нихера не понятно.
Поработай над дикцией, особенно над звуком Р - ты его с жутким английским акцентом произносишь blink.gif

Автор: t800 13 Jul 2016, 11:00

Неудобно было держать камеру и тыкать пальцем по экрану, а во вторых немного я волновался. А вот с буквой Р, я не знаю. Я через Google Переводчик на английском пишу, а с произношением наверно от того же волнения.

Автор: Эроласт 13 Jul 2016, 11:13

Цитата
Неудобно было держать камеру и тыкать пальцем по экрану

А голову включить? Возьми скотч да примотай куда-нибудь.
Если штатива нету.

Цитата
с произношением наверно от того же волнения.

Ты вместо "р" во многих местах "й" произносишь. Нет, не картавишь, но что-то вроде того.

Автор: t800 15 Jul 2016, 19:20

Решил добававть двух новых героев в T-800 mod. Вот сделал портреты.

Оба герои рыцари:


Сэр Козлевич



Сэр Фурманов

Автор: t800 17 Jul 2016, 09:00

Геймер и фанат Героев Fox Mulder прислал сделанные им на своем планшете обзоры T-800 Mod

Вот они:






Автор: Господин Уэф 17 Jul 2016, 14:21

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

Автор: t800 17 Jul 2016, 16:01

Цитата(Господин Уэф @ 17 Jul 2016, 17:21) *
Ну и обзорщик - что-то бубнит себе под нос, путает слова, а микрофон ему в это время пережевыаает крокодил походу. Информации из такого обзора почерпнуть невозможно.


Зато настоящий фанат Героев! Сам поставил игру на Google Play на свой планшет.
И написал мне на почту обожает героев и хочет сделать обзор по T-800 Mod.
Я сказал давай. Он и сделал. Вот!

Автор: Господин Уэф 17 Jul 2016, 16:42

Да я не спорю, какой он там фанат. Хотя самостоятельная установка игры, как по мне, не является страсть каким подвигом. Я говорю, что как обзорщику ему место в шоу Мэддисона под названием Днище. Этот обзор ничего не дает посмотревшим - автор неразборчиво что-то бормочет, как-то странно читает английские слова (кто угадает, что такое «неу чампаинг»?), а шум стоит такой, как будто снимается все а летящей вертолете. Ну нахрена такой обзор, если вообще ничего не понятно, о чем там говориться!? Я понимаю, ты рад, что тебя заметили, но как говориться, «таких друзей лучше иметь в качестве врагов».

Автор: t800 17 Jul 2016, 18:56

Цитата(Господин Уэф @ 17 Jul 2016, 19:42) *
Да я не спорю, какой он там фанат. Хотя самостоятельная установка игры, как по мне, не является страсть каким подвигом. Я говорю, что как обзорщику ему место в шоу Мэддисона под названием Днище. Этот обзор ничего не дает посмотревшим - автор неразборчиво что-то бормочет, как-то странно читает английские слова (кто угадает, что такое «неу чампаинг»?), а шум стоит такой, как будто снимается все а летящей вертолете. Ну нахрена такой обзор, если вообще ничего не понятно, о чем там говориться!? Я понимаю, ты рад, что тебя заметили, но как говориться, «таких друзей лучше иметь в качестве врагов».



Ну я не знаю. Конечно. можно было бы написать Шустеру пройти кампанию T-800 Mod, но не знаю. согласится ли он...

Автор: t800 19 Jul 2016, 09:09

Составил план дальнеших работ по T-800 mod

1) Сделать Английскую версию главной заставки игры (Сейчас есть только русская)
2) Попробовать портировать новое существо на карту приключения из какого нибудь открытого мода к VCMI
чтобы разоботься как что портируется и сделать новую кампанию с Чапаевым и этим существом

Примечаение: Какое существо я еще не решил но если кто предложит свое сущетво или подскажет какое нибудь существо из VCMI которое хорошо подошло для кампании было бы классно (автор существа и тот кто посоветует будет записан в кредитсах к игре)

3) Хочу попробовать сделать ИИ который бы играл умней. Сейчас в игре ИИ simple и все говорят что он глупый.
Хочу плопробовать сделать ИИ advanced чтоб играл немного умней.

Автор: Эроласт 19 Jul 2016, 14:37

Цитата
Хочу плопробовать сделать ИИ advanced чтоб играл немного умней.

Есть какие-нибудь идеи, как будешь реализовывать?

Автор: t800 19 Jul 2016, 15:23

Цитата(Эроласт @ 19 Jul 2016, 17:37) *
Цитата
Хочу плопробовать сделать ИИ advanced чтоб играл немного умней.

Есть какие-нибудь идеи, как будешь реализовывать?


Думаю просто начать исправлять то на что люди больше всего жалуются.
А жалуются в основном на то что

1) ИИ не выкупает армию в замке
2) Каждую неделю тратит деньги на покупку нулевых героев которые ходят с начальнымим армиями
3) Не накапливает армию чтобы посадить одному герою и пойти напасть на игрока
4) Героями идиотами не нападает на героем игрока даже если армии у них равны.
5) Почти всю игру бездумно занимается сбором шахт

Я посмотрел в файл ИИ который управляет см.


https://sourceforge.net/p/fheroes2/code/HEAD/tree/trunk/fheroes2/src/fheroes2/ai/simple/ai_heroes.cpp
https://sourceforge.net/p/fheroes2/code/HEAD/tree/trunk/fheroes2/src/fheroes2/ai/simple/ai_kingdom.cpp

По тому что я понял.

У ИИ есть три вида геров.

1) Нулевый (только купленный) который идиот и ничего не делает тольк ходит и открывает карту
2) Чуть чуть прокаченый который собирает шахты
3) Охотник который нападает на героев противника и на замки.

Я думаю сделать следующее

ЗЫ Ну а если ИИ с такой форой начнет игрока все время выгрывать тогда дать ему денег чуть поменьше и приплода.


1) поставить условие что замок отстроен до конца то ресурсы собирать и покупать идиотов не нада а надо идти нападать на замки и героев противника.
2) Поскольку ИИ явно хуже играет чем человек дать ему большую денег в неделю и приплода в неделю чтобы выкупал все войка и делил их и оствлял третью часть в замке а две третих сажал героям чтоб не ходили с крестьянами когда в замке невыкупленные паладины
3) Поставить условие нападать на героев игрока даже если у него силы больше (сейчас при таких условиях ИИ вообще не нападает)

Я думаю раз что если ИИ будет болье денег и он все время будет выкупать все войска (и чтобы приплод у него был всегда больше чем у игрока) и будет активно нападать на героев игрока то победить его будет явно сложней и играть людям будет интересней.

Автор: t800 19 Jul 2016, 17:17

Итак с существом для пробного портирования определился!

За что огромное СПАСИБО Axolotl

Это Гиганский Осминог из Замка Пучина. Вот он



И еще он будет главным монстром в новой кампании Король Осминогов. Вот!


ЗЫ Только странно что спрайты такие тяжелые в bmp и по 520 килобай каждый. Может я неправильно распаковывал?
Или тул какой то неправильный? Чтобы распаковать я использовал DefPreview от Сергея Родженко

Автор: Эроласт 19 Jul 2016, 19:16

Цитата(t800 @ 19 Jul 2016, 20:17) *
ЗЫ Только странно что спрайты такие тяжелые в bmp и по 520 килобай каждый. Может я неправильно распаковывал?
Или тул какой то неправильный?


BMP - "сырой" формат, сам по себе он вообще никак не сжимается.
При 24-битной палитре каждый пиксель будет отжирать ровно 24 бита, то есть, три байта. Вот и считай - 450 * 400 * 3 = 540 000, плюс еще всякие заголовки и как раз будет 520 килобайт.

Автор: hippocamus 19 Jul 2016, 20:09

Цитата(t800 @ 19 Jul 2016, 15:23) *
2) Поскольку ИИ явно хуже играет чем человек дать ему большую денег в неделю и приплода в неделю чтобы выкупал все войка и делил их и оствлял третью часть в замке а две третих сажал героям чтоб не ходили с крестьянами когда в замке невыкупленные паладины
Так в двойке вроде бы так и есть! Захвати пустой город врага в понедельник и посмотри, там всех существ невыкупленных будет на 1 больше, чем прирост. Фора такая.
Цитата(t800 @ 19 Jul 2016, 15:23) *
3) Поставить условие нападать на героев игрока даже если у него силы больше (сейчас при таких условиях ИИ вообще не нападает)
И чего ты этим добьёшься? Что ИИ будет регулярно сливать армию? Или ты думаешь, что он меньшей армией одолеет большую? Мне кажется, он этого не сможет сделать, даже если играть с ним в поддавки.


Цитата(Эроласт @ 19 Jul 2016, 19:16) *
При 24-битной палитре каждый пиксель будет отжирать ровно 24 бита, то есть, три байта. Вот и считай - 450 * 400 * 3 = 540 000, плюс еще всякие заголовки и как раз будет 520 килобайт.
А зачем 24-битная палитра? def ведь 8-битную использует!

Автор: t800 19 Jul 2016, 20:43

Цитата(hippocamus @ 19 Jul 2016, 23:09) *
Цитата(t800 @ 19 Jul 2016, 15:23) *
2) Поскольку ИИ явно хуже играет чем человек дать ему большую денег в неделю и приплода в неделю чтобы выкупал все войка и делил их и оствлял третью часть в замке а две третих сажал героям чтоб не ходили с крестьянами когда в замке невыкупленные паладины
Так в двойке вроде бы так и есть! Захвати пустой город врага в понедельник и посмотри, там всех существ невыкупленных будет на 1 больше, чем прирост. Фора такая.
Цитата(t800 @ 19 Jul 2016, 15:23) *
3) Поставить условие нападать на героев игрока даже если у него силы больше (сейчас при таких условиях ИИ вообще не нападает)
И чего ты этим добьёшься? Что ИИ будет регулярно сливать армию? Или ты думаешь, что он меньшей армией одолеет большую? Мне кажется, он этого не сможет сделать, даже если играть с ним в поддавки.


Я спрашивал у игроков они говоря что в двойке все сводится к сложению вычитанию. Т.е. у игрока войска у компьютера войска и вся битва сводится к вычитанию поэтому если компьютер дать неограниченные ресурсы и дать возможнось непадать неограниченное число раз то как бы игрок не играл он все равно проиграет потому что даже с более слабыми войсками но атаковом много раз и используя магию компьютер может уничтожить все войска игрока.

Поэтому если дать компьтеру дать существенный перевес по приплоду и ежедневным ресурсам и поставить ему условия
все время атаковать героев игрока выиграть у него будет сложней даже не смотря на ошибки в битве. Но на них кстати не жалуются. Все жалуются на то что ИИ в fheroes2 не нападает, не выкупает в замке армию а тратит деньги на нулевых героев которые бессмысленно бегают перекрашивают шахты и игнорируют вражеских героев.

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

Автор: Эроласт 19 Jul 2016, 21:05

Цитата
А зачем 24-битная палитра? def ведь 8-битную использует!

Явно не ко мне вопрос)

Автор: t800 20 Jul 2016, 19:04

Вот сделал главное меню для английской версии. Сделал я его так, чтобы Ubisoft не ругался: написал цифру II не римской. а арабской:




Автор: Эроласт 20 Jul 2016, 19:57

Цитата
для английской версии

На русском языке?) Левый нижний угол.

Цитата
Сделал я его так, чтобы Ubisoft не ругался: написал цифру II не римской. а арабской:

Лол, если юбисофт захочет поругаться, то внешний вид числа при названии - последнее, что его заинтересует.

Автор: t800 20 Jul 2016, 20:42

Цитата(Эроласт @ 20 Jul 2016, 22:57) *
На русском языке?) Левый нижний угол.

Лол, если юбисофт захочет поругаться, то внешний вид числа при названии - последнее, что его заинтересует.


С русским словом, это я забыл слой отключить.

Ну по поводу Ubisoft я не знаю. На моей странице игры их Герои самыми первыми стоят в списке похожих:



Я посмотрел, и увидел. что Герои и Меча и Магии они пишут со знаком ®, вот так: Герои® Меча и Магии® II
Поэтому я подумал, что если у них всё ®, тогда надо так написать Heroes2 слитно, чтоб было непохоже.

Автор: hippocamus 20 Jul 2016, 21:22

® не входит в название. Это просто метка, как и (с) и тм.

Автор: t800 20 Jul 2016, 21:59

Цитата(Эроласт @ 20 Jul 2016, 22:57) *
Цитата
для английской версии

На русском языке?) Левый нижний угол.


Вот сделал с надписями на английском




Цитата(hippocamus @ 21 Jul 2016, 00:22) *
® не входит в название. Это просто метка, как и (с) и тм.


Ну не знаю я просто подумал что слово Герои Ubisoft за собой записал потому и поставил ® что это их слово.
Потому я подумал что если писать в названии Герои II будут ругаться и я решил написать Heroes2 вместе, потому что
посмотрел что HeroesLAND тоже пишет слитно наверно потому что Ubisoft ругается.

Автор: Эроласт 20 Jul 2016, 22:46

Юбисофт будет в первую очередь ругаться на копирование игры.
И только потом - на название.
Если вообще будет. Вон heroesland, действительно, сколько лет работает (в том числе с донатом) и всем пофигу.

Автор: hippocamus 20 Jul 2016, 23:20

Вообще, на самом деле, слово "Герои" зарезервировать нельзя - это обычное слово русского языка, и не Юби его придумали, оно использовалось, используется и будет использоваться, хотят они этого или нет. Так что ® после слова "Герои" - понты. А вот насчёт "Меча и Магии" - это да, они могут прицепиться.
(Хотя, в своё время, Microsoft заставили Windows® Commander переименоваться в Total Commander - но то был Microsoft!)
А римская двойка как раз - даже при всех понтах не зарезервирована (ну, такой фигнёй позориться уж и Юбики не стали) - так что твоя арабская - перестраховка; хотя сменить имидж иногда неплохо.

Автор: Господин Уэф 21 Jul 2016, 09:44

Да вон, та же TDMM преспокойно лежит в маркете а трех частях (в четырех, если считать заброшенные Легендарные герои). При этом используется и бренд Might and Magic, и оригинальная графика Героев 3. И всем как-то до лампочки.

Автор: t800 21 Jul 2016, 10:49

Цитата(Господин Уэф @ 21 Jul 2016, 12:44) *
Да вон, та же TDMM преспокойно лежит в маркете а трех частях (в четырех, если считать заброшенные Легендарные герои). При этом используется и бренд Might and Magic, и оригинальная графика Героев 3. И всем как-то до лампочки.


Ну не знаю. Мне дядя Женя сказал чтоб я с Ubisoft не сорился. Потому что если Google мой аккаунт разработчика удалит он сказал, что больше за меня 25$ платить не будет. Вот.

Автор: Господин Уэф 21 Jul 2016, 11:16

Да вряд ли будут прям без разговоров аккаунт удалять. У создателей эмулятор ExaGear были сначала какие-то копирастические заморочки, так их же не удалили.
Ты, в конце концов, просто модифицируешь бесплатный движок, который уже давным давно валяется в интернете и по умолчанию предлагает использовать ресурсы бесплатной демы. Я уж молчу, что игра настолько древняя, что особых доходов Юбикам уже не принесет.

Автор: t800 22 Jul 2016, 15:45

Вот сделал английскую версию с новым меню.



Так же поменял музыку в игре на новую от Harjawaldar за котрую ему огромное
СПАСИБО за то что так ее сыграл ( записал Harjawaldar в кредитсах к игре)


Автор: t800 23 Jul 2016, 13:33

Собрал русскую версию для Google Play с новым русским меню (с надписью с арабской двойкой )
И сделал новый обзор для русской версии игры и кампаний для Google Play


Автор: Эроласт 23 Jul 2016, 14:16

Ты когда видео снимаешь, просматриваешь его потом?
Ну сделал бы хоть музыку потише, а то вообще ничего не слышно.

Автор: t800 23 Jul 2016, 14:31

Цитата(Эроласт @ 23 Jul 2016, 17:16) *
Ты когда видео снимаешь, просматриваешь его потом?
Ну сделал бы хоть музыку потише, а то вообще ничего не слышно.


Я несколько раз снимал. Просто музыку запись из игры берет и трудно регулировать.
То вообще не слышно то громко получается. А я хотел чтобы музыку слышно было.
Потому что музыка красивая.

Автор: Orzie 23 Jul 2016, 16:48

Цитата(Господин Уэф @ 21 Jul 2016, 10:44) *
Да вон, та же TDMM преспокойно лежит в маркете а трех частях (в четырех, если считать заброшенные Легендарные герои). При этом используется и бренд Might and Magic, и оригинальная графика Героев 3. И всем как-то до лампочки.

Эту поделку удаляли из гугл плея минимум трижды. И ещё удалят.

Цитата(Господин Уэф @ 21 Jul 2016, 12:16) *
Да вряд ли будут прям без разговоров аккаунт удалять. У создателей эмулятор ExaGear были сначала какие-то копирастические заморочки, так их же не удалили.

Заморочки прекратились, когда из названия был убран трейдмарк "Heroes 3" и оно вместо "Heroes 3 Runner" стало называться "ExaGear Strategies".

Ты б подразобрался сначала, чем молодому советовать. Он ведь всё на веру примет.

Автор: Эроласт 23 Jul 2016, 18:11

Цитата(t800 @ 23 Jul 2016, 17:31) *
Я несколько раз снимал. Просто музыку запись из игры берет и трудно регулировать.
То вообще не слышно то громко получается. А я хотел чтобы музыку слышно было.
Потому что музыка красивая.

Ну выбирай - либо ты снимаешь, чтоб слушали музыку, либо снимаешь, чтобы слушали твой голос. Компромисса здесь нет.

Автор: Orzie 23 Jul 2016, 19:09

Да и голос, прямо скажем, далёк от дикторского. Если нужно перенести смысловую нагрузку, лучше делать это встроенными субтитрами.

Автор: t800 23 Jul 2016, 19:35

Цитата(Эроласт @ 23 Jul 2016, 21:11) *
Цитата(t800 @ 23 Jul 2016, 17:31) *
Я несколько раз снимал. Просто музыку запись из игры берет и трудно регулировать.
То вообще не слышно то громко получается. А я хотел чтобы музыку слышно было.
Потому что музыка красивая.

Ну выбирай - либо ты снимаешь, чтоб слушали музыку, либо снимаешь, чтобы слушали твой голос. Компромисса здесь нет.


Ну я попробую сделать ещё один обзор, в стиле Шустера. А пока решил что пусть Google Play обзор постоит с громкой музыкой а завтра попробую может еще отснять.

Автор: Господин Уэф 23 Jul 2016, 21:53

Цитата(Orzie @ 23 Jul 2016, 16:48) *
Цитата(Господин Уэф @ 21 Jul 2016, 10:44) *
Да вон, та же TDMM преспокойно лежит в маркете а трех частях (в четырех, если считать заброшенные Легендарные герои). При этом используется и бренд Might and Magic, и оригинальная графика Героев 3. И всем как-то до лампочки.

Эту поделку удаляли из гугл плея минимум трижды. И ещё удалят.

Цитата(Господин Уэф @ 21 Jul 2016, 12:16) *
Да вряд ли будут прям без разговоров аккаунт удалять. У создателей эмулятор ExaGear были сначала какие-то копирастические заморочки, так их же не удалили.

Заморочки прекратились, когда из названия был убран трейдмарк "Heroes 3" и оно вместо "Heroes 3 Runner" стало называться "ExaGear Strategies".

Ты б подразобрался сначала, чем молодому советовать. Он ведь всё на веру примет.

Ну не знаю, сколько раз удаляли TDMM, я первый раз увидел это где-то в начале года, поставил и не заметил, чтобы ее удаляли с маркета, наоборот, обновы регулярно приходят, стало быть, они еще развиваются.
В маркете есть хренова туча игр, в названии которых присутствует и Heroes, и 3, и 2, и 100, их никто не баннит. И создатели эмулятор ExaGear никаких прав изначально не нарушали, они продавали именно эмуль, а не игру. Просто им лень было судиться (а они бы выиграли, в любом случае) и они предпочли сменить вывеску.
Порт под названием fheroes2 валяется в маркете несколько лет, и никого это не колышет.
И не надо цитировать только отрывки моих постов. Я ясно сказал, что free heroes 2 - просто свободный бесплатный движок, который предлагает использовать ресурсы бесплатной демо-версии игры HoMM2. Может использовать ресурсы и полной версии игры, но добывать их надо самому (как вариант - купить).

Автор: hippocamus 23 Jul 2016, 21:57

Цитата(t800 @ 23 Jul 2016, 19:35) *
в стиле Шустера
НЕТ!!!!

Автор: t800 24 Jul 2016, 11:12

Вот попробовал сделать другой обзор (на этот раз в стиле Шустера )
и вставил его в промо ролик на Google Play (вроде слышно получше)


Автор: Эроласт 24 Jul 2016, 11:20

А кто такой Шустер?)
Теперь да, гораздо лучше. Но все равно слова через десять понятны.
Как я понимаю, ты через веб-камеру пишешь? Попробуй... не знаю... на себя ее привязать, если чувствительней не настроить. Я серьезно.
И прогоняй звук через подавление шумов.

Автор: t800 24 Jul 2016, 11:57

Цитата(Эроласт @ 24 Jul 2016, 14:20) *
А кто такой Шустер?)
Теперь да, гораздо лучше. Но все равно слова через десять понятны.
Как я понимаю, ты через веб-камеру пишешь? Попробуй... не знаю... на себя ее привязать, если чувствительней не настроить. Я серьезно.
И прогоняй звук через подавление шумов.


Шустер? Да вот его аккаунт: https://www.youtube.com/channel/UCMBcgf6cZ_iZAhrEl0zYe9A он в основном прохождениями шутеров занимается
А вот с подавлением шумов, я прям не знаю. Я штук 10 записей записал: там меня то неслышно. то прям уши звук режут.
Я счас посмотрел, в настройках Kazam нету подавления шумов.

Автор: Господин Уэф 24 Jul 2016, 12:21

Уши звук режут? Так вот в чем дело gigi.gif

Автор: t800 24 Jul 2016, 17:07

Вот попробовал сделать шумапонижение, но кажется помогло это мало.



Ладно пустай пока этот ролик в Google Play будет а там посмотрим.


Автор: Эроласт 24 Jul 2016, 20:27

Уже лучше. В игре хотя бы слова можно разобрать.
Но в меню вообще ничего не слышно теперь.

Автор: t800 25 Jul 2016, 11:59

ФУХ с обзорами пока хватит! Оказывается это ТАК СКУЧНО делать Оброзы то меня не слышно то музыку. То писк какой то то хрипы. По десять раз переделывать приходится. Вот собрал из трех обзоров один.



И пока хватит! Вот добавлю кампанию с Королем Осминогов и с новыми монстрами их Пучины.
тогда и сделаю новый обзор для Google Play в пока пусть этот будет.

Автор: t800 25 Jul 2016, 23:17

Пробуем вставить монстра из Heroes3 в Heroes2

1) Скачиваем Def Preview v1.1 (см. в приложении к посту)
2) Открываем в Def Preview Def файл с нужными нам спрайтами

Например файл GiantOctopus.def и Замка Пучина Heroes3

3) Извлекаем все изображения в какую нибудь папку (Например в папку GiantOctopus.INC )

4) Скачиваем AggPack v1.2 и IcnPack v1.2

5) Извлекаем изображения Черного Дракона утилитой из ресурсов Heroes2 чтобы использовать как образец (сперва распаковываем Hеroes2.agg AggPack-ом а затем извлекам из нужного INC изображения IcnPack-oм)

6) Смотрим и сравниваем: изображения GiantOctopus размером 450x400 изображения Черного Дракона 258x226




Хотя размеры существ равны просто спрайт в Heroes3 почему то сделан таких больших размеров чтобы вставить в Heroes2 надо его уменьшит, т.е обрезать в чтобы уместить в размер спрайта как у Черного Дракона.

Один спрайт обрезать не трудно для этого надо открыть его в gimp скопировать и вставить в спрайт Черного Дракона. И выровнять его по ценру. Но спрайтов много их больше 100 каждый так делать очень трудно.

Что делать?

7) Нужно использовать утилиту convert в Ubuntu которая работает из командной строки

Подать команду

Код
convert -crop 258x226+96+87 Ocdt0010.bmp newOcdt0010.png


И все! Изображение обрезано так как нам надо.



А если подать команду вот так она обрежет и преобразует все .bmp файлы в папке barb_metal.gif barb_metal.gif barb_metal.gif

Код
convert -crop 258x226+96+87 *.bmp


Программы:
http://wiki.kvkozyrev.org/forum/download/file.php?id=14
http://wiki.kvkozyrev.org/forum/download/file.php?id=15
http://wiki.kvkozyrev.org/forum/download/file.php?id=16

Автор: t800 26 Jul 2016, 08:07

Как пользоваться распаковщиками под Ubuntu

1) Ставим wine такой вот командой

Код
sudo apt-get install wine1.4-i386



2) Скачиваем программы распаковщики из предыдущего поста и разрахивируем их в специально созданную папку HMMutilitys

Код
mkdir ~/HMMutilitys


3) Идем в папку HMMutilitys

Код
cd ~/HMMutilitys


4) Идем в папку где лежит DefPreview

Код
cd DefPreview/


И запускаем его такими камандами

Код
wine DefPreview.exe


Дальше работаем с ним так же как в Windows

Чтобы извлечь файлы из heroes2.agg

Надо перейтий в каталог AggPack

Код
cd ~/HMMutilitys/AddPack/


И запустить распаковщик такой командой

Код
wine H2AggUnpack.exe


Работать с распаковщиком надо так создать папочку heroes2agg положить туда файл HEROES2.AGG
и распаковать такой командой

Код
wine H2AggUnpack.exe /home/danya/heroes2agg/HEROES2.AGG


Результаты распаковки будут в папочке /home/danya/heroes2agg/heroes2

Что можно тут же проверить

Код
ls ~/heroes2agg/HEROES2


Далее чтобы запаковать обратно в новый AGG файл heroes2new.agg надо подать команду

Код
wine H2AggPack.exe /home/danya/heroes2agg/heroes2new.agg /home/danya/heroes2agg/HEROES2/


Чтобы распаковать ICN

Надо перейти в каталог

Код
cd ~/HMMutilitys/IcnPack


И подать команду

Код
wine H2IcnUnpack.exe /home/danya/heroes2agg/HEROES2/DRAGBLAK.ICN


Результат распаковки будет в Папке /home/danya/heroes2agg/HEROES2/DRAGBLAK.ICN.cards/

Код
ls ~/heroes2agg/HEROES2/DRAGBLAK.ICN.cadres/


Чтобы изображения запаковать в ICN обратно надо подать такую команду

Код
wine H2IcnPack.exe  ~/heroes2agg/HEROES2/DRAGBLAK.ICN.cadres/


Результат запаковки можно проверить командой

Код
ls -al  ~/heroes2agg/HEROES2/DRAGBLAK.ICN


Дата и время файла должны будут соотвествовать моменту запаковки.

Цитата
-rw-rw-r-- 1 danya danya 380304 июля 26 10:51 /home/danya/heroes2agg/HEROES2/DRAGBLAK.ICN


Как править и обрезать изорбражения об этом я писал выше. Пока ВСЕ!

PS. Эту инструкцию писал для себя чтобы не забыть как и что надо делать, но если ей кто-нибудь воспользуется тоже буду рад

Автор: t800 26 Jul 2016, 15:03

У меня вопрос а какой файл палеты для монстров из Heroes3 а то когда я для запаковки использую стандартную палету из Heroes2 у меня какие радужные кашмарики вместо монстров выходят sad.gif

Автор: t800 26 Jul 2016, 16:43

Вот сейчас на пробу вставил Осминога. Получается примерно вот так



То что движения резкие это потому что что спрайты через один через пять вставлял потому из-за проблем с упаковщиком и палетой спрайты приходится вручную редактирвать и поэтому я сделал тока сейчас тока десять спрайтов.

Несколько смущает что Осьминог оказывается нарисован четче чем все остальное в игре и на фоне битвы сильны выделяется.

Автор: t800 27 Jul 2016, 07:47

Не могу разобраться почему упаковщик с палетой от Сергея Родженко не может правильно сделать цвета при упакове спрайтов Осьминога. Сейчас попробовал вставить в упаковщик другую палету. Цвета у спрайтов поменлялись. Т.е. вроде это палета цвета меняет. Тогда почету палета что идет в комплекте упаковщика делает все цвета спайтов Осьминога не правильными. Другие же спрайты она нармально пакует. Или я не понимаю как работает палета?

Автор: Эроласт 27 Jul 2016, 09:06

Цитата
Несколько смущает что Осьминог оказывается нарисован четче чем все остальное в игре и на фоне битвы сильны выделяется.

Ну разумеется, осьминог - рендер, а остальные - пиксель-арт. Тебе же говорили, что существа из тройки не будут в двушке нормально смотреться.
Если уж совсем без вариантов, попробуй прогнать через imagemagick, подкрутить яркость и зернистость:
Код
$ mogrify -path "../frames-edited" -modulate 85 +dither -posterize 10 *.jpg

Автор: t800 27 Jul 2016, 09:18

Цитата(Эроласт @ 27 Jul 2016, 12:06) *
Цитата
Несколько смущает что Осьминог оказывается нарисован четче чем все остальное в игре и на фоне битвы сильны выделяется.

Ну разумеется, осьминог - рендер, а остальные - пиксель-арт. Тебе же говорили, что существа из тройки не будут в двушке нормально смотреться.
Если уж совсем без вариантов, попробуй прогнать через imagemagick, подкрутить яркость и зернистость:
Код
$ mogrify -path "../frames-edited" -modulate 85 +dither -posterize 10 *.jpg



Спасибо! Но проблема с цветами при упакове в heroes2mod.agg все равно остается почему палета котрая идет в компалекте упаковщико портит цвета у Осьминога и как с эти бороться?

Автор: Эроласт 27 Jul 2016, 09:28

Цитата(t800 @ 27 Jul 2016, 12:18) *
Спасибо! Но проблема с цветами при упакове в heroes2mod.agg все равно остается почему палета котрая идет в компалекте упаковщико портит цвета у Осьминога и как с эти бороться?

Это не ко мне вопрос, я героев не модил ни разу.

Автор: t800 27 Jul 2016, 12:27

Так вроде стало понятней в чем проблема. Запишу что понял чтобы не забыть.
Проблема не в файле палитры в упаковщике он работает нормально а в настройке цветов в спрайте Осминога.

Если взять Оригинальный спрайт Осминога из Пучины и без изменений запаковать его в INC (или изменить его размер командой crop) то получается вот так

Если взять оригинальный спрайт Осминого из Пучины открыть его в редактора выделить все и вставить в спрайт Черного Дракона из HMM2 из сохранить его (а потом изменить сохраненного спрайта командой CROP ) то получается вот так



T.e. проблема в насткройках цветов Спрайта Осминого. Потому что если отрыть в редакторе спрайт Черного Дракона, в другом окне отрыть спрайт Осминога, выделить все и вставить в спрайт Черного Дракона, сохранить получанный спрайт и запаковать. В игре получатается все нормально.


Видимо нужно чтобы у спрайта были настройки цветов как у спрайта Черного Дракона. Когда копируешь и втавляешь в дракона они получаются. Если просто вставляешь или обрезаешь они остаются те котрые изначально и цвета не правильно отражаются.

Теперь надо придумать как сделать так чтобы не надо было копировать и вручную вставлять каждый спрайт в спрайт дракона и сохрянять. А найти команду чтобы она это делала автоматически! good.gif

Потому что спрайтов много (на одного монстра 300-400 штук) и каждый так вручную вставлять чтобы изменить его настройки это долго.

Автор: t800 27 Jul 2016, 13:06

Так сейчас посмотрел у оригинальных спрайтов из Пучины

Глубина цвета: 24

У спрайтов которые нормально вставляются

Глубина цвета: 8

Может быть в этом все дела. Какой командой можно поменять глубину цвета?




Автор: Эроласт 27 Jul 2016, 14:01

А какой формат-то? png/bmp?

Автор: t800 27 Jul 2016, 15:22

Цитата(Эроласт @ 27 Jul 2016, 17:01) *
А какой формат-то? png/bmp?


BMP но у меня уже получилось. Спасибо за совет Владимиру с HandBookHMM!

Я поставил в wine Photoshop 8.0 (Всем рекомендую!)

И сперва открыл спрайт с драконом и сохранил его палитру. И поставил ее как Пользовательскую. А потом просто открыл спрайт Осминога поставил у него Изображение->Режим->Индексированные цвета и просто сохранил его. Проверил все нормально. Тогда просто записал в Photoshop cценарий для пакетной обработки. Чтобы он открывал все файлы из папки и менял у них режим, запустил пакетную обработку и Photoshop (Файл->Автоматизация->Пакет) и он поменял мне все спрайты Осминога.

Вставил наугад пробный спрайт Осминога все нормально отображается.



http://wiki.kvkozyrev.org/forum/download/file.php?id=17

Автор: t800 27 Jul 2016, 20:52

Цитата(Эроласт @ 27 Jul 2016, 12:06) *
Цитата
Несколько смущает что Осьминог оказывается нарисован четче чем все остальное в игре и на фоне битвы сильны выделяется.

Ну разумеется, осьминог - рендер, а остальные - пиксель-арт. Тебе же говорили, что существа из тройки не будут в двушке нормально смотреться.
Если уж совсем без вариантов, попробуй прогнать через imagemagick, подкрутить яркость и зернистость:
Код
$ mogrify -path "../frames-edited" -modulate 85 +dither -posterize 10 *.jpg



Я посмотрель у всех спрайтов в HMM2 есть черная граница. У Осминогов нет поэтому они смотрятся странно.

Попробовал добавить границу через Photoshop как обводку в 1 пк. вроде Осминоги стали больше теперь похожи на двушных монстров.




Автор: Orzie 28 Jul 2016, 08:09

Быстро допёр, молодец. Я думал, будет дольше.

Автор: t800 28 Jul 2016, 10:01

Цитата(Orzie @ 28 Jul 2016, 11:09) *
Быстро допёр, молодец. Я думал, будет дольше.


Просто мне Владимир с HandbookHMM подсказал. Сказал что надо Photoshop поставить и объяснил как в нем менять палету у спрайтов.

Автор: Corkes 28 Jul 2016, 13:39

Цитата
Нынешняя версия "Свободных героев" (именно русской раскладкой) поддерживает игру в кампанию, русифицирована, неплохо оптимизирована и уделывает официальное издание "третьих" от Ubisoft по всем статьям. Обычный казахстанский школьник оказался талантливее франзузской шоблы с просторными офисами и кондиционерами. Вот такие чудеса.

Цитата
Вот в "Свободных героев" я с удовольствием играю на телефоне, не испытывая никакого дискомфорта.

http://tv-games.ru/forum/showthread.php?t=6097&page=999

Обзорщик не ахти какой, да, но версия игры уже ушла в массы...

Автор: t800 28 Jul 2016, 13:48

Цитата(Corkes @ 28 Jul 2016, 16:39) *
Цитата
Нынешняя версия "Свободных героев" (именно русской раскладкой) поддерживает игру в кампанию, русифицирована, неплохо оптимизирована и уделывает официальное издание "третьих" от Ubisoft по всем статьям. Обычный казахстанский школьник оказался талантливее франзузской шоблы с просторными офисами и кондиционерами. Вот такие чудеса.

Цитата
Вот в "Свободных героев" я с удовольствием играю на телефоне, не испытывая никакого дискомфорта.

http://tv-games.ru/forum/showthread.php?t=6097&page=999

Обзорщик не ахти какой, да, но версия игры уже ушла в массы...


Cпасибо! Только если по правде, то надо было написать, что мне помогали на DF2 и HandBookHMM. Без помощи я бы ничего не сделал.

Автор: Corkes 28 Jul 2016, 13:51

Не я ж писал обзор, просто tv-games.ru по очень старой привычке посещаю. Наткнулся, прочитал.

Автор: t800 29 Jul 2016, 18:57

Теперь можно поиграть во Free Heroes II с CD саундтреком! Сегодня я сделал пак саундтреков из CD версии. Правда, присутствуют некоторые глюки: например, в замках конец немного урезан, но это связано с тем, что OVC конвертирует не так уж и прекрасно, из-за чего CD Экстру не ждите. Но всёж таки это гораздо лучше, чем просто MIDI! Ниже идёт список саундтреков, по такому порядку, по какому они идут во Free Heroes II:

02.ogg - Тема Битвы (1)
03.ogg - Тема Битвы (2)
04.ogg - Тема Битвы (3)
05.ogg - Замок Варвара
06.ogg - Замок Волшебницы
07.ogg - Замок Чернокнижника
08.ogg - Замок Чародея
09.ogg - Замок Некроманта
10.ogg - Замок Рыцаря
11.ogg - Тема Лавы
12.ogg - Тема Пустоши
13.ogg - Тема Пустыни
14.ogg - Тема Снега
15.ogg - Тема Болота
16.ogg - Тема Моря/Побережья
17.ogg - Тема Земли (Грязи)
18.ogg - Тема Травы
23.ogg - Карта клада
28.ogg - Ход ИИ
29.ogg - Победа в бою
30.ogg - Проигрыш в бою
42.ogg - Главная тема

Все замки взяты с CD версии Цены Верности. Всё остальное (кроме главной темы) взято из оригинальной игры. В роли Главной Темы звучит трек из фильма Зловещие Мертвецы. Он больше всего подходит к изображению выбора игры, так как там подземелье, скелет, и всё это под зловещую-напряжённую музыку...

Вот инструкция по использованию:

Цитата
1. Распаковать архив по адресу (пример из Linux):

Код
~/fheroes2/files/music/


2. Открыть fheroes.cfg и поставить вот такие настройки музыки:

Код
music = ext


3. Запускаем игру и играем!


https://yadi.sk/d/W_BFWT8-tjzkA

К сожалению это неофициальный пак, и его нельзя выложить на Google Play, но надеюсь, что скоро создам другие саундтреки, которые не хуже оригинальных, и их можно будет выложить.

Автор: Эроласт 29 Jul 2016, 19:36

Цитата
1. Распаковать архив по адресу (пример из Linux):

Код
home/danya/fheroes2/files/music/

А можно по-другому, без Дани? smile.gif Ну хотя бы так:
Код
~/fheroes2/files/music

Автор: t800 29 Jul 2016, 19:52

Цитата(Эроласт @ 29 Jul 2016, 22:36) *
Цитата
1. Распаковать архив по адресу (пример из Linux):

Код
home/danya/fheroes2/files/music/

А можно по-другому, без Дани? smile.gif Ну хотя бы так:
Код
~/fheroes2/files/music



Можно. Просто я из заметки которую я для себя чтобы не забыть делал скопировал.

ЗЫ Исправил на ~/

Автор: t800 30 Jul 2016, 08:41

Собрал Турнирную версию для Windows специально для ТУРНИРА T-800 на HandBookHMM

См. http://handbookhmm.ru/forum/viewtopic.php?f=43&t=444&p=14660#p14660

Пользуясь случаем приглашаю всех любителей Героев принять участие в Турнире T-800

Проходящем на HandBookHMM с 1 августа 2016 по 30 сентября 2016 (включительно!)

http://handbookhmm.ru/forum/viewtopic.php?f=43&t=444

Автор: t800 30 Jul 2016, 15:30

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

Когда собираешь под 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

Цитата
Что эти строчки делаю не знаю

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

Цитата
Что это значит тоже не понятно

Что именно непонятно? Тут же все по словам читается. Сначала создаются переменные TARGET и MAKE, затем описываются задачи all (дефолтная задача) и clean (можешь вызвать ее с помощью make clean).

Цитата
почему оно все должно быть равно единицам не знаю

Единица значит true. Ноль значит false.

Автор: t800 30 Jul 2016, 16:54

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

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


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

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

Автор: Эроласт 30 Jul 2016, 17:43

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

Лучше убери MINGW из проверки и не трахай себе мозг.

Автор: t800 30 Jul 2016, 20:35

Цитата(Эроласт @ 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());


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

Автор: t800 31 Jul 2016, 06:24

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

Чтобы собрать сборку под Windows.


1) Надо поставить VirtualBox,

2) Поставить туда Windows XP,

3) Потом в WindowsXP cкачать архив https://sourceforge.net/projects/t800-mod/files/mingw-build-env-win32-20111117.zip/download

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\

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


Автор: tolich 31 Jul 2016, 08:47

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

Автор: t800 31 Jul 2016, 09:07

Цитата(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 если хотите быстро собрать и не мучаться. ВОТ

Автор: t800 03 Aug 2016, 06:42

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



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

Автор: t800 03 Aug 2016, 19:35

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



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

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

Автор: t800 04 Aug 2016, 17:08

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

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



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




Автор: t800 05 Aug 2016, 15:18

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


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

Автор: tolich 05 Aug 2016, 16:05

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

Автор: t800 07 Aug 2016, 21:06

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

Автор: Господин Уэф 05 Sep 2016, 10:39

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

Автор: t800 05 Sep 2016, 11:10

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



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



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

Код
# path to directory data
data = DATA


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

Автор: Господин Уэф 05 Sep 2016, 12:13

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

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

Автор: t800 05 Sep 2016, 20:58

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


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

Автор: Господин Уэф 07 Sep 2016, 11:58

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

Автор: t800 07 Sep 2016, 15:01

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


В панели настроек можно задать сохранение сетки и интерфейса




А скорость можно прописать в fheroes2.cfg

Код
# heroes move speed: 0 - 10
heroes speed = 10
#
# AI move speed: 0 - 10
ai speed = 10
#
# battle speed: 0 - 10
battle speed = 10
#
# scroll speed: 1 - 4
scroll speed = 4

Автор: t800 10 Sep 2016, 09:46

В школе в понедельник будет в нашем классе класный час (6 урок dunno.gif ), и мне захотелось пригласить ребят на турнир. Для этого я приготовил листовку, которую я там, на классном часу, раздам. Вот она:


Автор: t800 04 Oct 2016, 17:50

На прошлой неделе Нашу Школу показывали по TВ и это кусочек где со мной разговаривают


Автор: DrSlash 04 Oct 2016, 21:53

Ролик шедевр biggrin.gif BolgenOS 2.0

Автор: tolich 04 Oct 2016, 22:37

Цитата(DrSlash @ 04 Oct 2016, 21:53) *
Ролик шедевр biggrin.gif BulgenOS 2.0
BolgenOS!

Автор: DrSlash 04 Oct 2016, 23:11

fixed.

Автор: t800 05 Oct 2016, 00:02

Цитата(tolich @ 05 Oct 2016, 01:37) *
Цитата(DrSlash @ 04 Oct 2016, 21:53) *
Ролик шедевр biggrin.gif BulgenOS 2.0
BolgenOS!


Не знаю, а мне понравилось только уши получилсь как у Эльфа, а то что тетенька от себя наговорила, тут уж dunno.gif
я же ей сказал, что сделал только одну кампанию и изменил портреты, а она наверно вобще не поняла, что такое T-800 mod и название сборки не правильно назвала вместо Свободные Герои 2 (T-800 Mod) сказала просто Свободные Герои, а это сборка Герхарда Стейна так называется, получается что она про его сборку рассказывает а не про мою! Ну да ладно.

Автор: t800 05 Oct 2016, 00:42

Цитата(tolich @ 05 Oct 2016, 01:37) *
Цитата(DrSlash @ 04 Oct 2016, 21:53) *
Ролик шедевр biggrin.gif BulgenOS 2.0
BolgenOS!


ЗЫ Почитал про BolgenOS на Лукморье... Хммм... Вроде никаких копирайтов не вырезал. Почему 2.0? Или потому про учителя информатики сказал так там же директор и классный руководитель сидели рядом.

Автор: DrSlash 05 Oct 2016, 00:45

t800, потому что журналисты пытаются придать сенсационности и раздуть новость там, где её в общем-то и нет.

Автор: t800 05 Oct 2016, 01:27

Цитата(DrSlash @ 05 Oct 2016, 03:45) *
t800, потому что журналисты пытаются придать сенсационности и раздуть новость там, где её в общем-то и нет.


Понятно, как Крош в Смешариках:


Цитата
Крош: Всё дело в заголовке! Заголовок должен быть такой, чтобы страсть как интересно было узнать, что же там такое написано! Например: «РАДУГА-МУТАНТ»! Или: «Последняя радуга в жизни», вот!
Нюша: (читает газету) «Катастрофа на качелях». Хи-хи-хи. «Ничто не предвещало трагической развязки. Нюша беззаботно качалась на качелях, как вдруг…» ЧТО?! (в доме Карыча, обустроенном под редакцию) Что вы тут напечатали?! Какая катастрофа? Какая трагическая развязка?! Это всё неправда!

Крош: «Правда» — это другая газета, а наша — чтобы скучно не было!


ЗЫ Ну и пускай если так им нравится. Если бы еще сборку хотя б назвали правильно, а то получилось раздули сборку Герхарда, а в ней ни одна кампания не работает и половина карт вылетает.

Автор: t800 05 Oct 2016, 11:59


Вот сделал портрет главного героя кампании Король Осминогов в Золотом Шлеме

Sir Aratzev (Рыцарь)



О герое: Sir Aratzev получил Золотой Шлем за Блистальную победу над Терминатором за 84 дня.


Автор: t800 06 Oct 2016, 07:55

На HandBookHM когда обсуждали прошедший турнир решили, что надо сделать в игре сделать турнирную вкладку в игру и каждый месяц делать обновления и добавлять в нее новую турнирую карту а результаты прошедшего турнира на автомате выводить в таблице с игрой.

Я могу сделать кнопку ТУРНИР чтобы из нее запускалась одиночная турнирная карта (сделанную из сейва) наприме из папки turnir (это я знаю как сделать) и могу переделать в кнопку ТУРНИР кнопку Сетевая Игра (которая все равно не работает и на которую все ругаются что кнопка есть а игра по сети не работает), просто с отсылкой сейвов не знаю как быть.

Нада сделать чтобы из самой игры можно было послать финальный сейв и тогда каждый кто сыграл ТУРНИРНУЮ карту стал бы учасником и чьи сейвы бы пришли до окончания турнира те бы засчитвались, или еще сделать чтобы игра делала проверку на время окончания турнира и если турнир закончился сейвы не посылала. Просто не могу понять как сделать чтобы сейвы из игры на e-mail посылались.

Автор: t800 06 Oct 2016, 10:42

Так ну я вот нашел какой то пример в SDL 1.2 как посылать сообщение "Hello!" по сети


Код
// send a hello over sock
//TCPsocket sock;
int len,result;
char *msg="Hello!";

len=strlen(msg)+1; // add one for the terminating NULL
result=SDLNet_TCP_Send(sock,msg,len);
if(result<len) {
    printf("SDLNet_TCP_Send: %s\n", SDLNet_GetError());
    // It may be good to disconnect sock because it is likely invalid now.
}


Но мне надо послать не "Hellо!" а файлы autosave.sav, fheroes2.hgsc и fheroes2.hgs
но как послать файлы в примерах ничего не написано. Как это сделать?

Автор: DrSlash 06 Oct 2016, 16:10

А зачем весь сейв? Тогда уж какие-то основные переменные -- число ходов, сумма первичных параметров сильнейшего героя, ресурсы. А тут уже не должно быть каких-то принципиальных отличий от "Hello!".

Автор: t800 06 Oct 2016, 16:23

Цитата(DrSlash @ 06 Oct 2016, 19:10) *
А зачем весь сейв? Тогда уж какие-то основные переменные -- число ходов, сумма первичных параметров сильнейшего героя, ресурсы. А тут уже не должно быть каких-то принципиальных отличий от "Hello!".


Сейв нужен чтобы ведущий турнира мог сделать проверку и переиграть, вон на прошедшем турнире Qwerty вообще сказал надо проверять сейвы за каждый день (на начало и на конец дня) потому, что многие игроки открывают сейв в HEX редакторе меняют их на мультиплеер, а потом ходят за компьюр так чтобы тот проиграл.

Можно было бы сделать чтобы просто посылалось сообщение "Турнирную карту выиграл "Имя Игрока" за "Столько-то" дней", но ведущему такой вариант не подходит надо чтобы кроме сообщения отсылались файлы autosave.sav, fheroes2.hgsc и fheroes2.hgs , ну или хотя бы только autosave.sav

Автор: feanor 06 Oct 2016, 16:26

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

Автор: t800 06 Oct 2016, 16:39

Цитата(feanor @ 06 Oct 2016, 19:26) *
Вот эта штука, которую ты процитировал, это отнюдь не посылка на емэйл, это просто низкоуровневый обмен сетевыми данными.
Конечно, можно поверх этой штуки реализовать мыльник вручную, SMTP - не самая сложная штука, но лучше все же что-то готовое
например, консольный мыльник в папке и вызов уже его


Консольный мыльник это почтовая программа которая из командной строки работает? А есть такой чтоб работал на Linux, Windows и Andriod и чтоб его можно было в сборку для Google Play включить и чтоб из-за этого никто не стал ругаться?

Автор: t800 06 Oct 2016, 17:18

Так в гугле по запросу отправить письмо из консоли Android я нашел только одну программу. Она называется Curl. Вот она https://curl.haxx.se/download.html и вроде она есть и под Linux и под Windows, а как мне из игры команды ей подать чтобы она e-mail c файлами отправила?

Автор: t800 06 Oct 2016, 20:51

Так кажется разобрался как запускать другую программу из игры с помощью system() вот так

Код
#include <stdio.h>      
#include <stdlib.h>    

int main ()
{
system ("И тут можно написать любую  команду для консоли");
}



Осталось токлько разобраться какой командой надо запускать Curl чтоб он отравлял на e-mail файлы autosave.sav и другие и задача решена! barb_metal.gif barb_metal.gif barb_metal.gif И я этому так обрадовался что даже записал новый урок по Программированию на С++ про команду system() brags.gif


Автор: t800 07 Oct 2016, 00:02

Так вроде нашел команды для Ubuntu как отправлять файл по е-mail Curl-ом запишу чтобы не потерялись

Сперва:

Код
echo -e "MIME-Version: 1.0 (mime-construct 1.9)\nContent-Type: application/zip\nContent-Transfer-Encoding: base64" > email-contents.txt cat autosave.sav |base64 >> email-contents.txt


Потом

Код
curl --connect-timeout 15 -v --insecure "smtp://smtp.example.com:25" -u "username:password"
\ --mail-from "sender@example.com" --mail-rcpt "destination@example.com"
\ -T email-contents.txt --ssl

Автор: t800 07 Oct 2016, 22:03

Так ну вроде получилось письмо с сейвом из Ubuntu отосласть

Вот правильные каманды



Код
echo -e "Subject: Turnir\n MIME-Version: 1.0\n Content-Disposition: attachment;\n filename="autosave.sav"\n Content-Transfer-Encoding: base64\n Content-Type: application/octet-stream;\n name="autosave.sav"\n" > email-contents.txt


Потом

Код
base64  autosave.sav >> email-contents.txt


B конце

Код
curl "smtp://wiki.kvkozyrev.org:25" --mail-from "t800@kvkozyrev.org" --mail-rcpt "t800@kvkozyrev.org"  -T email-contents.txt


И тогда на почту приходит письмо с автосейвом.

ЗЫ Правда работают этм каманды только под Ubuntu тепеть надо разоботься как это сделать в Windows и Android

Автор: t800 08 Oct 2016, 14:34

Скачал в Andriond 5.0 который у меня стои в Virtualbox curl который собран для Andriod https://curl.haxx.se/download.html

Хмм... Честно говоря как то не очень получается... Во-первых оказалось что с SDcard и папки где лежат игры его запускать нельзя потому что прав у него нету и если пыпасться поставить права командой

Код
chmod 777 curl


Права не устанавливаются. Я погуглил оказывается в Andriond для всего что лежит на SDcard права заданы только на чтение-запись и чтобы curl запустился надо положить его в папку system/bin

Тогда я cкопироал curl в папку system/bin

Код
cp curl system/bin


Присвоил ему права на выполнение

Код
chmod 777 /system/bin/curl



запусил камандой curl и получил ошибку

Код
sh:system/bin/curl: not executable: 32 ELF file


Погуглил ошибку оказалось что это значит что программа собрана без поддержки x86 budo.gif

Хммм... Как то не очень хорошо с этим curl под Аndriod получается


И как быть? Как я понимаю: можно попробовать собрать свой curl под Android из исходников так чтобы нужные мне устройства он поддерживал потому что исходники curl на https://curl.haxx.se/download.html есть

И еще я подумал а может просто попробовать скопировть из curl те каманды где он отправляет e-mail и
пусть игра сама письмо отравляет без всякого curl ? Потому что из папки где лежат файлы игры curl работать не будет и получается надо делать еще установку curl и в папку system/bin его кидать и права ему как-то присваивать, а чтобы это сделать надо root быть и как это сделать чтобы при установке на чужих устройствах получалось не совсем понятно.

Автор: t800 08 Oct 2016, 16:51

Так вроде получилось вручную отослать autosave.sav Curl-ом из под Andriond



Для пришлось взять Curl из другой сборки (более новой) и

И командами cейв послать удалось и из под обычного пользователя. Единственная проблема что для того чтобы это сделать пришлось сперва рутом менять права файлов сперва самого curl


Код
chmod 777 system/xbin/curl


потом файла

Код
chmod 777 lib/libcurl.so.5


Соотвественно вопрос а можно как то сделать чтобы при людям не нужно было менять права этих файлов из под root потому что root он не у всех есть. У меня на планшете например нет и root есть только в VirtualBox-e

Автор: t800 09 Oct 2016, 07:18

Так я попробовал сделать следующее. В гугле по запросу "где лежат исполняемые файлы программ Androind" я прочитал что они лежат в

Код
data/app/



тогда я скопировал файл curl в data/app/wiki.kvkozyrev.org.fheroes2-t800/


Код
cp system/xbin/curl  data/app/wiki.kvkozyrev.org.fheroes2-t800/


И попробовал его оттуда запустить

Код
./data/app/wiki.kvkozyrev.org.fheroes2-t800/curl


и он запустился нормально

тогда я туда же переложил из папки lib файл libcurl.so.5

Код
mv lib/libcurl.so.5 data/app/wiki.kvkozyrev.org.fheroes2-t800/


и попробовал опять запустить curl камандой

Код
./data/app/wiki.kvkozyrev.org.fheroes2-t800/curl


но он не запустился сказав

Код
CANNOT LINK EXECUTABLE DEPENDENCIES:  library "curl.so.5" not found


Что делать? Почему curl не видит curl.so.5 хотя она лежит с ним в одной папке?
И куда ее надо положить так чтобы для этого не нужно было прав root но так чтобы curl ее видел?

Автор: feanor 09 Oct 2016, 11:28

Да, чот я не сообразил за мультиплатформенность.

Цитата
И еще я подумал а может просто попробовать скопировть из curl те каманды где он отправляет e-mail и
пусть игра сама письмо отравляет без всякого curl ?

Тогда надо вручную реализовывать хотя бы на тех же SDL-шных сокетах (чтобы лишний раз не мудохаться с той же кроссплатформенностью) протокол https://ru.wikipedia.org/wiki/SMTP.
Он не особенно сложный, в принципе, текстовое общение с сервером да base-64 кодирование файлов, ну и вытащить его реализацию можно много откуда, но оно точно надо?

Автор: t800 09 Oct 2016, 12:50

Цитата(feanor @ 09 Oct 2016, 14:28) *
Да, чот я не сообразил за мультиплатформенность.
Цитата
И еще я подумал а может просто попробовать скопировть из curl те каманды где он отправляет e-mail и
пусть игра сама письмо отравляет без всякого curl ?

Тогда надо вручную реализовывать хотя бы на тех же SDL-шных сокетах (чтобы лишний раз не мудохаться с той же кроссплатформенностью) протокол https://ru.wikipedia.org/wiki/SMTP.
Он не особенно сложный, в принципе, текстовое общение с сервером да base-64 кодирование файлов, ну и вытащить его реализацию можно много откуда, но оно точно надо?


Ну VDV_forever сказал что надо сделать турнирную вкладку в игру и чтобы можно было каждый месяц добавлять по одиночной турнирной карте, а Qwerty вообще сказал что для честного судейства надо так сделать чтоб ведущему могли отсылалист турнирыне сейвы на начало и конец дня.



Цитата(feanor @ 09 Oct 2016, 14:28) *
Да, чот я не сообразил за мультиплатформенность.
Цитата
И еще я подумал а может просто попробовать скопировть из curl те каманды где он отправляет e-mail и
пусть игра сама письмо отравляет без всякого curl ?

Тогда надо вручную реализовывать хотя бы на тех же SDL-шных сокетах (чтобы лишний раз не мудохаться с той же кроссплатформенностью) протокол https://ru.wikipedia.org/wiki/SMTP.
Он не особенно сложный, в принципе, текстовое общение с сервером да base-64 кодирование файлов, ну и вытащить его реализацию можно много откуда.


Значит получается будет проще попробовать сделать самому за примера из SDL, чем пытаться этот curl во все сборки запихнуть и настроить чтоб нормально работал?

Автор: t800 09 Oct 2016, 13:47

Вот нашел в Google исходник какого то клиента на SDL_net


Код
// SDL_net Client | r3dux.org | 14/01/2011

// Includes for non-blocking keyboard input
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <termios.h> // If we do not include termios.h the client WILL compile but it WILL NOT WORK!
#include <unistd.h>
#include <fcntl.h>

#include <iostream>
#include <string>

#include <SDL_net.h>

using namespace std;

const unsigned short PORT        = 1234; // The port we are connecting to
const unsigned short BUFFER_SIZE = 512;  // Size of our message buffer (i.e. maximum length of characters in a message)

struct termios orig_termios;

// Function to reset the terminal to blocking mode
void reset_terminal_mode()
{
    tcsetattr(0, TCSANOW, &orig_termios);
}

// Sets the terminal mode to conio mode
void set_conio_terminal_mode()
{
    struct termios new_termios;

    // Take two copies - one for now, one for later
    tcgetattr(0, &orig_termios);
    memcpy(&new_termios, &orig_termios, sizeof(new_termios));

    // register cleanup handler, and set the new terminal mode
    //atexit(reset_terminal_mode); // Commented out because I switch and swap terminal modes a lot - just remember to call reset_terminal_mode() when we finish up
    cfmakeraw(&new_termios);
    tcsetattr(0, TCSANOW, &new_termios);
}

// Fuction to check if a key has been pressed
int kbHit()
{
    // How long to wait for input
    // Note: As soon as we get input the wait is immediately over - so it's not like our typing rate is limited in any way!
    long waitSeconds      = 1L;
    long waitMicroSeconds = 0L;
    struct timeval tv = { waitSeconds, waitMicroSeconds };

    // Create a file descriptor set
    fd_set fds;

    FD_SET(0, &fds);
    return select(1, &fds, NULL, NULL, &tv);
}

// Function to read the contents of the keypress
int getch()
{
    int r;
    unsigned char c;
    if ((r = read(0, &c, sizeof(c))) < 0)
    {
        //cout << "About to return a number..." << endl;
        return r;
    }
    else
    {
        //cout << "About to return a character..." << endl;
        return c;
    }
}

int main(int argc, char **argv)
{
    const char *host;         // Where we store the host name

    IPaddress serverIP;       // The IP we will connect to
    TCPsocket clientSocket;   // The socket to use
    string    serverName;     // The server name

    string userInput = "";    // A string to hold our user input
    int inputLength  = 0;     // The length of our string in characters
    char buffer[BUFFER_SIZE]; // Array of character's we'll use to transmit our message. We get input into the userInput string for ease of use, then just copy it to this character array and send it.

    // Initialise SDL_net
    if (SDLNet_Init() < 0)
    {
        cout << "Failed to intialise SDN_net: " << SDLNet_GetError() << "\n";
        exit(-1); // Quit!
    }

    // Ask the user for a server to connect to - can be entered as a hostname (i.e. localhost etc.) or an IP address (i.e. 127.0.0.1 etc.)
    cout << "Server Name: ";
    //getline(cin, serverName); // Uncomment this and remove the below line to change the server we're connecting to...
    serverName = "localhost";

    // Create the socket set with enough space to store our desired number of connections (i.e. sockets)
    SDLNet_SocketSet socketSet = SDLNet_AllocSocketSet(1);
    if (socketSet == NULL)
    {
        cout << "Failed to allocate the socket set: " << SDLNet_GetError() << "\n";
        exit(-1); // Quit!
    }
    else
    {
        cout << "Successfully allocated socket set." << endl;
    }

    // Try to resolve the host. If successful, this places the connection details in the serverIP object
    int hostResolved = SDLNet_ResolveHost(&serverIP, serverName.c_str(), PORT);

    if (hostResolved == -1)
    {
        cout << "Failed to resolve the server hostname: " << SDLNet_GetError() << "\nContinuing...\n";
    }
    else // If we successfully resolved the host then output the details
    {
        // Get our IP address in proper dot-quad format by breaking up the 32-bit unsigned host address and splitting it into an array of four 8-bit unsigned numbers...
        Uint8 * dotQuad = (Uint8*)&serverIP.host;

        //... and then outputting them cast to integers. Then read the last 16 bits of the serverIP object to get the port number
        cout << "Successfully resolved host to IP: " << (unsigned short)dotQuad[0] << "." << (unsigned short)dotQuad[1] << "." << (unsigned short)dotQuad[2] << "." << (unsigned short)dotQuad[3];
        cout << " port " << SDLNet_Read16(&serverIP.port) << endl << endl;
    }

    // Try to resolve the IP of the server, just for kicks
    if ((host = SDLNet_ResolveIP(&serverIP)) == NULL)
    {
        cout << "Failed to resolve the server IP address: " << SDLNet_GetError() << endl;
    }
    else
    {
        cout << "Successfully resolved IP to host: " << host << endl;
    }

    // Flag to keep track of when to disconnect and finish up. We initially set it so that we CANNOT connect, and only change this to false when we got an "OK" response from the server
    bool shutdownClient = true;

    // Try to open a connection to the server and quit out if we can't connect
    clientSocket = SDLNet_TCP_Open(&serverIP);
    if (!clientSocket)
    {
        cout << "Failed to open socket to server: " << SDLNet_GetError() << "\n";
        exit(-1);
    }
    else // If we successfully opened a connection then check for the server response to our connection
    {
        cout << "Connection okay, about to read connection status from the server..." << endl;

        // Add our socket to the socket set for polling
        SDLNet_TCP_AddSocket(socketSet, clientSocket);

        // Wait for up to five seconds for a response from the server
        // Note: If we don't check the socket set and WAIT for the response, we'll be checking before the server can respond, and it'll look as if the server sent us nothing back
        int activeSockets = SDLNet_CheckSockets(socketSet, 5000);

        cout << "There are " << activeSockets << " socket(s) with data on them at the moment." << endl;

        // Check if we got a response from the server
        int gotServerResponse = SDLNet_SocketReady(clientSocket);

        if (gotServerResponse != 0)
        {
            cout << "Got a response from the server... " << endl;
            int serverResponseByteCount = SDLNet_TCP_Recv(clientSocket, buffer, BUFFER_SIZE);

            cout << "Got the following from server: " << buffer << "(" << serverResponseByteCount << " bytes)" << endl;

            // We got an okay from the server, so we can join!
            if ( strcmp(buffer, "OK") == 0 )
            {
                // So set the flag to say we're not quitting out just yet
                shutdownClient = false;

                cout << "Joining server now..." << endl << endl;
            }
            else
            {
                cout << "Server is full... Terminating connection." << endl;
            }
        }
        else
        {
            cout << "No response from server..." << endl;
        }

    } // End of if we managed to open a connection to the server condition

    bool wrotePrompt = false; // Whether or not we've already written the prompt
    bool sendMessage = false; // Whether or not it's time to send the message (flips to true when the user presses return)

    // While it's not time to shutdown the client...
    while (shutdownClient == false)
    {
        // Write the prompt only once per line of input. This gets reset so that it's displayed again after a message is sent
        if (wrotePrompt == false)
        {
            cout << "Write something:" << endl;
            wrotePrompt = true;
        }

        // If we've detected that the user has pressed a key..
        set_conio_terminal_mode();
        int status = kbHit();
        reset_terminal_mode();

        //cout << "status is: " << status << endl;

        if (status != 0)
        {
            //cout << "key was pressed and status is" << status << endl;

            // Get the keypress
            set_conio_terminal_mode();
            char theChar = getch();
            reset_terminal_mode();

            // Output the character to stdout
            cout << theChar;

            // Flush the character to the screen
            fflush(stdout);

            // If the keypressed wasn't return then add the character to our message string
            if ((int)theChar != 13)
            {
                //cout << "Got the character: " << theChar << " (which is number: " << int(theChar) << ")" << endl;

                // Add the character to our input string
                userInput += theChar;
            }
            else // Otherwise (if the user pressed enter) then send the message
            {
                //cout << "user pressed return" << endl;

                // Copy our user's string into our char array called "buffer"
                strcpy( buffer, userInput.c_str() );

                // Calculate the length of our input and then add 1 (for the terminating character) to get the total number of characters we need to send
                inputLength = strlen(buffer) + 1;

                // Send the message to the server
                if (SDLNet_TCP_Send(clientSocket, (void *)buffer, inputLength) < inputLength)
                {
                    cout << "Failed to send message: " << SDLNet_GetError() << endl;
                    exit(-1);
                }
                else
                {
                    //cout << "Message sent successfully." << endl;

                    // If we've asked the server to shutdown or we want out then set the flag appropriately
                    if (sendMessage == true && (userInput == "quit" || userInput == "exit" || userInput == "shutdown"))
                    {
                        shutdownClient = true;
                    }

                    // Reset for the next message
                    cout << endl;
                    wrotePrompt = false;
                    sendMessage = false;
                    userInput = "";
                }

            } // End of message sending section

        } // End of if the user pressed a key test

        // Check our socket set for activity. Don't wait if there's nothing on the socket just continue
        int socketActive = SDLNet_CheckSockets(socketSet, 0);

        //cout << "Sockets with data on them at the moment: " << activeSockets << endl;

        if (socketActive != 0)
        {
            // Check if we got a response from the server
            int messageFromServer = SDLNet_SocketReady(clientSocket);

            if (messageFromServer != 0)
            {
                //cout << "Got a response from the server... " << endl;
                int serverResponseByteCount = SDLNet_TCP_Recv(clientSocket, buffer, BUFFER_SIZE);

                cout << "Received: " << buffer << endl;// "(" << serverResponseByteCount << " bytes)" << endl;

                if (strcmp(buffer, "shutdown") == 0)
                {
                    cout << "Server is going down. Disconnecting..." << endl;
                    shutdownClient = true;
                }
            }
            else
            {
                //cout << "No response from server..." << endl;
            }

        } // End of if socket has activity check

    } // End of main while loop

    // Close our socket, cleanup SDL_net, reset the terminal mode and finish!
    SDLNet_TCP_Close(clientSocket);

    SDLNet_Quit();

    reset_terminal_mode();

    return 0;
}


Если я правилно понял мне для отправки письма мне надо поменять PORT = 1234 на PORT = 25 и указать свой сервер wiki.kvkozyrev.org?

Автор: t800 09 Oct 2016, 15:26

Ну я сейчас собрал этот пример вот такой камандой

Код
g++ client.cc -w -lSDL_net -o client


Только пришлось почему то поменять в нем строчку

Код
#include <SDL_net.h>


на

Код
#include </usr/include/SDL/SDL_net.h>


потому что он почему ругался что не может найти файл SDL_net.h

Так ну запустил этот клиент который собрал из примера он мне выдал вот такое

Код
danya@danya:~/hello$ ./client
Server Name: Successfully allocated socket set.
Successfully resolved host to IP: 217.11.71.62 port 25
Failed to resolve the server IP address:
Connection okay, about to read connection status from the server...
There are 1 socket(s) with data on them at the moment.
Got a response from the server...
Got the following from server: 220 wiki.kvkozуrev.org ESMTP Postfix (Ubuntu)
(43 bytes)
Server is full... Terminating connection.


И завершился.


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

Автор: t800 09 Oct 2016, 21:11

Ладно пример чата на SDL_net у меня заработал а как письма отправилять разбираться наверно потом буду.

Автор: t800 10 Oct 2016, 17:08

Итак я нагуглил исходники программы корая сделана на SDL_net и умеет отсылает тектовые сообщения на e-mail
и подумал и решил что делать наверное будут так

1) Возьму код программы которая сдалана на SDL_net и умеет отсылать текстовые сообщения по почте
2) И изменю его чтобы она умела отсылать файлы проверю что все работает
3) А потом вставлю код этой программы в игру. Вот.

Автор: t800 14 Oct 2016, 17:13

Так разобрался с заголовками для оправки почты вот таким должен быть закодированный файл подготовленный для оправки двух файлов кодом SDLmail

Код
Subject: Turnir
MIME-Version: 1.0
Content-Type: multipart/mixed;
        boundary=----==--wiki.kvkozyrev.org
------==--wiki.kvkozyrev.org
Content-Transfer-Encoding: 7bit
Content-Type: text/html

Turnir=T-800
Days=190
Name=Ivan Ivanov


------==--wiki.kvkozyrev.org
Content-Disposition: attachment;
    filename=fheroes2.hgsc
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream;
    name=fheroes2.hgsc

AAAAaQAAAEoAAAAAeJz7+JmBgYEZiDlT9RKLEkuqUsuAHNYQXQsDg/B3FV+BnGAGBkZvHCreXk8G
ckKAKjyBNFtheWpRSSWSAX28QE40UNoJAEJ4GBE=
------==--wiki.kvkozyrev.org
Content-Disposition: attachment;
        filename=fheroes2.hgs
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream;
        name=fheroes2.hgs

AAAAaQAAAEoAAAAAeJz7+JmBgYEZiDlT9RKLEkuqUsuAHNYQXQsDg/B3FV+BnGAGBkZvHCreXk8G
ckKAKjyBNFtheWpRSSWSAX28QE40UNoJAEJ4GBE=
------==--wiki.kvkozyrev.org


Разобрался просто: сперва отравил себе на почту два файла через Yandeх почту, посмотрел код полученного сообщения и погулил что значит каждая из строчек.

Автор: t800 15 Oct 2016, 22:13

Фух сделал со всеми заголовками

Код
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "base64.h"


int SendText ()
{                              
    char * TextBuf = (char*) malloc(sizeof(char) * 1024);
    FILE * ptrFile = fopen ( "output.txt" , "wb" );
    strcat(TextBuf,"Subject: Turnir\n");
    strcat(TextBuf,"MIME-Version: 1.0\n");
    strcat(TextBuf,"Content-Type: multipart/mixed;\n");
    strcat(TextBuf,"\tboundary=----==--wiki.kvkozyrev.org\n");
    strcat(TextBuf,"------==--wiki.kvkozyrev.org\n");
    strcat(TextBuf,"Content-Transfer-Encoding: 7bit\n");
    strcat(TextBuf,"Content-Type: text/html\n");
    strcat(TextBuf,"\n");
    //Здесь пищем турнирные данные в файл
    strcat(TextBuf,"Turnir=T-800<br/>\n");
    strcat(TextBuf,"Days=190<br/>\n");
    strcat(TextBuf,"Name=Ivan Ivanov<br/>\n");
    strcat(TextBuf,"------==--wiki.kvkozyrev.org\n");
    fputs(TextBuf, ptrFile);
    memset(TextBuf, 0, sizeof(TextBuf));
    fclose (ptrFile);
    return (0);
}

int Send(const char *FileName)
{
unsigned int q, i,res;
FILE* hFile = NULL;
hFile = fopen(FileName,"rb");

        if(hFile == NULL)
          {
              fputs("Ошибка файла \n", stderr);
              exit(1);
              }

  // определяем размер файла
  fseek(hFile , 0 , SEEK_END);                          // устанавливаем позицию в конец файла
  long lSize = ftell(hFile);                            // получаем размер в байтах
  q = lSize/54+1;
  rewind (hFile);                                       // устанавливаем указатель в конец файла

  char * SendBuf = (char*) malloc(sizeof(char) * lSize);
  char * FileBuf = (char*) malloc(sizeof(char) * lSize); // выделить память для хранения содержимого файла
  char * TitleBuf = (char*) malloc(sizeof(char) * 1024);
  if (FileBuf  == NULL)
     {
      fputs("Ошибка памяти", stderr);
      exit(2);
     }
    // Делаем буфер:
    fseek (hFile,0,SEEK_SET);
    FILE * ptrFile = fopen ( "output.txt" , "ab" );
//Пишем заголовки
    memset(SendBuf, 0, sizeof(SendBuf)); // чистим буфер от мусора
    memset(TitleBuf, 0, sizeof(TitleBuf)); // чистим буфер от мусора
    strcat(TitleBuf,"Content-Disposition: attachment;\n");
    strcat(TitleBuf,"\tfilename=");
    strcat(TitleBuf,FileName);
    strcat(TitleBuf,"\n");
    strcat(TitleBuf,"Content-Transfer-Encoding: base64\n");
    strcat(TitleBuf,"Content-Type: application/octet-stream;\n");
    strcat(TitleBuf,"\tname=");
    strcat(TitleBuf,FileName);
    strcat(TitleBuf,"\n\n");
    fputs(TitleBuf, ptrFile);
//Кодируем и пищем файл
    for(i=0;i<q;i++)
    {
        res = fread(FileBuf,sizeof(char),54,hFile);
        strcat(SendBuf,base64_encode(reinterpret_cast<const unsigned char*>(FileBuf),res).c_str());
        strcpy(SendBuf,base64_encode(reinterpret_cast<const unsigned char*>(FileBuf),res).c_str());
        strcat(SendBuf,"\r\n");
        fputs(SendBuf, ptrFile);
    }
    memset(SendBuf, 0, sizeof(SendBuf));
    strcat(SendBuf,"------==--wiki.kvkozyrev.org\n");
    fputs(SendBuf, ptrFile);
    fclose (ptrFile);
    fclose (hFile);
  return(0);
}

int main() {
SendText();
Send("fheroes2.hgs");
Send("fheroes2.hgsc");
Send("autosave.sav");
return 0;
}

Автор: t800 18 Oct 2016, 10:01

Собираюсь вставлять оправки файлов по e-mail код в игру.

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


Автор: Эроласт 18 Oct 2016, 15:08

Цитата(feanor @ 14 Oct 2016, 22:01) *
СРОЧНО УЧЕБНИК

Автор: t800 18 Oct 2016, 16:10

Цитата(Эроласт @ 18 Oct 2016, 18:08) *
Цитата(feanor @ 14 Oct 2016, 22:01) *
СРОЧНО УЧЕБНИК



А что учебник? В учебнике разные непонятные вещи написаны. Какие то классы какие то ООП и все такое.
А для чего это надо и для нужно ли это вообще ни слова не сказано. Я только понял что если делать через классы
то делать придется в несколько раз дольше. Потому что тот код который уже работает без всяких классов сделан.

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

Автор: feanor 19 Oct 2016, 15:27

Пока что можно и без классов, хрен с ними.
Классы для удобства делаются.

Автор: fireman 21 Oct 2016, 00:52

BolgenOS 2.0 потому что из видео создаётся впечатление, что ты сам всё создал. На вопросы журналистов, о создание игры, надо было поправить, что ты создал форк к свободному движку, а графику, музыку, идею игру разработали ещё давно NWC.

P.S. Обидно, что журналисты даже не пытаются разобраться и создают очередной BolgenOS.
P.S.S. Советую на ютубе добавить в описание видео, что журналистка не совсем верно поняла, и пояснить что конкретно ты разработал. Если видео внезапно разлетится по интернету, то может начаться травля.

Цитата

Не стоит делать столько разных шрифтов на одной картинке, столько выделений.

Автор: DrSlash 21 Oct 2016, 05:23

Цитата(fireman @ 21 Oct 2016, 00:52) *
Обидно, что журналисты даже не пытаются разобраться и создают очередной BolgenOS.

А мне кажется, что они-то как раз понимают о чём речь, но им выгоднее раздуть сенсацию на ровном месте. Если взглянуть на новости, то там половина сюжетов такие (взять хотя бы сражение с ветряными мельницами в лице Pokemon Go).

Автор: t800 21 Oct 2016, 07:26

Цитата(fireman @ 21 Oct 2016, 03:52) *
BolgenOS 2.0 потому что из видео создаётся впечатление, что ты сам всё создал. На вопросы журналистов, о создание игры, надо было поправить, что ты создал форк к свободному движку, а графику, музыку, идею игру разработали ещё давно NWC.

P.S. Обидно, что журналисты даже не пытаются разобраться и создают очередной BolgenOS.
P.S.S. Советую на ютубе добавить в описание видео, что журналистка не совсем верно поняла, и пояснить что конкретно ты разработал. Если видео внезапно разлетится по интернету, то может начаться травля.


Ну вобще то в моей сборке и без того ведь большими буквами написано что я сделал только T-800 mod и Поддержку кампаний.



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



А то что тетенька с телевидения от себя наговорила, ну наверное захотелось ей так...

PS Вообще этот ролик который с TV по-моему никто и не смотрит (всего 48 просмотров) и все смотрят ролик котрый мой и который с со сборкой идет (2300 просмотров) хотя примечание наверное можно написать.

PPPS Сейчас добавил примечание с пояснением к ролику с TB и с ссылками на соотвествующие тему на DF2 и HandbookHMM

Автор: t800 26 Dec 2016, 20:38

Читая сборник рубайат Омара Хайама, мне захотелось их послушать. Но на YouTube везде какая-то совсем не та музыка на заднем плане, которую я хотел. И вот, я обозначил несколько рубай галочками, включил heroes 2 (t800 Mod) и под музик-пак прочёл их. В общем, вот что получилось:


Автор: t800 27 Dec 2016, 20:35

ЗЫ Сегодня сделал еще запись рубайев Омара Хайма в Замке Волшебницы, но я решил подарить их Владимиру с HandBookHMM потому, что у него сегодня День Рождения и поэтому
ролик с Замком Волшебницы я из темы убрал.


.

Автор: t800 07 Jul 2017, 17:52

Сегодня с удивлением обнаружил в youtube целую кучу чужих фанзаписей с прохождениями на T800 mod от Кирила Грифона (около сотни записей) brags.gif












ЗЫ Правда Кирил Грифон не правильно настройки экрана указал поэтому у него все время лупа выскакивает, но я ему в комментах уже написал какие настройки надо сделать, наверное перестанет мучаться. cheerful.gif

Автор: t800 18 Jul 2017, 18:38

Какие-то американы (по крайней мере так у них на сайте написано) зачем то хотят купить у меня T-800 mod

18.07.2017, 18:21, "Ivanova Applications" <ivanova.apps@adviator.com>:

Понятно. База активных устройств по России не очень большая, можем предложить 25000 рублей за такое приложение!

18 июля 2017 г., 17:33 пользователь <t800@kvkozyrev.org> написал:

Ну я же Вам ответил, что приложение написано на С++ и SDL

А про тех кто делает приложения на Unity вот можете посмотреть мой шуточный рекламный ролик,
про таких разработчиков: https://www.youtube.com/watch?v=45IDTmmG4Wo

C уважением Богдан






18.07.2017, 17:25, "Ivanova Applications" <ivanova.apps@adviator.com>:
> Вот например https://ru.wikipedia.org/wiki/Unity_(%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA)
>
> 18 июля 2017 г., 15:29 пользователь <t800@kvkozyrev.org> написал:
>
> Здравствуйте!
>
> Не совсем понял Вашего вопроса. Вообще-то приложение и есть сам по себе движок,
> написанный на C++ и SDL
>
> С уважением Богдан
>
>
>
>
>
>
> 18.07.2017, 15:12, "Ivanova Applications" <ivanova.apps@adviator.com>:
>> Здравствуйте! Какой движек у игры?
>>
>> 13 июля 2017 г., 20:46 пользователь <t800@kvkozyrev.org> написал:
>>
>> Здравствуйте Настя
>>
>> Высылаю Вам скрины и жду оценки
>>
>> С уважением Богдан
>>
>>
>>
>> 13.07.2017, 19:36, "ivanova.apps@adviator.com" <ivanova.apps@adviator.com>:
>>> Добрый день!
>>>
>>> Заинтересовало ваше приложение "Свободные Герои 2 (t800 mod)" - https://play.google.com/store/apps/details?id=wiki.kvkozyrev.org.fheroes2t800.
>>> Если вы допускаете возможность его продажи, то нам было бы интересно обсудить условия покупки.
>>>
>>> В случае вашей заинтересованности, пришлите пож-та скриншоты статистики.
>>>
>>> Примеры нужных скриншотов статистики из Play Google в разрезе по Странам:
>>>
>>> https://pix.my/S6CKTl - статистика установок за день на протяжении последнего года
>>>
>>> https://pix.my/jnECOp - статистика удалений за день на протяжении последнего года
>>>
>>> https://pix.my/xF5Hc0 - статистика установок на активных устройствах на протяжении последнего года
>>>
>>> В качестве технической информации требуется Манифест приложения и используемые для его разработки фреймворки, есть ли серверная часть.
>>>
>>> Нас интересуют в первую очередь приложения с хорошей базой активных устройств по России, поэтому на скриншотах должно быть обязательно видно Страна Россия
>>>
>>> На основании предоставленной статистики мы сможем произвести расчет стоимости за которую будем готовы приобрести ваше приложение и свяжемся с вами для дальнейшего обсуждения.
>>>
>>> Заранее спасибо!
>>>
>>> С уважением, Настя


Кто они такие и зачем им покупать БЕСПЛАТНОЕ Приложение которое и так можно скачать за бесплатно? stars.gif

Автор: tolich 18 Jul 2017, 18:53

Особенно учитывая, что ты только один из авторов.

Автор: DrSlash 18 Jul 2017, 18:56

Продавай пока предлагают.) Всё равно до тебя Ubisoft не доберётся, а вот им настучать по шапке могут, если попробуют прикрутить микротранзакции, рекламу или просто повесят ценник на приложение в Google Play. Только ты хотя бы поторгуйся с ними для приличия smile.gif

P.S. знаю, что не самый честный поступок продавать мод на чужой проект, сделанный из чужих ресурсов, но он же ни кого не вводил в заблуждение, злые буратины сами постучались.) Так-то их даже не само приложение интересует, а его аудитория на Google Play, так что и платят они по сути за неё, всё нормально.

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)