@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
}
}
}
Comments
0 B
|👍
/👎