Advertisement
Guest User

Untitled

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