@name TeamOpen @inputs [TH,SH,CP,CT]:number [E1,E2]:entity EGP:wirelink @outputs [Open,Close,Timer]:number @persist [Teams,Player]:array [FoundT,FoundP,Search,CloseTime]:number [PAC,TAC,CD]:number @trigger #Zeit nach der die Tuer geschlossen werden soll. Closetime = 5 timer("countdoor",1000) # ================ Male den EGP if(first()) { interval(1000) PAC = 1 TAC = 1 EGP:egpClear() Open = 46.29 Search = 0 Timer = 0 EGP:egpText(1,"TeamOpener",vec2(150,10)) EGP:egpSize(1,40) EGP:egpText(2,"Zum oeffnen vor die Tuer stellen.",vec2(120,50)) EGP:egpSize(2,20) EGP:egpBox(3,vec2(130,420),vec2(254,200)) EGP:egpBox(4,vec2(390,420),vec2(254,200)) EGP:egpColor(3,vec(100,100,100)) EGP:egpColor(4,vec(100,100,100)) EGP:egpColor(7,vec(255,0,0)) EGP:egpBox(8,vec2(130,310),vec2(254,25)) EGP:egpColor(8,vec(200,25,25)) EGP:egpText(9,"Teams mit Zutritt",vec2(5,300)) EGP:egpBox(10,vec2(390,310),vec2(254,25)) EGP:egpColor(10,vec(25,25,200)) EGP:egpText(11,"Spieler mit Zutritt",vec2(270,300)) EGP:egpBox(12,vec2(15,180),vec2(30,100)) EGP:egpText(13,"<- Team hinzufuegen",vec2(35,130)) EGP:egpText(14,"<- Spieler hinzufuegen",vec2(35,155)) EGP:egpText(15,"<- Spieler entfernen",vec2(35,180)) EGP:egpText(16,"<- Team entfernen",vec2(35,200)) } # ============ Zaehle den Timer runter if(clk("countdoor")) { if(Timer > 0) { Timer-- } if(Timer == 0) { Open = 0 Close = 1 } EGP:egpText(7,"Tuer schliesst in: "+Timer,vec2(0,110)) if(CD > 0) { CD-- } } # =========== Gleiche Spieler und Team mit den Listen ab for(Search=0,9) { if(Teams:number(Search) > 0 && ((Teams:number(Search)==E1:team() || Teams:number(Search)==E2:team()) || (Teams:number(Search) == E1:driver():team() || Teams:number(Search) == E2:driver():team()))) { FoundT = 1 Close = 0 Open = 1 Timer = Closetime } if(Player:entity(Search):name() != "" && ((Player:entity(Search):name() ==E1:name() || Player:entity(Search):name()==E2:name()) || (Player:entity(Search):name() == E1:driver():name() || Player:entity(Search):name() == E2:driver():name()))) { FoundP = 1 Close = 0 Open = 1 Timer = Closetime } EGP:egpText(30+(Search-1),Player:entity(Search):name(),vec2(290,300+(Search*20))) EGP:egpColor(30+(Search-1),teamColor(Player:entity(Search):team())) if(Teams:number(Search) != 0) { EGP:egpText(20+(Search-1),teamName(Teams:number(Search)),vec2(20,300+(Search*20))) EGP:egpColor(20+(Search-1),teamColor(Teams:number(Search))) } else { EGP:egpText(20+(Search-1),"",vec2(20,300+(Search*20))) } } if(CP | CT | TH | SH) { # ===== Spieler entfernen if(CP && CD == 0) { if(PAC>1) { CD=2 soundPlay(120,1,"hl1/fvox/doop.wav") PAC-- Player:removeEntity(PAC) } } # ==== Team entfernen if(CT && CD == 0) { if(TAC>1) { CD=2 soundPlay(120,1,"hl1/fvox/doop.wav") TAC-- Teams:removeNumber(TAC) } } # ===== Team Hinzufuegen if(TH && CD == 0 && E1:team() != 0 && FoundT == 0) { soundPlay(120,1,"hl1/fvox/bell.wav") CD = 2 Teams:setNumber(TAC,E1:team()) TAC++ } # ===== Spieler Hinzufuegen if(SH && CD == 0 && E1:name() != "" && FoundP == 0) { soundPlay(120,1,"hl1/fvox/bell.wav") CD = 2 Player:setEntity(PAC,E1) PAC++ } } ########## DISPLAY ON EGP if(E1 | E2) { if(E1) { EGP:egpText(5,"Team: "+teamName(E1:team()),vec2(0,90)) EGP:egpColor(5,teamColor(E1:team())) EGP:egpText(6,"Player: "+E1:name(),vec2(250,90)) } if(E2) { EGP:egpText(5,"Team: "+teamName(E2:team()),vec2(0,90)) EGP:egpColor(5,teamColor(E2:team())) EGP:egpText(6,"Player: "+E2:name(),vec2(250,90)) } } else { EGP:egpText(5,"Team: ",vec2(0,90)) EGP:egpColor(5,vec(255,255,255)) EGP:egpText(6,"Player: ",vec2(250,90)) } FoundT = 0 FoundP = 0