Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name ORB
- @persist Seconds Tick Pl:table Loaded T LS:array Allow SaveQ SaveQ2 RankN:array Rank1:table Rank2:table Rank3:table Rank4:table Rank5:table Rank6:table
- @model models/holograms/icosphere.mdl
- @autoupdate
- runOnChat(1)
- runOnFile(1)
- runOnTick(1)
- #[
- Rank1 Guest
- Rank2 Member
- Rank3 Trusted
- Rank4 Operator
- Rank5 Admin
- Rank6 Owner
- ]#
- function table perm(I){
- if(I==1){return Rank1}
- elseif(I==2){return Rank2}
- elseif(I==3){return Rank3}
- elseif(I==4){return Rank4}
- elseif(I==5){return Rank5}
- elseif(I==6){return Rank6}
- }
- if(first()){
- entity():setColor(vec(255, 0, 255))
- RankN = array("Guest", "Member", "Trusted", "Operator", "Admin", "Owner")
- Loaded = 0
- fileLoad(">expression2/orb/player.txt")
- }
- if(Loaded == 0 && fileClk()){
- Pl = vonDecodeTable(fileRead())
- Loaded++
- }
- if(Loaded == 1 && fileCanLoad()){
- fileLoad(">expression2/orb/perms.txt")
- Loaded++
- }
- if(Loaded == 2 && fileClk()){
- Rank1 = vonDecodeTable(fileRead():explode("$"):string(1))
- Rank2 = vonDecodeTable(fileRead():explode("$"):string(2))
- Rank3 = vonDecodeTable(fileRead():explode("$"):string(3))
- Rank4 = vonDecodeTable(fileRead():explode("$"):string(4))
- Rank5 = vonDecodeTable(fileRead():explode("$"):string(5))
- Rank6 = vonDecodeTable(fileRead():explode("$"):string(6))
- Loaded++
- entity():setColor(vec(0, 255, 0))
- }
- if(Loaded == 3){
- if(chatClk() && Pl[lastSpoke():steamID(), number]>0){
- P = lastSpoke()
- LS = P:lastSaid():explode(" ")
- PR = Pl[P:steamID(), number]
- if(LS:string(1)=="/orb"){
- Allow = 0
- if(LS:count()>2){
- if(perm(PR)[LS:string(2)+".other", number] && PR>Pl[findPlayerByName(LS:string(3)):steamID(), number]){
- concmd("ulx "+LS:string(2)+" "+LS:concat(" ", 3))
- }
- }else{
- if(perm(PR)[LS:string(2)+".self", number]){
- concmd("ulx "+LS:string(2)+" "+P:name())
- }
- }
- if(LS:string(2)=="rank" && perm(PR)["orb.promote", number] >= LS:string(4):toNumber()){
- Pl[findPlayerByName(LS:string(3)):steamID(), number] = LS:string(4):toNumber()
- concmd("ulx psay "+findPlayerByName(LS:string(3)):name():explode(" "):string(1)+" You have been promoted/demoted to rank "+RankN:string(LS:string(4):toNumber())+"!")
- SaveQ = 1
- }
- if(LS:string(2)=="seerank" && PR>0){
- if(Pl[findPlayerByName(LS:string(3)):steamID(), number]){
- concmd("ulx tsay "+findPlayerByName(LS:string(3)):name()+" has a rank "+RankN:string(Pl[findPlayerByName(LS:string(3)):steamID(), number]))
- }else{
- concmd("ulx tsay "+findPlayerByName(LS:string(3)):name()+" has no rank.")
- }
- }
- if(LS:string(2)=="setperm" && PR==6){
- if(LS:string(3):toNumber()==1){Rank1[LS:string(4), number] = LS:string(5):toNumber()}
- elseif(LS:string(3):toNumber()==2){Rank2[LS:string(4), number] = LS:string(5):toNumber()}
- elseif(LS:string(3):toNumber()==3){Rank3[LS:string(4), number] = LS:string(5):toNumber()}
- elseif(LS:string(3):toNumber()==4){Rank4[LS:string(4), number] = LS:string(5):toNumber()}
- elseif(LS:string(3):toNumber()==5){Rank5[LS:string(4), number] = LS:string(5):toNumber()}
- elseif(LS:string(3):toNumber()==6){Rank6[LS:string(4), number] = LS:string(5):toNumber()}
- SaveQ2 = 1
- }
- }
- }
- }
- if(SaveQ && fileCanWrite()){
- SaveQ = 0
- fileWrite(">expression2/orb/player.txt", vonEncode(Pl))
- print("Saving player data...")
- }
- if(SaveQ2 && fileCanWrite()){
- SaveQ2 = 0
- fileWrite(">expression2/orb/perms.txt", vonEncode(Rank1)+"$"+vonEncode(Rank2)+"$"+vonEncode(Rank3)+"$"+vonEncode(Rank4)+"$"+vonEncode(Rank5)+"$"+vonEncode(Rank6))
- print("Saving permission data...")
- }
- T++
- entity():setPos(owner():pos()+vec(0, 0, 80))
- entity():setAng(ang(T*2, T*3, T*5))
- if(changed(time())){
- if(Seconds%60 == 0){
- concmd("ulx cleardecals")
- }
- Seconds++
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement