Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- actor f22
- {
- +nogravity
- +nointeraction
- +noblockmap
- speed 1
- mass 2
- var int user_speed;
- var int user_fakeroll; //goes from 0(-90 degrees) to 180(+90 degrees)!!
- var int user_desired_turn_angle;
- var int user_desired_turn_tics;
- var int user_turn_timer;
- var int user_tics_to_target;
- var int user_spawn_timer;
- var int user_has_fired;
- states
- {
- spawn:
- Tnt1 A 0
- TNT1 A 0 A_SetUserVar("user_fakeroll",90) //level flight
- tnt1 A 0 A_SetUserVar("user_speed",15)
- tnt1 A 0 A_SetUserVar("user_tics_to_target",35*3)
- tnt1 A 0 A_SetUserVar("user_has_fired",0)
- TNT1 A 0 A_setUservar("user_desired_turn_tics",1) //no divide by zero
- goto fly
- fly:
- TNT1 A 0 A_SpawnItemEx("planetrail",-25,(sin(-user_fakeroll)*50)+(cos(-user_fakeroll)*8), (cos(user_fakeroll)*-50) + (sin(-user_fakeroll)*8))
- TNT1 A 0 A_SpawnItemEx("planetrail",-25,(sin(user_fakeroll)*50) +(cos(user_fakeroll)*-8), (cos(user_fakeroll)*50) + (sin(user_fakeroll)*-8))
- TNT1 A 0 A_ChangeVelocity(cos(pitch) * user_speed,0,sin(pitch) * user_speed,CVF_Relative|CVF_Replace)
- goto ChooseFrame
- decide:
- TNT1 A 0 A_setUserVar("user_spawn_timer",user_spawn_timer+1)
- //||||||||||||||||||||||||||| counts down the turn timer if it's above 0
- decide1:
- TNT1 A 0 A_jumpif(user_turn_timer > 0,"turntimer_countdown")
- goto decide2
- turntimer_countdown:
- TNT1 A 0 A_SetUserVar("user_turn_timer",user_turn_timer -1)
- goto decide2
- //||||||||||||||||||||||||||| turns if the turn timer is above 0
- decide2:
- TNT1 A 0 A_jumpif(user_turn_timer > 0,"turn")
- TNT1 A 0 A_jumpif(user_fakeroll > 90,"deroll_left")
- TNT1 A 0 A_jumpif(user_fakeroll < 90,"deroll_right")
- goto decide3
- turn:
- TNT1 A 0 A_SetAngle(angle + (user_desired_turn_angle / user_desired_turn_tics))
- TNT1 A 0 A_SetUserVar("user_fakeroll", user_fakeroll - (user_desired_turn_angle / user_desired_turn_tics) )
- goto decide3
- deroll_left:
- TNT1 A 0 A_SetUserVar("user_fakeroll", user_fakeroll -2 )
- goto decide3
- deroll_right:
- TNT1 A 0 A_SetUserVar("user_fakeroll", user_fakeroll +2 )
- goto decide3
- decide3:
- TNT1 A 0
- goto decide_49
- //||||||||||||||||||||||||||| shoots missiles!
- decide_49:
- TNT1 A 0 A_JumpIf((user_has_fired == 0) && (user_spawn_timer == user_tics_to_target),"shoot")
- goto fly
- shoot:
- TNT1 A 0 A_CustomMissile("rocket",0,-20,0,CMF_AIMDIRECTION,-45)
- TNT1 A 0 A_CustomMissile("rocket",0,20,0,CMF_AIMDIRECTION,-45)
- TNT1 A 0 A_SetUserVar("user_has_fired",1)
- TNT1 A 0 A_SetUserVar("user_desired_turn_angle",90)
- TNT1 A 0 A_SetUserVar("user_desired_turn_tics",70)
- TNT1 A 0 A_SetUserVar("user_turn_timer",70)
- goto decide_49
- //|||||||||||||||||||||||||||
- Chooseframe:
- TNT1 A 0 A_JumpIf(user_fakeroll < 10,"roll0") //-90
- TNT1 A 0 A_JumpIf(user_fakeroll >= 10 && user_fakeroll < 20 ,"roll10") //-80
- TNT1 A 0 A_JumpIf(user_fakeroll >= 20 && user_fakeroll < 30 ,"roll20") //-70
- TNT1 A 0 A_JumpIf(user_fakeroll >= 30 && user_fakeroll < 40 ,"roll30") //-60
- TNT1 A 0 A_JumpIf(user_fakeroll >= 40 && user_fakeroll < 50 ,"roll40") //-50
- TNT1 A 0 A_JumpIf(user_fakeroll >= 50 && user_fakeroll < 60 ,"roll50") //-40
- TNT1 A 0 A_JumpIf(user_fakeroll >= 60 && user_fakeroll < 70 ,"roll60") //-30
- TNT1 A 0 A_JumpIf(user_fakeroll >= 70 && user_fakeroll < 80 ,"roll70") //-20
- TNT1 A 0 A_JumpIf(user_fakeroll >= 80 && user_fakeroll < 88 ,"roll80") //-10
- TNT1 A 0 A_JumpIf(user_fakeroll >= 88 && user_fakeroll <= 92,"roll90") // level
- TNT1 A 0 A_JumpIf(user_fakeroll <= 100 && user_fakeroll > 92 ,"roll100") //+10
- TNT1 A 0 A_JumpIf(user_fakeroll <= 110 && user_fakeroll > 100 ,"roll110")//+20
- TNT1 A 0 A_JumpIf(user_fakeroll <= 120 && user_fakeroll > 110 ,"roll120")//+30
- TNT1 A 0 A_JumpIf(user_fakeroll <= 130 && user_fakeroll > 120 ,"roll130")//+40
- TNT1 A 0 A_JumpIf(user_fakeroll <= 140 && user_fakeroll > 130 ,"roll140")//+50
- TNT1 A 0 A_JumpIf(user_fakeroll <= 150 && user_fakeroll > 140 ,"roll150")//+60
- TNT1 A 0 A_JumpIf(user_fakeroll <= 160 && user_fakeroll > 150 ,"roll160")//+70
- TNT1 A 0 A_JumpIf(user_fakeroll <= 170 && user_fakeroll > 160,"roll170")//+80
- TNT1 A 0 A_JumpIf(user_fakeroll > 180,"roll180")//+90
- TNT1 A 0 Acs_namedexecute("logroll",0,user_fakeroll)
- TNT1 A 0 A_log("Chooseframe error!")
- bal1 A 20
- goto fly
- Roll0:
- F22A A 1
- goto decide
- Roll10:
- F22A B 1
- goto decide
- Roll20:
- F22A C 1
- goto decide
- Roll30:
- F22A D 1
- goto decide
- Roll40:
- F22A E 1
- goto decide
- Roll50:
- F22A F 1
- goto decide
- Roll60:
- F22A G 1
- goto decide
- Roll70:
- F22A H 1
- goto decide
- Roll80:
- F22A I 1
- goto decide
- Roll90:
- F22A J 1
- goto decide
- Roll100:
- F22A K 1
- goto decide
- Roll110:
- F22A L 1
- goto decide
- Roll120:
- F22A M 1
- goto decide
- Roll130:
- F22A N 1
- goto decide
- Roll140:
- F22A O 1
- goto decide
- Roll150:
- F22A P 1
- goto decide
- Roll160:
- F22A Q 1
- goto decide
- Roll170:
- F22A R 1
- goto decide
- Roll180:
- F22A S 1
- goto decide
- death:
- tnt1 A 0
- stop
- }
- }
- actor planetrail: fastprojectile
- {
- +FORCEXYBILLBOARD
- +nogravity
- +nointeraction
- +noblockmap
- alpha 0.2
- renderstyle "add"
- scale 0.2
- mass 1
- states
- {
- spawn:
- TNT1 A 0
- TNT1 A 0 A_jump(125,"sprite2")
- goto sprite1
- sprite1:
- SMOK A 1
- goto fade1
- sprite2:
- SMOK B 1
- goto fade2
- fade1:
- SMOK A 1
- TNT1 A 0 A_fadeout(0.0005)
- TNT1 A 0 A_setscale(scalex+0.001)
- loop
- fade2:
- SMOK B 1
- TNT1 A 0 A_fadeout(0.0005)
- TNT1 A 0 A_setscale(scalex+0.001)
- loop
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement