Please help me!

This morning I install 0.93c and then I found that I cannot use old preserve(can be used in 0.93) mod so I merge them.And I have the same problem
And the efreet mod can work very well in 0.93c

http://speedy.sh/AJ5Uh/Preserve.zip

After a quick look on version from last page:

  1. mod.json, line 22 - after closing bracer “]” there is something that is not comma. As result vcmi parser fails and anything below this line will be ignored.

  2. starting spells for heroes - should be changed from numbers to proper ID’s (e.g. 15 -> “magicArrow”). You can see full list of spell ID’s here:
    github.com/vcmi/vcmi/blob/maste … _info.json

These are reasons for 1st two crashes. There could be more though.

Launcher bug. Right now it can’t handle json files that have comments or any syntax errors

So, what you uploaded here before is that same thing? You didn’t edit anything before sending it? Where did you get that link from?
Are you going to fix the mod completely?

So, using numbers in mods for spell referencing isn’t possible now? I know this makes it easier because you don’t have to search for the appropriate number, I’m just asking.

Comments? But my knight town mod has comments I put on few places and the launcher works with it.

Is it possible that the mod can work with 0.93 and not work with 0.93c? Do you have any ideas how did this happen? I mean, a mod with so many errors couldn’t work properly in any version.

Yes.

Launcher checks only mod.json file. All other files can have comments just fine. Anyway this bug is mostly fixed - will be gone in 0.94.

Possible. For example spell ID’s now have to be in string form. Also there were several changes that are not critical but will result in some new warning messages. See here: wiki.vcmi.eu/index.php?title=Modding_changelog

So, what is “shooterheight”? That confused me, because the error that lead me there says: “dublicated element found!” What does that mean?

I read on the wiki there that property “town/siege/shooterHeight” has been removed.

Also there are errors like “type mismatch”, “unknown entry found” and “required entry x is missing”.

I don’t know what these error reports mean, because I don’t know where can I find what error means what, such info isn’t on the wiki, AFAIK.

These are most of the errors. I fixed the others.

Idea was to make errors human-readable so they won’t need any explanation :confused:

“dublicated element found!” - key with same name is illegal in json:

{
"aaa" : 12345,
"aaa" : 98765 // key "aaa" encountered 2nd time
}

“type mismatch” - will be triggered for example for numeric spell ID’s:

{
   "spellbook" :  22 ]  // vcmi expected to find string here but found number
}

“unknown entry found” - key with such name is unknown for game. Usualy triggered for typos, renamed or removed fields.
“required entry x is missing” - can appear along with previous one. For example quite a lot of mods copy-pasted Cove config with typo : "nativeTerrrain"
In this case VCMI will trigger 2 errors:

  1. Unknown entry.
  2. Required entry missing.

Just wondering - how errors like this should have been reported in your opinion?

Now - nothing and can be removed. Previously you had to manually specify height of shooters in towers (lower part of all shooters is not visible)

I was just asking just in case so I don’t think it’s something else. The dublicated element found was the only one I didn’t clearly understand, and I was merely stating which errors I found.

Thanks anyway. And I’m sorry if I’m asking too many questions or if I made you angry because of asking so much. :blush:

I fixed the mod. It’s now playable, but I still get these messages:

01:53:35 WARN global [908] - Data in ancienttreant is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in fairybear is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in foxdruid is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in grimhippogryph is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in highdruid is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in hippogryph is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in hobbit is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in magiceye is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in mysticalbear is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in treant is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in unfortunateeye is invalid!
01:53:35 WARN global [908] - At /abilities
	 Error: Type mismatch!

01:53:35 WARN global [908] - Data in preserve is invalid!
01:53:35 WARN global [908] - At /town/buildings
	 Error: Type mismatch!
At /town/structures
	 Error: Type mismatch!

I just tried to fix those errors, but I don’t see what’s wrong. I compare them to cove creature configs and file format on wiki, and everything is okay, so I have no idea what’s wrong. The creature abilities work properly in battle.

And when the map started, I got this message in gray letters:

#1444-like bug encountered, fixing buildings list by removing bogus entry 20 from Preserve

Then all of the preserve faction heroes didn’t have portraits. It turns out that the locations in the config files were all wrong.

So now, I’m really wondering now - how could this mod work in any possible way before on an earlier version?

the old mod is here and it can work on 0.93
preserve 2.0 (1).rar (15 MB)

Randjan,

  1. To fix these errors change abilities like this:
    Old version:
"abilities" : 
    { <ability format> },
    { <ability format> }
]

New format

"abilities" : {
  "abilityName1" : { <ability format> },
  "abilityName2" : { <ability format> }
}

“abilityName” is some random name for ability, needed for some mod system features. Any name will do - no restrictions here.

  1. #1444-like bug - I’d like to take a look on the mod. Right now I have no idea why this could appear.

Damn…I actually did that with some creatures, but I still didn’t notice that their config files aren’t reported with errors, I was very sleepy then.

I didn’t know because with most of the creatures I did add those names, but I kept the “]”, instead of changing them to “{}”. What’s the difference between those two?

But, there are still 2 more errors that weren’t for creatures:

14:15:56 WARN global [1540] - Data in preserve is invalid!
14:15:56 WARN global [1540] - At /town/buildings
	 Error: Type mismatch!
At /town/structures
	 Error: Type mismatch!

I checked what might be the problem, but I’m not really sure.
When it says data in preserve, what does it mean? It doesn’t mean a .json file name is preserve or a folder name, that’s for sure.

In buildings, I changed the “]” to “{}” and then it asks for a string. I guess it’s the same as it is with the creature abilities. Then I would need to add a name before each building. About those names, for what mod system features will they be needed? I just saw that you shouldn’t put 2 same names, because I did that for 1 creature which is vulnerable to all fire spells.

And I forgot about the .defs. Why does the game report all images from def files as missing, yet they work in the game? I knew why, but I forgot…I think that is the reason for something that happened to me now, when I was testing, when I loaded a save game, I got all knight creatures with preserve creatures’ icons and backgrounds. I’ll send you everything later.This is the bug

Mostly for overrides by another mod: if mod B wants to change building from mod A this is possible only with “name” : { } format. Same for creature abilities.

Right now game only checks for presence of image with such name on hard drive. Without any compex test for presence of specific frame in .def file. You can ignore this message.

Sorry to all I didn’t post this earlier, I wanted to make the mod perfectly okay so there wasn’t a single bug, so it took me some time. I’m going to upload it to dropbox and share the link, I think that’ll work so anyone can download it.

@Ivan, I still get this error when the map starts, and now it’s red and there’s a few of them, 6 or 7, with town names, which is strange because Arrogance map has 8 towns on it.

00:24:01 INFO global [14ec] - 	Saving gamestate
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Scar at 4 6 1 removing the bogus builtBuildings item 27
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Lostmoor at 27 4 1 removing the bogus builtBuildings item 27
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Preserve at 9 5 0 removing the bogus builtBuildings item 27
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Preserve at 6 29 0 removing the bogus builtBuildings item 27
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Preserve at 27 8 0 removing the bogus builtBuildings item 27
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Marshank at 33 27 1 removing the bogus builtBuildings item 27
00:24:01 ERROR global [14ec] - #1444-like issue in CGTownInstance::serialize. From town Preserve at 34 22 0 removing the bogus builtBuildings item 27
00:24:01 TRACE global [14ec] - Entering void __thiscall CClient::serialize<class COSer<class CSaveFile>>(class COSer<class CSaveFile> &,const int): Saving player 0 interface.

By the way, one of the reasons the mod didn’t work is because there were no names for the town, so I have no idea how could the mod work on older versions… I don’t have any ideas how should a preserve town be called, so I just wrote “preserve”.
I think that the mod has been somehow damaged, maybe during or before uploading, because it doesn’t make any sense. And where are the creators of this mod? Why didn’t anyone contact them?

I believe this is the bug in the engine I just fixed.
Please check the next build I’ll post to see if it solves this issue.

@HatredElement
I really hope I completely fixed the mod. I’m not a big fan of it, since it has a H4 screen, not all heroes have biographies and many of them just have some random portraits. Maybe you should’ve sent me the 3 mod version and then I could just merge them, because this what you sent me was full of errors. I found the town names today in the old 3-mods version of Preserve, and I just added them. I hope there are no differences or mistakes that I have made, or something missing. I uploaded it on dropbox.

dropbox.com/s/arx5z2qgjrc2x4q/Preserve.rar

is there a possibilty that you might fix the arrow or projectiles, when a archer or magician is firing the arrow that comes out is not straight so it looks very ugly.

More details please?

  • Are you using 0.94? This problem should be fixed in this release.
  • What creature(s) have this problem? I’ve tested several creatures and they look OK.