So, using my quest editor, I decided to check the error checker by checking the quests that come with the game. Here is some of the results of the check.
In Quest_TheHaunter, there is a reference to a Plaguestalker, There is an inappropriate capitalization.
This should read as follows
<Encounter> <Liklihood>100</Liklihood> <BattleIdentifier>Haunter</BattleIdentifier> <WillRespawn>0</WillRespawn> <WanderingRadius>0</WanderingRadius> <UnitInstance> <UnitType>Haunter</UnitType> <Level>7</Level> </UnitInstance> <UnitInstance> <UnitType>Plaguestalker</UnitType> <Level>5</Level> </UnitInstance> <UnitInstance> <UnitType>Plaguestalker</UnitType> <Level>5</Level> </UnitInstance> </Encounter>
The quest works fine with the error, but as your fixing up the quests, why not fix up these quick things.
In Quest_TreasureMap, there is a missreference between two goodie huts. It spawns one goodie hut, but wants you to clear another, leads to some problems.
<Treasure> <GameModifier> <ModType>Map</ModType> <Attribute>CreateGoodieHut</Attribute> <StrVal>Treasure Chest</StrVal> <Unitclass>GH_Quest_Chest</Unitclass> <Radius>6</Radius> </GameModifier> </Treasure> <QuestConditionDef> <Objective> <Icon>Mana_32.png</Icon> <Text>Find the Treasure Chest.</Text> <IsOptional>0</IsOptional> </Objective> <Class>Success</Class> <Type>ClearGoodieHut</Type> <TextData>GH_Quest_Chest</TextData> <Flag>RevealTarget</Flag> </QuestConditionDef>
The fix is to match up the tags, as I've done above.
In Quest_Persecution, there is a typo reference (misspelled name call) (It was Unit_Peasant_Altarien)
<Encounter> <Liklihood>100</Liklihood> <BattleIdentifier>Unit_Defender_Tarth</BattleIdentifier> <WillRespawn>0</WillRespawn> <WanderingRadius>0</WanderingRadius> <UnitInstance> <UnitType>Unit_Defender_Tarth</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>3</Level> </UnitInstance> <UnitInstance> <UnitType>Unit_Peasant_Ironeer</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>2</Level> </UnitInstance> <UnitInstance> <UnitType>Unit_Peasant_Altarian</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>1</Level> </UnitInstance> <UnitInstance> <UnitType>Unit_Peasant_Amarian</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>1</Level> </UnitInstance> <UnitInstance> <UnitType>Unit_Peasant_Tarth</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>1</Level> </UnitInstance> <UnitInstance> <UnitType>Unit_Peasant_Tarth</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>1</Level> </UnitInstance> <UnitInstance> <UnitType>Unit_Peasant_Tarth</UnitType> <UnitName>Rioting Mob</UnitName> <UnitGroupingType>UnitGroupingType_Group</UnitGroupingType> <Level>1</Level> </UnitInstance> </Encounter>
The fix is to match up the reference in the coreUnits.xml file.
In Quest_Slavers, there were a few errors that should be fixed... here is the list of them
<QuestObjectiveDef> <ObjectiveID>0</ObjectiveID> <NextObjectiveID>1</NextObjectiveID> ... <QuestChoiceDef> <Description>I'll return later.</Description> <NextObjectiveID>0</NextObjectiveID> </QuestChoiceDef> </QuestObjectiveDef>
change the quest objective to go to 0.
<QuestObjectiveDef> <ObjectiveID>3</ObjectiveID> <NextObjectiveID>4</NextObjectiveID> ... <QuestChoiceDef> <Description>I'll return later.</Description> <NextObjectiveID>0</NextObjectiveID> </QuestChoiceDef> </QuestObjectiveDef>
change the quest objective to go to 0. These two changes combined prevent the quest Infinite-loop problem.
The other major error in the quest comes on one of the conditions.
<QuestObjectiveDef> <ObjectiveID>5</ObjectiveID> <NextObjectiveID>6</NextObjectiveID> <Description>The other freed slaves are moving off on their own.</Description> <Treasure> <GameModifier> <ModType>Map</ModType> <Attribute>CreateGoodieHut</Attribute> <StrVal>Family Farm</StrVal> <Unitclass>GH_Quest_RuinedHouse</Unitclass> <Radius>3</Radius> </GameModifier> </Treasure> <Treasure> <GameModifier> <ModType>Unit</ModType> <Attribute>UnitJoinArmy</Attribute> <StrVal>Unit_Quest_Farmgirl</StrVal> <Unitclass>Unit</Unitclass> </GameModifier> </Treasure> <QuestConditionDef> <Objective> <Icon>Mana_32.png</Icon> <Text>Escort the girl home.</Text> <IsOptional>0</IsOptional> </Objective> <Class>Success</Class> <Type>ClearGoodieHut</Type> <TextData>GH_Quest_RuinedHouse</TextData> <MoreTextData>Unit_Quest_Farmgirl</MoreTextData> <Flag>DestroyUnit</Flag> <Flag>UnitMustBeEscorted</Flag> <Flag>RevealTarget</Flag> <CompletionText>The old farmer father thanks you for returning his granddaughter.</CompletionText> </QuestConditionDef> <QuestConditionDef> <Objective> <Icon>Mana_32.png</Icon> <Text>Protect the girl from harm.</Text> <IsOptional>0</IsOptional> </Objective> <Class>Failure</Class> <Type>UnitKilled</Type> <Faction>Player</Faction> <TextData>Unit_Quest_Farmgirl</TextData> <NumericData>1</NumericData> <CompletionText>You failed to protect the girl and she died a most gruesome death. Rescued from one fate only to find a worse.</CompletionText> </QuestConditionDef> <QuestConditionDef> <Objective> <Icon>Mana_32.png</Icon> <Text>Don't send the girl home alone.</Text> <IsOptional>0</IsOptional> </Objective> <Class>Failure</Class> <Type>ClearGoodieHut</Type> <TextData>GH_Quest_RuinedHouse</TextData> <MoreTextData>Unit_Quest_Farmgirl</MoreTextData> <Flag>DestroyUnit</Flag> <Flag>UnitUnescorted</Flag> <CompletionText>While he's thankful she's safe at home again, your heroism is in question after sending her off by herself.</CompletionText> </QuestConditionDef> </QuestObjectiveDef>
The change here is to switch <MoreTextData> to <TextData> otherwise this poor farmgirl could die and the quest will never finish (successfully or not-successfully)
These errors were all found with my quest editor, so there may still be other errors that I haven't checked for. But this will make all these quests function properly.
Thanks parrotmath. You have done so much for this game.
All fixed. You are awesome Parrottmath!
Thanks. I did a check on your scenario quests the same way and didn't find any errors just for your piece of mind. What are the job requirements to work for Stardock?
Whatever they are, if you don't fit them, nobody can!
Great work on helping the game be better in such practical ways. Having good Q&A is so critical to the success of software. The community as a whole helps a lot, but you take it one step further and provide the solutions (not just the problem). You're really developer-quality!
Talent, Passion, Initiative. All of which you have already displayed.
Any chance for an item/quest/unit as a kudos to parrottmath? I could see having a quest where someone has to find a captured parrot and return it so a merchant company can ship their final product. That would be awesome.
+1 to some sort of in game nod to Parrottmath, Lord Reliant's idea is a great "insider" joke. Maybe add the quest to the scenario, and make the bad guys pirates since boats are usable.
"Easter Eggs" in any game are always good. Now ya should add "Parrott Eggs"!
Missed a set of plague stalkers for the haunting quest. Don't think that the game actually cares about the capitalization, but to be safe for future fixes to the engine you may do. (I know in my previous post, I didn't post the second set of Plaguestalkers, sorry about that)
Like before the magenta was set to say PlagueStalker instead of the correct Plaguestalker.
<QuestChoiceDef> <Description>Attack the creature.</Description> <NextObjectiveID>1</NextObjectiveID> <PopupMessage>You approach the creature slowly with an offering in hand. Once you are close enough your hand closes on your weapon, you will not give gildar to this abomination, it will have to take steel.</PopupMessage> <Encounter> <Liklihood>100</Liklihood> <BattleIdentifier>Haunter</BattleIdentifier> <WillRespawn>0</WillRespawn> <WanderingRadius>0</WanderingRadius> <UnitInstance> <UnitType>Haunter</UnitType> <Level>7</Level> </UnitInstance> <UnitInstance> <UnitType>Plaguestalker</UnitType> <Level>5</Level> </UnitInstance> <UnitInstance> <UnitType>Plaguestalker</UnitType> <Level>5</Level> </UnitInstance> </Encounter> </QuestChoiceDef>
Man, it seems like having the XML case-sensitive sure causes a TON of bugs with things not working right. I mean, PlagueStalker vs Plaguestalker. Yeesh! The capitalization should only aid in the display of the info, not totally destroy a quest because of a non-capitalized 's'.
There are many great features available to you once you register, including:
Sign in or Create Account