Moving the Tram


(CrazedFan) #1

I’m just a bit frustrated at the moment and need a third party to take a look at my script.

Here are the issues I’m facing at the moment

  1. The tram does not stop if I jump out of the trigger_multiple. It keeps moving until it reaches the end of the road.
  2. The tram currently does not regress back to the home position when I am not in the trigger. I think the counter is not working correctly.

Thanks for your help.

tram
{
		spawn
		{
			wait 400
			
			accum 0 set 1	// No Fuel by Default
			accum 1 set 0	// No Players by Default
			accum 2 set 0	// Tram is Stationary by Default
			accum 4 set 1	// Spline Count
			accum 3 set 1	// Tram is Home by Default
			accum 5 set 0 	// Going Forward by Default 
			accum 6 set 0	// Loop Counter for Regress

			followspline 0 tram00 50 wait length 32
		
			trigger tram reset_counter
		}

		trigger reset_counter
		{
			accum 4 set 1	// Spline Counter set to One
		}
		
		
		trigger update_counter_progress
		{
			accum 4 inc 1					// Increment the spline counter
		}

		trigger update_counter_regress
		{
			accum 4 abort_if_equal 1		// Abort if the spline counter is 1,0
			accum 4 inc -1					// Decrement
		}
		
		trigger progress 
		{
			// Someone is in the tram
			accum 1 set 1					// Players are now in the Tram
			accum 5 set 0					// Tram moving forward
			accum 2 set 1					// The tram is moving
			accum 6 set 0					// Set the callback accum to zero to cancel out the increment
			trigger tram dispatch
		}
		
		trigger regress
		{
			accum 6 inc 1					// Increment, this will be offset by progess if someone is in the tram
			accum 6 abort_if_less_than 4	// Abort if someone is in the tram
			wm_announce "Accum6 GT 4"
			accum 4 abort_if_equal 1
			wm_announce "Accum4 NEQ 1"
			//accum 2 set 0					// Reset to not moving
			trigger tram callback
			
		}
		
		trigger dispatch 
		{
			
			//accum 2 abort_if_not_equal 1
			//	Use the spline count to trigger the right direction
			accum 4 trigger_if_equal 1 tram run_tram01
			accum 4 trigger_if_equal 2 tram run_tram02
			accum 4 trigger_if_equal 3 tram run_tram03
			accum 4 trigger_if_equal 4 tram run_tram04
			accum 4 trigger_if_equal 5 tram run_tram05
			accum 4 trigger_if_equal 6 tram run_tram06
			accum 4 trigger_if_equal 7 tram run_tram07
			accum 4 trigger_if_equal 8 tram run_tram08
			accum 4 trigger_if_equal 9 tram run_tram09
		}
		
		trigger callback 
		{
			accum 4 abort_if_less_than 2

			accum 6 abort_if_less_than 4
			
			accum 4 trigger_if_equal 1 tram runback_tram01
			accum 4 trigger_if_equal 2 tram runback_tram02
			accum 4 trigger_if_equal 3 tram runback_tram03
			accum 4 trigger_if_equal 4 tram runback_tram04
			accum 4 trigger_if_equal 5 tram runback_tram05
			accum 4 trigger_if_equal 6 tram runback_tram06
			accum 4 trigger_if_equal 7 tram runback_tram07
			accum 4 trigger_if_equal 8 tram runback_tram08
			accum 4 trigger_if_equal 9 tram runback_tram09
		}
		
		trigger reset_home_position
		{
			accum 3 set 0						// Set home to false
			accum 4 abort_if_greater_than 1		// If the spline counter is not 1, don't set the tram as home
			accum 3 set 1
		}
		
		trigger run_tram01
		{
			//followspline 0 tram01 200 wait length 220
			followspline 0 tram01 200 wait 5 220

			trigger tram update_counter_progress
			
			accum 2 set 0 // Not Moving
			
			trigger tram reset_home_position
			trigger tram dispatch

		}
		trigger run_tram02
		{
			followspline 0 tram02 200 wait 5 220
	
			trigger tram update_counter_progress
			
			accum 2 set 0 // Not Moving
			
			trigger tram reset_home_position
			trigger tram dispatch

		}
		trigger run_tram03
		{

			followspline 0 tram03 200 wait 5 220
	
			trigger tram update_counter_progress
			
			accum 2 set 0 // Not Moving
			
			trigger tram reset_home_position
			trigger tram dispatch

		}
		
		trigger runback_tram01
		{
			//followspline 0 tram01 200 wait length 220
			followspline 1 tram01 200 wait 5 220

			trigger tram update_counter_regress
			
			accum 2 set 0 // Not Moving
			
			trigger tram reset_home_position
			trigger tram callback

		}
		trigger runback_tram02
		{
			followspline 1 tram02 200 wait 5 220
	
			trigger tram update_counter_regress
			
			accum 2 set 0 // Not Moving
			
			trigger tram reset_home_position
			trigger tram callback

		}
		trigger runback_tram03
		{
			followspline 1 tram03 200 wait 5 220
	
			trigger tram update_counter_regress
			
			accum 2 set 0 // Not Moving
			
			trigger tram reset_home_position
			trigger tram callback

		}
}
tram_enabler
{
	trigger run
	{
		trigger tram progress
	}
}

tram_disabler
{
	trigger run
	{
		trigger tram regress
		
	}
}