HOF Mod Support/Suggestions

Status
Not open for further replies.
No a very helpful message, huh? It doesn't look like one from my code, so something in OS or DLLs is reporting the issue.

Random questions/thoughts: Is this during the install or executing the exe? Are you using XP sp2? Do you have Civ4 installed? You might check to see if your registry entry is pointing to the correct installdir for Civ4. Warlords? Does your signon user have admin rights to your PC? What about internet access? The default security model VB Express uses seems to require those accesses.

Not, not so helpful. at least it is polite though!

So, this happens when i run the exe. install goes through fine.
I have XP SP2 and its kept up to date
I looked in regedit under HKEY_LOCAL_MACHINE (is this right??) and looked in the program file registry entry for warlords. the installdir value is C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Warlords which seems ok to me.
My user logon does have admi rights and i do have internet access. I also have office XP installed.

I did figure out that the message is generated by something called DW20.exe i noticed that dw20.exe came up in the processes list whenever i tried to run mapfinder. this seems to be part of MS office error reporting. I thought i might be onto something when i noticed that because i have the error reporting service switched off on my machine. i switched it back on and tried again but ti still didn't work.

oh well, not much to help there I'm afraid....
 
superslug
Hi,
I can not submit my games since Jan 31.
Start File cheking do not work too.
 
Not, not so helpful. at least it is polite though!

So, this happens when i run the exe. install goes through fine.
I have XP SP2 and its kept up to date
I looked in regedit under HKEY_LOCAL_MACHINE (is this right??) and looked in the program file registry entry for warlords. the installdir value is C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Warlords which seems ok to me.
My user logon does have admi rights and i do have internet access. I also have office XP installed.

I did figure out that the message is generated by something called DW20.exe i noticed that dw20.exe came up in the processes list whenever i tried to run mapfinder. this seems to be part of MS office error reporting. I thought i might be onto something when i noticed that because i have the error reporting service switched off on my machine. i switched it back on and tried again but ti still didn't work.

oh well, not much to help there I'm afraid....
Without an specific error it is kind of hard to know what's wrong. I guess you could check your Windows Event logs to see if something is being logged there. You might try de-install VB express and anything .Net related, reboot, and try reinstalling the framework.
 
Not, not so helpful. at least it is polite though!

So, this happens when i run the exe. install goes through fine.
I have XP SP2 and its kept up to date
I looked in regedit under HKEY_LOCAL_MACHINE (is this right??) and looked in the program file registry entry for warlords. the installdir value is C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Warlords which seems ok to me.
My user logon does have admi rights and i do have internet access. I also have office XP installed.

I did figure out that the message is generated by something called DW20.exe i noticed that dw20.exe came up in the processes list whenever i tried to run mapfinder. this seems to be part of MS office error reporting. I thought i might be onto something when i noticed that because i have the error reporting service switched off on my machine. i switched it back on and tried again but ti still didn't work.

oh well, not much to help there I'm afraid....

this sounds familiar in a way: do you happen to have a firewall application running that blocks MapFinder from accessing the internet domain?
 
this sounds familiar in a way: do you happen to have a firewall application running that blocks MapFinder from accessing the internet domain?

HI. Just tried that. I turned off my firewall (zonealarm) and ran mapfinder. It didnt work - although it did tease me by taking a few seconds longer than normal before it displayed the error message. thanks for the suggestion though!
 
Without an specific error it is kind of hard to know what's wrong. I guess you could check your Windows Event logs to see if something is being logged there. You might try de-install VB express and anything .Net related, reboot, and try reinstalling the framework.

Hi. I didnt see anything in the event log that looked suspicious and i tried uninstalling VB express and .net but to no avail.

I guess i will just have to roll those maps by hand!

Thanks for all your help!
 
Here's a demonstration of a tech trade alert not firing in HOF-2.08.003.

Here's the tech trade screen in 1550, where nobody has anything to offer:



After hitting "End Turn", here's the event log in 1553:



Note the alert for a new tech from Asoka. Let's see what the tech trade screen says:



Oops, it looks like Mansa is also willing to trade Economics! But the alert for Mansa didn't fire because Mansa just learned Economics on this turn. On the other hand, Asoka already had Economics but was finally willing to trade it, and the alert works for that situation.

BTW, the tech trade alert for Mansa will fire on the NEXT turn in the 1556 event log (although it will be confounded by Mansa and Asoka also offering Gunpowder... so I'm sorry it's not the best test case to really distinguish everything).

You might find ShowInfo's behavior interesting as well. Here's the same game rendered in jrayUGH-v208b using ShowInfo. First we have the event log from 1553:



Note that ShowInfo didn't even catch the Asoka tech opportunity. The ShowInfo automated beginning-of-turn check is one turn late with ALL tech trades.

But if I press <Shift>-I on that same 1553 turn to trigger ShowInfo manually, then I see BOTH Mansa's and Asoka's trade opportunities correctly:



So maybe you can see why I like ShowInfo... it takes a little while to get used to hitting <Shift>-I after every turn begins, but at least I know everything is current. It can't be that hard to just force a <Shift>-I from within Python, but I haven't gotten around to trying that. Maybe in jrayUGH-v208c :).

Attached below is the savegame file, so that you can reproduce the situation yourself if you want.

The savegame file starts a turn earlier, in 1547, because the alert info can be a little wacky on the very first turn following a newly loaded game (separate bug maybe? doesn't bother me as much though...). Just keep on hitting the End Turn button, and make sure to accept Mansa's invitation to war with Hannibal.

You'll need to re-name your mod to "jrayUGH" to be able to load the file. Not a problem though-- just rename Mods\HOF-2.08.003 (or whatever you call it) to Mods\jrayUGH and copy HOF-2.08.003.ini to jrayUGH.ini, and you'll be good to go. Neither of our mods alters the savegame file structure as far as I know.

I didn't have a handy test case for the "just learned a new tech that opens up a new trade opportunity" situation, but I'm less concerned about that anyway since I always go straight to the tech trade screen whenever I learn a new tech.
 

Attachments

  • Shaka Ray AD-1547.CivWarlordsSave
    207.1 KB · Views: 131
It seems to occur when I've skipped a prerequisite, and the opponent has that prerequisite (as well as the tech in question). Then it gets put into "Can Research" even though I should know that they have it (since I have it and can trade with them).

I've found the error in CvExoticForeignAdvisor.py. The following code adds the known tech to the list of 'can research' techs.
PHP:
for iNextTech in ltOptionalPrereqFor:
   bCanResearch = self.canResearch (iNextTech, stTechHas)
   if bCanResearch:
      stTechCanResearch.add (iNextTech)

I've been thinking about this and looking at the code. I think that the problem is in the 'canResearch' section. Let me walk thru this ...

PHP:
def canResearch (self, iTech, stTechHas):
   bCanResearch = True
iTech is the tech in question and stTechHas is the list of techs that are known. The default result (the bCanResearch flag) is 'true' and is only changed by the sections below.

PHP:
for iRequiredTech in self.objTechTree.RequiredPrereqs (iTech):
   if iRequiredTech not in stTechHas:
      bCanResearch = False
      break
This section loops through all the required pre req techs and sets the 'bCanResearch' flag to false if any of the required pre reqs is not known.

PHP:
   if bCanResearch:
      ltOptional = self.objTechTree.OptionalPrereqs (iTech)
      if not ltOptional:
         return bCanResearch
If the flag (bCanResearch) is still true, then keep checking ... if the required tech has no optional pre reqs, then return the current status of the bCanResearch flag (in this case TRUE).

PHP:
      bCanResearch = False
      for iOptionalTech in ltOptional:
         if iOptionalTech in stTechHas:
            bCanResearch = True
            break
      return bCanResearch
Set the bCanResearch flag to FALSE but set it back to TRUE if any of the optional pre reqs is known.

Well, that seems fairly straight forward and should work. Any tech that has no pre reqs, where all the required pre reqs are known or at least one of the optional pre reqs is known shows up as 'can research'.

Now, consider the case quoted above from DaviddesJ and run through this code if you know the tech in question. That code returns true even if the tech in question is known. I think the solution is to add another loop in the canResearch routine and remove the tech in question if that tech is known. BTW - I haven't testing this.
 
@jray, thanks for the info. I am doing the tech trade check on the "OnBeginGameTurn" event. I am not sure why I used that instead of "onBeginPlayerTurn". It was a quite a while ago, so I will just have to change it an see what happens.

BTW, the HOF Mod is a combo SDK/Python Mod. The SDK changes include a bunch of bug fixes, function calls to support some HOF Python Mods, and changes to the save game format to provide encryption and compression. I don't think I will experiment with renaming any mod folder to open your save right now, but thanks. ;)

Also, the tech trade act funny on the first turn because it compares the current turn's techs to the previous turn's techs. Only when you first start up, there is nothing in the previous turn's techs save array. It isn't worth incorporating that data into the savefile for one turn. I guess I should just suppress the message on the first turn back. :)

Anyway, thanks for your help. I have it on my list for the next version of the HOF Mod. :goodjob:

____________________________

@ruff_hi, I recognize that batch of code. :twitch:

Between DaviddesJ's clue about the prerequisites and your analysis, we seem to be on the right track. I am contemplating doing a rewrite instead of trying to fix :twitch: the code. I just haven't been sufficiently inspired to try it just yet. ;) Thanks. :goodjob:
 
@ruff_hi, I recognize that batch of code. :twitch:

Between DaviddesJ's clue about the prerequisites and your analysis, we seem to be on the right track. I am contemplating doing a rewrite instead of trying to fix :twitch: the code. I just haven't been sufficiently inspired to try it just yet. ;) Thanks. :goodjob:
No need to re-write. I just changed the canResearch function and fixed the problem :D

PHP:
	def canResearch (self, iTech, stTechHas):
		bCanResearch = True
		for iRequiredTech in self.objTechTree.RequiredPrereqs (iTech):
			if iRequiredTech not in stTechHas:
				ExoticForPrint ("We do not have required tech %s (%d)" % (gc.getTechInfo(iRequiredTech).getDescription(), iRequiredTech))
				bCanResearch = False
				break
		if bCanResearch:
			ltOptional = self.objTechTree.OptionalPrereqs (iTech)
			if not ltOptional:
				return bCanResearch
			bCanResearch = False
			for iOptionalTech in ltOptional:
				if iOptionalTech in stTechHas:
					ExoticForPrint ("We do have optional tech %s (%d)" % (gc.getTechInfo(iOptionalTech).getDescription(), iOptionalTech))
					bCanResearch = True
					break

# new lines added by Ruff to fix the incorrect 'canResearch' display
		if bCanResearch:
			if iTech in stTechHas:
				ExoticForPrint ("We already know this tech %s (%d)" % (gc.getTechInfo(iTech).getDescription(), iTech))
				bCanResearch = False
# new lines added by Ruff to fix the incorrect 'canResearch' display

		return bCanResearch

Be sure to remove / comment out the ExoticForPrint lines if you decide to move this to production.
 
this isn't about the mod, it's about the webpage, but not important enough to make a new thread. it seems to me there's no way to search for a certain person's games if you're curious (other than your own). is that true?
 
this isn't about the mod, it's about the webpage, but not important enough to make a new thread. it seems to me there's no way to search for a certain person's games if you're curious (other than your own). is that true?
That's true. :sad: However, using the HOF tables and Quattromaster's pages you can find links to most of the games. You just have to pick what kind of game you are interested in and then look for the name.
 
Can this mod be used with BetterAI?
I am not interested in submitting games to the HOF, but I do want to use this mod for the advisors etc.
I also would like to be able to use it for Vanilla 1.61 and WL 2.08 with BetterAI.
If it will work, do I just replace the CvCoreGameDLL.dll file in the asset folder with the BetterAI version?
 
Can this mod be used with BetterAI?
I am not interested in submitting games to the HOF, but I do want to use this mod for the advisors etc.
While its not my place to answer and the following could be wrong, I am going to say NO. The HOF python component contains calls on the underlying game that the HOF people have created in the DLL. Thus the betterAI DLL would also need these calls.

However, if all you want is access to the advisors (and similar), check out my mod (see links in sig) which can be used with the betterAI DLL.
 
ruff_hi
Thank you for putting that package together! That is exactly the kind of thing I was looking for. :goodjob:
I am off to read up on it and download.
 
That's true. :sad: However, using the HOF tables and Quattromaster's pages you can find links to most of the games. You just have to pick what kind of game you are interested in and then look for the name.

yeah i've been spying on ... no ... stalking ... no ... ummmmm reading with interest the logs of certain people's games ;) . it's a cool feature. and it is okay by me that there's not a way, since i certainly don't want people searching me *giggle*.

i've also found the database useful just in general, to look and see which leaders tend to be featured on certain tables, that sort of thing. spiffy resource!
 
Can this mod be used with BetterAI?
I am not interested in submitting games to the HOF, but I do want to use this mod for the advisors etc.
I also would like to be able to use it for Vanilla 1.61 and WL 2.08 with BetterAI.
If it will work, do I just replace the CvCoreGameDLL.dll file in the asset folder with the BetterAI version?

While its not my place to answer and the following could be wrong, I am going to say NO. The HOF python component contains calls on the underlying game that the HOF people have created in the DLL. Thus the betterAI DLL would also need these calls.

However, if all you want is access to the advisors (and similar), check out my mod (see links in sig) which can be used with the betterAI DLL.

ruff_hi is correct. :goodjob: The HOF Mod requires it's own CvCoreGameDLL.dll file.

@Matt_G, In any case, I would have pointed you towards some of the other pure python compilations, like ruff_hi's, found over in the Civ4 - Creation & Customization and/or the CivFanatics Downloads Database. Good Luck.
 
Hi, I posted this over in the general discussion but this might be the more appropriate place. I was playing an HOF game recently and I got a strange bug. Asoka discovered liberalism first, but I eliminated Asoka two turns later and then discovered liberalism myself 3 turns after that. I still got a bonus tech for being "the first to discover liberalism". Is this a bug in the HOF mod or the general game itself?
 
Could we get option to do autosaves on some other dir like single/HOF that would do saves for start file, 1Ad and 1000 Ad and round after winning. Id like to post saves at those same times as requested but never remember them and end up with intermediate saves only if i quit playing.

-Dracandross
 
Status
Not open for further replies.
Top Bottom