Advertisement
CrowCJ

Oerlikon

Jul 2nd, 2020
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. @name oerlikon barrel
  2. @inputs Fire
  3. @outputs
  4. @persist I N E:entity Y Spring:table Compressed A1 A2 Create S X Rate
  5. @trigger
  6. @model
  7. if(first()|duped()){
  8. E=entity()
  9. Rate=10
  10. Create=1
  11. if(Create){
  12. interval(250)
  13. #barrel grooves and front
  14. I++,holoCreate(I,E:toWorld(vec(0,0,-1.8)),vec(0),E:toWorld(ang(0,0,0)),vec(255),"cube")
  15. I++,holoCreate(I,E:toWorld(vec(0,27,-1.8)),vec(0.35,0.35,1),E:toWorld(ang(0,0,90)),vec(255),"hq_tube_thin")
  16. I++,holoCreate(I,E:toWorld(vec(0,34.21,-1.8)),vec(0.35,0.35,0.2),E:toWorld(ang(0,180,90)),vec(255),"hq_cone")
  17. I++,holoCreate(I,E:toWorld(vec(0,22,-1.8)),vec(0.2,3,0.2),E:toWorld(ang(90,90,0)),vec(255),"models/sprops/misc/sq_holes/t_hsqhole_d0_12.mdl")
  18. I++,holoCreate(I,E:toWorld(vec(0,15,-1.8)),vec(0.2,3,0.2),E:toWorld(ang(270,90,0)),vec(255),"models/sprops/misc/sq_holes/t_hsqhole_d0_12.mdl")
  19. I++,holoCreate(I,E:toWorld(vec(0,11,-1.8)),vec(0.2,3,0.2),E:toWorld(ang(90,90,0)),vec(255),"models/sprops/misc/sq_holes/t_hsqhole_d0_12.mdl")
  20. I++,holoCreate(I,E:toWorld(vec(0,6,-1.8)),vec(0.2,3,0.2),E:toWorld(ang(270,90,0)),vec(255),"models/sprops/misc/sq_holes/t_hsqhole_d0_12.mdl")
  21. I++,holoCreate(I,E:toWorld(vec(0,2,-1.8)),vec(0.2,3,0.2),E:toWorld(ang(90,90,0)),vec(255),"models/sprops/misc/sq_holes/t_hsqhole_d0_12.mdl")
  22. I++,holoCreate(I,E:toWorld(vec(0,-5,-1.8)),vec(0.2,3,0.2),E:toWorld(ang(270,90,0)),vec(255),"models/sprops/misc/sq_holes/t_hsqhole_d0_12.mdl")
  23. #middle plates
  24. I++,holoCreate(I,E:toWorld(vec(-1.65,4,-1.8)),vec(0.1,0.25,0.2),E:toWorld(ang(0,0,0)),vec(255),"cube")
  25. I++,holoCreate(I,E:toWorld(vec(1.65,4,-1.8)),vec(0.1,0.25,0.2),E:toWorld(ang(0,0,0)),vec(255),"cube")
  26. I++,holoCreate(I,E:toWorld(vec(-1.65,13,-1.8)),vec(0.1,0.25,0.2),E:toWorld(ang(0,0,0)),vec(255),"cube")
  27. I++,holoCreate(I,E:toWorld(vec(1.65,13,-1.8)),vec(0.1,0.25,0.2),E:toWorld(ang(0,0,0)),vec(255),"cube")
  28. #top and bottom curves
  29. I++,holoCreate(I,E:toWorld(vec(-1.5,4.58,0)),vec(0.02,3,0.15),E:toWorld(ang(45,0,0)),vec(255),"cube")
  30. I++,holoCreate(I,E:toWorld(vec(1.5,4.58,0)),vec(0.02,3,0.15),E:toWorld(ang(-45,0,0)),vec(255),"cube")
  31. I++,holoCreate(I,E:toWorld(vec(1.5,4.58,-3.5)),vec(0.02,3,0.15),E:toWorld(ang(45,0,0)),vec(255),"cube")
  32. I++,holoCreate(I,E:toWorld(vec(-1.5,4.58,-3.5)),vec(0.02,3,0.15),E:toWorld(ang(-45,0,0)),vec(255),"cube")
  33. for(I=2,I){
  34. holoParent(I,1)
  35. holoMaterial(I,"models/debug/debugwhite")
  36. }
  37. N=I+1
  38. N++,holoCreate(N,E:toWorld(vec(0,30,-1.8)),vec(0.2,0.2,1.5),E:toWorld(ang(0,0,90)),vec(255),"hq_tube_thick")
  39. N++,holoCreate(N,E:toWorld(vec(0,45,-1.8)),vec(0.12,0.12,5),E:toWorld(ang(0,0,90)),vec(255),"hq_tube")
  40. N++,holoCreate(N,E:toWorld(vec(0,77,-1.8)),vec(0.015,0.015,0.05),E:toWorld(ang(0,0,90)),vec(255),"models/hunter/tubes/tube4x4x2to2x2.mdl")
  41. N++,holoCreate(N,E:toWorld(vec(0,-20,-1.8)),vec(0.4,2,0.4),E:toWorld(ang(0,0,0)),vec(255),"cube")
  42. for(I=1,25){
  43. N++,holoCreate(N,E:toWorld(vec(0,-35+(N-1)*1.3,-1.8)),vec(0.3,0.3,0.05),E:toWorld(ang(0,0,90)),vec(255),"hq_tube")
  44. Spring[I,number]=N
  45. }
  46. for(N=I+1,N){
  47. holoParent(N,E)
  48. holoMaterial(N,"models/debug/debugwhite")
  49. }
  50.  
  51. Create=0
  52. }
  53. }
  54. interval(75)
  55. if(Fire){
  56. S-=Rate/40
  57. X+=1
  58. Y-=Rate
  59. if(Y<-10){
  60. X=0
  61. Y=0
  62. S=1
  63. }
  64. #[if(changed(Y)&Y==-10){
  65. P=propSpawn("models/props_phx/torpedo.mdl",E:toWorld(vec(0,100,0)),E:toWorld(ang(0,90,0)),0)
  66. P:applyForce(P:forward()*P:mass()*10000)
  67. P:propShadow(0)
  68. P:setTrails(64,0,1,"trails/laser",vec(0,255,0),255)
  69. P:propGravity(0)
  70. P:propDrag(0)
  71. }]#
  72. }
  73. else{
  74. X=0
  75. S=1
  76. Y=0
  77. }
  78. Y=clamp(Y,-15,0)
  79. holoPos(1,E:toWorld(vec(0,Y,-1.8)))
  80. holoAng(1,E:toWorld(ang()))
  81. if(Fire){
  82. for(I=1,25){
  83. holoPos(Spring[I,number],E:toWorld(vec(0,-35+X+(Spring[I,number]-1)*(1.3)*S,-1.8)))
  84. }
  85. }
  86. if(changed(Fire)&!Fire){
  87. for(I=1,25){
  88. holoPos(Spring[I,number],E:toWorld(vec(0,-35+X+(Spring[I,number]-1)*(1.3)*S,-1.8)))
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement