Advertisement
Urumasi

ORB

Aug 30th, 2014
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.18 KB | None | 0 0
  1. @name ORB
  2. @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
  3. @model models/holograms/icosphere.mdl
  4. @autoupdate
  5. runOnChat(1)
  6. runOnFile(1)
  7. runOnTick(1)
  8. #[
  9. Rank1 Guest
  10. Rank2 Member
  11. Rank3 Trusted
  12. Rank4 Operator
  13. Rank5 Admin
  14. Rank6 Owner
  15. ]#
  16.  
  17. function table perm(I){
  18.     if(I==1){return Rank1}
  19.     elseif(I==2){return Rank2}
  20.     elseif(I==3){return Rank3}
  21.     elseif(I==4){return Rank4}
  22.     elseif(I==5){return Rank5}
  23.     elseif(I==6){return Rank6}
  24. }
  25. if(first()){
  26.     entity():setColor(vec(255, 0, 255))
  27.     RankN = array("Guest", "Member", "Trusted", "Operator", "Admin", "Owner")
  28.     Loaded = 0
  29.     fileLoad(">expression2/orb/player.txt")
  30. }
  31. if(Loaded == 0 && fileClk()){
  32.     Pl = vonDecodeTable(fileRead())
  33.     Loaded++
  34. }
  35. if(Loaded == 1 && fileCanLoad()){
  36.     fileLoad(">expression2/orb/perms.txt")
  37.     Loaded++
  38. }
  39. if(Loaded == 2 && fileClk()){
  40.     Rank1 = vonDecodeTable(fileRead():explode("$"):string(1))
  41.     Rank2 = vonDecodeTable(fileRead():explode("$"):string(2))
  42.     Rank3 = vonDecodeTable(fileRead():explode("$"):string(3))
  43.     Rank4 = vonDecodeTable(fileRead():explode("$"):string(4))
  44.     Rank5 = vonDecodeTable(fileRead():explode("$"):string(5))
  45.     Rank6 = vonDecodeTable(fileRead():explode("$"):string(6))
  46.     Loaded++
  47.     entity():setColor(vec(0, 255, 0))
  48. }
  49. if(Loaded == 3){
  50.     if(chatClk() && Pl[lastSpoke():steamID(), number]>0){
  51.         P = lastSpoke()
  52.         LS = P:lastSaid():explode(" ")
  53.         PR = Pl[P:steamID(), number]
  54.         if(LS:string(1)=="/orb"){
  55.             Allow = 0
  56.             if(LS:count()>2){
  57.                 if(perm(PR)[LS:string(2)+".other", number] && PR>Pl[findPlayerByName(LS:string(3)):steamID(), number]){
  58.                     concmd("ulx "+LS:string(2)+" "+LS:concat(" ", 3))
  59.                 }
  60.             }else{
  61.                 if(perm(PR)[LS:string(2)+".self", number]){
  62.                     concmd("ulx "+LS:string(2)+" "+P:name())
  63.                 }
  64.             }
  65.             if(LS:string(2)=="rank" && perm(PR)["orb.promote", number] >= LS:string(4):toNumber()){
  66.                 Pl[findPlayerByName(LS:string(3)):steamID(), number] = LS:string(4):toNumber()
  67.                 concmd("ulx psay "+findPlayerByName(LS:string(3)):name():explode(" "):string(1)+" You have been promoted/demoted to rank "+RankN:string(LS:string(4):toNumber())+"!")
  68.                 SaveQ = 1
  69.             }
  70.             if(LS:string(2)=="seerank" && PR>0){
  71.                 if(Pl[findPlayerByName(LS:string(3)):steamID(), number]){
  72.                     concmd("ulx tsay "+findPlayerByName(LS:string(3)):name()+" has a rank "+RankN:string(Pl[findPlayerByName(LS:string(3)):steamID(), number]))
  73.                 }else{
  74.                     concmd("ulx tsay "+findPlayerByName(LS:string(3)):name()+" has no rank.")
  75.                 }
  76.             }
  77.             if(LS:string(2)=="setperm" && PR==6){
  78.                 if(LS:string(3):toNumber()==1){Rank1[LS:string(4), number] = LS:string(5):toNumber()}
  79.                 elseif(LS:string(3):toNumber()==2){Rank2[LS:string(4), number] = LS:string(5):toNumber()}
  80.                 elseif(LS:string(3):toNumber()==3){Rank3[LS:string(4), number] = LS:string(5):toNumber()}
  81.                 elseif(LS:string(3):toNumber()==4){Rank4[LS:string(4), number] = LS:string(5):toNumber()}
  82.                 elseif(LS:string(3):toNumber()==5){Rank5[LS:string(4), number] = LS:string(5):toNumber()}
  83.                 elseif(LS:string(3):toNumber()==6){Rank6[LS:string(4), number] = LS:string(5):toNumber()}
  84.                 SaveQ2 = 1
  85.             }
  86.         }
  87.     }
  88. }
  89. if(SaveQ && fileCanWrite()){
  90.     SaveQ = 0
  91.     fileWrite(">expression2/orb/player.txt", vonEncode(Pl))
  92.     print("Saving player data...")
  93. }
  94. if(SaveQ2 && fileCanWrite()){
  95.     SaveQ2 = 0
  96.     fileWrite(">expression2/orb/perms.txt", vonEncode(Rank1)+"$"+vonEncode(Rank2)+"$"+vonEncode(Rank3)+"$"+vonEncode(Rank4)+"$"+vonEncode(Rank5)+"$"+vonEncode(Rank6))
  97.     print("Saving permission data...")
  98. }
  99. T++
  100. entity():setPos(owner():pos()+vec(0, 0, 80))
  101. entity():setAng(ang(T*2, T*3, T*5))
  102. if(changed(time())){
  103.     if(Seconds%60 == 0){
  104.         concmd("ulx cleardecals")
  105.     }
  106.     Seconds++
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement