HOF Mod Support/Suggestions

Discussion in 'Civ4 - Hall of Fame Discussion' started by superslug, Apr 15, 2006.

Thread Status:
Not open for further replies.
  1. Planitia

    Planitia Chieftain

    Joined:
    Mar 6, 2006
    Messages:
    16
    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....
     
  2. Hindi

    Hindi Chieftain

    Joined:
    Apr 29, 2006
    Messages:
    28
    Location:
    Moscow
    superslug
    Hi,
    I can not submit my games since Jan 31.
    Start File cheking do not work too.
     
  3. Denniz

    Denniz Where's my breakfast? Retired Moderator Hall of Fame Staff

    Joined:
    Nov 28, 2003
    Messages:
    11,102
    Gender:
    Male
    Location:
    Dallas
    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.
     
  4. ori

    ori Repair Guy Retired Moderator

    Joined:
    Dec 17, 2005
    Messages:
    16,561
    Location:
    Baden-Württemberg, Germany
    this sounds familiar in a way: do you happen to have a firewall application running that blocks MapFinder from accessing the internet domain?
     
  5. Planitia

    Planitia Chieftain

    Joined:
    Mar 6, 2006
    Messages:
    16
    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!
     
  6. Planitia

    Planitia Chieftain

    Joined:
    Mar 6, 2006
    Messages:
    16
    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!
     
  7. jray

    jray King

    Joined:
    Jan 31, 2006
    Messages:
    925
    Location:
    North Carolina (USA)
    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.
     

    Attached Files:

  8. ruff_hi

    ruff_hi Live 4ever! Or die trying

    Joined:
    Oct 24, 2005
    Messages:
    9,120
    Location:
    an Aussie in Boston
    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 (iNextTechstTechHas)
       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 (selfiTechstTechHas):
       
    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.
     
  9. Denniz

    Denniz Where's my breakfast? Retired Moderator Hall of Fame Staff

    Joined:
    Nov 28, 2003
    Messages:
    11,102
    Gender:
    Male
    Location:
    Dallas
    @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:
     
  10. ruff_hi

    ruff_hi Live 4ever! Or die trying

    Joined:
    Oct 24, 2005
    Messages:
    9,120
    Location:
    an Aussie in Boston
    No need to re-write. I just changed the canResearch function and fixed the problem :D

    PHP:
        def canResearch (selfiTechstTechHas):
            
    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.
     
  11. KMadCandy

    KMadCandy giggling permanoob

    Joined:
    Oct 16, 2005
    Messages:
    3,993
    Location:
    Peepsville
    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?
     
  12. Denniz

    Denniz Where's my breakfast? Retired Moderator Hall of Fame Staff

    Joined:
    Nov 28, 2003
    Messages:
    11,102
    Gender:
    Male
    Location:
    Dallas
    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.
     
  13. Matt_G

    Matt_G Curmedgeon in Training

    Joined:
    May 25, 2002
    Messages:
    674
    Location:
    Colorado
    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?
     
  14. ruff_hi

    ruff_hi Live 4ever! Or die trying

    Joined:
    Oct 24, 2005
    Messages:
    9,120
    Location:
    an Aussie in Boston
    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.
     
  15. Matt_G

    Matt_G Curmedgeon in Training

    Joined:
    May 25, 2002
    Messages:
    674
    Location:
    Colorado
    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.
     
  16. KMadCandy

    KMadCandy giggling permanoob

    Joined:
    Oct 16, 2005
    Messages:
    3,993
    Location:
    Peepsville
    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!
     
  17. Denniz

    Denniz Where's my breakfast? Retired Moderator Hall of Fame Staff

    Joined:
    Nov 28, 2003
    Messages:
    11,102
    Gender:
    Male
    Location:
    Dallas
    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.
     
  18. shyuhe

    shyuhe Deity

    Joined:
    Nov 30, 2006
    Messages:
    6,062
    Location:
    Gone fishing for the summer
    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?
     
  19. DaviddesJ

    DaviddesJ Deity

    Joined:
    May 5, 2003
    Messages:
    4,390
    Location:
    Burlingame CA
    Sounds like a Civ4 bug, not a HOF bug.
     
  20. Dracandross

    Dracandross Warlord

    Joined:
    Sep 28, 2006
    Messages:
    290
    Location:
    Finland
    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
     
Thread Status:
Not open for further replies.

Share This Page