Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name Smart Opener
- @inputs S:wirelink
- @outputs Door
- @persist [P Distance A]:array Target:entity D Z
- @persist Color:vector
- @trigger
- interval(500)
- if (first())
- {
- # Run On Chat
- runOnChat(1)
- #Distance
- D = 50
- # Clear Screen
- S:writeString("Auto Door Opener - ",0,0,1000,Color,0)
- S:writeString(" ",0,1,1000,Color,0)
- S:writeString(" ",0,2,1000,Color,0)
- S:writeString(" ",0,3,1000,Color,0)
- S:writeString(" ",0,4,1000,Color,0)
- S:writeString(" ",0,5,1000,Color,0)
- S:writeString(" ",0,6,1000,Color,0)
- S:writeString(" ",0,7,1000,Color,0)
- S:writeString(" ",0,8,1000,Color,0)
- S:writeString(" ",0,9,1000,Color,0)
- S:writeString(" ",0,10,1000,Color,0)
- S:writeString(" ",0,11,1000,Color,0)
- S:writeString(" ",0,12,1000,Color,0)
- S:writeString(" ",0,13,1000,Color,0)
- S:writeString(" ",0,14,1000,Color,0)
- S:writeString(" ",0,15,1000,Color,0)
- S:writeString(" ",0,16,1000,Color,0)
- S:writeString(" ",0,17,1000,Color,0)
- # Hints
- }
- if (changed(P:count()) | changed(Door))
- {
- # Clear Screen
- S:writeString("Auto Door Opener - ",0,0,1000,Color,0)
- S:writeString(" ",0,1,1000,Color,0)
- S:writeString(" ",0,2,1000,Color,0)
- S:writeString(" ",0,3,1000,Color,0)
- S:writeString(" ",0,4,1000,Color,0)
- S:writeString(" ",0,5,1000,Color,0)
- S:writeString(" ",0,6,1000,Color,0)
- S:writeString(" ",0,7,1000,Color,0)
- S:writeString(" ",0,8,1000,Color,0)
- S:writeString(" ",0,9,1000,Color,0)
- S:writeString(" ",0,10,1000,Color,0)
- S:writeString(" ",0,11,1000,Color,0)
- S:writeString(" ",0,12,1000,Color,0)
- S:writeString(" ",0,13,1000,Color,0)
- S:writeString(" ",0,14,1000,Color,0)
- S:writeString(" ",0,15,1000,Color,0)
- S:writeString(" ",0,16,1000,Color,0)
- S:writeString(" ",0,17,1000,Color,0)
- # Update Allowed Players
- for (X=1,P:count())
- {
- E2 = P[X,entity]
- S:writeString(""+E2:name(),0,X,1000,Color,0)
- if (P:count() >= 1)
- {
- S:writeString("Players Allowed: " + P:count() + " ",0,17,1000,Color,0)
- }
- }
- }
- # If Owner Talks
- if (chatClk(owner()))
- {
- # Chat String
- Str = owner():lastSaid():explode(" ")
- if(Str[1,string]=="!add")
- {
- TP = findPlayerByName(Str[2,string])
- if(TP:isPlayer())
- {
- Target = TP
- P:pushEntity(TP)
- }
- }
- if(Str[1,string]=="!remove" | Str[1,string]=="!remove")
- {
- TP = findPlayerByName(Str[2,string])
- if(TP:isPlayer())
- {
- while(Z < 20)
- {
- if(TP == P[Z,entity])
- {
- P:remove(Z)
- }
- Z++
- }
- }
- Z = 0
- }
- }
- # Update Allowed Player Distance
- Distance1 = round(((entity():pos() - P[1,entity]:pos()):length()))
- Distance2 = round(((entity():pos() - P[2,entity]:pos()):length()))
- Distance3 = round(((entity():pos() - P[3,entity]:pos()):length()))
- Distance4 = round(((entity():pos() - P[4,entity]:pos()):length()))
- Distance5 = round(((entity():pos() - P[5,entity]:pos()):length()))
- Distance6 = round(((entity():pos() - P[6,entity]:pos()):length()))
- Distance7 = round(((entity():pos() - P[7,entity]:pos()):length()))
- Distance8 = round(((entity():pos() - P[8,entity]:pos()):length()))
- Distance9 = round(((entity():pos() - P[9,entity]:pos()):length()))
- Distance10 = round(((entity():pos() - P[10,entity]:pos()):length()))
- # Open Door For Allowed / Update Screen
- if(Distance1<D){Door = 1 Color = teamColor(P[1,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance2<D){Door = 1 Color = teamColor(P[2,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance3<D){Door = 1 Color = teamColor(P[3,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance4<D){Door = 1 Color = teamColor(P[4,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance5<D){Door = 1 Color = teamColor(P[5,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance6<D){Door = 1 Color = teamColor(P[6,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance7<D){Door = 1 Color = teamColor(P[7,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance8<D){Door = 1 Color = teamColor(P[8,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance9<D){Door = 1 Color = teamColor(P[9,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- elseif(Distance10<D){Door = 1 Color = teamColor(P[10,entity]:team()) S:writeString("Auto Door Opener - OPEN ",0,0,1000,Color,0)}
- else{Door = 0 Color = vec(0,0,0) S:writeString("Auto Door Opener - CLOSED ",0,0,1000,Color,0)}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement