Advertisement
Guest User

Untitled

a guest
Aug 7th, 2016
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. ----------------------------
  2. -- Configuation Functions --
  3. ----------------------------
  4. STA_IsRankNeeded = false -- Is the script for admins only?
  5. STA_EnableCustomRanks = true --Else it will just use admin and superadmin.
  6. STA_CustomRanks = {"Trial-Moderator"} -- If the custom ranks are enabled, what groups should be able to use this? ex. {"admin","superadmin"}
  7. ----------------------------
  8.  
  9.  
  10. -- Do NOT touch this below or you will risk to break the script!
  11. if SERVER then
  12.  
  13. AddCSLuaFile("sta_core.lua")
  14.  
  15. function STA_OnPlayerSprayed( ply )
  16. STA_BaseTable = STA_BaseTable or {}
  17. local shootpos = ply:GetShootPos()
  18. local trace = ply:GetEyeTrace()
  19. local steamid = ply:SteamID()
  20. STA_BaseTable[steamid] = STA_BaseTable[steamid] or {}
  21. STA_BaseTable[steamid].pos = trace.HitPos
  22. STA_BaseTable[steamid].ang = trace.HitNormal
  23. STA_BaseTable[steamid].name = ply:Name()
  24. umsg.Start("_STA_Update3D2DSprayTracker_Clean")
  25. umsg.End()
  26. for k,v in pairs(STA_BaseTable) do
  27. umsg.Start("_STA_Update3D2DSprayTracker_Add")
  28. umsg.Vector(v.pos)
  29. umsg.Angle(v.ang)
  30. umsg.String(k)
  31. umsg.String(v.name)
  32. umsg.End()
  33. end
  34. end
  35. hook.Add( "PlayerSpray", "STA_OnPlayerSprayed", STA_OnPlayerSprayed )
  36.  
  37. function STA_CheckAdmin( ply )
  38. if not STA_EnableCustomRanks then return end
  39. for k,v in pairs(STA_CustomRanks) do
  40. if ply:IsUserGroup(v) then
  41. return true
  42. end
  43. end
  44. return false
  45. end
  46.  
  47. function STA_OnPlayerSprayed( ply )
  48. STA_BaseTable = STA_BaseTable or {}
  49. timer.Simple(5,function()
  50. umsg.Start("_STA_Update3D2DSprayTracker_Clean")
  51. umsg.End()
  52. for k,v in pairs(STA_BaseTable) do
  53. umsg.Start("_STA_Update3D2DSprayTracker_Add")
  54. umsg.Vector(v.pos)
  55. umsg.Angle(v.ang)
  56. umsg.String(k)
  57. umsg.String(v.name)
  58. umsg.End()
  59. end
  60. end)
  61. end
  62. hook.Add("PlayerInitialSpawn","STA_OnPlayerSprayed",STA_OnPlayerSprayed)
  63.  
  64. function STA_PlayerSay_ToggleSTA( ply, text, team )
  65. if( string.sub(text,1,13) == "/spray" or string.sub(text,1,13) == "!spray" or string.sub(text,1,10) == ":spray" ) then
  66. if STA_IsRankNeeded then
  67. if( ( not STA_EnableCustomRanks and not ply:IsAdmin() ) or ( STA_EnableCustomRanks and not STA_CheckAdmin(ply) ) ) then
  68. return false
  69. end
  70. end
  71. if ply.STA_Enabled then
  72. ply:ChatPrint("You have <c=255,51,51>Disabled</c> the spray tracker. Thank you for checking! [Developing]")
  73. ply:SendLua([[STA_Is_Enabled = false
  74. surface.PlaySound("garrysmod/balloon_pop_cute.wav")]])
  75. ply.STA_Enabled = false
  76. else
  77. ply:ChatPrint("You have <c=153,255,153>Enabled</c> spray tracking for Moderation. [Developing]")
  78. ply:SendLua([[STA_Is_Enabled = true
  79. surface.PlaySound("garrysmod/balloon_pop_cute.wav")]])
  80. ply.STA_Enabled = true
  81. end
  82. return false
  83. end
  84. end
  85. hook.Add("PlayerSay","STA_PlayerSay_ToggleSTA",STA_PlayerSay_ToggleSTA)
  86. else
  87.  
  88. --include("sta_core.lua")
  89.  
  90. function STA_PaintHUDSprays()
  91. if not STA_Is_Enabled then return end
  92. STA_ClientBaseTable = STA_ClientBaseTable or {}
  93. for k,v in pairs(STA_ClientBaseTable) do
  94. local pos = (v[1]):ToScreen()
  95. local distance = (v[1]-LocalPlayer():GetShootPos()):Length()
  96. local alpha = math.Clamp(300-distance,0,255)
  97. draw.DrawText("User: ", "Default", pos.x, pos.y-15, Color(255, 255, 255, alpha), TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT )
  98. draw.DrawText(v[3], "Default", pos.x, pos.y, Color(255, 255, 255, alpha), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  99. draw.DrawText("("..k..")", "Default", pos.x, pos.y+15, Color(255, 255, 255, alpha), TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT )
  100. end
  101. end
  102. hook.Add("HUDPaint","STA_PaintHUDSprays",STA_PaintHUDSprays)
  103.  
  104. function STA_Update3D2DSprayTracker( data )
  105. STA_ClientBaseTable = STA_ClientBaseTable or {}
  106. local pos = data:ReadVector()
  107. local ang = data:ReadAngle()
  108. local id = data:ReadString()
  109. local name = data:ReadString()
  110. STA_ClientBaseTable[id] = {pos,ang,name}
  111. end
  112. usermessage.Hook("_STA_Update3D2DSprayTracker_Add",STA_Update3D2DSprayTracker)
  113.  
  114. function STA_Update3D2DSprayTracker( data )
  115. STA_ClientBaseTable = {}
  116. end
  117. usermessage.Hook("_STA_Update3D2DSprayTracker_Clean",STA_Update3D2DSprayTracker)
  118.  
  119. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement