Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name Smart Opener v2.0
- @inputs CS:wirelink
- @outputs Door
- @persist Player:array [ScreenPosY X ScreenID Distance]:number TargetPlayer:entity
- @trigger
- runOnChat(1)
- interval(1000)
- function void screenDefault() {
- #SCREEN
- CS:egpClear()
- #BackGround
- CS:egpBox(1,vec2(256,256),vec2(512,512))
- CS:egpColor(1,vec(255,128,0))
- CS:egpMaterial(1, "gui/center_gradient")
- #TitleBox
- CS:egpBox(2,vec2(256,40),vec2(512,64))
- CS:egpColor(2,vec(0,204,0))
- CS:egpMaterial(2, "gui/center_gradient")
- #Title
- CS:egpText(3,"Player List",vec2(256,16))
- CS:egpAlign(3,1)
- CS:egpColor(3,vec(0,0,153))
- CS:egpSize(3,50)
- ScreenPosY = 80
- ScreenID = 10
- X = 0
- }
- function void screenListPlayers() {
- while(X <= Player:count()) {
- CS:egpText(ScreenID,Player[X,entity]:name(),vec2(256,ScreenPosY))
- CS:egpAlign(ScreenID,1)
- CS:egpColor(ScreenID,vec(204,255,204))
- CS:egpSize(ScreenID,30)
- ScreenID++
- ScreenPosY = ScreenPosY + 32
- X++
- }
- }
- if(first() | duped()){
- CS:egpClear()
- hint("Smart Opener v2.0 - Made by Mentin", 15)
- print("--------------------------------------------------")
- print("!add - To add a player")
- print("!remove - To remove a player")
- print("!list - To get the list of players")
- print("!clear - To clear the list of players")
- print("--------------------------------------------------")
- screenDefault()
- }
- #SCREEN
- #EmptyTitle
- if(Player:count() == 0) {
- CS:egpText(10,"Empty",vec2(256,192))
- CS:egpAlign(10,1)
- CS:egpColor(10,vec(random(255),random(255),random(255)))
- CS:egpSize(10,100)
- }
- #VALUES
- Distance = 50
- Chat = owner():lastSaid():explode(" ")
- #ADDING PLAYERS
- if(Chat[1,string]=="!add" & chatClk(owner())){
- TempX1 = 0
- TargetPlayer = findPlayerByName(Chat[2,string])
- if(TargetPlayer:isPlayer()){
- while(TempX1 <= Player:count()+1) {
- if(TargetPlayer:name():lower()==Player[TempX1,entity]:name():lower()){
- hint("Player already on list!",10)
- break
- }
- if(TempX1 == Player:count()+1)
- {
- Player:pushEntity(TargetPlayer)
- screenDefault()
- screenListPlayers()
- break
- }
- TempX1++
- }
- } else {
- hint("Player not found",10)
- }
- }
- #EMOVING PLAYERS
- if(Chat[1,string]=="!remove"& chatClk(owner())){
- TempX2 = 0
- TargetPlayer = findPlayerByName(Chat[2,string])
- if(TargetPlayer:isPlayer()){
- while(TempX2 <= Player:count()+1){
- if(TargetPlayer == Player[TempX2,entity]){
- Player:remove(TempX2)
- screenDefault()
- screenListPlayers()
- }
- TempX2++
- }
- }
- }
- #LIST PLAYERS
- if(Chat[1,string]=="!list" & chatClk(owner())){
- TempX3 = 1
- print("-----------------")
- while(Player[TempX3,entity]:name()!= "") {
- print(Player[TempX3,entity]:name())
- TempX3++
- }
- print("-----------------")
- }
- #REMOVE ALL PLAYERS
- if(Chat[1,string]=="!clear"& chatClk(owner())){
- TempX4 = 1
- while (TempX4 < Player:count()+1){
- Player:remove(TempX4)
- TempX4+1
- }
- screenDefault()
- screenListPlayers()
- }
- #OPEN FADING DOOR
- Door = 0
- Distance = 100
- #TempX5 = 1
- findByClass("player")
- PlayerFound = findClosest(entity():pos())
- if(PlayerFound:pos():distance(entity():pos())<Distance & PlayerFound:isAlive()){
- foreach(Index,Name:entity=Player){
- if(PlayerFound:name():lower() == Name:name():lower()){
- Door = 1
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement