[Map Script] SmartMap

I've been following this script for a while and try to use it every now and then, but have never had any luck producing maps that don't have intertwining splotches of grassland-bordered desert and jungle at seemingly random latitudes. Has anyone? If so, what settings do you use? Nothing I've tried has worked
 
Sine Nomen:
I've been following this script for a while and try to use it every now and then, but have never had any luck producing maps that don't have intertwining splotches of grassland-bordered desert and jungle at seemingly random latitudes. Has anyone? If so, what settings do you use? Nothing I've tried has worked

Set terrain and features to standard. Standard uses CivIV's default terrain and feature generator which, I believe, is used by all of the map scripts that were included in CivIV's.
 
Everything on 'standard' produces this:
 

Attachments

  • terrain.jpg
    terrain.jpg
    188.5 KB · Views: 1,178
Well then maybe some aspect of SmartMap's land generation is having an affect on the terrain and features produced by the standard generators.
 
I am having problems now with smartmap generating ice not just north and south, but now east and west edges of the map. I have tried many changes in custom game, and they are all generating this ice.

I have attached a few screenshots to show you what I mean.

The first 3 are from Total Realism 2.2 mod. The last is plain Warlords.
 

Attachments

  • smartmap1.jpg
    smartmap1.jpg
    31.1 KB · Views: 519
  • smartmap2jpg.jpg
    smartmap2jpg.jpg
    69.5 KB · Views: 468
  • smartmap4.jpg
    smartmap4.jpg
    28.8 KB · Views: 454
  • smartmap3.jpg
    smartmap3.jpg
    22.8 KB · Views: 445
Ah, I just realized. When no wrap is selected, instead of making the world "flat" it adds ice to all edges.

I think that may be conflicting with genearting lakes.

For example, I am attempting to create a highlands type map with only 1 big land and no wrap (like the vanilla highlands script) with lakes and peaks creating chokepoints in the land. I think, though, that since smartmap is creating this edge ocean, it won't generate any lakes in the land since enough ocean is created on the edge. Correct me if I am wrong or point me to suitable settings to have smartmap generate what I am looking for.

The first 2 screens are my settings. The third is the result
 

Attachments

  • smartmap-settings2.jpg
    smartmap-settings2.jpg
    48 KB · Views: 400
  • smartmap-settings3.jpg
    smartmap-settings3.jpg
    46.5 KB · Views: 390
  • result.jpg
    result.jpg
    98.7 KB · Views: 559
I realize this is an older thread but I'm trying to fix this script to work on my mac. So far I've only found 2 things to change: One is the calls to _winreg to handle the folder paths. That's easy to fix as it's been done in other mods and there are clear instructions. But the other error I'm getting is the call to 'sorted'. I have no clue why the python error is 'sorted' is not defined. It should be part of the python API unless there is some python bug in the mac verision. If anyone should read this and have any guidance I would really appreciate it!!
 
If you enable logging* and PM me (or post) the exception stack trace, I'll take a look.

* Edit CivilizationIV.ini:

Code:
; Set to 1 for no python exception popups
HidePythonExceptions = [B]1[/B]
...
; Enable the logging system
LoggingEnabled = [B]1[/B]

You may not have to disable python exceptions, but I do so I can see them in the file instead of on-screen.

Then, when the error occurs, open the file "Logs/PythonErr.log".
 
One is the calls to _winreg to handle the folder paths.

you can fix that this way :

replace "import _winreg" with :
Code:
if (sys.platform == 'darwin'):
	import sets
	def set(arg):
		return sets.Set(arg)
else:
        import _winreg

and the function "def civFilePath():" with :

Code:
def civFilePath():
        if (sys.platform == 'darwin'):
                try:
                        userFolder = os.path.join(os.environ['HOME'], "Documents")
                        civFolder = "Civilization IV"
                        if (os.path.basename(os.getcwd()) == "Warlords"):
                                civFolder = "Civilization IV Warlords"
                        finalFolder = os.path.join(userFolder, civFolder)
                        return finalFolder
                except:
                        return ""
        else:
                try:
                        userFolder = regRead(_winreg.HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders","Personal")
                        civFolder = os.path.basename(regRead(_winreg.HKEY_LOCAL_MACHINE,"Software\\Firaxis Games\\Sid Meier's Civilization 4","INSTALLDIR"))
                        finalFolder =  os.path.join(os.path.join(userFolder, "My Games"), civFolder)
                        return finalFolder
                except:
                        return ""

this function has been made by AlanH . Note that i don't know the name of the document folder for BtS . you should perhaps add two lines :
Code:
                        if (os.path.basename(os.getcwd()) == "Beyond the Sword"):
                                civFolder = [COLOR="Red"]"the document name of BtS for MAC"[/COLOR]

But the other error I'm getting is the call to 'sorted'.

the error comes from sorted and operator.itemgetter that are not defined with MacOS ( MAC use python 2.3 and windows python 2.4 ) .

you can try to replace :
Code:
	bonusIdsAndOrder = sorted(bonusIdsAndOrder, key=operator.itemgetter(1))

with :
Code:
	bonusIdsAndOrderTP = [ [item[1],item[0]] for item in bonusIdsAndOrder ]
	bonusIdsAndOrderTP.sort()
	bonusIdsAndOrder = [ (item[1],item[0]) for item in bonusIdsAndOrderTP ]

and :
Code:
	listsScoresPlayers = sorted(listsScoresPlayers, key=operator.itemgetter(1))	
	listsScoresPlayers.reverse()

with :
Code:
	listsScoresPlayersTP = [ [item[1],item[0],item[2]] for item in listsScoresPlayers ]
	listsScoresPlayersTP.sort()
	listsScoresPlayersTP.reverse()
	listsScoresPlayers = [ (item[1],item[0],item[2]) for item in listsScoresPlayersTP ]

There is probably a best method but this should work . In case you have a problem you can ask in this thread for map script MAC compatibility .

Tcho !
 
hasn't posted in over a year...
i love this mod, whenever i finish the latest expansion or mod
i always come back to smartmap random generations...
was going to inquire about adding choice for bonus resources
have noticed a lot of different new bonuses in other mods
also some bonuses seem tied to terrain? possible to free them?
many thanks
 
Been having problems with the Earth option on SmartMap.

The maps are always stretched out either vertically or horizontally, and Africa is covered in snow.

Does this not work for BtS?
 
I use the version of SmartMap that the Visa team made for their mod and have has no problems with it in BTS
 
Thanks for posting the link, I had looked around after he requested where it was, and thought I had gone to the right site, but I never could locate it again.
 
Cool mod Surt. I was just playing a game of this mod as Stalin and was kicking the Spanish, Isabella's butt till my game crashed due to a memory issue. It always seems like the game crashes when i go on a killing spree.
 
So does this script work with BTS or not? I created a map with BTS and it seems to work ... is there something I'm missing?
 
Top Bottom