Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.47 KB | None | 0 0
  1. @name Keypad Hacker
  2. @persist Keypads:array Codes:array OwnerUse:array CO:entity Display
  3. @trigger all
  4. if(first()){
  5. entity():setColor(0,0,0,255)
  6. Display = 1
  7. CO = entity():owner()
  8. runOnTick(1)
  9. runOnChat(1)
  10. Scan = 1
  11. timer("ReScan",60000)
  12. }
  13. A = 1
  14. while(A <= Keypads:count()){
  15. Owner = Keypads:entity(A):owner()
  16. Keypad = Keypads[A,entity]
  17. Down = OwnerUse[A,number]
  18. Pressed = Owner:keyUse()
  19. if(CO:keyAttack2() & Display & CO:shootPos():distance(Keypad:pos()) <= 100 & CO:aimEntity() == Keypad){
  20. Code = Codes[A,number]
  21. if(Code - 50000 > 0){hint("The code is: " + (Code - 50000) +". Enjoy!",5)}
  22. else{hint("No Code Entered. Try Again Later!",3)}
  23. Display = 0
  24. }
  25. elseif(!CO:keyAttack2() & !Display){Display = 1}
  26. if(!Down & Pressed){
  27. if(Keypad != noentity()){
  28. if(Owner:shootPos():distance(Keypad:pos()) < 32 & Owner:aimEntity() == Keypad){
  29. Code = Codes[A,number]
  30. #Find Button Pressed
  31. KPPL = Keypad:toLocal(Keypad:owner():aimPos()):rotate(ang())
  32. #Line 1
  33. if(inrange(KPPL:z(),-1.3,0)){
  34. #Col 1
  35. if(inrange(KPPL:y(),-2.2, -0.95)){Number = 1}
  36. #Col 2
  37. elseif(inrange(KPPL:y(),-0.6, 0.65)){Number = 2}
  38. #Col 3
  39. elseif(inrange(KPPL:y(),1, 2.25)){Number = 3}
  40. }
  41. #Line 2
  42. elseif(inrange(KPPL:z(),-2.9,-1.6)){
  43. #Col 1
  44. if(inrange(KPPL:y(),-2.2 ,-0.95)){Number = 4}
  45. #Col 2
  46. elseif(inrange(KPPL:y(),-0.6, 0.65)){Number = 5}
  47. #Col 3
  48. elseif(inrange(KPPL:y(),1, 2.25)){Number = 6}
  49. }
  50. #Line 3
  51. elseif(inrange(KPPL:z(),-4.45,-3.3)){
  52. #Col 1
  53. if(inrange(KPPL:y(),-2.2 ,-0.95)){Number = 7}
  54. #Col 2
  55. elseif(inrange(KPPL:y(),-0.6, 0.65)){Number = 8}
  56. #Col 3
  57. elseif(inrange(KPPL:y(),1, 2.25)){Number = 9}
  58. }
  59. elseif(inrange(KPPL:z(),0.3, 1.6)){
  60. #Abort
  61. if(inrange(KPPL:y(),-2.2, -0.15)){Number = 11}
  62. #Accept
  63. elseif(inrange(KPPL:y(),0.3, 2.25)){Number = 10}
  64. }
  65. if(Number){
  66. if(Number == 10 & Code < 10000){
  67. Code += 50000
  68. hint("Code entered: "+(Code - 50000),3)
  69. }
  70. elseif(Number == 11 & Code < 10000){Code = 0 hint("Code Canceled",3)}
  71. elseif(Code < 1000){
  72. Code *= 10
  73. Code += Number
  74. hint(""+Owner:name()+" Pressed: "+Number,3)
  75. }
  76. Codes[A,number] = Code
  77. }
  78. }
  79. }
  80. else{
  81. hint("Keypad "+A+" has been removed",3)
  82. Keypads:removeEntity(A)
  83. Codes:removeNumber(A)
  84. }
  85. OwnerUse[A, number] = 1
  86. }
  87. elseif(Down & !Pressed){
  88. OwnerUse[A,number] = 0
  89. }
  90. A++
  91. }
  92.  
  93. if(chatClk(entity():owner())){
  94. if(entity():owner():lastSaid() == "/reset"){
  95. A = 1
  96. CO = entity():owner()
  97. while (A <= Keypads:count()){
  98. Keypad = Keypads:entity(A)
  99. if(CO:shootPos():distance(Keypad:pos()) <= 100 & CO:aimEntity() == Keypad){
  100. hint("Code Reset!",3)
  101. Codes[A,number] = 0
  102. }
  103. A++
  104. }
  105. }
  106. if(CO:lastSaid() == "/scan"){
  107. Scan = 1
  108. }
  109. }
  110. if(clk("ReScan")){Scan = 1 timer("ReScan",60000)}
  111. if(Scan){
  112. Keypads = array()
  113. OwnerUse = array()
  114. findByModel("models/props_lab/keypad.mdl")
  115. findSortByDistance(entity():pos())
  116. Keypads = findToArray()
  117. hint("Scan complete! "+Keypads:count()+" Keypads found!",3)
  118. while(Keypads:count()>13){
  119. hint("Keypad removed due to gate restriction!",3)
  120. Keypads:pop()
  121. }
  122. A = 1
  123. while(A <= Keypads:count()){
  124. print(""+A+": "+Keypads:entity(A):owner():name())
  125. OwnerUse[A,number] = Keypads:entity(A):owner():keyUse()
  126. A++
  127. }
  128. if(Keypads:count() > 0){
  129. timer("ReDisplayCode",3000)
  130. }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement