Seemingly erroneous "missing [x] closing tag" errors
Moderator: Forum Moderators
Forum rules
- Please use [code] BBCode tags in your posts for embedding WML snippets.
- To keep your code readable so that others can easily help you, make sure to indent it following our conventions.
Seemingly erroneous "missing [x] closing tag" errors
Hey all -- this one is really puzzling me. I am using v1.8.2 (stable) of Wesnoth.
I have several multiplayer scenarios I am working on. Several of these are essentially finished except for balancing work.
Suddenly several of these (some not even a function of having preformed recent work on them!) suddenly are giving me errors when loading which say "Missing closing [X] tag in my_scenario.cfg:##, loaded by _main.cfg:##. Value " at my_scenario.map:#Y, loaded by my_scenario.cfg:##
Now when I go to line number #Y which is sometimes referencing a list , like"recruit=xxxx", within my_scenario.cfg, but is more often referencing an (apparently) arbitrary line in the map file, which does NOT have a " value in it. Usually it says that the missing closing tag [X] is the multiplayer closing tag starting the scenario, but a number of times it has reported that I am missing closing tags for [ai] when the [ai] contained keys village_value=0.x (anything with a decimal place) or when it contained a list, such as recruitment_pattern=xxx,xxx,xxx
Any ideas??
I have several multiplayer scenarios I am working on. Several of these are essentially finished except for balancing work.
Suddenly several of these (some not even a function of having preformed recent work on them!) suddenly are giving me errors when loading which say "Missing closing [X] tag in my_scenario.cfg:##, loaded by _main.cfg:##. Value " at my_scenario.map:#Y, loaded by my_scenario.cfg:##
Now when I go to line number #Y which is sometimes referencing a list , like"recruit=xxxx", within my_scenario.cfg, but is more often referencing an (apparently) arbitrary line in the map file, which does NOT have a " value in it. Usually it says that the missing closing tag [X] is the multiplayer closing tag starting the scenario, but a number of times it has reported that I am missing closing tags for [ai] when the [ai] contained keys village_value=0.x (anything with a decimal place) or when it contained a list, such as recruitment_pattern=xxx,xxx,xxx
Any ideas??
Re: Seemingly erroneous "missing [x] closing tag" errors
An example file? Often people complain about this because they don't notice typos in their code, such as mismatched closing tags, a closing tag without the leading slash, etc.
Author of the unofficial UtBS sequels Invasion from the Unknown and After the Storm.
Re: Seemingly erroneous "missing [x] closing tag" errors
Yeah, I've been pouring over my code in the handful of indicated instances... I was trying to avoid posting ~900-1000 line cfg's here for other people to proof read. I actually went through one particular file deleting code section by section to isolate the problem and I got this far, and am still getting missing [/multiplayer] errors:
It references a seemingly arbitrary line in the middle of the map file in the error box as having a " value. There is not one. If I replace {~xxxxx/xxx.map} with a paste of the actual map data, the error messages references the same line of the map code that is now in the cfg file. I made the map using the map editor, and have never edited it outside of the Wesnoth graphical map editor in any way, and did not use any special tiles or custom textures. Here is the line of code from the map it is having problems with:
Code: Select all
[multiplayer]
id=2pCaveQuestV2
name= _ "RPGA 2P Cave Quest v2"
map_data="{~add-ons/RPG_Army/maps/2pCave_Questv2.map}"
turns="unlimited"
players=9
experience_modifier=40
description= _ "Two player long-battle leveling through various environments."
[/multiplayer]
Code: Select all
Gs^Fp , Gs^Fp , Gs^Fp , Ggf , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Cv , 7 Kv , Cv , Gs^Fp , Gs^Fp , Gs^Fp , Gg^Ve , Ggf , Gs^Fp , Gs^Fp , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Xu , Uu , Uu , Rd , Uu , Uu , Uu , Uh , Mm , Mm , Uu , Uh , Uu , Mm , Qxu , Qxu , Qxu , Qxu , Qxu , Qxu , Qxu , Qxu , Qxu , Qxu , Xu , Xu , Xu , Xu , Xu , Xu , Re , Ur , Ur , Ur , Re , Hd , Re
- Pentarctagon
- Project Manager
- Posts: 5564
- Joined: March 22nd, 2009, 10:50 pm
- Location: Earth (occasionally)
Re: Seemingly erroneous "missing [x] closing tag" errors
what file encoding are you using? There was someone with a similar problem because his encoding was ANSI instead of utf8.
99 little bugs in the code, 99 little bugs
take one down, patch it around
-2,147,483,648 little bugs in the code
take one down, patch it around
-2,147,483,648 little bugs in the code
Re: Seemingly erroneous "missing [x] closing tag" errors
Hahah! Yay for Pentarctagon! I am infact using ANSI (default -- apparently -- in Notepad ++) so I should be using utf8 or utf8 without BOM??
And if I switch this, and then save all my files again, it should fix the problem... ??
And if I switch this, and then save all my files again, it should fix the problem... ??
Re: Seemingly erroneous "missing [x] closing tag" errors
I doubt this solution to be honest. I used both notepad, and notepad ++ for a while on windows and never changed my encoding from the default.
Put all your code back, open wesnoth, let it build the cache, and then check install-directory/stderr.txt. When it seems like the game is lying about missing tags, the answer is usually in stderr.txt
Put all your code back, open wesnoth, let it build the cache, and then check install-directory/stderr.txt. When it seems like the game is lying about missing tags, the answer is usually in stderr.txt
Re: Seemingly erroneous "missing [x] closing tag" errors
Try this.Zenogias wrote:Any ideas??
Re: Seemingly erroneous "missing [x] closing tag" errors
OK switching to UTF-8 did not fix the problem.
zookeeper, thanks for your advice once again, but I've become fairly certain it is not a problem with my code. If you look at my previously posted code, that was my ENTIRE scenario.cfg file after I got done using your method to cut section by section out of it.
I cut all of MY code OUT of my scenario. It will not clear until the scenario file consist of only:
The error message listed in stderr.txt, which is identical to the error message Wesnoth displays when it fails, is:
zookeeper, thanks for your advice once again, but I've become fairly certain it is not a problem with my code. If you look at my previously posted code, that was my ENTIRE scenario.cfg file after I got done using your method to cut section by section out of it.
I cut all of MY code OUT of my scenario. It will not clear until the scenario file consist of only:
Code: Select all
[multiplayer]
[/multiplayer]
Code: Select all
20100821 10:30:29 error general: The following add-on had errors and could not be loaded:
C:/Users/Nathan/Documents/My Games/Wesnoth1.8/data/add-ons/RPG_Army/_main.cfg
ERROR DETAILS:
Missing closing tag for tag multiplayer at ~add-ons/RPG_Army/scenarios/2pCave_Questv2.cfg:1 included from ~add-ons/RPG_Army/_main.cfg:68, value '' at ~add-ons/RPG_Army/maps/2pCave_Questv2.map:43 included from ~add-ons/RPG_Army/scenarios/2pCave_Questv2.cfg:4 included from ~add-ons/RPG_Army/_main.cfg:68
-
- Posts: 1549
- Joined: June 18th, 2009, 1:45 am
Re: Seemingly erroneous "missing [x] closing tag" errors
Post the whole .cfg? And map file if needed.
It's probably some obscure typo that you didn't notice. At least that's it is usually for me.
And dude: there's nothing wrong with the game. If there was a problem, none of the multiplayer maps would work.
It's probably some obscure typo that you didn't notice. At least that's it is usually for me.
And dude: there's nothing wrong with the game. If there was a problem, none of the multiplayer maps would work.
Re: Seemingly erroneous "missing [x] closing tag" errors
Oh, right, looks like you mentioned trying that already. Ok, then the most likely cause seems that your file format is just messed up. Often people manage to save their .cfg's in rtf format or something. Just post your .cfg file (the one remaining one without which the errors disappear) as an attachment and we'll see.Zenogias wrote:OK switching to UTF-8 did not fix the problem.
zookeeper, thanks for your advice once again, but I've become fairly certain it is not a problem with my code. If you look at my previously posted code, that was my ENTIRE scenario.cfg file after I got done using your method to cut section by section out of it.
Re: Seemingly erroneous "missing [x] closing tag" errors
Well I didn't necessarily mean to imply there was something wrong with the game. There might be something wrong with my copy's directory structure or a particular game config file that is causing errors unrelated to my actual cfg. I think this game is [censored] awesome. I've been devoting most of my life to it since I discovered it.
Here is the whole cfg:
Here is the ENTIRE cfg file AFTER I got done using zookeepers method of deleting code section by section trying to isolate the problem -- this STILL fails (unsurprising since, according the fail message, it is a part of the map that fails)
Here is the whole cfg:
Code: Select all
[multiplayer]
id=2pCaveQuestV2
name= _ "RPGA 2P Cave Quest v2"
map_data="{~add-ons/RPG_Army/maps/2pCave_Questv2.map}"
turns="unlimited"
players=9
experience_modifier=40
description= _ "Two player long-battle leveling through various environments."
### VERSION NOTES: Version 1.0.2
### This version has been balanced with:
### Player Leader Non-Death
### Enemy Awakening (2 enemies ahead are awake)
### Enemy and Player Gold gain at boss death
### Enemy gold gain at leader sighting
### Player Recruit enemy units at boss death
### Player Village Gold = 2; Income = 4 (!!SEEMS GOOD!!)
### Enemy units are made to be loyal when they are recruited
###
{DEFAULT_MUSIC_PLAYLIST}
{DEFAULT_SCHEDULE}
### Set Player Sides ###
[side]
side=1
team_name=1
canrecruit=yes
controller=human
fog=no
shroud=yes
village_gold=2
team_lock=yes
gold=250
income=4
team_lock=yes
gold_lock=no
income_lock=no
share_view=yes
no_leader=no
name=_"Player One"
[/side]
[side]
side=2
team_name=1
canrecruit=yes
controller=human
fog=no
shroud=yes
income=4
village_gold=2
gold=250
team_lock=yes
gold_lock=no
income_lock=no
share_view=yes
no_leader=no
name=_"Player Two"
[/side]
### Set Enemy Sides at Start ####
[side]
side=3
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
income=12
village_gold=0
gold=150
team_lock=yes
gold_lock=yes
income_lock=yes
allow_player=no
recruit=Orcish Grunt Ascension,Orcish Assassin Ascension,Wolf Rider Ascension
[ai]
village_value=0
[/ai]
no_leader=no
type=Orcish Warlord Ascension
name=_"Orc Boss"
[/side]
[side]
side=4
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
income=30
village_gold=0
gold=30
team_lock=yes
gold_lock=yes
income_lock=yes
allow_player=no
recruit=Duelist Ascension,Heavy Infantryman Ascension,Red Mage Ascension,White Mage Ascension,Swordsman Ascension,Javalineer Ascension
[ai]
village_value=0
[/ai]
no_leader=no
type=Arch Mage Ascension
name=_"Mage Boss"
[/side]
[side]
side=5
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
income=-2
village_gold=0
gold=0
team_lock=yes
gold_lock=yes
income_lock=yes
allow_player=no
recruit=Troll Whelp Ascension
[ai]
village_value=0
passive_leader=yes
[/ai]
colour=white
no_leader=no
type=Troll Warrior Ascension
name=_"Troll Boss"
[/side]
[side]
side=6
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
village_gold=0
income=-2
gold=0
team_lock=yes
gold_lock=yes
income_lock=yes
allow_player=no
recruit=Dwarven Thunderguard Ascension,Dwarven Steelclad Ascension,Dwarven Guardsman Ascension,Dwarven Ulfserker Ascension
[ai]
village_value=0.1
passive_leader=yes
[/ai]
no_leader=no
type=Dwarven Lord Ascension
name=_"Dwarf Boss"
[/side]
[side]
side=7
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
village_gold=0
income=-2
gold=0
team_lock=yes
gold_lock=yes
income_lock=yes
allow_player=no
recruit=Elven Avenger Ascension,Elven Champion Ascension,Ancient Wose Ascension,Elven Sharpshooter Ascension,Elven Sorceress Ascension,Elven Druid Ascension
[ai]
village_value=0.1
passive_leader=yes
[/ai]
no_leader=no
type=Elven High Lord Ascension
name=_"Elf Boss"
[/side]
[side]
side=8
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
village_gold=0
income=-2
gold=0
team_lock=yes
gold_lock=yes
income_lock=yes
allow_player=no
recruit=Naga Warrior Ascension,Merman Netcaster Ascension,Merman Spearman Ascension
[ai]
village_value=0.1
passive_leader=yes
[/ai]
colour=teal
no_leader=no
type=Merman Missiler Ascension
name=_"Merfolk Boss"
[/side]
[side]
side=9
team_name=2
canrecruit=yes
controller=ai
fog=yes
shroud=no
village_gold=0
income=-2
gold=0
team_lock=yes
gold_lock=yes
income_lock=yes
recruit=Necromancer Ascension,Spectre Ascension,Ruinblade Ascension,Ghast Ascension,Banebow Ascension
allow_player=no
[ai]
village_value=0
passive_leader=yes
[/ai]
colour=black
no_leader=no
type=Antediluvian Lich Ascension
name=_"End Boss"
[/side]
### Set Player Objectives ###
[event]
name=start
[objectives]
[objective]
description=_"Defeat the lich king at the end of the cave."
condition=win
[/objective]
[objective]
description=_"All of your units are destroyed."
condition=lose
[/objective]
[/objectives]
[/event]
### Set provisions for death of either player's leader ###
[event]
name=last breath
[filter]
name=_"Player One"
[/filter]
first_time_only=no
[heal_unit]
[filter]
name=_"Player One"
[/filter]
amount=60
animate=no
[/heal_unit]
[teleport]
[filter]
name=_"Player One"
[/filter]
x,y=7,2
clear_shroud=yes
animate=yes
[/teleport]
[unstore_unit]
variable=unit
[/unstore_unit]
[object]
silent=yes
[filter]
find_in=unit
[/filter]
[effect]
apply_to=movement
increase=2
[/effect]
[/object]
[/event]
[event]
name=last breath
[filter]
name=_"Player Two"
[/filter]
first_time_only=no
[heal_unit]
[filter]
name=_"Player Two"
[/filter]
amount=60
animate=no
[/heal_unit]
[teleport]
[filter]
name=_"Player Two"
[/filter]
x,y=3,5
clear_shroud=yes
animate=yes
[/teleport]
[unstore_unit]
variable=unit
[/unstore_unit]
[object]
silent=yes
[filter]
find_in=unit
[/filter]
[effect]
apply_to=movement
increase=2
[/effect]
[/object]
[/event]
### Make all enemy units Loyal
[event]
name=prerecruit
first_time_only=no
[filter]
side=3,4,5,6,7,8,9
[/filter]
[unstore_unit]
variable=unit
[/unstore_unit]
[object]
silent=yes
[filter]
find_in=unit
[/filter]
[effect]
apply_to=loyal
[/effect]
[/object]
[/event]
#### Set enemy activation upon death of previous enemies ###
[event]
name=die
[filter]
side=3
name=_"Orc Boss"
[/filter]
[modify_side]
side=5
gold=80
income=25
[ai]
passive_leader=no
[/ai]
[/modify_side]
[gold]
amount=120
side=1
[/gold]
[gold]
amount=120
side=2
[/gold]
[gold]
amount=80
side=4
[/gold]
[allow_recruit]
type=Orcish Assassin Ascension
side=1
[/allow_recruit]
[allow_recruit]
type=Orcish Assassin Ascension
side=2
[/allow_recruit]
[/event]
[event]
name=die
[filter]
side=4
name=_"Mage Boss"
[/filter]
[modify_side]
side=6
gold=0
income=30
[ai]
passive_leader=no
[/ai]
[/modify_side]
[disallow_recruit]
type=Troll Whelp Ascension
side=5
[/disallow_recruit]
[allow_recruit]
type=Troll Grunt Ascenion,Troll Rocklobber Ascension,Troll Shaman Ascension
side=5
[/allow_recruit]
[gold]
amount=120
side=1
[/gold]
[gold]
amount=120
side=2
[/gold]
[gold]
amount=120
side=5
[/gold]
[allow_recruit]
type=Mage Ascension
side=1
[/allow_recruit]
[allow_recruit]
type=Mage Ascension
side=2
[/allow_recruit]
[/event]
[event]
name=die
[filter]
side=5
name=_"Troll Boss"
[/filter]
[modify_side]
side=7
gold=0
income=50
[ai]
passive_leader=no
[/ai]
[/modify_side]
[gold]
amount=120
side=1
[/gold]
[gold]
amount=120
side=2
[/gold]
[gold]
amount=150
side=6
[/gold]
[allow_recruit]
type=Troll Whelp Ascension
side=1
[/allow_recruit]
[allow_recruit]
type=Troll Whelp Ascension
side=2
[/allow_recruit]
[/event]
[event]
name=die
[filter]
side=6
name=_"Dwarf Boss"
[/filter]
[modify_side]
side=8
gold=150
income=40
[ai]
passive_leader=no
[/ai]
[/modify_side]
[gold]
amount=120
side=1
[/gold]
[gold]
amount=120
side=2
[/gold]
[gold]
amount=120
side=7
[/gold]
[allow_recruit]
type=Dwarven Ulfserker Ascension
side=1
[/allow_recruit]
[allow_recruit]
type=Dwarven Ulfserker Ascension
side=2
[/allow_recruit]
[/event]
[event]
name=die
[filter]
side=7
name=_"Elf Boss"
[/filter]
[modify_side]
side=9
gold=100
income=40
[ai]
passive_leader=no
[/ai]
[/modify_side]
[gold]
amount=120
side=1
[/gold]
[gold]
amount=120
side=2
[/gold]
[gold]
amount=80
side=8
[/gold]
[allow_recruit]
type=Elven Shaman Ascension
side=1
[/allow_recruit]
[allow_recruit]
type=Elven Shaman Ascension
side=2
[/allow_recruit]
[/event]
[event]
name=die
[filter]
side=8
name=_"Merfolk Boss"
[/filter]
[gold]
amount=150
side=1
[/gold]
[gold]
amount=150
side=2
[/gold]
[gold]
amount=60
side=9
[/gold]
[allow_recruit]
type=Phantom Ascenion,Warlock Ascension,Abomination Ascenion
side=9
[/allow_recruit]
[disallow_recruit]
type=Necromancer Ascension,Spectre Ascension,Ghast Ascension
side=9
[/disallow_recruit]
[allow_recruit]
type=Orcish Prowler Ascension,Silver Mage Ascension,Troll Shaman Ascension,Dwarven Rampager Ascension,Elven Enchantress Ascension
side=1
[/allow_recruit]
[allow_recruit]
type=Orcish Prowler Ascension,Silver Mage Ascension,Troll Shaman Ascension,Dwarven Rampager Ascension,Elven Enchantress Ascension
side=2
[/allow_recruit]
[/event]
### Further balancing events (gold when boss sited, etc.)
[event]
name=sighted
[filter]
name=_"Orc Boss"
[/filter]
[filter_second]
side=1,2
[/filter_second]
[gold]
amount=80
side=3
[/gold]
[/event]
[event]
name=sighted
[filter]
name=_"Mage Boss"
[/filter]
[filter_second]
side=1,2
[/filter_second]
[gold]
amount=120
side=4
[/gold]
[/event]
[event]
name=sighted
[filter]
name=_"Troll Boss"
[/filter]
[filter_second]
side=1,2
[/filter_second]
[gold]
amount=100
side=5
[/gold]
[/event]
[event]
name=sighted
[filter]
name=_"Dwarf Boss"
[/filter]
[filter_second]
side=1,2
[/filter_second]
[gold]
amount=80
side=6
[/gold]
[/event]
[event]
name=sighted
[filter]
name=_"Elf Boss"
[/filter]
[filter_second]
side=1,2
[/filter_second]
[gold]
amount=100
side=7
[/gold]
[/event]
[event]
name=sighted
[filter]
name=_"Merfolk Boss"
[/filter]
[filter_second]
side=1,2
[/filter_second]
[gold]
amount=60
side=4
[/gold]
[/event]
[/multiplayer]
Code: Select all
[multiplayer]
id=2pCaveQuestV2
name= _ "RPGA 2P Cave Quest v2"
map_data="{~add-ons/RPG_Army/maps/2pCave_Questv2.map}"
turns="unlimited"
players=9
experience_modifier=40
description= _ "Two player long-battle leveling through various environments."
[/multiplayer]
- Attachments
-
- 2pCave_Questv2.cfg
- Whole cfg file
- (10.63 KiB) Downloaded 157 times
-
- 2pCave_Questv2_fixing.cfg
- Version I cut code from
- (299 Bytes) Downloaded 132 times
Re: Seemingly erroneous "missing [x] closing tag" errors
I can't post the map since it contains too many characters and I can't upload it since it's too large.
Also, I reference ascension units [Great work, nicely done] which obviously I would have changed or sought permission for before I ever intended to publish
Also, I reference ascension units [Great work, nicely done] which obviously I would have changed or sought permission for before I ever intended to publish
Re: Seemingly erroneous "missing [x] closing tag" errors
Well, 2pCave_Questv2.cfg doesn't have any errors in it. So, it's probably the map file then. However, what do you mean it's "too large" to upload? Map files aren't big. If the problem is that the forum doesn't let you attach a file with the .map extension, then you can just change that to .txt or something.
Re: Seemingly erroneous "missing [x] closing tag" errors
Yay! (To everyone operating under the assumption my code was wrong: told you I've been over it a thousand times..)zookeeper:
Well, 2pCave_Questv2.cfg doesn't have any errors in it.
Well, my map file is 81k - it's a fairly large map, 72x84 or something on that order.. Just made a new, blank map (all grass) of the same size using the map editor and saved it, and it is the same file size..
When I attempt to attach I get: "The file is too big, maximum allowed size is 50 KiB.
When I attempt to post it I am warned that I am over the character limit for a post.
Re: Seemingly erroneous "missing [x] closing tag" errors
OK, well part1 is everything BEFORE line 40
and part2 IS line 40, and everything after.
Paste the entire contents of part2 at the end of part1 on a new line, and then delete the "_part1" from the file name, and you will have reproduced my map file in its entirety. (Line 43 is where the loading fails; and if I delete the entire contents of line 43, shifting the rest of the code up a line and making the map a row of hexes shorter, then it STILL fails on line 43)
and part2 IS line 40, and everything after.
Paste the entire contents of part2 at the end of part1 on a new line, and then delete the "_part1" from the file name, and you will have reproduced my map file in its entirety. (Line 43 is where the loading fails; and if I delete the entire contents of line 43, shifting the rest of the code up a line and making the map a row of hexes shorter, then it STILL fails on line 43)
- Attachments
-
- 2pCave_Questv2_part2.map
- (45.24 KiB) Downloaded 141 times
-
- 2pCave_Questv2_part1.map
- (35.43 KiB) Downloaded 142 times