BUUUUMP
ok, so I wanted to create 2 tank barriers to stop my little tank. Now, first I only had 1 barrier => worked perfectly ; I put a second one in it and here’s the problem:
- axis can construct both barriers (no problems with that)
- allies can destroy both barriers (idem)
- Problem: when tank arrives at first tank barrier, it stops (is ok), when barrier 1 is destroyed the tank continues its path ( is ok), when it arrives at the second constructed barrier the tank just drives through that barrier and the barrier just disappears.
Now, when the 1st barrier hasn’t been constructed, but the second one is, and the tank arrives at the second barrier, the tank DOES stop. So it has something to do with the script of the first barrier.
I’ve been searching and looking for the bug/problem, but I can’t find it.
Perhaps someone can find the (prolly easy) mistake?
Here’s the challenge:
//tank script
barrier1
{
spawn
{
wait 400
trigger barrier1 setup
wm_addteamvoiceannounce 1 "goldrush_allies_tankbar_destroy"
constructible_class 3
}
trigger setup
{
setstate barrier1_materials default
setstate barrier1_materials_clip default
setstate barrier1_flag default
globalaccum 0 bitreset 0
wm_addteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
}
built final
{
setstate barrier1_materials invisible
setstate barrier1_materials_clip invisible
setstate barrier1_flag invisible
wm_announce "The Tank Barrier has been constructed."
globalaccum 0 bitset 0
wm_teamvoiceannounce 0 "goldrush_axis_tankbar_constructed"
wm_removeteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
}
decayed final
{
setstate barrier1_materials default
setstate barrier1_materials_clip default
setstate barrier1_flag default
}
death
{
trigger self setup
wm_announce "The Tank Barrier has been destroyed."
wm_teamvoiceannounce 0 "goldrush_axis_tankbar_destroyed"
wm_teamvoiceannounce 1 "goldrush_allies_tankbar_destroyed"
}
trigger remove
{
setstate barrier1_toi invisible
setstate barrier1_materials invisible
setstate barrier1_materials_clip invisible
setstate barrier1_flag invisible
wm_removeteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
wm_removeteamvoiceannounce 1 "goldrush_allies_tankbar_destroy"
remove
}
}
barrier2
{
spawn
{
wait 400
trigger barrier2 setup
wm_addteamvoiceannounce 1 "goldrush_allies_tankbar_destroy"
constructible_class 3
}
trigger setup
{
setstate barrier2_materials default
setstate barrier2_materials_clip default
setstate barrier2_flag default
globalaccum 0 bitreset 0
wm_addteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
}
built final
{
setstate barrier2_materials invisible
setstate barrier2_materials_clip invisible
setstate barrier2_flag invisible
wm_announce "The Tank Barrier has been constructed."
globalaccum 0 bitset 0
wm_teamvoiceannounce 0 "goldrush_axis_tankbar_constructed"
wm_removeteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
}
decayed final
{
setstate barrier2_materials default
setstate barrier2_materials_clip default
setstate barrier2_flag default
}
death
{
trigger self setup
wm_announce "The Tank Barrier has been destroyed."
wm_teamvoiceannounce 0 "goldrush_axis_tankbar_destroyed"
wm_teamvoiceannounce 1 "goldrush_allies_tankbar_destroyed"
}
trigger remove
{
setstate barrier2_toi invisible
setstate barrier2_materials invisible
setstate barrier2_materials_clip invisible
setstate barrier2_flag invisible
wm_removeteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
wm_removeteamvoiceannounce 1 "goldrush_allies_tankbar_destroy"
remove
}
}
tank
{
// 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
spawn
{
wait 400
followspline 0 spln0 50000 length 32 wait
followspline 1 spln0 50000 length 32 wait
trigger tank sound_idle
trigger tank tracks_stop
}
death
{
accum 1 bitset 7
}
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
wm_teamvoiceannounce 0 "axis_hq_tank_repaired_allies"
wm_teamvoiceannounce 1 "allies_hq_tank_repaired"
trigger tank_sound rebirth
wait 500
trigger self script_lockout_stop
}
trigger barrier_built
{
accum 1 bitset 1
}
trigger barrier_destroyed
{
accum 1 bitreset 1
}
trigger deathcheck
{
accum 1 abort_if_not_bitset 7 // abort if tank not damaged
accum 1 abort_if_bitset 9 // abort if tank already visibly dead
accum 1 abort_if_bitset 2 // abort if we are following a spline
accum 5 abort_if_not_equal 0 // abort if we are 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!"
wm_teamvoiceannounce 0 "axis_hq_tank_damaged"
wm_teamvoiceannounce 1 "allies_hq_tank_damaged_axis"
}
// ========================
// movement
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
accum 3 trigger_if_equal 62 tank run_62
accum 3 trigger_if_equal 63 tank run_63
accum 3 trigger_if_equal 64 tank run_64
accum 3 trigger_if_equal 65 tank run_65
accum 3 trigger_if_equal 66 tank run_66
accum 3 trigger_if_equal 67 tank run_67
accum 3 trigger_if_equal 68 tank run_68
accum 3 trigger_if_equal 69 tank run_69
accum 3 trigger_if_equal 70 tank run_70
accum 3 trigger_if_equal 71 tank run_71
accum 3 trigger_if_equal 72 tank run_72
accum 3 trigger_if_equal 73 tank run_73
accum 3 trigger_if_equal 74 tank run_74
accum 3 trigger_if_equal 75 tank run_75
accum 3 trigger_if_equal 76 tank run_76
accum 3 trigger_if_equal 77 tank run_77
accum 3 trigger_if_equal 78 tank run_78
accum 3 trigger_if_equal 79 tank run_79
accum 3 trigger_if_equal 80 tank run_80
accum 3 trigger_if_equal 81 tank run_81
accum 3 trigger_if_equal 82 tank run_82
accum 3 trigger_if_equal 83 tank run_83
accum 3 trigger_if_equal 84 tank run_84
accum 3 trigger_if_equal 85 tank run_85
accum 3 trigger_if_equal 86 tank run_86
accum 3 trigger_if_equal 87 tank run_87
accum 3 trigger_if_equal 88 tank run_88
}
trigger move
{
trigger self move_check
wait 500
trigger self move
}
trigger move_check
{
trigger self stuck_check
accum 1 abort_if_bitset 3
trigger self dispatch
}
trigger run_continue
{
accum 3 inc 1
trigger self deathcheck
trigger self stopcheck
trigger self move
}
trigger run_0
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln0 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_1
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln1 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_2
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln2 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_3
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln3 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_4
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln4 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_5
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln5 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_6
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln6 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_7
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln7 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_8
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln8 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_9
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln9 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_10
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln10 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_11
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln11 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_12
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln12 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_13
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln13 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_14
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln14 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_15
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln15 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_16
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln16 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_17
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln17 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_18
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln18 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_19
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln19 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_20
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln20 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_21
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln21 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_22
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln22 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_23
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln23 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_24
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln24 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_25
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln25 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_26
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln26 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_27
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln27 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_28
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln28 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_29
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln29 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_30
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln30 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_31
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln31 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_32
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln32 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_33
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln33 100 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_34
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln34 90 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_35
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln35 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_36
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln36 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_37
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln37 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_38
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln38 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_39
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln39 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_40
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln40 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_41
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln41 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_42
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln42 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_43
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln43 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_44
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln44 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_45
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln45 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_46
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln46 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_47
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln47 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_48
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln48 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_49
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln49 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_50
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln50 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_51
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln51 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_52
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln52 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_53
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln53 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_54
{
trigger self tracks_forward
accum 1 bitset 2
// =======================
trigger barrier1 remove
// =======================
followspline 0 spln54 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_55
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln55 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_56
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln56 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_57
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln57 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_58
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln58 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_59
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln59 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_60
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln60 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_61
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln61 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_62
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln62 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_63
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln63 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_64
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln64 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_65
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln65 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_66
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln66 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_67
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln67 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_68
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln68 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_69
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln69 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_70
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln70 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_71
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln71 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_72
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln72 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_73
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln73 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_74
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln74 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_75
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln75 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_76
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln76 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_77
{
trigger self tracks_forward
accum 1 bitset 2
// =======================
trigger barrier2 remove
// =======================
followspline 0 spln77 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_78
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln78 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_79
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln79 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_80
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln80 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_81
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln81 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_82
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln82 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_83
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln83 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_84
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln84 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_85
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln85 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_86
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln86 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_87
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln87 80 wait
accum 1 bitreset 2
trigger self run_continue
}
trigger run_88
{
trigger self tracks_forward
accum 1 bitset 2
followspline 0 spln88 80 wait
accum 1 bitreset 2
trigger self script_lockout
trigger self tracks_stop
trigger tank_sound stop
wm_objective_status 2 0 2
wm_objective_status 2 1 1
startanimation 45 10 15 nolerp norandom
wait 666
startanimation 0 1 15 nolerp norandom
wait 900
trigger tank_turret turn
accum 3 inc 1
}
// =========================
// script lockouts
trigger script_lockout
{
accum 5 inc 1
}
trigger script_lockout_stop
{
accum 5 inc -1
}
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
}
// ================================
// stop check
trigger stopcheck
{
trigger self stopcheck_setup
accum 1 abort_if_not_bitset 6
trigger self script_lockout
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
}
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
}
// ======================================
// stuck checking
trigger stuck_check
{
accum 1 bitreset 3
trigger self stuck_check_barrier
trigger self stuck_check_barrier2
trigger self stuck_check_scriptlockout
trigger self stuck_check_finished
}
trigger stuck_check_finished
{
// The check should be the final spln nbr + 1
accum 3 abort_if_less_than 89 //was 14, has to be 13
accum 1 bitset 3
}
trigger stuck_check_scriptlockout
{
accum 5 abort_if_equal 0
accum 1 bitset 3
}
trigger stuck_check_barrier
{
accum 3 abort_if_not_equal 54
globalaccum 0 abort_if_not_bitset 0 // abort if barrier not built
accum 1 bitset 3
}
trigger stuck_check_barrier2
{
accum 3 abort_if_not_equal 77
globalaccum 0 abort_if_not_bitset 0 // abort if barrier not built
accum 1 bitset 3
}
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
}
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
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 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 startfire
{
startanimation 67 8 10 nolerp norandom noloop
}
trigger stopfire
{
startanimation 0 1 15 nolerp norandom
}
}
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!"
}
}
tank_disabler
{
trigger run
{
trigger tank tank_disable
}
}
tank_enabler
{
trigger run
{
trigger tank tank_enable
}
}
tank_fire_sound
{
trigger run
{
setposition tank
alertentity tank_fire_sound
}
}
tank_flash
{
spawn
{
wait 300
attachtotag tank_turret tag_flash
setstate tank_flash invisible
}
trigger run
{
setstate tank_gunsmoke default
setstate tank_flash default
wait 100
setstate tank_flash invisible
setstate tank_gunsmoke invisible
}
}
tank_gunsmoke
{
spawn
{
wait 300
attachtotag tank_turret tag_flash
setstate tank_gunsmoke invisible
}
}
tank_shell
{
spawn
{
wait 400
attachtotag tank tag_tank
}
}
tank_smoke
{
spawn
{
wait 300
attachtotag tank_shell tag_smoke
setstate tank_smoke invisible
}
}
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
}
}
tank_trigger
{
spawn
{
wait 500
attachtotag tank_shell tag_turret
}
}
tank_turret
{
spawn
{
wait 500
attachtotag tank_shell tag_turret
}
trigger turn
{
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 tank_flash run
wait 600
trigger tank stopfire
alertentity bankdoor
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
}
}