[MOD] MagisterModmod

:)
(post 7 to remove the seven characters lower limit :p)
 
And those of us who check this thread daily appreciate the update as well! :)
 
Hello,

I just updated, but now my old saves will no longer load. If I try to load them directly, the whole program just crashes. If I start a new game, and try to load the save from there, it gives me a fatal error, and says there was a bad memory allocation and closes the program. Is this something funky on my end, or are others having this problem?

Thanks
 
Hello,

I just updated, but now my old saves will no longer load. If I try to load them directly, the whole program just crashes. If I start a new game, and try to load the save from there, it gives me a fatal error, and says there was a bad memory allocation and closes the program. Is this something funky on my end, or are others having this problem?

Thanks

Easy, simply forget your old saves. As most patches, this breaks old saves.
 
Easy, simply forget your old saves. As most patches, this breaks old saves.

Yeah, I suspected that might be the case. I was hoping otherwise. No worries, I'm off and running again.

Also, I've noticed that AI scouts are still getting 'stuck' on dungeons. They'll just stand there turn after turn and never explore or move on.

Thanks
 
Game simply freezes by hitting turn.

I'll try it this evening (I'm volunteering at habitat for humanity today from 1 to 4pm), but it would be more helpful if you included the logs rater than just the saved game.

PythonErr.log is the most useful for finding actual bugs, but BBAI.log and MPLog.txt tend to be more helpful in tracking down the source of Waiting for Other Civilizations issues.
 
enabled logging...from this save...here is BBAI:
Spoiler :

[124625.609]

Player 1 (Ljosalfar) setTurnActive for turn 354
[124625.609] Player 1 (Ljosalfar) has 14 cities, 224 pop, 9247 power, 92 tech percent
[124625.609] Team 1 has met: 0,3,5,; at war with: 3,5,; planning war with:
[124625.609] Enemy power perc: 229 (180 with others reduction)


Python error log was empty...

MLF log:

Spoiler :
[588355.399] Entering MLF
[588355.399] The default configuration in "modules\NormalModules\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\FirstLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\SecondLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\ThirdLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\FourthLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399]

The game will now load the modules into the load vector in the order set by the MLF files:
[588355.399] Load Priority: 0, "modules\LoadOrderVitalModules\FirstLoad"
[588355.399] Load Priority: 1, "modules\LoadOrderVitalModules\SecondLoad"
[588355.415] Load Priority: 2, "modules\LoadOrderVitalModules\ThirdLoad"
[588355.415] Load Priority: 3, "modules\LoadOrderVitalModules\FourthLoad"
[588355.415] Load Priority: 4, "modules\NormalModules"
[588355.415] Finished the MLF, you will now continue loading regular XML files
 
Game simply freezes by hitting turn.

For me it froze while I was trying to load the saved game file. I couldn't really learn anything from it.

Edit: I tried again, and it finished loading this time. When I hit next turn it froze and seemed like it would crash, but I kept waiting. It then went to the normal Waiting for Other Civilizations message, and then after a few more minutes progressed to the my turn as it was supposed to do.

I checked BBAI.log and MPLog.txt multiple times while I was waiting, and got the impression that the holdup was all during Arendel Phaedra's turn.

Considering that Arendel is at war with 2 other players, I think the issue is probably the prerequisite of the March of the Tree's spell. I got tired of seeing the Ljosalfar waste their world spell when they are at war but not in any danger because there are no enemy units anywhere near their cities. I recently changed it so that the AI can not use it unless there is at least one hostile unit in their territory. This might slow down this prereq somewhat.

I just realized that there is no good reason for the the final "return true" statement or the "if bInvaded and iCount > 5:" conditional within which it is placed to be outside the for loop. If you indent it to be within the "if pPlot.getOwner() == iPlayer:" conditional then the code ought to run significantly faster in cases where the Ljosalfar territory is large.

Edit: Making that change didn't help much. Still, I'm not sure there is actually anything wrong. There might just be too many units in the game for you processor to handle easily.

(The first issue I noticed when you save finally loaded is that Auric could be added to a Flesh Golem. That seems like a very bad idea. I just added a couple lines to the prereq of that spell that makes units which are avatars of leaders unable to be sacrificed like that.)

enabled logging...from this save...here is BBAI:
Spoiler :

[124625.609]

Player 1 (Ljosalfar) setTurnActive for turn 354
[124625.609] Player 1 (Ljosalfar) has 14 cities, 224 pop, 9247 power, 92 tech percent
[124625.609] Team 1 has met: 0,3,5,; at war with: 3,5,; planning war with:
[124625.609] Enemy power perc: 229 (180 with others reduction)


Python error log was empty...

MLF log:

Spoiler :
[588355.399] Entering MLF
[588355.399] The default configuration in "modules\NormalModules\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\FirstLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\SecondLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\ThirdLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399] The default configuration in "modules\LoadOrderVitalModules\FourthLoad\MLF_CIV4ModularLoadingControls.xml" was set to "NONE", settings in this file will be disregarded
[588355.399]

The game will now load the modules into the load vector in the order set by the MLF files:
[588355.399] Load Priority: 0, "modules\LoadOrderVitalModules\FirstLoad"
[588355.399] Load Priority: 1, "modules\LoadOrderVitalModules\SecondLoad"
[588355.415] Load Priority: 2, "modules\LoadOrderVitalModules\ThirdLoad"
[588355.415] Load Priority: 3, "modules\LoadOrderVitalModules\FourthLoad"
[588355.415] Load Priority: 4, "modules\NormalModules"
[588355.415] Finished the MLF, you will now continue loading regular XML files

I don't really see any useful info there.

I said MPLog.txt, not MFL.log. I've never found MFL.log useful.

The BBAI.log is so short that it must have come from just recently loading the saved game. It might have been more helpful if you had made a copy of the files as soon as you had you issue. Loading a new game causes all the old info to get overwritten.


Just played a Sidar game, switched to Infernal in turn 201, 1 turn later, I got infinite waiting, the game hanged.

I started the first saved game and pressed next turn, but was surprised to see no offer to switch to the Infernals. It seems this switch was from before telling a city to build the Infernal Pact.

Loading your Judecca save I get a Waiting for Other Civilizations issue that does not seem to end.

When I try building the Infernal Pact from you Sidar save I got the option to switch to Duke Sallos instead. Things seemed fine for one turn, then I got the same hang.

I noticed in BBAI.log and MPLog.txt that the most recent things that happened related to the Barbarian State moving its units.

I went back to the Sidar save, and this time did not construct the Infernal Pact until after defeating those Barbarian Balor and Beast of Agares located near the Pyre of the Seraphic, between Skarlas and Celo. This time I was given the option to switch to Statius the Redeemer. I have since played for a dozen turns without incident.

I recall that in MPLog.txt there were several references to trying to find a clear plot near the references to that Balor and Beast of Agares. At the time I thought it had to do with the results of the unit exploring the Pyre of the Seraphic, but now I think it had to do with trying to move those barbarian units out of your territory once you made peace with the Barbarians. Perhaps I need to modify the Infernal Pact code so that it also grants an Open Border Agreement with the Barbarian State?

Edit: Granting Open Borders with the barbarian state does not appear to change anything.
 
Hello,

Since we're talking about Infernals, barbarians, and such, here's an oddity: In my latest game many infernals have been summoned. I've just discovered that Lethe, Queen of Sorrow has been hanging out with an army and no cities for I'm not sure how long.

She entered near the Doviello (I just eliminated the Doviello, that's how I met Lethe). Was she not allowed to expand due to their barbarian relationship? Now that they are gone she has room to move, yet stays right where she is with her army and settler. Is it that she's just not seeing anywhere worthwhile to move, and doesn't know how to explore?

I've attached a couple logs and a saved game if anyone wants to give it a gander.

Also, can anyone tell me how the game decides where to put the infernals when they enter? Sometimes they take over cities, and sometimes they show up with a settler. I have not been able to discern a pattern.

Thanks
 

Attachments

Haven't played this in a while I downloaded the latest as of a few days ago. Playing as the Luchuirp, and did the world spell for the Golden Hammers. But instead of every city getting a hammer, every unit got a hammer. Even the ships and hawks. Only the workers did not.
 
I'm a few iterations behind, so I'm not sure if this has been addressed, but the crossbowmen are just really overpowered. The only thing that can challenge them on defense other national units, but the crossbowmen are unlimited. On top of that, they cost half of what the longbowmen cost.

Maybe make them nation or limit them to iron weapons?
 
Couldn't upload logs and save correctly...packed save, BBAI and MPlog.txt...freezes on turn...

aaaand python error:
civ4screenshot0000y.jpg
 

Attachments

Had lots of OOS problems today, both with the november and the new december version:

1.) Runes of Kilmorph seems to cause an OOS every few rounds if researched by a human player. Occured on november and december version, playing Lanun and Kuriotates. If we reload and take over another civ and let the AI play the problem civ, the OOS doesn't occur. Attached a save file (december version) one turn before Lanun researches Runes of Kilmorph and the game goes out of sync. If the AI takes over the Civ or Runes of Kilmorph research is aborted, the OOS doesn't occur. Also attached some OOS logs from the November version with either Lanun or Kuriotates being the problem child.

2.) Great sage with fireball ability causes an OOS immediately when casting the spell. (December version)

3.) Got another OOS without Runes of Kilmorph sometimes after that with unknown reason. Not sure if it's specific to new december version.

It's very strange, since we could play the july and november version on two occasions without any problems, but today, every game was plagued with them, regardless if we used the november or december version.
 

Attachments

Many thanks! Now I can try to defeat the monster Sider I just created.

For me it froze while I was trying to load the saved game file. I couldn't really learn anything from it.

Edit: I tried again, and it finished loading this time. When I hit next turn it froze and seemed like it would crash, but I kept waiting. It then went to the normal Waiting for Other Civilizations message, and then after a few more minutes progressed to the my turn as it was supposed to do.

I checked BBAI.log and MPLog.txt multiple times while I was waiting, and got the impression that the holdup was all during Arendel Phaedra's turn.

Considering that Arendel is at war with 2 other players, I think the issue is probably the prerequisite of the March of the Tree's spell. I got tired of seeing the Ljosalfar waste their world spell when they are at war but not in any danger because there are no enemy units anywhere near their cities. I recently changed it so that the AI can not use it unless there is at least one hostile unit in their territory. This might slow down this prereq somewhat.

I just realized that there is no good reason for the the final "return true" statement or the "if bInvaded and iCount > 5:" conditional within which it is placed to be outside the for loop. If you indent it to be within the "if pPlot.getOwner() == iPlayer:" conditional then the code ought to run significantly faster in cases where the Ljosalfar territory is large.

Edit: Making that change didn't help much. Still, I'm not sure there is actually anything wrong. There might just be too many units in the game for you processor to handle easily.

(The first issue I noticed when you save finally loaded is that Auric could be added to a Flesh Golem. That seems like a very bad idea. I just added a couple lines to the prereq of that spell that makes units which are avatars of leaders unable to be sacrificed like that.)



I don't really see any useful info there.

I said MPLog.txt, not MFL.log. I've never found MFL.log useful.

The BBAI.log is so short that it must have come from just recently loading the saved game. It might have been more helpful if you had made a copy of the files as soon as you had you issue. Loading a new game causes all the old info to get overwritten.




I started the first saved game and pressed next turn, but was surprised to see no offer to switch to the Infernals. It seems this switch was from before telling a city to build the Infernal Pact.

Loading your Judecca save I get a Waiting for Other Civilizations issue that does not seem to end.

When I try building the Infernal Pact from you Sidar save I got the option to switch to Duke Sallos instead. Things seemed fine for one turn, then I got the same hang.

I noticed in BBAI.log and MPLog.txt that the most recent things that happened related to the Barbarian State moving its units.

I went back to the Sidar save, and this time did not construct the Infernal Pact until after defeating those Barbarian Balor and Beast of Agares located near the Pyre of the Seraphic, between Skarlas and Celo. This time I was given the option to switch to Statius the Redeemer. I have since played for a dozen turns without incident.

I recall that in MPLog.txt there were several references to trying to find a clear plot near the references to that Balor and Beast of Agares. At the time I thought it had to do with the results of the unit exploring the Pyre of the Seraphic, but now I think it had to do with trying to move those barbarian units out of your territory once you made peace with the Barbarians. Perhaps I need to modify the Infernal Pact code so that it also grants an Open Border Agreement with the Barbarian State?

Edit: Granting Open Borders with the barbarian state does not appear to change anything.
 
Hello,

Since we're talking about Infernals, barbarians, and such, here's an oddity: In my latest game many infernals have been summoned. I've just discovered that Lethe, Queen of Sorrow has been hanging out with an army and no cities for I'm not sure how long.

She entered near the Doviello (I just eliminated the Doviello, that's how I met Lethe). Was she not allowed to expand due to their barbarian relationship? Now that they are gone she has room to move, yet stays right where she is with her army and settler. Is it that she's just not seeing anywhere worthwhile to move, and doesn't know how to explore?

I've attached a couple logs and a saved game if anyone wants to give it a gander.

Also, can anyone tell me how the game decides where to put the infernals when they enter? Sometimes they take over cities, and sometimes they show up with a settler. I have not been able to discern a pattern.

Thanks

I've also noticed that when the Infernals enter the world on a Helfire tile instead of taking a city, that they tend to stay on that tile. I just now realized that this is probably because the improvement has the <bExploreTarget>1 tag. The issue thus appears to be the same as that which causes units to seek out other lairs and then merely sit on them rather than actually exploring or moving on to something else.


I'm really not sure why the AI tends to leave units on lairs without actually exploring them. I believe that is More Naval AI behavior, which Tholal will have to address himself.

Edit: I just realized that in More Naval AI, the explore lair spells all have <iAIWeight>300</iAIWeight>. I did not copy that tag when I merged my mod with Tholal's. Perhaps doing so will solve the problem.

I'm thinking I might want to remove the <bExploreTarget>1 tag from the epic lairs though, because in my modmod exploring these will not clear them from the map. Units might stay there waiting to clear them, and so get stuck forever.

The Infernals should not risk exploring hellfire too much before founding their first city, so I'll remove that tag from Hellfire too.


A new Infernal Leader will take over a city if there is a valid city for him to take.

For a city to be valid, it must have the Ashen Veil religion present in it. It cannot be anyone's capital city, nor may it be Acheron's city. It must also not belong to another Ashen Veil player, or to the player who summoned the demon lord. The presence of wonders, holy city status, and whether the current owner has the Ashen Veil as his State Religion all go into determining which of the valid cities the demon lord will prefer to take, but not not whether he can take one at all.

If a demon lord cannot claim any city, then his units will instead appear on the map on a random tile, which will be given a Hellfire improvement.

Haven't played this in a while I downloaded the latest as of a few days ago. Playing as the Luchuirp, and did the world spell for the Golden Hammers. But instead of every city getting a hammer, every unit got a hammer. Even the ships and hawks. Only the workers did not.

I changed that spell a long time ago, since I considered it quite weak. I had meant for it to give a Golden Hammer only to living units, actually coded it to give them to all units with any unitcombat. In my modmod basically every unit has a unit combat except for Golems (excluding Barnaxus), Auric Ascended, and Heirs of Taranis.

Just after the release (before you posted) I changed it so that it would indeed only go to living units.

After you posted I realized that their world spell might have something to do with why the Luchuirp tend to dominate so much. I have since then reverted to using the base FfH2 code.


I'm a few iterations behind, so I'm not sure if this has been addressed, but the crossbowmen are just really overpowered. The only thing that can challenge them on defense other national units, but the crossbowmen are unlimited. On top of that, they cost half of what the longbowmen cost.

Maybe make them nation or limit them to iron weapons?

I decreased their strength by 1 when I first read this. That was late at night, and I wasn't sure what you meant by the last line. I just now realized that they could get Mithril Weapons. They cannot anymore.

Couldn't upload logs and save correctly...packed save, BBAI and MPlog.txt...freezes on turn...

aaaand python error:
civ4screenshot0000y.jpg

I haven't looked through the posted files yet, but from the python exception texts on screenshot it appears that the error could only be caused by sacrificing a unit on a Demons Altar while not currently researching any technology. The fact that in the background I can see you are researching Fanaticism throws doubt on that theory, but I suppose the error could be caused by an AI player using the spell. I just added a check to prevent such an error.

Had lots of OOS problems today, both with the november and the new december version:

1.) Runes of Kilmorph seems to cause an OOS every few rounds if researched by a human player. Occured on november and december version, playing Lanun and Kuriotates. If we reload and take over another civ and let the AI play the problem civ, the OOS doesn't occur. Attached a save file (december version) one turn before Lanun researches Runes of Kilmorph and the game goes out of sync. If the AI takes over the Civ or Runes of Kilmorph research is aborted, the OOS doesn't occur. Also attached some OOS logs from the November version with either Lanun or Kuriotates being the problem child.

2.) Great sage with fireball ability causes an OOS immediately when casting the spell. (December version)

3.) Got another OOS without Runes of Kilmorph sometimes after that with unknown reason. Not sure if it's specific to new december version.

It's very strange, since we could play the july and november version on two occasions without any problems, but today, every game was plagued with them, regardless if we used the november or december version.

I'm really not sure what could be causing the Runes of Kilmorph issue. The only possibility I can think of is the Build Mountain Mine ability. In the November version, this spell allowed Soldiers of Kilmorph to build mines on peaks, after a delay of 3 turns. In the December version the ability takes a turn longer, ignores whether the unit has already cased something that turn, and has the Runes of Kilmorph State religion prereq instead of the unit prereq in XML. The python prereq now makes it available to workers/mud golems, great engineers, and Soldiers of Kilmorph.


The Great Sage is question is surely either Mikel Dylantyr or Menolly NuValle. Mikel was the archmage who ran Kylorin's school of Fire Magic. Menolly was the wife of the last Bannor king of Braduk before the fall of Bhall, and was a Fire Archmage in her own right. It seemed thematically appropriate to give them fire magic. (Fire 3 would seem more appropriate, but also way too strong.)

Great people such as these are given such bonus promotions through the <PyRequirement> of SPELL_IDENITFY_GREAT_PERSON. It is quite possible that changes made by a spell prerequisite are not being passed on to other players. The problem may stem from the fact that the great person only has the Fire 2 promotion and thus the ability to use the spell in one version of the game.

I might need to remove the spell-granting promotions as great person bonuses. I hope this does not mean that I also need to remove the thematically appropriate races and random names for once the list of unique names has been exhausted. The code that determines when an adventurer should or should not create a sluagh (and thus be available for resurrection depends) on them having unique names.

I just realized that the OOS error could also be caused by the fact that I made the "Grigori Racial Diversity" feature of the Advanced Tactics options apply to Grigori/Kuriotates Great Persons too instead of only units built in Grigori/Kuriotates cities. Having one player generate a (pseudo-)random number here probably means that their computer generates different (pseudo-)random numbers than the other computers in the future.

I'm not really sure what I can do about this. I would really prefer to be able to place the effectIDGP code in CvEventManager.py's def onUnitCreated, but I'm pretty sure that units are not given their random names upon being initially created.

Edit: Actually, it seems to be working just fine under def onUnitCreated (once "pCaster" is replaced by "unit" and everything is indented properly, of course). I have changed it to work that way. Not only will this probably prevent those OOS errors, but it should also make the game run faster and prevent people from cheating by changing the names of their great people in order to get free promotions.

I did have to add 3 lines of code to def effectAdventure(pCaster) in order to prevent adventurers who revert to the adventurer unit from getting new racial promotions based on the unique names which would be immediately overwritten when the old unit is converted to the new one. In the process I realized that some of the existing code there is now unnecessary.
 
I've heard people complain of the Unsummon spell not being very useful as (except in simultaneous turns multiplayer games) you cannot use it until the enemy summons have already been used and would probably have their duration expire very soon.

I've been thinking that the Sever Soul spell is actually quite a good fit for the Dimensional sphere thematically. What you you think if I made it the Dimensional II spell?.


I also just got to thinking about the possibility of bringing back a new implementation of the Ring of Warding (a defensive building from early versions of FfH2). It would be a building that is created by a spell and requires the caster to maintain it (like Hope, Inspiration, Wall of Stone, Muse, or Fertility). It would probably help units in the city resist magic and maybe also provide more a mundane defensive bonus like walls, but its main benefit would be killing all hostile summons who come near.

(I could alternately make it work as an improvement with a <PythonAtRange/> or <PythonOnMove> call, but I wouldn't want to have to deal with destroying other improvements or making only usable on certain tiles. Also, I just recalled that its artwork is the same as the Ring of Carcer, and might be confused for that unique feature if it were in the wilderness instead of surrounding a city.)

At first I was thinking that of the Ring of Warding as an alternate possibility for Dimensional II or maybe a second Metamagic II spell, but now I leaning towards making it Force II. Having both the level 1 and level 1 force spells grant promotions that boost a unit's resistances to various damage types has never been particularly appealing to me. The variety of having one promotion, one building, and one summon seems better. Kael did at one point mention that Force magic is used to create magical barriers.

What do you think? Should I make Ring of Warding replace Magic Resistance, and make the magic resistance promotion again something that may be purchases with XP?

(The Bestiary says that Runewyns are frequently sent to cross magical boundaries, so they might be made immune to the Rong of Warding effect.I'm thinking I might make it so that a Runewyn attacking a city also destroys all of the requires-caster buildings in said city. Naturally, their strength or affinity would be reduced if they gained these extra advantages.)


If I add another spell that generates a defensive building, I wonder whether it is worth keeping the Wall of Stone. It is a bit odd to have a spell generated building whose benefit can be entirely negated by siege weapons and which becomes less valuable in cities with more culture. It is also worth noting that the Earth sphere does not have any spells that deal with its aspect of embodying work. What would people think of replacing a wall-like building with a forge-like building?
 
me-thinks both are good.
However, I would rather have the "ring barrier" be more imposing on the caster...
or less powerfull.
destroying every summon is very powerful for a lvl2 spell.
(especially for high order elementals).
maybe either :
-gives (aura?, 2range(all BFC) ) +30% vs summons (or +50) (either as "feature of the terrain, or as a temporary promotion that disapear as soon as you move out of range)

-defensive strike mechanics on summons (or like the malakim tower of flame or something, but activated by summons): each summon that

-blocks the caster from casting ?
and : each time a summon attack the city, the ring may fail. chance is increased proportionnaly to summons str²*level and inversly proportional to greater caster with dimensional 2 : lvl (*2 for mage, *3 for archmage).

For earth 1.. it would be nice... eg. a +5%:hammers: magical forge, +10% with earth mana, +5% with enchantment (total +20%)
 
Back
Top Bottom