Advertisement
IsakViste

Smart Opener v2.0

Jan 10th, 2015
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. @name Smart Opener v2.0
  2. @inputs CS:wirelink
  3. @outputs Door
  4. @persist Player:array [ScreenPosY X ScreenID Distance]:number TargetPlayer:entity
  5. @trigger
  6.  
  7. runOnChat(1)
  8. interval(1000)
  9.  
  10. function void screenDefault() {
  11. #SCREEN
  12. CS:egpClear()
  13. #BackGround
  14. CS:egpBox(1,vec2(256,256),vec2(512,512))
  15. CS:egpColor(1,vec(255,128,0))
  16. CS:egpMaterial(1, "gui/center_gradient")
  17. #TitleBox
  18. CS:egpBox(2,vec2(256,40),vec2(512,64))
  19. CS:egpColor(2,vec(0,204,0))
  20. CS:egpMaterial(2, "gui/center_gradient")
  21. #Title
  22. CS:egpText(3,"Player List",vec2(256,16))
  23. CS:egpAlign(3,1)
  24. CS:egpColor(3,vec(0,0,153))
  25. CS:egpSize(3,50)
  26.  
  27. ScreenPosY = 80
  28. ScreenID = 10
  29. X = 0
  30. }
  31.  
  32. function void screenListPlayers() {
  33. while(X <= Player:count()) {
  34. CS:egpText(ScreenID,Player[X,entity]:name(),vec2(256,ScreenPosY))
  35. CS:egpAlign(ScreenID,1)
  36. CS:egpColor(ScreenID,vec(204,255,204))
  37. CS:egpSize(ScreenID,30)
  38. ScreenID++
  39. ScreenPosY = ScreenPosY + 32
  40. X++
  41. }
  42. }
  43.  
  44. if(first() | duped()){
  45. CS:egpClear()
  46.  
  47. hint("Smart Opener v2.0 - Made by Mentin", 15)
  48. print("--------------------------------------------------")
  49. print("!add - To add a player")
  50. print("!remove - To remove a player")
  51. print("!list - To get the list of players")
  52. print("!clear - To clear the list of players")
  53. print("--------------------------------------------------")
  54.  
  55. screenDefault()
  56. }
  57.  
  58. #SCREEN
  59. #EmptyTitle
  60. if(Player:count() == 0) {
  61. CS:egpText(10,"Empty",vec2(256,192))
  62. CS:egpAlign(10,1)
  63. CS:egpColor(10,vec(random(255),random(255),random(255)))
  64. CS:egpSize(10,100)
  65. }
  66.  
  67. #VALUES
  68. Distance = 50
  69. Chat = owner():lastSaid():explode(" ")
  70.  
  71. #ADDING PLAYERS
  72. if(Chat[1,string]=="!add" & chatClk(owner())){
  73. TempX1 = 0
  74. TargetPlayer = findPlayerByName(Chat[2,string])
  75. if(TargetPlayer:isPlayer()){
  76. while(TempX1 <= Player:count()+1) {
  77. if(TargetPlayer:name():lower()==Player[TempX1,entity]:name():lower()){
  78. hint("Player already on list!",10)
  79. break
  80. }
  81. if(TempX1 == Player:count()+1)
  82. {
  83. Player:pushEntity(TargetPlayer)
  84. screenDefault()
  85. screenListPlayers()
  86. break
  87. }
  88. TempX1++
  89. }
  90. } else {
  91. hint("Player not found",10)
  92. }
  93. }
  94.  
  95. #EMOVING PLAYERS
  96. if(Chat[1,string]=="!remove"& chatClk(owner())){
  97. TempX2 = 0
  98. TargetPlayer = findPlayerByName(Chat[2,string])
  99. if(TargetPlayer:isPlayer()){
  100. while(TempX2 <= Player:count()+1){
  101. if(TargetPlayer == Player[TempX2,entity]){
  102. Player:remove(TempX2)
  103. screenDefault()
  104. screenListPlayers()
  105. }
  106. TempX2++
  107. }
  108. }
  109. }
  110.  
  111. #LIST PLAYERS
  112. if(Chat[1,string]=="!list" & chatClk(owner())){
  113. TempX3 = 1
  114. print("-----------------")
  115. while(Player[TempX3,entity]:name()!= "") {
  116. print(Player[TempX3,entity]:name())
  117. TempX3++
  118. }
  119. print("-----------------")
  120. }
  121.  
  122. #REMOVE ALL PLAYERS
  123. if(Chat[1,string]=="!clear"& chatClk(owner())){
  124. TempX4 = 1
  125. while (TempX4 < Player:count()+1){
  126. Player:remove(TempX4)
  127. TempX4+1
  128. }
  129. screenDefault()
  130. screenListPlayers()
  131. }
  132.  
  133. #OPEN FADING DOOR
  134. Door = 0
  135. Distance = 100
  136. #TempX5 = 1
  137. findByClass("player")
  138. PlayerFound = findClosest(entity():pos())
  139. if(PlayerFound:pos():distance(entity():pos())<Distance & PlayerFound:isAlive()){
  140. foreach(Index,Name:entity=Player){
  141. if(PlayerFound:name():lower() == Name:name():lower()){
  142. Door = 1
  143. }
  144. }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement