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
- The tram does not stop if I jump out of the trigger_multiple. It keeps moving until it reaches the end of the road.
- 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
}
}