I am writing a script to introduce a battle. I have got speech and the camera to zoom OK, but cannot get my army to move!

I am to trying to use the group command but only two units in the formation start to move. Looked at the official battle scripts and noticed that they are defined in different places use unformed and formed and sometimes have walk at the end of them! However, I can only get two units to move.

Can somebody kindly point out where I am going wrong or point me to some extra information on the scripting language?

My code is:
Code:
script

; *********************************************************************************************
;	INITIALISATION
; *********************************************************************************************

	prepare_for_battle						; This must be *before* defining labels
	

; *********************************************************************************************
;	DEFINE UNIT LABELS
; *********************************************************************************************

	;	Roman Army

	label_unit 0 0 0 	ROMAN_general
	label_unit 0 0 1 	ROMAN_velite1
	label_unit 1 0 2	ROMAN_velite2
	label_unit 1 0 3	ROMAN_velite3
	label_unit 1 0 4	ROMAN_velite4
	label_unit 1 0 5	ROMAN_hastati1
	label_unit 1 0 6	ROMAN_hastati2
	label_unit 1 0 7	ROMAN_hastati3
	label_unit 1 0 8	ROMAN_hastati4
	label_unit 1 0 9	ROMAN_princeps1
	label_unit 1 0 10	ROMAN_princeps2
	label_unit 1 0 11	ROMAN_princeps3
	label_unit 1 0 12	ROMAN_princeps4
	label_unit 1 0 13	ROMAN_triarii1
	label_unit 1 0 14 	ROMAN_triarii2
	label_unit 1 0 15	ROMAN_triarii3
	label_unit 1 0 16	ROMAN_triarii4
	label_unit 1 0 17	ROMAN_light_cavalry1
	label_unit 1 0 18 	ROMAN_light_cavalry2

	

	;	Hannibal's Army
	
	label_unit 0 0 0	PLAYER_Hannibal	
	label_unit 0 0 1	PLAYER_numidian_cavalry1	
	label_unit 0 0 2	PLAYER_numidian_cavalry2
	label_unit 0 0 3	PLAYER_pike_infantry1
	label_unit 0 0 4	PLAYER_pike_infantry2
	label_unit 0 0 5	PLAYER_pike_infantry3
	label_unit 0 0 6	PLAYER_pike_infantry4
	label_unit 0 0 7	PLAYER_gaul_infantry1
	label_unit 0 0 8	PLAYER_spearmen1
	label_unit 0 0 9	PLAYER_spearmen2
	label_unit 0 0 10	PLAYER_spearmen3
	label_unit 0 0 11	PLAYER_gaul_infantry2
	label_unit 0 0 12	PLAYER_gual_warguard
	label_unit 0 0 13	PLAYER_balearic_slingers	
	label_unit 0 0 14	PLAYER_gual_noblecavalry 
	label_unit 0 0 15	PLAYER_gual_cavalry





	
; *********************************************************************************************
;	DEFINE CAMERA BOOKMARKS
; *********************************************************************************************

	set_camera_bookmark 1,	263.381, 552.872, 301.682, 315.558,  514,422,  310,984 		; Roman Army 

	set_camera_bookmark 2,	267.056	582.108, 316.317, 319.905, 554.366, 320.318		; Pan finish

	;set_camera_bookmark 3,	435.908, 537.694, 412.284, 438.186, 521.566, 394.324		; Roman army side on

	;set_camera_bookmark 4,	142.545, 559.286, 347.882, 195.53, 518.808, 349.163									; Carth Army

	;set_camera_bookmark 5,		




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;	Set up global counters and timers
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	declare_counter have_units_formed_up		;PLAYER LET INTRO FINISH
	declare_counter go_to_end_phase			;PLAYER HAS HIT ESCAPE KEY
	declare_counter is_script_ready_to_end		;ITS ALL DONE NOW
	declare_timer	Esc_Key_Pressed_Timer		;This is the timer that makes sure you dont get jumping between stuff after esc key is pressed


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ALLOW ESC KEY TO BE USED TO JUMP TO END OF INTRO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	steal_esc_key on			;ENSURE THIS IS ON WHEN PUT IN RELEASE


;*********************************************************
;STOP PLAYER INTERFERENCE TURNED OFF FOR EDITING.
;*********************************************************

	disable_cursor             ;prevent player interaction with the game 
	suspend_unscripted_advice true															
	disable_shortcuts true
	disable_entire_ui
	inhibit_camera_input true

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   groups

	define_unit_group GRP_ROMAN_ARMY ROMAN_general ROMAN_velite1 ROMAN_velite2 ROMAN_velite3 ROMAN_velite4 ROMAN_hastati1 ROMAN_hastati2 ROMAN_hastati3 ROMAN_hastati4 ROMAN_princeps1 ROMAN_princeps2 ROMAN_princeps3 ROMAN_princeps4 ROMAN_triarii1 ROMAN_triarii2 ROMAN_triarii3 ROMAN_triarii4 ROMAN_light_cavalry1 ROMAN_light_cavalry2
	
	define_unit_group GRP_PLAYER_ARMY PLAYER_Hannibal PLAYER_numidian_cavalry1 PLAYER_numidian_cavalry1 PLAYER_numidian_cavalry2 PLAYER_pike_infantry1 PLAYER_pike_infantry2 PLAYER_pike_infantry3 PLAYER_pike_infantry4 PLAYER_gaul_infantry1 PLAYER_spearmen1 PLAYER_spearmen2 PLAYER_spearmen3 PLAYER_gaul_infantry2 PLAYER_gual_warguard PLAYER_balearic_slingers PLAYER_gual_noblecavalry PLAYER_gual_cavalry	



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; EVENT MONITOR FOR ESC KEY BEING PRESSED DURING INTRO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	;monitor_event EscPressed TrueCondition
		;set_counter go_to_end_phase 1
	;end_monitor


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; CHECK THAT BATTLE HAS STARTED
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	while ! I_BattleStarted   ; Wait for deployment
	end_while

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;	Set the music and the camera
;;;	also stop - advice, active ai, camera 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	
	ai_active_set off
	camera_restrictions_set off
	camera_default_mode_set	tw
	battle_default_camera
	set_music_state tension

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; HIDING UI IN MOVIE STYLE LETTERBOX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	hide_ui ;ENSURE THIS IS ON WHEN PUT IN RELEASE

	hiding_enabled_set false		;REMOVE LATER WHEN NOT REQUIRED

;*********************************************************
;CAMERA START POSITION 
;*********************************************************

	camera_position 76.2653, 547.111, 290.193, 129.114, 514.882, 294.193 



; *********************************************************************************************
;	
;	Start Narration and Cinematic sequence
; *********************************************************************************************

; ********************************************************************************************
	monitor_conditions I_CompareCounter go_to_end_phase = 0	
	battle_wait 1

	while I_CompareCounter battle_start = 1		; ESC DUMP
				terminate_monitor
		end_while					; ESC DUMP	

			play_sound_event TRASIMENE_SPEECH_00 tag = TRASIMENE_SPEECH_00
			
			battle_wait 2

			while I_CompareCounter battle_start = 1		; ESC DUMP
				terminate_monitor
			end_while					; ESC DUMP

			unit_group_order_relative_move_formed GRP_ROMAN_ARMY 0 800 walk   ; Only two units move!
			battle_wait 1

			camera_zoom_to_bookmark 2 25 

			battle_wait 8
	
			while I_CompareCounter battle_start = 1		; ESC DUMP
				terminate_monitor
			end_while					; ESC DUMP

			

; *********************************************************************************************

;******************************************************************
		;;;	Scripted sequence has finished, trigger the end phase of intro
		;******************************************************************
	 
		set_counter go_to_end_phase 2
		set_counter have_units_formed_up 1			; If the player has not hit the escape key then
				
		terminate_monitor
	end_monitor			

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;	Re-enable the UI for the player
;;; Position Units if player hasnt got to the end of the intro sequence
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	while I_CompareCounter go_to_end_phase = 0		;waits until units in start position
	end_while

	while I_CompareCounter have_units_formed_up = 0		; makes sure units are in place
	end_while

	steal_esc_key off

	ai_active_set on

	enable_cursor

	suspend_unscripted_advice false

	camera_default_mode_set user_pref

	camera_restrictions_set	on

	wait 1

	disable_shortcuts false

	inhibit_camera_input false

	show_ui

	enable_entire_ui

	pause_battle

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;	Don't terminate script until the script is ready
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	while I_CompareCounter is_script_ready_to_end = 0
	end_while

	while I_InBattle
	end_while

	end_script




	while I_InBattle
	end_while


end_script