Tank blows up ...


(shagileo) #1

hellooowww (yes yes i hear you … i know i know … ‘it’s the tank man’ … -.-)

as you know … i love tanks … i love 'em so hard i would simply crush 'em to pieces and eat them for dinner, but as ET hearted as i am, i’m trying to develop an anti-tank hatred

**** end of bullcrap ***

as i’m still making my map, trying to create a good tank route (allready solved in previous threads XD ) i now encounter another problem…

cough cough please… if you’re reading this at 2.00 am in the morning… i advise you to take a look at this thread later … it’s pretty … hmpf

ok so, my tank wants to blow up some nice castle doors. Warning * Warning: a non- 2 am - in - the - moring - question*

how do i do this? :slight_smile:

i plunged into the grush script and .MAP file (that comes with radiant) but i really don’t understand it.
perhaps some kind mappers have a very interesting tutorial or take the challenge to explain it to me (very high risk in doing that XD… but i’m a willing learner)

soooowww, i allready thank you for wasting 49.4 seconds (at this time) for reading this.

grtz,

shagileo


(kamikazee) #2

Goldrush uses quite some complex script indeed, it calls functions which then proceed with the first sequence from another script trigger…

Basically, the tank spline scripts gets to its last runX function. In this one, a few things happen. For starters, you turn your turret towards the target. After this is complete, the firing “sequence” starts: what happens is that you add a model to the turret to simulate the “flash” from the gun fire, tell the tank to run its “wiggling” animation, trigger all trigger_hurts in the blast’s path, then wait a few milliseconds to make the flash disappear again and trigger your func_explosive, causing the latter to disappear/explode.

I guess it’s best to write down everything you want to do, then lay it out in script.


(whoosaaa) #3

Hi shag…:slight_smile:

For this ya need some items.

A TOI ->trigger Obj Info with brush ( textured with Origin texture) read maual in GTk for et
2 trigger hurt ( 1 for small dmg far range… 1 for big dmg…direkly at the door)
1 misc_commandmap_marker
1 target_explosion
1 target_effect
1 func_explosive (witch is the door itself)

this al gets triggered in tank_turret trigger… when the tank reaches his final spline.
Just have a closer look into the goldrush script, inthere ya get all the info

Greets WhooSaaa


(shagileo) #4

ok so thanks for the replies, but i’m sorry to say… i don’t really understand it whoosaa :slight_smile:

well , let’s say i do understand , but i don’t know what to do with it.

so basically, what triggers (and how many) do i have to draw around the castle doors?

so (correct me if i’m wrong):

  • i make my doors func_explosive : but what keys and values do i have to put in? do i have to check any spawnflags?

  • i’m not planning to make a fancy command map (actually no command map at all ^^ ) is the command_map_marker needed? OR BETTER ==> is it hard to make a command map marker?

  • what about the trigger_hurt ==> is it really needed? :slight_smile:

  • what about the TOI ==> perhaps a nice script exemple would be nice :slight_smile: + i checked the manual but it’s not in it :s

  • what about the effect ==> what will it do

a lot of questions here, but i really need to know ^^

grtz


(Ziggy) #5

shag, check this out. This should explain a bit more about the func_explosive command.

http://www.pythononline.co.uk/et/tutorial12.htm

Make sure you read all the way to the bottom.

hope this helps

cheers


(isbowhten) #6

the func_explosive needs just a targetname, perhaps health key 0 that it only can be destroyed with using it via script.

trigger movetospline1
{
followplsine …
}
trigger movetolastspline
{
followspline…
alertentity the-explosive
}

do you need the TOI for the tank ?
then you could give it the same scriptname as the tank… then it moves like the tank WITHOUT using attachtotag <- i’m not suitable to this command…
you could do that with all entities but make sure that a death event of an entity you gave the scriptname of the tank doesnt kill the tank :wink: so… the toi only has dynamited and defused as events => no troubles with tank-events!


(shagileo) #7

allright with all the info you guys gave me, i’m gonna check it out asap

thx in advance, and i’ll let you guys know if it worked (or not) :slight_smile:


(shagileo) #8

hmm well perhaps a TOI for the tank would be great

does the castledoors also need a scriptname?

because i only gave it a targetname


(shagileo) #9

GUYS GUYS !!!

it worked !!!

omg i’m sooo friiigggiiin’ happy 8) :slight_smile:

the key was in one single phrase:

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
	}
}

alertentity bankdoor

i just gave the doors func_explosive and targetname bankdoors… i looked at the mlb_temple script and saw this single phrase. i thought let’s give it a go and BOOOOMMMM !!!

i would like to thank :

kamikazee
whoosaaa
Ziggy
isbowhten

with all gathered info, it finally worked.

'till the next question(s) (hehe)

grtz and many thanks,

shagi :slight_smile:


(Ziggy) #10

no problem, glad I could help:D


(shagileo) #11

well i’m back ^^

i use this topic so i don’t have to make a new one just for this question. although my question has nothing to do with tanks, i kinda consider this as my topic shack :slight_smile:

anyways, i made some flags on my map, but this is the result (see screenshot)

how do i solve this?

thx in advance ^^

grtz,

shagi


(stealth6) #12

put the texture only on 1 side and put clip texture on the other 5?


(shagileo) #13

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
	}
}

(-SSF-Sage) #14

You use the same globalccum 0 bit 0 for both barriers*. Change these:

barrier2*:
...

trigger setup
	{
		setstate barrier2_materials default
		setstate barrier2_materials_clip default
		setstate barrier2_flag default

		globalaccum 0 bitreset 1  //to bit 1

		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 1  //to bit 1

		wm_teamvoiceannounce 0 "goldrush_axis_tankbar_constructed"
		wm_removeteamvoiceannounce 0 "goldrush_axis_tankbar_construct"
	}
...
tank:
...
	trigger stuck_check_barrier2
	{
		accum 3 abort_if_not_equal 77
		globalaccum 0 abort_if_not_bitset 1	// abort if barrier not built... change to 1
		accum 1 bitset 3
	}
...

Ps. It was quite easy to find cos I knew where to look at.


(shagileo) #15

Allright thanks Sage !

Gonna check it out asap, but I’m sure it’s gonna work.

ps: barrier not bridge XD :smiley:


(-SSF-Sage) #16

[QUOTE=shagileo;180884]

ps: barrier not bridge XD :D[/QUOTE]

LOL! :cool: :smiley: np :smiley:


(shagileo) #17

Hahahahahaa, I see … you changed the script already XD
thanks !! :cool: