Russian thread

Значит эти тоже исправлены.

Могила воина - дает “бонус” морали (-3)
Бонусы перемещения используют ту же систему что и удача/мораль. Да и оазис проверял - вроде работает. По крайней мере тем же способом ничего не обнаружил

(вообще у “моего способа” есть название - valgrind, но оно тебе мало что скажет)

чесгря про мораль забыл, я только вижу могилу воина то сразу думаю о 5% шансе вытащить из нее артефакт реликт))

совершенно верно :smiley:

вот и хорошо)

У меня такой вопрос, а сейвы сделаны под виндой в линуксе откроются? Если да, то вот bugs.vcmi.eu/view.php?id=1831 тут комп берет перчатки всадника и игра вылетает. Кажется тоже имеет к этому всему отношение.

хороший вопрос :slight_smile: может и откроются если платформа одинаковая (под виндой 32 битные сборки, а под линукс обычно под 64 бита собирают)

Там ХП64.

Слушай AVS, я правильно открываю игру через Code::blocks+MinGW? Файл - опен - клиент.ехе.

Или там как то по хитрому надо делать, или в настройках предварительно чтото покопать??

Похоже мы говорим о разный вещах …

Если про сборку то:

  1. открывать надо vcmi.workspace
    при открытии он должен предложить настроить п 2

  2. надо настраивать “глобальные переменные” (Settings-Global variables)

  • boost|base путь к папке буста

  • boost|include туда же

  • boost|libsuffix завист от версии буста и настроек его сборки. У меня -mgw48-mt-1_55 (собрано gcc 4.8.x, версия 1_55, многопоточная, релиз)

  • boost|lib32 папка stage в бусте - ну или то куда ты оотуда все скопируешь.

  • sdl путь к SDL

  • sdl|include путь к хедерам

  • sdl|lib к библиотекам

(тоже для SDL2 смотря что собираешься юзать)
тоже и для zlib

  1. не забыть настроить компилятор “GNU GCC Compiler” - все проекты привязаны к этому имени (оно по умолчанию)
  • путь например C:\mingw
  • -std=c++1x
    "Other options"
    -std=gnu++11
    -Wno-unused-local-typedefs
    -fext-numeric-literals

(надо бы настройки компилятора перенести с сами проекты но все забываю :slight_smile: )

Потом просто нажимаешь Build-Build workspace.

(что-то я наверное забыл …)

Спрашивали - отвечаем.
Сейв, сделанный в 32-битной версии в Windows 8.1, открывается в 64-битной версии в Ubuntu 14.10 (альфа, да)

=)

Дадада.

Я думал уже готовый екзешник надо открывать)) Просто запустить както и все. Оказалось сложнее немного чем казалось :smiley:

Где он вообще находится этот vcmi.workspace ? Это текущая сборка самого кода? Самому компилировать придется?

А просто уже релиз готовый установленный (0,96), открыть-запустить под ИДЕ и под ним играть не получится? чтобы потом более подробные логи выдирать из него

Восьмерка у меня тоже 64-бит, но это ни на что не влияет, важна только разрядность бинарника.

Это прокатит если уже есть собранный под mingw экзешник причем с отладочными символами (исходники в любом случае нужны, но собирать самому не обязательно)

vcmi.workspace - часть исходников в корне лежит. (на гитхабе он вот github.com/vcmi/vcmi/blob/devel … .workspace)

Да. Посмотрел (скачать не смог) Без видео сложно разобраться.


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

dropmefiles.com/Hfgm8

Еще один мелкий баг, с анимацией. Постить на багтрекер такое не кошерно.

pixs.ru/showimage/REKAPNG_4692326_13021942.png

Нападаю на монстров, присоединяю, и наблюдается эта картина (возле лесопилки). Река главнее для отображения чем герой.

А вот какая реакция на флаг единства pixs.ru/showimage/FLAGPNG_4023691_13022238.png
Сейв
Games.rar (365 KB)

Вполне кошерно. Багтрекер очень помогает не забывать все баги. А вот баги с форумов рискуют быть забытыми.

Это в 0.96 или в текущей сборке? Если в 0.96 то это может быть тем же багом со всеми объектами что дают мораль/удачу.

Это в 0,96. Я собирать вручную текущие сборки не умею :unamused:

Может быть так и есть. Но игра после этого не вылетает. Нажимаю ОК и все идет норм дальше

Пустое окно сообщения без текста я тоже видел в одной из недавних ревизий.

Расписывать сейчас времени нет
На версии 0.96 я запускаю игру, скупаю войска в городе (город - новый, из мода).
Делаю сейв, загружаюсь, а у меня город другой новый, войска от третьего города.
Кто-нибудь такое наблюдал у себя?

Разбираюсь с конфигом

Добавил в config/schemas/settings.json

"location" : {
	"type" : "object",
	"default": {},
	"additionalProperties" : false,
	"required" : ],
	"properties" : {
		"data" : {
			"type" : "array",
			"default" : ""],
			"items" : {
		 		"type" : "string"
			},
 		}
	}
}

Пытаюсь в него записывать внутри VCMIDirs::dataPaths() (буквально копипаста из launcher/settingsView/csettingsview_moc.cpp)

Settings node = settings.write"location"]"data"];
node->Vector().clear();
for (std::string path : ret)
{
    if (path.size() > 0)
    {
         JsonNode entry;
         entry.String() = path.data();
         node->Vector().push_back(entry);
    }
}

Выбивает

terminate called after throwing an instance of 'std::runtime_error'
  what():  Resource with name CONFIG/SCHEMAS/SETTINGS and type TEXT wasn't found.

Что я делаю не так?

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

Mixaill, AVS прав. Попробуй такой подход:
метод LibClasses::loadFilesystem()

Встроиться нужно между вызовами initialize() и load() - в этот момент файлы vcmi уже загружены (включая конфиги), а остальные - еще нет.

Нужно добавить что-то по типу такого:
CResourceHandler::addFilesystem(“initial”, “extraDataDir”, new CFilesystemLoader("", extraDataDir)
Где extraDataDir - строка с путем к новой папке.

(не вижу особого смысла для нескольких путей - это нужно только для файлов тройки, который всегда один)

Diff pastebin.com/ALPJ70QV

Зашел со стороны лаунчера, вроде грузит, пишет, изменяет.
Однако, зачитывается он с третьего раза (CResourceHandler::createInitial - fallback, MainWindow::load - fallback, CSettingsView::loadSettings - зачитало)

И если запустить клиент, то вызов DataPaths выполняется один раз (от CResourceHandler::createInitial) со срабатыванием фолбека.

Даже в конце LibClasses::loadFilesystem() срабатывает fallback =\

В целом да. Я шел по пути наименьшего сопротивления: свалить всё в одну кучу, а пользователь потом уже разгребает что ему надо, а что - нет.