Kompilacja

Mam je, ale przy nich jest czerwona ikonka. Szczerze nie mam pojęcia co to oznacza, bo plik się ładuje (jak kliknę na niego).

–edit
Udało się debug działa, wystarczyło ponownie dodać te pliki do projektu, a cmodhandler miałem podwójnie, gdzie przy jednym wyskakiwał błąd, że plik został usunięty.

Już jest wręcz elegancko, ale wywala się to:

c:\vcmi source\trunk\global.h(24): fatal error C1083: Cannot open include file: 'cstdio': No such file or directory

przez co jest problem z kompilowaniem, jest to jedyny błąd, więc mam nadzieję, że to już wszystko.
Dlaczego ta biblioteka się nie ładuje ?

----EDIT-----
Interesuje mnie jeszcze jedna rzecz, jak powinny być ustawione include directories i library directories, tylko boost ? czy więcej ścieżek ?

Chyba pozostaje Ci reinstall VC++ , jak kompilator pisze ,że brakuje standardowych biblotek.

Skoro nie ma innych błedów, to wszystko jest dobrze poustawiane.

Niestety nie udało ci się mi pomóc, ale sam sobie pomogłem. Okazało się, że w binaries i includies, trzeba (przynajmniej w moim przypadku) dodać inne ścieżki.

Wszystko się elegancko kompiluje prócz projektu VCAI, który nie może otworzyć VCMI_lib.lib, ktoś może mi w tym pomóc ? Jestem już krok od skompilowania.

Najpierw skompiluj projekt “VCMI_lib” , żeby otrzymać VCMI_lib.dll i VCMI_lib.lib . W Solution Explorer kliknij “VCMI_lib” ppm i wybierz build.

w VCAI Linker->General->Additional Library Directories dodaj folder, w którym znajduje się VCMI_lib.

Z ciekawości sam skompilowałem VCMI . Niestety po włączeniu debugowania wyskoczył mi wyjątek w fukcji

std::unique_ptr<CInputStream> CResourceLoader::load(const ResourceID & resourceIdent) const
{
	auto resource = resources.find(resourceIdent);

	if(resource == resources.end())
	{
		throw std::runtime_error("Resource with name " + resourceIdent.getName() + " and type "
			+ EResTypeHelper::getEResTypeAsString(resourceIdent.getType()) + " wasn't found.");
	}

	// get the last added resource(most overriden)
	const ResourceLocator & locator = resource->second.back();

	// load the resource and return it
	return locator.getLoader()->load(locator.getResourceName());
}

resourceIdent.name = “ALL/CONFIG/FILESYSTEM” , zgaduję więc , że chodzi o plik config/filesystem.json który oczywiście jest w folderze config.Wie ktoś o co chodzi ?

Chciałbym podziękować za wszelką udzieloną pomoc. Szczególnie Warmongerowi.

krystian1995, czy ustawiłeś working directory we właściwościach klienta? wiki.vcmi.eu/index.php?title=How … I_from_IDE ]

Folder config z tym plikiem musi być w folderze roboczym. Gdy uruchamiasz program przez dwuklik, folderem roboczym jest jego folder (tj ten, w którym exek się znajduje), ale jak uruchamiasz program debuggerem, to chyba domyślnie jest to folder projektu (tj. klienta), co w naszym przypadku nie jest dobre.

Dziękuję.Pomogło

cstdio to “C STanDard IO library” (daje między innymi funkcję scanf) co oznacza że prawdopodobnie brakuje ci domyślnego folderu w ścieżkach (zawierające biblioteki standardowe i domyślne nagłówki. Tylko zgaduje ale prawdopodobnie mam rację :P.

Witam przybywam znów problemami.
Po pierwsze dlaczego nie mogę zaaktualizować VCMI ?
SVN tortoise pokazuje błąd, że folder trunk jest zablokowany (is locked).

Drugi błąd, wycinek z loga:

Reading config/commanders.json
	Creature handler: 597
At line 25, position 86 error: Separator expected
At line 25, position 86 warning: Not all file was parsed!
At town_type/	 Error: Null entry without default entry!
	Town handler: 16
		Reading cregens 
		Done loading cregens!
		Reading resources prices 
		Done loading resource prices!
		Reading banks configs 
		Done loading banks configs 
	Object handler: 152
	Def information handler: 810
At line 25, position 86 error: Separator expected
At line 25, position 86 warning: Not all file was parsed!
At town_type/	 Error: Null entry without default entry!
	Building handler: 63
	Spell handler: 165
		Reading config/cr_sounds.json

Nie wiem o jaki plik chodzi, w którym jest błąd.

Zablokować folder możesz chyba tylko Ty sam na swoim komputerze.

Radzę zaktualizować wszystkie pliki w folderze config. Zapewne chodzi o buildings.json z tej rewizji:
sourceforge.net/apps/trac/vcmi/changeset/2824

Ok, dziękuję. Miałem zablokowany folder config, ale nie wiedziałem jak go odblokować, więc po prostu go usunąłem i pobrałem, wraz z aktualizacją.

Nie chciałem zakładać nowego tematu.
Co jeżeli przerobiłem pewne skrypty, czy aktualizacja może mi je zamienić/odnowić?
Wprowadziłem kilka modyfikacji i teraz nie wiem czy moja praca pójdzie na marne.

Chodzi o komendę update w kliencie SVN? Ona nigdy nie wyrzuca twoich zmian, może jednak pozostawić konflikty scalania, które będziesz musiał rozwiązać przed dalszą pracą.

Podepnę się…

Dzisiaj po raz pierwszy spróbowałem skompilować źródło z svn, bo podoba mi się wersja 0.91, ale wywalało mnie niemal zawsze przy oblężeniach. Kierując się poradnikiem z Wiki, po trudach i znoju wreszcie kompilacja zakończyła się powodzeniem. Problem jednak w tym, że skompilowana wersja z svn działa mi tragicznie wolno (gotowa 0.91 chodziła jak błyskawica). Gra jest praktycznie niegrywalna. Już po samych rozmiarach utworzonych plików wydawało mi się, że coś jest nie tak, są wszak kilkakrotnie większe, niż te z gotowej paczki. To normalne, czy coś robię źle?

Przy okazji chciałem zapytać o dwie rzeczy związane z moddingiem, bowiem próbowałem dziś dodać swoich bohaterów i jednostki, lecz natknąłem się na drobne problemy:

  1. Specjalizacja “specjalne ulepszenia jednostek” (jak ma np. Gelu) bohaterów jest zabugowana, czy nie została jeszcze wprowadzona? Próbowałem dodać nowemu herosowi takąż specjalność, ale możliwość ulepszenia jednostek się nie pojawiła. Użyty kod (tą drugą, docelową jednostkę mam oczywiście zrobioną i działa poprawnie w grze):
    {
    “type”: “SPECIAL_UPGRADE”,
    “subtype” : “creature.woodElf”,
    “addInfo”: “creature.elfHunter”
    },

  2. Nowo dodanym jednostkom chciałem dać umiejętność “MAGIC_RESISTANCE”, dokładnie taką, jaka jest u krasnoludów. Podczas gry widziałem, że umiejętność działa, ale w okienku jednostki, przy opisie umiejętności były jakieś dziwne wartości (ujemne, kilkumilionowe…). Na wersji z svn jedyne co się zmieniło, to to, że teraz zawsze widzę przy opisie 100% odporności na magię, nieważne jakie wartości przy “MAGIC_RESISTANCE” ustawię.

A tak w ogóle, to cieszę się, że trwacie przy projekcie i prace cały czas idą naprzód. Świetna robota, chłopaki. :slight_smile:

Najpewniej zbudowałeś wersję debug. Przełącz konfigurację z “Debug” na “RD”, przebuduj i powinno śmigać szybko (hmm…?) jak wersja z releasu.

Możesz chcieć ustawić folder, do którego będą generowane wyjściowe binarki, by nie kopiowac ich każdorazowo:
Property manager -> rozwiń którykolwiek projekt -> rozwiń cokolwiek z RD -> VCMI_global_release. Tu r-klik, properties, User Macros. W polu value ustawiasz ścieżkę.
Jeżeli twoja wyjściowa ścieżka nie jest trunkiem z repozytorium, to jeszcze możesz chcieć podlinkować folder config, żeby zmiany z SVN się przenosiły na miejsce instalacji.

  1. Wszystkie specjalności powinny działać, jeśli jest inaczej, to bug.

  2. Działać… tak, powinno. :stuck_out_tongue: Jesli mi pokażesz, co zrobiłeś, to będę mógł sprawdzić, co idzie nie tak.

Dzięki. Faktycznie był Debug. Już kompiluję RD…

Ad1. Jednak wszystko działa jak trzeba. Nie zauważyłem, że macie dwa formaty zapisu dla specjalności - “specialty” i stare “specialties”.

Ad2. Używam przy jednostkach kodu:

	"abilities" :
	
		{
			"type" : "MAGIC_RESISTANCE",
			"subtype" : 0,
			"value" : 20,
			"addInfo" : 0
		},
	],

W aktualnej wersji zarówno odporność krasnoludów, jak i umiejętność drugorzędna bohatera działają poprawnie. Błąd może być bardziej subtelny.

Po drugie - odsyłam do nowego tematu.