repairing a tank


(mal^d^man) #1

ive gotten my tank to work but only in warm up mode. when the game starts the tank is not repairable by the allies team.


// ************************************************* 
// ***************** 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 -> spln78 
// =========================================================================================== 
// 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 
   } 


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

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

   trigger stuck_check_barrier1_built 
   { 
      accum 3 abort_if_not_equal 23 

      accum 1 abort_if_not_bitset 0 

      accum 1 bitset 3 
   } 

   trigger stuck_check_barrier1_built_msg 
   { 
      accum 1 abort_if_not_bitset 0 

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

   trigger stuck_check_barrier2_built 
   { 
      accum 3 abort_if_not_equal 67 

      accum 1 abort_if_not_bitset 1 

      accum 1 bitset 3 
   } 

   trigger stuck_check_barrier2_built_msg 
   { 
      accum 1 abort_if_not_bitset 1 

      // *----------------------------------- vo ------------------------------------------* 
      wm_teamvoiceannounce 1 "goldrush_allies_tankbar_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 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!" 
   } 
} 

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 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      // triggers the hurts around bank explosions (each has its own wait for timing) 
      trigger tank_flash run 
   } 

   trigger blow_doors 
   { 
      setstate tank_flash invisible 

      wait 200 
      trigger tank stopfire 

      alertentity bank_door1 
      setstate doorframe invisible 
      setstate doorframe_damaged default 

      wm_announce "Allied team has destroyed the Bank Doors!" 

      wm_objective_status 3 0 2 
      wm_objective_status 3 1 1 

      wm_set_main_objective      4   0 
      wm_set_main_objective      4   1 

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

here is all the code i know its long but i thought u better show u guys everything. cant figure out y it doesnt want to repair. the tank shows up on the command map. i got no idea what to do i hope you can help me