Guest User

Untitled

a guest
May 27th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.89 KB | None | 0 0
  1. local meta = FindMetaTable("Player")
  2.  
  3. if (SERVER) then
  4.     util.AddNetworkString("SetXP")
  5.     util.AddNetworkString("SetupLeveling")
  6.     util.AddNetworkString("SetLevel")
  7.  
  8.     function meta:AddXP(xp)
  9.         if (!self.xp) then self.xp = xp return end
  10.         if (!self.Level) then self.Level = 1 end
  11.        
  12.         self.xp = self.xp + xp
  13.        
  14.         self:RecalcLevel()
  15.        
  16.         net.Start("SetXP")
  17.             net.WriteEntity(self)
  18.             net.WriteLong(self.xp)
  19.         net.Broadcast() --Think ill be sending this to everyone :)
  20.     end
  21.    
  22.     function meta:SetupPlayer(xp,level)
  23.         net.Start("SetupLeveling")
  24.             net.WriteEntity(self)
  25.             net.WriteLong(xp)
  26.             net.WriteByte(level)
  27.         net.Broadcast()
  28.        
  29.         self.xp     = xp
  30.         self.Level  = level
  31.     end
  32.    
  33.    
  34.    
  35.     function meta:RecalcLevel()
  36.         if (!self.xp) then return 1 end
  37.         if (!self.Level) then self.Level = 1 end
  38.        
  39.         local Level = self.Level
  40.        
  41.         repeat
  42.             local XP = 178 + Level^2 * (22*Level)
  43.            
  44.             if (self.xp >= XP) then Level = Level+1 self.xp = self.xp-XP end
  45.         until (self.xp < XP or Level > 90)
  46.        
  47.         if (Level != self.Level) then
  48.             self:AddNote("Level up! :D")
  49.             self.Level = Level
  50.            
  51.             net.Start("SetLevel")
  52.                 net.WriteEntity(self)
  53.                 net.WriteByte(self.Level)
  54.             net.Broadcast()
  55.            
  56.             --LEVELUP!
  57.         end
  58.     end
  59. else
  60.     net.Receive("SetXP",function(size)
  61.         local Ply   = net.ReadEntity()
  62.         local XP    = net.ReadLong()
  63.        
  64.         Ply.xp      = XP
  65.     end)
  66.    
  67.     net.Receive("SetLevel",function(size)
  68.         local Ply   = net.ReadEntity()
  69.         local XP    = net.ReadByte()
  70.        
  71.         Ply.Level   = XP
  72.     end)
  73.    
  74.     net.Receive("SetupLeveling",function(size)
  75.         local Ply   = net.ReadEntity()
  76.         local XP    = net.ReadLong()
  77.         local LVL   = net.ReadByte()
  78.        
  79.         Ply.xp      = XP
  80.         Ply.Level   = LVL
  81.     end)
  82. end
  83.  
  84. function meta:GetXP()
  85.     return self.xp or 0
  86. end
  87.  
  88. function meta:GetLevel()
  89.     return self.Level or 1
  90. end
  91.  
  92. function meta:GetRequiredXP()
  93.     local Level = self:GetLevel()
  94.     return (178 + Level^2 * (22*Level))
  95. end
Add Comment
Please, Sign In to add comment