Tank humps terrain


(Pukedukem) #1

I’m using a tank in my map and i’ve gotten it to follow the path blow up one gate.then follow the path to the next gate, it then turns the turret and fires again. Just like I want it to but my problem is when it fires a second time the wall dosen’t blow up and my tank looks like its humping the ground. here is that script area.

                                 trigger run_61
               {
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln63 50 wait length 32
	accum 1 bitreset 2

	trigger self script_lockout
	trigger self 		tracks_stop
	trigger tank_sound 	stop

	startanimation 45 10 15 nolerp norandom
	wait 666
	startanimation 0 1 15 nolerp norandom

	wait 900

	trigger tank_turret turn_2

	accum 3 inc 1
               }

why is it humping the ground? is it wanting to goto the next spline?
would like some help please.
Thanks


(Chruker) #2

Its very hard to diagnose strange tank behavior from this fraction of the script. Need to see at least tank_turret turn_2

For the other functions that are called, can we assume they at similar to those in the goldrush script?

Does the humping looks like the tank is slowly moving forward, and then returns to its original position?

Can you make an avi of it? Or perhaps release the map as pk3, so people can see it themselves?


(Pukedukem) #3

it just humps in place im sure its something simple. Heres some more script. I just changed goldrush’s script for my map.

                               trigger turn_2
            {
	wait 1000

	playsound sound/vehicles/tank/turret_spin.wav looping
	faceangles 0 340 0 3000
	stopsound
	playsound sound/vehicles/tank/turret_end.wav

	wait 500

	trigger tank startfire
	playsound sound/vehicles/tank/tank_fire.wav
	trigger boomtrigger_2 boom_all_2		// triggers the hurts around GATE2 explosion
	trigger tank_flash run
                                 }

(Chruker) #4

It must be another entity / part of the script, thats causing the problem.

The only thing I’m worried about is the ‘trigger self script_lockout’ call in the tank script block. Cause if you don’t release that script lockout, then your tank will appear to freeze. Thats infact how the tank in fueldump is stopped in its final position.

Could you post all the scriptblocks that affects the tank? If the tank is the majority of the script then just post the entire file.


(Pukedukem) #5

well i fixed half of the problem it was my tank_flash I needed a second flash model for it to load the blow_doors_2. Now my tank blows up both objectives. then it sits and jerks like it wants to move to the next spline. its not suppose to move again after the second blast. i was also thinking about that script lock out and it seems to work fine with it. I looked at fuel dump to see what SD did but didnt notice anything. So i think im alright from the script lockout. Here is my script.


//first map Script

game_manager
{
spawn
{
remapshader “models/mapobjects/tanks_sd/mg42turret” “models/mapobjects/tanks_sd/mg42turret_2”

	remapshaderflush
	
	// Game rules
	wm_axis_respawntime	30
	wm_allied_respawntime	20
	wm_set_round_timelimit	30

}

}

// *************************************************
// ***************** TANK STUFF ********************
// *************************************************

tank_sound
{
trigger start
{
trigger tank sound_start
wait 3400
trigger tank sound_move
}

trigger stop
{
	trigger tank sound_stop
	wait 1400
	trigger tank sound_idle
}

trigger rebirth
{
	trigger tank sound_rebirth
	wait 1400
	trigger tank sound_idle
}

}

// digibob: converting truck script from goldrush over…
// ============================================================================
// accum 0, track state
// accum 1
// - bit 0: barrier1 state ( 0 = not built, 1 = built )
// - bit 1: barrier2 state ( 0 = not built, 1 = built )
// - bit 2: spline status ( 0 = not moving, 1 = moving )
// - bit 3: stuck check flag ( 0 = not stuck, 1 = stuck )
// - bit 4: flag for message ( 0 = dont display, 1= display )
// - bit 5: blank ( )
// - bit 6: temp register (XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
// - bit 7: death status ( 0 = alive, 1 = dead )
// - bit 8: player check ( 0 = players, 1 = no players )
// - bit 9: visible state ( 0 = alive, 1 = dead )
// accum 2, blank
// accum 3, current movement loop position
// accum 4, stop counter
// accum 5, lockout ref counter
// accum 6, blank
// accum 7, blank
// ===========================================================================================
// spline points are spln2 -> spln25 maingate1 -> maingate1_2 spln26 -> spln65
// ===========================================================================================
// track events:
// - tracks_forward
// - tracks_stop
// - tracks_turn_left
// - tracks_turn_right

tank
{
spawn
{
wait 400
followspline 0 spln1 50000 length 32 wait

	trigger tank sound_idle
	trigger tank tracks_stop
}

// ========================================
// sound stuff

trigger sound_idle
{
	stopsound
	playsound sound/vehicles/tank/tank_idle.wav looping volume 512
}

trigger sound_start
{
	stopsound
	playsound sound/vehicles/tank/tank_revup.wav volume 196
}

trigger sound_move
{
	stopsound
	playsound sound/vehicles/tank/tank_move.wav looping volume 512
}

trigger sound_stop
{
	stopsound
	playsound sound/vehicles/tank/tank_revdown.wav volume 196
}

trigger sound_death
{
	stopsound
	playsound sound/vehicles/tank/tank_stop.wav volume 256
}

trigger sound_rebirth
{
	stopsound
	playsound sound/vehicles/tank/tank_start.wav volume 196
}

// ========================================
// ========================================

// ===========================================================================================
// ===========================================================================================
trigger tracks_forward
{
accum 0 abort_if_equal 1
accum 0 set 1

	remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_alt_forward

	remapshaderflush
}

trigger tracks_stop
{
	accum 0 abort_if_equal 0
	accum 0 set 0

	remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_left
	remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_right
	remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_left
	remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_right
	remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_left
	remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_right

	remapshaderflush
}

trigger tracks_turn_left
{
	accum 0 abort_if_equal 2
	accum 0 set 2

	remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_alt_backward
	remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_alt_backward
	remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_alt_backward
	remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_alt_forward

	remapshaderflush
}

trigger tracks_turn_right
{
	accum 0 abort_if_equal 3
	accum 0 set 3

	remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_alt_backward
	remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_alt_backward
	remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_alt_forward
	remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_alt_backward

	remapshaderflush
}

// ===========================================================================================
// ===========================================================================================

trigger run_continue
{
	accum 3 inc 1
	trigger self deathcheck
	trigger self stopcheck
	trigger self move
}

// ===========================================================================================
// ===========================================================================================
trigger run_incpos
{
accum 3 inc 1
}

trigger run_continue
{
	trigger self run_incpos
	trigger self deathcheck
	trigger self stopcheck
	trigger self move
}

// ===========================================================================================
// movement

trigger move_check
{
	trigger self stuck_check
	accum 1 abort_if_bitset 3

	trigger self dispatch
}

trigger move
{
	trigger self move_check

	wait 500

	trigger self move
}

trigger dispatch
{
	accum 3 trigger_if_equal 0 tank run_0
	accum 3 trigger_if_equal 1 tank run_1
	accum 3 trigger_if_equal 2 tank run_2
	accum 3 trigger_if_equal 3 tank run_3
	accum 3 trigger_if_equal 4 tank run_4
	accum 3 trigger_if_equal 5 tank run_5
	accum 3 trigger_if_equal 6 tank run_6
	accum 3 trigger_if_equal 7 tank run_7
	accum 3 trigger_if_equal 8 tank run_8
	accum 3 trigger_if_equal 9 tank run_9
	accum 3 trigger_if_equal 10 tank run_10
	accum 3 trigger_if_equal 11 tank run_11
	accum 3 trigger_if_equal 12 tank run_12
	accum 3 trigger_if_equal 13 tank run_13
	accum 3 trigger_if_equal 14 tank run_14
	accum 3 trigger_if_equal 15 tank run_15
	accum 3 trigger_if_equal 16 tank run_16
	accum 3 trigger_if_equal 17 tank run_17
	accum 3 trigger_if_equal 18 tank run_18
	accum 3 trigger_if_equal 19 tank run_19
	accum 3 trigger_if_equal 20 tank run_20
	accum 3 trigger_if_equal 21 tank run_21
	accum 3 trigger_if_equal 22 tank run_22
	accum 3 trigger_if_equal 23 tank run_23
	accum 3 trigger_if_equal 24 tank run_24
	accum 3 trigger_if_equal 25 tank run_25
	accum 3 trigger_if_equal 26 tank run_26
	accum 3 trigger_if_equal 27 tank run_27
	accum 3 trigger_if_equal 28 tank run_28
	accum 3 trigger_if_equal 29 tank run_29
	accum 3 trigger_if_equal 30 tank run_30
	accum 3 trigger_if_equal 31 tank run_31
	accum 3 trigger_if_equal 32 tank run_32
	accum 3 trigger_if_equal 33 tank run_33
	accum 3 trigger_if_equal 34 tank run_34
	accum 3 trigger_if_equal 35 tank run_35
	accum 3 trigger_if_equal 36 tank run_36
	accum 3 trigger_if_equal 37 tank run_37
	accum 3 trigger_if_equal 38 tank run_38
	accum 3 trigger_if_equal 39 tank run_39
	accum 3 trigger_if_equal 40 tank run_40
	accum 3 trigger_if_equal 41 tank run_41
	accum 3 trigger_if_equal 42 tank run_42
	accum 3 trigger_if_equal 43 tank run_43
	accum 3 trigger_if_equal 44 tank run_44
	accum 3 trigger_if_equal 45 tank run_45
	accum 3 trigger_if_equal 46 tank run_46
	accum 3 trigger_if_equal 47 tank run_47
	accum 3 trigger_if_equal 48 tank run_48
	accum 3 trigger_if_equal 49 tank run_49
	accum 3 trigger_if_equal 50 tank run_50
	accum 3 trigger_if_equal 51 tank run_51
	accum 3 trigger_if_equal 52 tank run_52
	accum 3 trigger_if_equal 53 tank run_53
	accum 3 trigger_if_equal 54 tank run_54
	accum 3 trigger_if_equal 55 tank run_55
	accum 3 trigger_if_equal 56 tank run_56
	accum 3 trigger_if_equal 57 tank run_57
	accum 3 trigger_if_equal 58 tank run_58
	accum 3 trigger_if_equal 59 tank run_59
	accum 3 trigger_if_equal 60 tank run_60
	accum 3 trigger_if_equal 61 tank run_61
}

trigger run_0
{
	trigger self tracks_forward
	accum 1 bitset 2
	followspline 0 spln2 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_1
{
	trigger self tracks_forward
	trigger game_manager allies_steal_tank

	accum 1 bitset 2
	followspline 0 spln3 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_2
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln4 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_3
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln5 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_4
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln6 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_5
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln7 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_6
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln8 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_7
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln9 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_8
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln10 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_9
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln11 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_10
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln12 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_11
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln13 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_12
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln14 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_13
{
	trigger self tracks_turn_right

	accum 1 bitset 2
	followspline 0 spln15 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_14
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln16 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_15
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln17 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_16
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln18 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_17
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln19 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_18
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln20 50 wait length 32
	accum 1 bitreset 2

	trigger tank stuck_check_barrier1_built_msg

	trigger self run_continue
}

trigger run_19
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln21 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_20
{
	trigger self tracks_forward

	// Old location of defense1 remove

	accum 1 bitset 2
	followspline 0 spln22 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_21
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln23 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_22
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln24 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_23
{
trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln25 50 wait length 32
	accum 1 bitreset 2

	trigger self        script_lockout

	trigger self 		tracks_stop
	trigger tank_sound 	stop

	startanimation 45 10 15 nolerp norandom
	wait 666
	startanimation 0 1 15 nolerp norandom
    wait 900
    
	trigger tank_turret turn

	accum 3 inc 1
}

trigger run_24
{
	trigger self tracks_forward
	
	accum 1 bitset 2
	followspline 0 spln26 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_25
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln27 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_26
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln28 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_27
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln29 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_28
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln30 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_29
{
	trigger self tracks_forward
	trigger defense1_toi rubble_corner1
	trigger self tracks_turn_left

	accum 1 bitset 2
	followspline 0 spln31 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_30
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln32 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_31
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln33 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_32
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln34 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_33
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln35 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_34
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln36 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_35
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln37 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_36
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln38 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_37
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln39 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_38
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln40 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_39
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln41 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_40
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln42 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_41
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln43 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_42
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln44 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_43
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln45 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_44
{
	trigger self tracks_forward
	trigger defense1_toi rubble_corner2
	trigger defense2_toi rubble_corner3

	accum 1 bitset 2
	followspline 0 spln46 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_45
{
	trigger self tracks_turn_left

	accum 1 bitset 2
	followspline 0 spln47 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_46
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln48 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_47
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln49 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_48
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln50 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_49
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln51 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_50
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln52 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_51
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln53 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_52
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln54 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_53
{
	trigger self tracks_turn_left

	accum 1 bitset 2
	followspline 0 spln55 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_54
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln56 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_55
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln57 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_56
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln58 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_57
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln59 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_58
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln60 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_59
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln61 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_60
{
	trigger self tracks_turn_left

	accum 1 bitset 2
	followspline 0 spln62 50 wait length 32
	accum 1 bitreset 2

	trigger self run_continue
}

trigger run_61
{
	trigger self tracks_forward

	accum 1 bitset 2
	followspline 0 spln63 50 wait length 32
	accum 1 bitreset 2

	trigger self script_lockout
	trigger self 		tracks_stop
	trigger tank_sound 	stop

	startanimation 45 10 15 nolerp norandom
	wait 666
	startanimation 0 1 15 nolerp norandom

	wait 900

	trigger tank_turret turn_2

	accum 3 inc 1
}

// ===========================================================================================
// ===========================================================================================
// ===========================================================================================
// stuck checking
// digibob: since we cant return variables, just use bit 3 of accum 1 as a register… mmmm assembly…
trigger stuck_check
{
accum 1 bitreset 3

	trigger self stuck_check_barrier1_built
	trigger self stuck_check_barrier2_built
	trigger self stuck_check_scriptlockout
	trigger self stuck_check_finished
}

trigger stuck_check_finished
{
	accum 3 abort_if_less_than 77

	accum 1 bitset 3
}

trigger stuck_check_scriptlockout
{
	accum 5 abort_if_equal 0

	accum 1 bitset 3
}

// ===========================================================================================
// stop check

trigger stopcheck_setup
{
	accum 1 bitset 6			// stop if we're stuck/no-one's pushing :)

	accum 1 abort_if_bitset 8		// no one in the trigger, abort

	trigger self stuck_check		// call the stop check function
	accum 1 abort_if_bitset 3		// we're stuck so break out

	accum 1 bitreset 6			// we're free to move
}

trigger stopcheck
{
	trigger self stopcheck_setup
	accum 1 abort_if_not_bitset 6

	trigger self script_lockout

	// Any just stopped moving stuff goes here
	trigger tank_sound 	stop
	trigger self 		tracks_stop
	startanimation 45 	10 	15 nolerp norandom
	wait 666
	startanimation 0 	1 	15 nolerp norandom
	wait 900

	trigger self script_lockout_stop
	resetscript
}

// ===========================================================================================
// ===========================================================================================
// script lockouts

trigger script_lockout
{
	accum 5 inc 1
}

trigger script_lockout_stop
{
	accum 5 inc -1
}

// ===========================================================================================
// ===========================================================================================
// enable/disable

trigger tank_enable
{
	trigger self stuck_check
	accum 1 abort_if_bitset 3 	// stuck check

	accum 4 set 0				// reset stop counter
	accum 1 bitreset 8			// reset stop check

	accum 1 abort_if_bitset 2 	// already following spline
	accum 5 abort_if_not_equal 0	// are we not in a script lockout?

	accum 1 abort_if_bitset 7 	// death check

	// Any just started moving stuff goes here

	trigger self script_lockout

	trigger tank_sound start

	startanimation 55 10 15 nolerp norandom
	wait 666
	startanimation 5 40 15 nolerp norandom
	wait 500
	trigger self tracks_forward

	trigger self script_lockout_stop

	trigger self move
}

trigger tank_disable
{
	accum 4 inc 1				// up the stop counter
	accum 4 abort_if_less_than 4

	accum 1 bitset 8			// set stop check

	trigger self deathcheck
}

// ===========================================================================================
// ===========================================================================================
// death / rebirth

rebirth
{
	accum 1 bitreset 9 // we're visibly alive
	accum 1 bitreset 7 // we're alive again

	trigger self script_lockout

	changemodel models/mapobjects/tanks_sd/jagdpanther_africa_tracks.md3

	setstate tank_smoke invisible

	// *----------------------------------- vo ------------------------------------------*
	wm_addteamvoiceannounce 0 "axis_hq_tank_stop"

	wm_teamvoiceannounce 0 "axis_hq_tank_repaired_allies"

	wm_teamvoiceannounce 1 "allies_hq_tank_repaired"

	wm_removeteamvoiceannounce 1 "allies_hq_tank_damaged_axis"
	// *---------------------------------------------------------------------------------*

	trigger tank_sound rebirth
	wait 500

	trigger self script_lockout_stop
}

death
{
	accum 1 bitset 7
}

trigger deathcheck
{
	accum 1 abort_if_not_bitset 7	// are we dead?
	accum 1 abort_if_bitset 9		// are we not already visibly dead?
	accum 1 abort_if_bitset 2		// are we not following a spline?
	accum 5 abort_if_not_equal 0	// are we not in a script lockout?

	accum 1 bitset 9				// we're now visibly dead

	trigger self deathcheck_message
	accum 1 bitset 4

	changemodel models/mapobjects/tanks_sd/jagdpanther_africa_tracks2.md3

	setstate tank_smoke default

	kill tank_construct

	trigger self sound_death
	trigger self tracks_stop

	trigger self script_lockout

	trigger self tracks_stop
	startanimation 45 10 15 nolerp norandom
	wait 666
	startanimation 0 1 15 nolerp norandom

	trigger self script_lockout_stop

	resetscript
}

trigger deathcheck_message
{
	accum 1 abort_if_not_bitset 4

	wm_announce "The Tank has been damaged!"

	// *----------------------------------- vo ------------------------------------------*
	wm_addteamvoiceannounce 1 "allies_hq_tank_damaged_axis"

	wm_teamvoiceannounce 0 "axis_hq_tank_damaged"

	wm_teamvoiceannounce 1 "allies_hq_tank_damaged_axis"

	wm_removeteamvoiceannounce 0 "axis_hq_tank_stop"
	// *---------------------------------------------------------------------------------*
}

trigger startfire
{
	startanimation 67 8 10 nolerp norandom noloop
}

trigger stopfire
{
	startanimation 0 1 15 nolerp norandom
}

trigger enable_stage2
{
	accum 1 bitreset 0
}

trigger disable_stage2
{
	accum 1 bitset 0
}

trigger enable_stage4
{
	accum 1 bitreset 1
}

trigger disable_stage4
{
	accum 1 bitset 1
}

}

tank_trigger
{
spawn
{
wait 500

	attachtotag tank_shell tag_turret

	trigger tank_trigger bot_goal_loop
}

trigger bot_goal_loop
{
	wait 4000	// check every 4 seconds
	trigger tank bot_active_check
	trigger tank_trigger bot_goal_loop
}

}

tank_build
{
spawn
{
wait 500

	attachtotag tank_shell tag_turret
}

}

tank_construct
{
spawn
{
wait 1000

	kill tank

	constructible_class 2
	constructible_health 1200
	constructible_constructxpbonus 10
	constructible_destructxpbonus 10
}

built final
{
	alertentity tank

	wm_announce "The Tank has been repaired!"
}

trigger final_pos
{
constructible_constructxpbonus 3
constructible_destructxpbonus 3
}
}

tank_shell
{
spawn
{
wait 400
attachtotag tank tag_tank
}
}

tank_turret
{
spawn
{
wait 500

	attachtotag tank_shell tag_turret
}

trigger turn
{
	wait 1000

	playsound sound/vehicles/tank/turret_spin.wav looping
	faceangles 0 000 0 0000
	stopsound
	playsound sound/vehicles/tank/turret_end.wav

	wait 500

	trigger tank startfire
	playsound sound/vehicles/tank/tank_fire.wav
	trigger boomtrigger boom_all		// triggers the hurts around GATE explosions (each has its own wait for timing)
	trigger tank_flash run
}

trigger turn_2
{
	wait 1000

	playsound sound/vehicles/tank/turret_spin.wav looping
	faceangles 0 340 0 3000
	stopsound
	playsound sound/vehicles/tank/turret_end.wav

	wait 500

	trigger tank startfire
	playsound sound/vehicles/tank/tank_fire.wav
	trigger boomtrigger boom_all_2		// triggers the hurts around bank explosions (each has its own wait for timing)
	trigger tank_flash_2 run
}

trigger blow_doors
{
	setstate tank_flash invisible

	wait 200
	trigger tank stopfire

	alertentity maingate1

	wm_announce "Allied team has destroyed the  Main Gate!"

	wait 100
	trigger bank_door2_damaged bankbackboom

	playsound sound/vehicles/tank/turret_spin.wav looping
	faceangles 0 0 0 3000
	stopsound
	playsound sound/vehicles/tank/turret_end.wav
	trigger tank sound_death
	trigger tank script_lockout_stop
}

trigger blow_doors_2
{
	setstate tank_flash_2 invisible

	wait 200
	trigger tank stopfire

	alertentity maingate1_2

	wm_announce "Allied team has destroyed the Second Main Gate!"

	wait 100
	trigger bank_door2_damaged bankbackboom

	playsound sound/vehicles/tank/turret_spin.wav looping
	faceangles 0 0 0 3000
	stopsound
	playsound sound/vehicles/tank/turret_end.wav
	trigger tank sound_death
	trigger tank script_lockout_stop
 }

}

tank_flash
{
spawn
{
setstate tank_flash invisible
}

trigger run
{
	setstate tank_flash default
	attachtotag tank_turret tag_flash
	faceangles 0 90 0 50

	wait 50

	trigger tank_turret blow_doors
}

}

tank_flash_2
{
spawn
{
setstate tank_flash_2 invisible
}

trigger run
{
	setstate tank_flash_2 default
	attachtotag tank_turret tag_flash
	faceangles 0 90 0 50

	wait 50

	trigger tank_turret blow_doors_2
}

}
tank_disabler
{
trigger run
{
trigger tank tank_disable
}
}

tank_enabler
{
trigger run
{
trigger tank tank_enable
}
}

tank_smoke
{
spawn
{
wait 300
attachtotag tank_shell tag_smoke
setstate tank_smoke invisible
}
}

// *******************************
// ******* GATE EXPLOSIONS ********
// *******************************
// these cause timed damage from the tank barrel to the gate explosions
boomtrigger
{
trigger boom_all_2 // this is called from the tank to trigger second gate hurts
{
trigger hurt_barrelblast1_2 boom
trigger hurt_barrelblast2_2 boom
trigger hurt_barrelblast3_2 boom
trigger hurt_maingate1_2 boom
wait 450
}
}

trigger boom_all		// this is called from the tank to trigger first gate hurts
{
	trigger hurt_barrelblast1 boom
	trigger hurt_barrelblast2 boom
	trigger hurt_barrelblast3 boom
	trigger hurt_maingate1 boom
	wait 450
	setstate bankdoors_toi invisible
	setstate bankdoors_cm_marker invisible
}

}

hurt_barrelblast1
{
spawn
{
wait 200
setstate hurt_barrelblast1 invisible
}

trigger boom
{
	setstate hurt_barrelblast1 default
	wait 100
	remove
}

}

hurt_barrelblast2
{
spawn
{
wait 200
setstate hurt_barrelblast2 invisible
}

trigger boom
{
	wait 165
	setstate hurt_barrelblast2 default
	wait 100
	remove
}

}

hurt_barrelblast3
{
spawn
{
wait 200
setstate hurt_barrelblast3 invisible
}

trigger boom
{
	wait 325
	setstate hurt_barrelblast3 default
	wait 100
	remove
}

}

hurt_maingate1
{
spawn
{
wait 200
setstate hurt_maingate1 invisible

	setstate hurt_barrelblast2 invisible
	setstate hurt_barrelblast3 invisible
}

trigger boom
{
	wait 400
	setstate hurt_maingate1 default
	wait 100
	remove
}

}

hurt_barrelblast1_2
{
spawn
{
wait 200
setstate hurt_barrelblast1_2 invisible
}

trigger boom
{
	setstate hurt_barrelblast1_2 default
	wait 100
	remove
}

}

hurt_barrelblast2_2
{
spawn
{
wait 200
setstate hurt_barrelblast2_2 invisible
}

trigger boom
{
	wait 165
	setstate hurt_barrelblast2_2 default
	wait 100
	remove
}

}

hurt_barrelblast3_2
{
spawn
{
wait 200
setstate hurt_barrelblast3_2 invisible
}

trigger boom
{
	wait 325
	setstate hurt_barrelblast3_2 default
	wait 100
	remove
}

}

hurt_maingate1_2
{
spawn
{
wait 200
setstate hurt_maingate1_2 invisible

	setstate hurt_barrelblast2_2 invisible
	setstate hurt_barrelblast3_2 invisible
}

trigger boom
{
	wait 400
	setstate hurt_maingate1_2 default
	wait 100
	remove
}

}


(Pukedukem) #6

cant find the delete post button


(Pukedukem) #7

forum error


(Pukedukem) #8

sorry


(Chruker) #9

Hehe, you can just click on the blue/white x icon to delete unnessary posts.


(G0-Gerbil) #10

3 copies of an extremely long post - played :smiley:


(Pukedukem) #11

Well my Tank blows up both doors like it should but it then trys to move forward to the next spline causing it to run in place till the round ends. Its suppose to just sit in place after blowing up the second gate.
Any ideas?


(Chruker) #12

Is it the entire tank thats moving or just the tracks that keept animated?


(Pukedukem) #13

the entire tank moves in one spot. the tracks also keep moving through the whole map something wrong with my runs?


(G0-Gerbil) #14

the tracks move by swapping an animated shader onto the tank - so look for things referencing that - can’t remember the actual details, but you obviously need to have the shader showing as not moving when stationary and otherwise when moving - might be you are missing a shaderflush (or whatever it’s called - the one that forces the actual swapping of the shader) in the bit that deals with the tank stopping.


(Pukedukem) #15

I fixed all of my Tank problems about a week ago.

Thanks again for the forum SD,

Pukedukem