@name Tardis mk2 @inputs Cloak FlightInput PilotSeat:entity Doors Handbrake Lockdown PilotCam:wirelink InteriorDoorFloor:entity SpawnPos:vector RTCam:wirelink LandPos:vector Cloister PowerInput Siegemode @outputs Ops MainLightCol:vector @persist #[Static]# Base LdoorHinge RdoorHinge IRDA ILDA PhaseIncrement PhaseTime [DoorEntry,DoorExit]:entity VortexHolo OrigLightCol:vector @persist #[Dynamic]# DoorSwing Cooldown Demat SprMult Speed Spinvert Power SiegeProp:entity @model models/props_phx/wheels/magnetic_small_base.mdl @inputs #[TSCM only grr...]# [DoorEntryInput, DoorExitInput]:entity @autoupdate #@inputs [DoorEntry,DoorExit]:entity #TSCM mode #include "Tardis_Importtscm" #Model import #Made by flashgnash (flashgnash.co.uk) if(dupefinished()){reset()} if(first()){ RTCam:entity():setAng(ang(vec(0,90,0))) timer("rotatethehekkintardis",100) OrigLightCol = vec(100) timer("mainloop",1) if(SpawnPos != vec(0)){ holoPos(0,SpawnPos) } Base = 0 LdoorHinge = 13 RdoorHinge = 14 Spinvert = 1 #[for (I=30,holoAmount()){ holoDelete(I) }]# #PhaseIncrement = ( 17 * holoAmount() ) / 35 PhaseIncrement = 17 PhaseTime = holoAmount() * 1.5 print(holoAmount()) runOnLast(1) H = 10 holoCreate(holoAmount()+1) #holoAng(holoAmount(),ang(vec(0,90,0))) holoScale(holoAmount(),vec(0.1,5,H)) holoMaterial(holoAmount(),"models/rendertarget") holoPos(holoAmount(),InteriorDoorFloor:pos() + vec(0,20,holoEntity(holoAmount()):height() * H / 2)) #holoParent(holoAmount(),Base) if(InteriorDoorFloor:pos() != vec(0)){holoPos(holoAmount(),InteriorDoorFloor:pos() + vec(0,0,holoEntity(holoAmount()):height() * H / 2))} InteriorDoor = holoAmount() N = holoAmount() + 1 DoorPos = InteriorDoorFloor:pos() print(N) #Right Door Axel holoCreate(N) holoPos(N,DoorPos + vec(24,25,20+holoEntity(N):height() / 2 * H)) holoParent(N,entity()) holoVisible(N,players(),0) IRDA = N N+=1 #Left Door Axel holoCreate(N) holoPos(N,DoorPos + vec(24,-25,10+holoEntity(N):height() / 2 * H)) holoParent(N,entity()) holoVisible(N,players(),0) ILDA = N N+=1 #Right Door H = 8 holoCreate(N) holoMaterial(N,"spacebuild/floor2") holoColor(N,vec(255)) holoScale(N,vec(0.5,2.5,H)) holoPos(N,DoorPos + vec(20,15,10+holoEntity(N):height() / 2 * H)) holoParent(N,IRDA) N+=1 #Right Door Window holoCreate(N) H = 1.5 holoColor(N,vec(255)) holoMaterial(N,"") holoScale(N,vec(0.1,1.5,H)) holoPos(N,DoorPos + vec(23,12,80+holoEntity(N):height() / 2 * H)) holoParent(N,IRDA) N+=1 #Left Door holoCreate(N) H = 8 holoMaterial(N,"spacebuild/floor2") holoColor(N,vec(255)) holoScale(N,vec(0.5,2.5,H)) holoPos(N,DoorPos + vec(20,-15,10+holoEntity(N):height() / 2 * H)) holoParent(N,ILDA) N+=1 #Left Door Window holoCreate(N) H = 1.5 holoColor(N,vec(255)) holoMaterial(N,"") holoScale(N,vec(0.1,1.5,H)) holoPos(N,DoorPos + vec(23,-12,80+holoEntity(N):height() / 2 * H)) holoParent(N,ILDA) N+=1 holoCreate(N) H = 10 holoPos(N,DoorPos+vec(0,0,holoEntity(N):height() * H/ 2)) holoModel(N,"hq_stube") holoScale(N,vec(H,5.8,5)) holoAng(N,ang(vec(90,0,0))) holoParent(N,entity()) N++ InteriorDoor = N print(holoRemainingSpawns()) #holoCreate(holoAmount()+1) #H = 8 #holoScale(holoAmount(),vec(0.5,6,H)) if(DoorEntryInput:model() != ""){ DoorEntry = DoorEntryInput } else{ DoorEntry = seatSpawn("models/hunter/blocks/cube1x2x1.mdl",holoEntity(Base):pos(),ang(vec(0,0,90)),1) } if(DoorExitInput:model() != ""){ DoorExit = DoorExitInput } else{ DoorExit = seatSpawn("models/hunter/blocks/cube1x2x1.mdl",holoEntity(InteriorDoor):pos(),ang(vec(0,0,90)),1) } #DoorEntry:setPos(holoEntity(Base):pos() + vec(0,0,DoorEntry:boxSize():z())) DoorEntry:setAlpha(0) DoorExit:setAlpha(0) DoorPos = holoEntity(InteriorDoor):pos() timer("parentTick",100) VortexMat = "models/player/player_chrome1" #Vortex holoCreate(N) holoModel(N,"hq_tube_thin") holoScale(N,vec(80,80,500)) holoAng(N,ang(vec(0,0,90))) holoColor(N,vec(10,10,100)) holoPos(N,holoEntity(0):pos()) holoMaterial(N,VortexMat) VortexHolo = N holoVisible(N,players(),0) N++ holoCreate(N) holoModel(N,"hq_cylinder") holoScale(N,vec(80,80,1)) holoAng(N,ang(vec(0,0,90))) holoMaterial(N,VortexMat) holoColor(N,vec(100,100,255)) holoPos(N,holoEntity(VortexHolo):pos() + vec(0,250,0)) holoParent(N,N-1) holoVisible(N,players(),0) N++ holoCreate(N) holoModel(N,"hq_cylinder") holoScale(N,vec(80,80,1)) holoAng(N,ang(vec(0,0,90))) holoMaterial(N,VortexMat) holoColor(N,vec(100,100,255)) holoPos(N,holoEntity(VortexHolo):pos() + vec(0,-250,0)) holoParent(N,N-1) holoVisible(N,players(),0) N++ print(holoRemainingSpawns()) RTCam["Activate",number] = 1 RTCam["Hide",number] = 1 RTCam:entity():setPos(DoorEntry:pos() + vec(0,0,40)) RTCam:entity():setAng(holoEntity(Base):angles() - ang(vec(0,0,90))) RTCam:entity():propNotSolid(1) RTCam:entity():propFreeze(1) } function showVortex(Num){ for (I=VortexHolo,VortexHolo + 2){ holoVisible(I,players(),Num) print(holoEntity(I)," is now (in)visible") } } if( clk("opendoor") ){ if(DoorSwing >= 80){ DoorSwing = 80 #timer("closedoor",100) } else{ DoorSwing += 10 timer("opendoor",100) } } elseif( clk("closedoor") ){ if(DoorSwing <= 10){ DoorSwing = 0 #timer("opendoor",100) } else{ DoorSwing -= 10 timer("closedoor",100) } } elseif(clk("gtfo")){ DoorExit:ejectPod() DoorEntry:ejectPod() } elseif( clk("cooldown") ){ Cooldown = 0 } elseif( clk("parentTick") ){ #DoorEntry:parentTo(holoEntity(0)) RTCam:entity():parentTo(holoEntity(Base)) PilotCam["Position",vector] = holoEntity(Base):pos() + vec(0,0,50) PilotCam["Distance",normal] = 50 PilotCam["Parent",entity] = holoEntity(Base) } #[elseif(clk("phaseout")){ if(Demat){ for(I=0,holoAmount() - 10){ Alpha = holoEntity(Base):getAlpha() if(Alpha - PhaseIncrement < 0){Alpha = PhaseIncrement} if(I==Base){holoAlpha(Base,Alpha - PhaseIncrement)} else{holoAlpha(I,Alpha - PhaseIncrement)} } if(holoEntity(Base):getAlpha() <= 0){ timer("phasein",PhaseTime) } else{ timer("phaseout",PhaseTime) } } else{ for(I=0,holoAmount() - 10){ holoAlpha(I,255) } } } elseif(clk("phasein")){ if(Demat){ for(I=0,holoAmount() - 10){ Alpha = holoEntity(Base):getAlpha() if(I==Base){holoAlpha(Base,Alpha + PhaseIncrement)} else{holoAlpha(I,Alpha + PhaseIncrement)} } if(Alpha >= 255){ timer("phaseout",PhaseTime) } else{ timer("phasein",PhaseTime) } } else{ for(I=0,holoAmount() - 10){ holoAlpha(I,255) } } }]# if(clk("phasein")){ for (I=0,holoAmount() - 12) { holoRenderFX(I,8) } if(Demat){timer("phaseout",2400)} } if(clk("phaseout")){ for (I=0,holoAmount() - 12) { holoRenderFX(I,6) } if(Cloak != 1){timer("phasein",2400)} } #[ elseif(clk("cloakout")){ if(Cloak){ for(I=0,holoAmount() - 10){ Alpha = holoEntity(Base):getAlpha() if(Alpha - PhaseIncrement < 0){Alpha = PhaseIncrement * 2} if(I==Base){holoAlpha(Base,Alpha - PhaseIncrement * 2)} else{holoAlpha(I,Alpha - PhaseIncrement * 2)} } if( (holoEntity(Base):getAlpha() <= 0) != 1){ timer("cloakout",PhaseTime) } } else{ for(I=0,holoAmount() - 10){ holoAlpha(I,255) } } } elseif(clk("cloakin")){ if(Cloak != 1){ for(I=0,holoAmount() - 10){ Alpha = holoEntity(Base):getAlpha() if(I==Base){holoAlpha(Base,Alpha + PhaseIncrement * 2)} else{holoAlpha(I,Alpha + PhaseIncrement * 2)} } if( (Alpha >= 255) != 1){ timer("cloakin",PhaseTime) } } else{ for(I=0,holoAmount() - 10){ holoAlpha(I,255) } } } ]# elseif(clk("demat")){ Demat = 1 entity():soundPlay(0,15,"tardis/demat.wav") holoEntity(Base):soundPlay(1,15,"tardis/demat.wav") timer("vortexstart",15000) } elseif(clk("vortexstart")){ showVortex(1) holoPos(Base,entity():pos() - vec(0,0,1000)) timer("vortex",1) } elseif(clk("vortex")){ Demat = 0 entity():soundPlay(0,5,"tardis/flightloop.wav") holoEntity(Base):soundPlay(1,5,"tardis/flightloop.wav") holoPos(VortexHolo,holoEntity(Base):pos()) if(random(0,10) == 7){ Spinvert = -Spinvert } holoAng(Base,holoEntity(Base):angles() + ang(vec(random(0,20*Spinvert),random(0,20*Spinvert),random(0,20*Spinvert)))) holoAng(VortexHolo,holoEntity(VortexHolo):angles() + ang(vec(random(0,20*-Spinvert),random(0,20*-Spinvert),random(0,20*-Spinvert)))) if(Handbrake != 1){1 timer("vortexend",10) } else{ timer("vortex",100) } } elseif(clk("vortexend")){ showVortex(0) holoPos(Base,LandPos) holoAng(Base,ang(vec(0,0,90))) timer("remat",1) } elseif(clk("remat")){ Demat = 1 entity():soundPlay(0,20,"tardis/mat.wav") holoEntity(Base):soundPlay(1,15,"tardis/mat.wav") timer("finishmat",20000) } elseif(clk("finishmat")){ Demat = 0 soundStop(0) soundStop(1) } elseif(clk("mainloop")){ Ops = ops() timer("mainloop",100) holoAng(LdoorHinge,holoEntity(Base):angles() + ang(vec(0,-DoorSwing,0))) holoAng(RdoorHinge,holoEntity(Base):angles() + ang(vec(0,DoorSwing,0))) holoAng(IRDA,ang(vec(0,DoorSwing,0))) holoAng(ILDA,ang(vec(0,-DoorSwing,0))) if(FlightInput){holoAng(Base,holoEntity(Base):angles():setPitch(0):setRoll(90) + ang(vec(0,5 + Speed / 2,0)))} rangerFilter(array(DoorEntry,DoorExit)) RangerZN = rangerOffset(10000, holoEntity(Base):pos() + vec(0,0,20), -entity():up()) if(Siegemode != 1){ if(FlightInput != 1){ if(RangerZN:distance() < 22){holoPos(Base,holoEntity(Base):pos() + vec(0,0,1 * SprMult))} elseif(RangerZN:distance() > 24){holoPos(Base,holoEntity(Base):pos() - vec(0,0,5 * SprMult))} if(RangerZN:entity():model() != "" & RangerZN:entity():type() != "player" & Lockdown != 1){ holoParent(Base,RangerZN:entity()) } else{ holoUnparent(Base) } } else{ holoUnparent(Base) } } if(FlightInput & PilotSeat:driver():model() != ""){ User = PilotSeat:driver() if(User:keySprint()){ SprMult = 1.5 } else{ SprMult = 1 } if(User:keyForward()){ Speed = Speed + 10 * SprMult Direction = 1 Moving = 1 #holoPos(Base,holoEntity(Base):pos() + (User:eyeAngles() - PilotSeat:entity():angles()):forward() * 5 * Speed * SprMult * Direction) } elseif(User:keyBack()){ Speed = Speed + 5 Direction = -1 #holoPos(Base,holoEntity(Base):pos() + (User:eyeAngles() - PilotSeat:entity():angles()):forward() * -Speed * SprMult) Moving = 1 } if(User:keySprint() & RangerZN:distance() < 30 != 1){ holoPos(Base,holoEntity(Base):pos() + User:up() * -20 * SprMult) } elseif(User:keyJump()){ holoPos(Base,holoEntity(Base):pos() + (User:up()) * 20 * SprMult) } if(Speed != 0){ if(Speed < 1 & Moving == 0){Speed = 0} else{ Speed = Speed - 0.25 * Speed } } rangerFilter(array(DoorEntry,DoorExit)) RangerForward = rangerOffset(10000, holoEntity(Base):pos() + vec(0,0,20), (User:eyeAngles() - PilotSeat:angles()):forward() ) if(RangerForward:distance() < 90 * SprMult != 1){ holoPos(Base,holoEntity(Base):pos() + (User:eyeAngles() - PilotSeat:angles()):forward() * 5 * Speed * SprMult * Direction) } } if(DoorSwing == 80){ if(DoorExit:driver():model() != ""){ DoorExit:setPos(holoEntity(Base):pos() + vec(0,0,DoorExit:boxSize():z())) timer("gtfo",50) } else{ DoorExit:setPos(InteriorDoorFloor:pos() + vec(0,0,DoorExit:boxSize():z())) } if(DoorEntry:driver():model() != ""){ DoorEntry:setPos(InteriorDoorFloor:pos() + vec(0,0,DoorEntry:boxSize():z())) timer("gtfo",50) } else{ DoorEntry:setPos(holoEntity(Base):pos() + vec(0,0,DoorEntry:boxSize():z())) } } if(changed(Cloister)){ timer("CloisterBell",0) MainLightCol = vec(255,0,0) } elseif(Cloister){ MainLightCol = MainLightCol:setX(MainLightCol:x() - 5) } if(changed(Siegemode) & first() != 1){ if(Siegemode){ DoorEntry:propNotSolid(1) Power = 0 PowerOverride = 1 SiegeProp = propSpawn("models/hunter/blocks/cube025x025x025.mdl",holoEntity(Base):pos() + vec(0,0,30),ang(vec(0)),0) SiegeProp:setMaterial("phoenix_storms/OfficeWindow_1-1") holoParent(Base,SiegeProp) for(I=0,holoAmount() - 10){ holoAlpha(I,0) } print("Siege Mode Engaged") PilotCam["Parent",entity] = SiegeProp PilotCam["Position",vector] = SiegeProp:pos() + vec(0,0,20) } else{ DoorEntry:propNotSolid(0) holoAng(Base,ang(0,0,90)) PilotCam["Parent",entity] = holoEntity(Base) PilotCam["Position",vector] = holoEntity(Base):pos() + vec(0,0,60) Power = PowerInput holoUnparent(Base) SiegeProp:propDelete() for(I=0,holoAmount() - 10){ holoAlpha(I,255) } print("Siege Mode Disengaged") } } if(PowerOverride != 1){Power = PowerInput} } elseif(clk("CloisterBell") | changed(Power)){ if(Cloister){ entity():soundPlay(9,3,"doctorwho1200/baker/cloisterbell.wav") MainLightCol = vec(255,0,0) timer("CloisterBell",4000) MainLightCol = MainLightCol:setX(255) } elseif(Power != 1){ MainLightCol = OrigLightCol } else{ MainLightCol = vec(0) } } elseif(clk("rotatethehekkintardis")){holoAng(0,ang(vec(0,0,90)))} if(first() != 1){ if(changed(Demat)){ timer("phaseout",1) } elseif(changed(Handbrake)){ entity():soundPlay(3,5,"tardis/throttle.wav") if(Handbrake & Power){ timer("demat",1) } } elseif(changed(Doors)){ if(DoorSwing == 0){ InteriorDoorFloor:soundPlay(4,5,"tardis/door") holoEntity(Base):soundPlay(5,5,"tardis/door") timer("opendoor",1) DoorEntry:lockPod(0) DoorExit:lockPod(0) } elseif(DoorSwing == 80){ InteriorDoorFloor:soundPlay(4,5,"tardis/door1") holoEntity(Base):soundPlay(5,5,"tardis/door1") timer("closedoor",1) DoorEntry:lockPod(1) DoorExit:lockPod(1) } } elseif(changed(Cloak)){ print("Cloak") if(Cloak){ print("Out") timer("phasein",1) } else{ print("In") timer("phaseout",1) } } elseif(last()){ propDeleteAll() RTCam:entity():deparent() } } #Made by flashgnash (flashgnash.co.uk)