Advertisement
KrazziPro

PewPew Mastery

Apr 15th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.17 KB | None | 0 0
  1. @name PewPew Master
  2. @inputs EGP:wirelink
  3. @persist Pew:entity Weapons:table [Menus, Options]:array MenuSelect OptionSelect Selection:string
  4.  
  5. setName("'Pew Mastery' (Type del to delete the E2)")
  6.  
  7. runOnTick(1)
  8. runOnLast(1)
  9. runOnChat(1)
  10. if(first()){
  11. Weapons["Artilleries",array] = array("Basic Artillery", "Nebelwerfer", "Rocket Barrage")
  12. Weapons["Cannons",array] = array("37mm Cannon", "40mm Cannon", "105mm Cannon", "230mm Cannon", "Basic Cannon", "EMP Cannon", "Flak Cannon", "Plasma Cannon", "Railgun")
  13. Weapons["Close",array] = array("Flamethrower", "Laser Sword")
  14. Weapons["Fun",array] = array("Firework")
  15. Weapons["Lasers",array] = array("Basic Laser", "Beam Laser", "Laser Machinegun", "Medium Laser", "Particle Beam", "Rapid Fire Laser", "Big Star Wars Laser", "Green Star Wars Laser", "Red Star Wars Laser")
  16. Weapons["Launchers",array] = array("Grenade Launcher", "Smoke Grenade Launcher")
  17. Weapons["Machineguns",array] = array("50 Cal Machinegun", "100 Cal Explosive Rounds", "Basic Machinegun", "Burst Machinegun", "Gauss Gun", "Minigun")
  18. Weapons["Other",array] = array("Delayed Sticky-Bomb Launcher", "Flame Shell", "Smoke Emitter", "Thud Rounds", "Unrealistic Railgun")
  19. Weapons["Rockets",array] = array("Homing Missile - Air to surface", "Basic Rocket Launcher", "Homing Missile - Normal", "QAAM missile", "Rocket Battery", "Homing Missile - Surface to air")
  20. MenuSelect = 1
  21. OptionSelect = -1
  22. Selection = ""
  23. }
  24.  
  25. if(chatClk(owner()) & owner():lastSaid() == "del"){
  26. hideChat(1)
  27. print("PewPew Mastery Deleted.")
  28. selfDestruct()
  29. }
  30.  
  31. if(changed(EGP) & EGP:entity():isValid()){
  32. EGP:egpClear()
  33. EGPINDEX = 1
  34. EGP:egpRoundedBox(EGPINDEX,vec2(110,30),vec2(200,50))
  35. EGP:egpColor(EGPINDEX,vec(1,155,155))
  36. EGP:egpAlpha(EGPINDEX,155)
  37. EGPINDEX++
  38. EGP:egpRoundedBoxOutline(EGPINDEX,vec2(110,30),vec2(200,50))
  39. EGP:egpColor(EGPINDEX,vec(255,255,255))
  40. EGP:egpAlpha(EGPINDEX,155)
  41. EGPINDEX++
  42. EGP:egpText(EGPINDEX,"PewPew Mastery",vec2(20,16))
  43. EGP:egpFont(EGPINDEX,"Trebuchet",25)
  44. EGPINDEX++
  45. EGP:egpBox(EGPINDEX,vec2(110,150),vec2(170,190))
  46. EGP:egpColor(EGPINDEX,vec(0,155,155))
  47. EGP:egpAlpha(EGPINDEX,155)
  48. EGPINDEX++
  49. EGP:egpBoxOutline(EGPINDEX,vec2(110,150),vec2(170,190))
  50. EGP:egpColor(EGPINDEX,vec(255,255,255))
  51. EGP:egpAlpha(EGPINDEX,155)
  52. EGPINDEX++
  53. Menus = array()
  54. for(I = 1, Weapons:keys():count()){
  55. EGP:egpText(EGPINDEX,Weapons:keys()[I,string],vec2(30,20*I + 40))
  56. EGP:egpFont(EGPINDEX,"Trebuchet",20)
  57. Menus:pushNumber(EGPINDEX)
  58. EGPINDEX++
  59. }
  60. EGP:egpBox(EGPINDEX,vec2(350,150),vec2(300,190))
  61. EGP:egpColor(EGPINDEX,vec(0,155,155))
  62. EGP:egpAlpha(EGPINDEX,0)
  63. EGPINDEX++
  64. EGP:egpBoxOutline(EGPINDEX,vec2(350,150),vec2(300,190))
  65. EGP:egpColor(EGPINDEX,vec(255,255,255))
  66. EGP:egpAlpha(EGPINDEX,0)
  67. EGPINDEX++
  68. for(I = 1, 9){
  69. EGP:egpText(EGPINDEX,"",vec2(210,20*I + 40))
  70. EGP:egpFont(EGPINDEX,"Trebuchet",20)
  71. Options:pushNumber(EGPINDEX)
  72. EGPINDEX++
  73. }
  74.  
  75. EGP:egpText(EGPINDEX,"",vec2(25,250))
  76. EGPINDEX++
  77.  
  78. for(I = 1, Menus:count()){
  79. EGP:egpColor(Menus[I,number],vec(255,255,255))
  80. EGP:egpColor(Menus[MenuSelect,number],vec(0,200,200))
  81. }
  82. if(OptionSelect == -1){
  83. EGP:egpAlpha(15,0)
  84. EGP:egpAlpha(16,0)
  85. EGP:egpColor(Menus[MenuSelect,number],vec(0,200,200))
  86. }
  87. if(OptionSelect != -1){
  88. EGP:egpAlpha(15,155)
  89. EGP:egpAlpha(16,155)
  90. EGP:egpColor(Menus[MenuSelect,number],vec(0,100,100))
  91. }
  92. }
  93. runOnKeys(owner(),1)
  94. if(keyClk()){
  95. if(keyClkPressed() == "left" & owner():keyPressed("left")){
  96. if(Selection:length() > 0){
  97. owner():soundPlay("Blip",0.191,"buttons/button18.wav")
  98. Selection = ""
  99. EGP:egpColor(Options[OptionSelect,number],vec(0,200,200))
  100. }elseif(OptionSelect != -1){
  101. owner():soundPlay("Blip",0.191,"buttons/button18.wav")
  102. OptionSelect = -1
  103. for(I = 1, Options:count()){
  104. EGP:egpColor(Options[I,number],vec(255,255,255))
  105. EGP:egpSetText(Options[I,number],"")
  106. }
  107. EGP:egpAlpha(15,0)
  108. EGP:egpAlpha(16,0)
  109. EGP:egpColor(Menus[MenuSelect,number],vec(0,200,200))
  110. }
  111. }
  112.  
  113. if(keyClkPressed() == "right" & owner():keyPressed("right")){
  114. if(OptionSelect == -1){
  115. owner():soundPlay("Blip",0.203,"buttons/button14.wav")
  116. R = Weapons[Weapons:keys()[MenuSelect,string],array]
  117. for(I = 1, R:count()){
  118. EGP:egpSetText(Options[I,number],R[I,string])
  119. }
  120. OptionSelect = 1
  121. EGP:egpColor(Options[OptionSelect,number],vec(0,200,200))
  122. EGP:egpAlpha(15,150)
  123. EGP:egpAlpha(16,150)
  124. EGP:egpColor(Menus[MenuSelect,number],vec(0,100,100))
  125. }elseif(Selection:length() == 0){
  126. owner():soundPlay("Blip",0.203,"buttons/button14.wav")
  127. R = Weapons[Weapons:keys()[MenuSelect,string],array]
  128. Selection = R[OptionSelect,string]
  129. EGP:egpColor(Options[OptionSelect,number],vec(0,100,100))
  130. }
  131. }
  132.  
  133. if(keyClkPressed() == "down" & owner():keyPressed("down")){
  134. if(Selection:length() > 0){}
  135. elseif(OptionSelect != -1){
  136. owner():soundPlay("Blip",0.183,"garrysmod/ui_hover.wav")
  137. R = Weapons[Weapons:keys()[MenuSelect,string],array]
  138. OptionSelect++
  139. if(OptionSelect > R:count()){
  140. OptionSelect = 1
  141. }
  142. for(I = 1, Options:count()){
  143. EGP:egpColor(Options[I,number],vec(255,255,255))
  144. }
  145. EGP:egpColor(Options[OptionSelect,number],vec(0,200,200))
  146. }else{
  147. owner():soundPlay("Blip",0.183,"garrysmod/ui_hover.wav")
  148. MenuSelect++
  149. if(MenuSelect > Menus:count()){
  150. MenuSelect = 1
  151. }
  152. for(I = 1, Menus:count()){
  153. EGP:egpColor(Menus[I,number],vec(255,255,255))
  154. }
  155. EGP:egpColor(Menus[MenuSelect,number],vec(0,200,200))
  156. }
  157. }
  158.  
  159. if(keyClkPressed() == "up" & owner():keyPressed("up")){
  160. if(Selection:length() > 0){}
  161. elseif(OptionSelect != -1){
  162. owner():soundPlay("Blip",0.183,"garrysmod/ui_hover.wav")
  163. R = Weapons[Weapons:keys()[MenuSelect,string],array]
  164. OptionSelect--
  165. if(OptionSelect < 1){
  166. OptionSelect = R:count()
  167. }
  168. for(I = 1, Options:count()){
  169. EGP:egpColor(Options[I,number],vec(255,255,255))
  170. }
  171. EGP:egpColor(Options[OptionSelect,number],vec(0,200,200))
  172. }else{
  173. owner():soundPlay("Blip",0.183,"garrysmod/ui_hover.wav")
  174. MenuSelect--
  175. if(MenuSelect < 1){
  176. MenuSelect = Menus:count()
  177. }
  178. for(I = 1, Menus:count()){
  179. EGP:egpColor(Menus[I,number],vec(255,255,255))
  180. }
  181. EGP:egpColor(Menus[MenuSelect,number],vec(0,200,200))
  182. }
  183. }
  184. }
  185. Changed = 0
  186. if(changed(Selection)){
  187. Changed = 1
  188. }
  189. if(Selection:length() > 0 & !Pew:isValid()){
  190. if(!Changed){
  191. print("Make sure to de-select weapons before undoing!")
  192. }
  193. Pew = pewCreate(Selection,"models/hunter/blocks/cube025x025x025.mdl",entity():pos(),ang(0,0,0))
  194. Pew:propNotSolid(1)
  195. Pew:setAlpha(0)
  196. Pew:propFreeze(1)
  197. }
  198. if(changed(Selection) & !Selection:length() > 0){
  199. EGP:egpSetText(26,"")
  200. Pew:propDelete()
  201. Pew = noentity()
  202. }
  203.  
  204. if(Pew:isValid() & Pew:pewIsCannon()){
  205. Pew:setPos(owner():pos() + vec(0,0,120))
  206. Pew:setAng((owner():aimPos() - Pew:pos()):toAngle() + ang(90,0,0))
  207. Pew:pewFire(owner():keyAttack2())
  208.  
  209. if(changed(Pew:pewAmmo()) & Pew:pewAmmo() == 0){
  210. EGP:egpSetText(26,"Reloading...")
  211. }
  212. if(changed(Pew:pewAmmo()) & Pew:pewAmmo() == Pew:pewMaxAmmo()){
  213. EGP:egpSetText(26,"")
  214. }
  215. }
  216.  
  217. if(last()){
  218. EGP:entity():propDelete()
  219. Pew:propDelete()
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement