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