unable to "repair" a truck


(Valkyrie_Hrist) #1

ok… before you tell me to look for tutorials to do this… i’ve tried all the ones that i could find… and none of them help.

these work: :slight_smile:

  • damage the truck
  • kill_target will trigger correctly and remove the func_construct brush.
  • the model changes to the damaged md3 version.
  • attached gfx and sfx work correctly
  • truck follows spline path correctly

here’s the problem: :frowning:

  • try to repair the truck nothing happens.
  • the plier symbol does not show up.

personally i think that it is because the trigger_objective_info is not being triggered when the kill_target triggers.

here are the entities from the .map file:

script_mover
“health” “1050”
“spawnflags” “62”
“targetname” “truck”
“scriptname” “truck”
“classname” “script_mover”
“model2” “models/mapobjects/blitz_sd/blitzbody.md3”
“description” “Truck”

trigger_multiple
“spawnflags” “2”
“target” “truck_enabler”
“scriptname” “truck_trigger”
“targetname” “truck_trigger”
“classname” “trigger_multiple”
“wait” “0.1”

target_kill
“classname” “target_kill”
“origin” “804 -2476 72”
“targetname” “kill_truck”
“scriptname” “truck”
“target” “truck_construct”

func_constructible
“classname” “func_constructible”
“targetname” “truck_construct”
“scriptname” “truck_construct”
“target” “truck”
“spawnflags” “9”

trigger_objective_info
“spawnflags” “10”
“customaxisimage” “gfx/limbo/cm_truck”
“customalliesimage” “gfx/limbo/cm_truck”
“shortname” “Truck”
“track” “the Truck”
“target” “truck_construct”
“scriptname” “truck_build”
“targetname” “truck_build”
“classname” “trigger_objective_info”

Script File:
// **********************************************
// ****************** TRUCK STUFF ***************
// **********************************************

truck_smoke
{
spawn
{
wait 300
attachtotag truck tag_wfront
setstate truck_smoke invisible
}
}

// sound “thread”
truck_engine
{
spawn
{
wait 200
attachtotag truck tag_wfront

	trigger truck_engine sound_idle
}

trigger start
{
	trigger truck_engine sound_start
	wait 950
	trigger truck_engine sound_move
}

trigger stop
{
	trigger truck_engine sound_stop
	wait 950
	trigger truck_engine sound_idle
}

// ========================================
// sound events
trigger sound_idle
{
	playsound sound/vehicles/truck/truck_idle.wav looping
}

trigger sound_start
{
	stopsound
	playsound sound/vehicles/truck/truck_revup.wav volume 96
}

trigger sound_move
{
	playsound sound/vehicles/truck/run.wav looping
}

trigger sound_stop
{
	stopsound
	playsound sound/vehicles/truck/truck_revdown.wav volume 96
}

trigger sound_death
{
	stopsound
	playsound sound/vehicles/truck/truck_stop.wav volume 96
}

}

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

truck_disabler
{
trigger run
{
trigger truck truck_disable
}
}

truck_enabler
{
trigger run
{
trigger truck truck_enable
}
}
// digibob: ok, for once i’m gonna PLAN this one, so NOTHING WILL BREAK EVAR
// ============================================================================
// accum 0, gold bars collected
// accum 1
// - bit 0: barrier 1 status ( 0 = destroyed, 1 = built )
// - bit 1: barrier 2 status ( 0 = destroyed, 1 = built )
// - bit 2: spline status ( 0 = not moving, 1 = moving )
// - bit 3: stuck check flag ( 0 = not stuck, 1 = stuck )
// - bit 4: script lockout ( 0 = no lockout, 1 = lockout )
// - 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, blank
// accum 6, blank
// accum 7, blank
// ============================================================================
// spline points are tspln_X with X = 1 to 23
// ============================================================================
// wheel events:
// - wheels_forward
// - wheels_backward
// - wheels_stop
truck
{
spawn
{
followspline 0 truck_move_1 50000 length 32 wait //spawn the truck here
}

// ========================================
// wheeeeeeeeeeeeeeels. eeels. ls.
trigger wheels_forward
{
	trigger truck_bwheel2 forward
	trigger truck_fwheel forward
}

trigger wheels_backward
{
	trigger truck_bwheel2 backward
	trigger truck_fwheel backward
}

trigger wheels_stop
{
	trigger truck_bwheel2 stop
	trigger truck_fwheel stop
}

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

trigger truck_enable
{
	trigger truck 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 1 abort_if_bitset 4 	// script lockout

	accum 1 abort_if_bitset 7 	// death check

	// Any just started moving stuff goes here
	trigger truck_engine start
	trigger truck wheels_forward
	// <<<<< start animation goes here
	trigger truck move
}

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

	accum 1 bitset 8			// set stop check

	trigger truck deathcheck
}

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

trigger move_check
{
	trigger truck stuck_check
	accum 1 abort_if_bitset 3

	trigger truck dispatch
}

trigger move
{
	trigger truck move_check

	wait 500

	trigger truck move
}

trigger dispatch
{
	accum 3 trigger_if_equal 0 	truck run_1
	accum 3 trigger_if_equal 1 	truck run_2
	accum 3 trigger_if_equal 2	truck run_3
	accum 3 trigger_if_equal 3 	truck run_4
	accum 3 trigger_if_equal 4 	truck run_5
	accum 3 trigger_if_equal 5 	truck run_6
	accum 3 trigger_if_equal 6 	truck run_7
	accum 3 trigger_if_equal 7 	truck run_8
	accum 3 trigger_if_equal 8 	truck run_9
	accum 3 trigger_if_equal 9 	truck run_10
	accum 3 trigger_if_equal 10	truck run_11
	accum 3 trigger_if_equal 11	truck run_12
	accum 3 trigger_if_equal 12	truck run_13
	accum 3 trigger_if_equal 13	truck run_14
	accum 3 trigger_if_equal 14	truck run_15
	accum 3 trigger_if_equal 15	truck run_16
	accum 3 trigger_if_equal 16	truck run_17
	accum 3 trigger_if_equal 17	truck run_18
	accum 3 trigger_if_equal 18	truck run_19
	accum 3 trigger_if_equal 19	truck run_20
	accum 3 trigger_if_equal 20	truck run_21
	accum 3 trigger_if_equal 21	truck run_22
	accum 3 trigger_if_equal 22	truck run_23
	accum 3 trigger_if_equal 23	truck run_24
	accum 3 trigger_if_equal 24	truck run_25
	accum 3 trigger_if_equal 25	truck run_26
	accum 3 trigger_if_equal 26	truck run_27
	accum 3 trigger_if_equal 27	truck run_28
	accum 3 trigger_if_equal 28	truck run_29
	accum 3 trigger_if_equal 29	truck run_30
}

trigger run_incpos
{
	accum 3 inc 1
}

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

trigger run_1
{
	accum 1 bitset 2
	followspline 0 truck_move_1 100 wait length 304
	accum 1 bitreset 2

	trigger truck run_continue
}

trigger run_30
{
	accum 1 bitset 2
	followspline 0 truck_move_30 100 wait length 304
	accum 1 bitreset 2

	trigger truck wheels_stop

	trigger game_manager allies_win
}

// ========================================
// barrier checking

trigger stuck_check
{
	accum 1 bitreset 3

	trigger truck stuck_check_gold
	trigger truck stuck_check_bridge
	trigger truck stuck_check_truck_barrier
	trigger truck stuck_check_scriptlockout
	trigger truck stuck_check_finished
}

trigger stuck_check_finished
{
	accum 3 abort_if_not_equal 31

	accum 1 bitset 3
}

trigger stuck_check_scriptlockout
{
	accum 1 abort_if_not_bitset 4

	accum 1 bitset 3
}

trigger stuck_check_gold
{
	accum 3 abort_if_not_equal 0	//current movement loop position = 0 (truck 						//should be stuck waiting for gold)

	accum 0 abort_if_greater_than 1	//checks if both gold are on truck

	accum 1 bitset 3	//sets flag to stuck 
}

trigger stuck_check_bridge
{
	accum 3 abort_if_not_equal 4	//bridge movement position marker for check

	accum 1 abort_if_not_bitset 0	//bridge status  0 = destroyed,1 = built 	

	accum 1 bitset 3		//sets flag to stuck
}

trigger stuck_check_bridge_built_msg
{
	accum 1 abort_if_not_bitset 0

	// *----------------------------------- vo ------------------------------------------*
	wm_teamvoiceannounce 1 "chaos_allies_bridge_construct"
	// *---------------------------------------------------------------------------------*
}

trigger stuck_check_truck_barrier
{
	accum 3 abort_if_not_equal 18	//bridge movement position marker for check

	accum 1 abort_if_not_bitset 1	//barrier status  0 = destroyed,1 = built

	accum 1 bitset 3		//sets flag to stuck
}

trigger stuck_check_truck_barrier_built_msg
{
	accum 1 abort_if_not_bitset 1

	// *----------------------------------- vo ------------------------------------------*
	wm_teamvoiceannounce 1 "chaos_allies_truckbar_destroy"
	// *---------------------------------------------------------------------------------*
}

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




// ========================================
// 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 truck 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 keep going
}

trigger stopcheck
{
	trigger truck stopcheck_setup
	accum 1 abort_if_not_bitset 6

	trigger truck script_lockout

	// Any just stopped moving stuff goes here
	trigger truck_engine stop
	trigger truck wheels_stop
	// <<<<< stop animation goes here

	trigger truck script_lockout_stop
	resetscript
}

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

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

trigger script_lockout
{
	accum 1 bitset 4
}

trigger script_lockout_stop
{
	accum 1 bitreset 4
}

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

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

death
{
	accum 1 bitset 7	//set to on when truck hp=0
}

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 1 abort_if_bitset 4		// are we not in a script lockout?

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

	wm_announce "The Truck has been damaged!"

	// *----------------------------------- vo ------------------------------------------*
	wm_teamvoiceannounce 0 "axis_hq_truck_damaged"

	wm_teamvoiceannounce 1 "allies_hq_truck_damaged_axis"
	// *---------------------------------------------------------------------------------*

	setstate truck_smoke default	//turn smoke fx on
	//kill truck_construct	//not sure this works
	alertentity kill_truck	//kind of like when a construction is blown up

	trigger truck_engine sound_death	//plays sfx
	//trigger truck tracks_stop	// truck with tracks? i don't think so
	trigger truck wheels_stop	//stops the wheel gfx
	// <<<< stop anim goes here

	changemodel models/mapobjects/blitz_sd/blitzbody_damaged.md3

	resetscript	//not sure what script is reset... assuming this one
}


rebirth	//called when the truck has been repaired
{
	accum 1 bitreset 7 // we're alive again
	accum 1 bitreset 9 // we're visibly alive

	trigger truck script_lockout

	changemodel models/mapobjects/blitz_sd/blitzbody.md3

	setstate truck_smoke invisible

	// *----------------------------------- vo ------------------------------------------*
	wm_teamvoiceannounce 0 "axis_hq_truck_repaired_allies"

	wm_teamvoiceannounce 1 "allies_hq_truck_repaired"
	// *---------------------------------------------------------------------------------*


	trigger truck script_lockout_stop
	//trigger truck move
}
// ========================================
// barriers

trigger enable_stage1
{
	accum 1 bitreset 0
}

trigger disable_stage1
{
	accum 1 bitset 0
}

trigger enable_stage2
{
	accum 1 bitreset 1
}

trigger disable_stage2
{
	accum 1 bitset 1
}

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

trigger add_goldbar
{
	accum 0 inc 1

	trigger gold_full_0 show
	trigger gold_trans_0 hide
	trigger gold_crate secured

	accum 0 abort_if_less_than 2

	trigger gold_full_1 show
	trigger gold_trans_1 hide

	trigger self truck_escape_msg

	wm_announce "Allied team is escaping with the Gold Crates!"

	wm_objective_status 4 0 2
	wm_objective_status 4 1 1

	wm_set_main_objective 5 0
	wm_set_main_objective 5 1

	setstate goldbars_toi invisible
	setstate goldbars_cm_marker invisible
}

trigger truck_escape_msg
{
	// *----------------------------------- vo ------------------------------------------*
	wm_addteamvoiceannounce 0 "axis_hq_truck_stop"

	wm_addteamvoiceannounce 1 "allies_hq_truck_escort"

	wm_teamvoiceannounce 0 "chaos_axis_truck_stolen"

	wm_teamvoiceannounce 1 "chaos_allies_truck_stolen"

	wm_removeteamvoiceannounce 0 "chaos_axis_gold_defend"

	wm_removeteamvoiceannounce 1 "chaos_allies_gold_get"
	// *---------------------------------------------------------------------------------*
}

}

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

truck_bwheel2
{
spawn
{
wait 500

	attachtotag truck tag_wback
}

trigger forward
{
	setrotation 130 0 0
}

trigger backward
{
	setrotation -130 0 0
}

trigger stop
{
	stoprotation
}

}

truck_fwheel
{
spawn
{
wait 500

	attachtotag truck tag_wfront
}

trigger forward
{
	setrotation 130 0 0
}

trigger backward
{
	setrotation -130 0 0
}

trigger stop
{
	stoprotation
}

}

truck_trigger
{
spawn
{
wait 500

	attachtotag truck tag_wback
}

}

truck_build
{
spawn
{
wait 500

	attachtotag truck tag_wback
	attachtotag truck_fwheel tag_wfront
	attachtotag truck_bwheel2 tag_wback
}

}

truck_construct
{
spawn
{
wait 400
constructible_chargebarreq .5
constructible_class 1
constructible_health 50 //1050
constructible_constructxpbonus 10
constructible_destructxpbonus 10
}

built final
{
	alertentity truck

	wm_announce "The Truck has been repaired!"
}

}

any ideas and help would be appreciated.