AutoIt script for random map selection at 1280X1024 screen resolution

Groenne

Chieftain
Joined
Feb 16, 2008
Messages
5
Location
Slagelse, Denmark
You will need AutoIt to run the script/create a .exe file from the script.

The script will randomly select one of the 31 maps available.

I originally made a script selecting 18 opponents in multiplayer LAN for my friend and I. Rebuilding map, isn't available in multiplayer, so picking out 18 opponents and putting them all in 2 player teams took a while, but is much faster with a script.

The random map part was also originally made for multiplayer LAN, but I changed the cordinates, to fit single player instead.

When you need to edit the script, I can recommend the SciTE4AutoIt3 editor downloaded with AutoIt.

Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.2.10.0
 Author:         Groenne

 Script Function:
	This is a random map selector.
	
#ce ----------------------------------------------------------------------------

;Exit hot-key
HotKeySet("^!x", "MyExit")

WinActivate("Civ IV: Beyond The Sword")
Sleep(3000)

#cs
;Player1 leader
MouseMove(750, 100)
MouseClick("Left")
Send("bb{ENTER}")	; Bodica
#ce

#cs
;Player1 difficulty
MouseMove(1050, 100)
MouseClick("Left")
Send("p{ENTER}") 	; Prince
#ce

; Random map generator

; Coordinates
dim $X1 = 450
dim $Y1 = 600
dim $Y2 = 700
dim $Y3 = 740
dim $Y4 = 780
dim $Y5 = 810
dim $Y6 = 840

dim $i1
$i1 = Random( 1, 31, 1)

;For $i1 = 1 to 31 Step +1	; This is for testing purposes.

MouseMove( $X1, 500)
MouseClick("Left")
Send("{PGUP 4}")
Switch $i1
	Case 1	; Archipelago
		Send("{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Landmass type = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 2	; Balanced
		Send("{DOWN}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 3	; Continents
		Send("{DOWN 2}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 4	; Custom Continents
		Send("{DOWN 3}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Number of continents = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 5	; Fantasy Realm
		Send("{DOWN 4}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = high
		MouseClick("Left")
		Send("{PGUP}{DOWN 3}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Resource appearence = crazy!
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
		MouseMove( $X1, $Y3)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 6	; Fractal
		Send("{DOWN 5}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 7	; Great Planes
		Send("{DOWN 6}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 8	; Highlands
		Send("{DOWN 7}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Mountain pattern = ridgelines
		MouseClick("Left")
		Send("{PGUP}{DOWN 2}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Mountain densety = normal
		MouseClick("Left")
		Send("{PGUP}{DOWN 2}{ENTER}") 
		
		MouseMove( $X1, $Y4)	; Water setting = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y5)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 9	; Hubs
		Send("{DOWN 8}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Areas per player = 1 per player
		MouseClick("Left")
		Send("{PGUP}{DOWN}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Landshape = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Neutral territory = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y5)	; Isthmus width = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y6)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 10	; Ice age
		Send("{DOWN 9}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Landmass type = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
	Case 11	; Inland sea
		Send("{DOWN 10}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = high
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 12	; Islands
		Send("{DOWN 11}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Number of large islands = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Number of tiny islands = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 13 ; Lakes
		Send("{DOWN 12}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = high
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 14 ; Maze
		Send("{DOWN 13}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Maze width = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 15 ; Mirror
		Send("{DOWN 14}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Mirror type = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Team setting = random
		MouseClick("Left")
		dim $i2
		$i2 = Random( 1, 3, 1)
		Switch $i2
			Case 1
				Send("{PGUP}{ENTER}")
			Case 2
				Send("{PGUP}{DOWN}{ENTER}")
			Case 3
				Send("{PGUP}{DOWN 2}{ENTER}")
		EndSwitch
			
		MouseMove( $X1, $Y4)	; Landmass type = random
		MouseClick("Left")
		dim $i3
		$i3 = Random( 1, 6, 1)
		Switch $i3
			Case 1
				Send("{PGUP}{ENTER}")
			Case 2
				Send("{PGUP}{DOWN}{ENTER}")
			Case 3
				Send("{PGUP}{DOWN 2}{ENTER}")
			Case 4
				Send("{PGUP}{DOWN 3}{ENTER}")
			Case 5
				Send("{PGUP}{DOWN 4}{ENTER}")
			Case 6
				Send("{PGUP}{DOWN 5}{ENTER}")
		EndSwitch
			
		MouseMove( $X1, $Y5)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 16 ; Oasis
		Send("{DOWN 15}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 17	; Pangea
		Send("{DOWN 16}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Shoreline = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 18 ; Ring
		Send("{DOWN 17}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Areas per player = 1
		MouseClick("Left")
		Send("{PGUP}{DOWN}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Land shape = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Neutral terratory = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y5)	; Isthmus width = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y6)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 19	; Shuffle
		Send("{DOWN 18}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 20	; Team Battleground
		Send("{DOWN 19}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Team placement = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Team Setting = random
		MouseClick("Left")
		$i3 = Random( 1, 3, 1)
		Switch $i3
			Case 1
				Send("{PGUP}{ENTER}")
			Case 2
				Send("{PGUP}{DOWN}{ENTER}")
			Case 3
				Send("{PGUP}{DOWN 2}{ENTER}")
		EndSwitch
			
		MouseMove( $X1, $Y4)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 21	; Terra
		Send("{DOWN 20}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 22	; Tilted Axis
		Send("{DOWN 21}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Landmass size = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
	Case 23	; Wheel
		Send("{DOWN 22}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Areas per player = 1
		MouseClick("Left")
		Send("{PGUP}{DOWN}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Land shape = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Ring width
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y5)	; Spoke width = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y6)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 24	; Arboria
		Send("{DOWN 23}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 25	; Big and Small
		Send("{DOWN 24}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Continent size
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Islands size = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Island overlap = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
	Case 26	; Boreal
		Send("{DOWN 25}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 27	; Donut
		Send("{DOWN 26}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Center region = random
		MouseClick("Left")
		dim $i4
		$i4 = Random( 1, 4, 1)
		Switch $i4
			Case 1
				Send("{PGUP}{ENTER}")
;			Case 2	; Peaks
;				Send("{PGUP}{DOWN}{ENTER}")
			Case 2
				Send("{PGUP}{DOWN 2}{ENTER}")
			Case 3
				Send("{PGUP}{DOWN 3}{ENTER}")
			Case 4
				Send("{PGUP}{DOWN 4}{ENTER}")
		EndSwitch
			
		MouseMove( $X1, $Y3)	; Jungle = jungle
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
#cs		dim $i5
		$i5 = Random( 1, 2, 1)
		Switch $i5
			Case 1
				Send("{PGUP}{ENTER}")
			Case 2
				Send("{PGUP}{DOWN}{ENTER}")
		EndSwitch
#ce

		MouseMove( $X1, $Y4)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 28	; Global highlands
		Send("{DOWN 27}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = low
		MouseClick("Left")
		Send("{PGUP}{DOWN}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Mountain pattern = ridgelines
		MouseClick("Left")
		Send("{PGUP}{DOWN 2}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Mountain density = normal
		MouseClick("Left")
		Send("{PGUP}{DOWN 2}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Landmass size = random
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
		MouseMove( $X1, $Y5)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
	Case 29	; Hemispheres
		Send("{DOWN 28}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Continents size = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Islands size = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Number of continents = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
	Case 30	; Medium and small
		Send("{DOWN 29}{ENTER}")
		
		MouseMove( $X1, $Y1)	; Sea level = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y2)	; Continents size = random
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
		
		MouseMove( $X1, $Y3)	; Islands size = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
		MouseMove( $X1, $Y4)	; Number of continents = random
		MouseClick("Left")
		Send("{PGUP}{ENTER}")
		
	Case 31	; Rain forest
		Send("{DOWN 30}{ENTER}")
		
		MouseMove( $X1, $Y2)	; World wrap
		MouseClick("Left")
		Send("{PGDN}{ENTER}")
EndSwitch

;Sleep(7000)	; This is for testing purposes.
;Next			; This is for testing purposes.


;Launch
MouseMove(1140, 1000)
;MouseClick("Left")

;Exit hot-key
Func MyExit()
    Exit 
EndFunc
 
Top Bottom