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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
function initArray(m) local array = {} for i = 1, m do array[i]=0 end return array end level=initArray(32) exp=initArray(32) asd=initArray(32) function string.split(text,b) local cmd = {} if b then b = b else b = "%s" end b = "[^"..b.."]+" for o in string.gmatch(text,b) do table.insert(cmd,o) end return cmd end addhook("ms100","ms_hud") function ms_hud() for id = 1,32 do if (player(id,"exists")) then asd[id]=500*level[id]+500 parse('hudtxt2 '..id..' 48 "©000255010 Rank: '..level[id]..' " 13 117') parse('hudtxt2 '..id..' 49 "©010255000 Points: '..exp[id]..'/'..asd[id]..' " 13 129') end end end addhook("objectkill","objectkill") function objectkill(id,player) if exp[player] < asd[player] then exp[player]=exp[player]+100 end if exp[player] == asd[player] or exp[player] > asd[player] then exp[player]=0 level[player]=level[player]+1 msg2(player,"©000255000Rank up!@C") msg("©255075000"..player(id,"name").." reached "..level[player].." level!") end end addhook("kill","ms_kill") function ms_kill(id) if exp[id] < asd[id] then exp[id]=exp[id]+100 end if exp[id] == asd[id] or exp[id] > asd[id] then exp[id]=0 level[id]=level[id]+1 msg2(id,"©000255000Rank up!@C") msg("©255075000"..player(id,"name").." reached "..level[id].." level!") end end addhook("spawn","pl_spawn") function pl_spawn(id) if level[id] < 0 then id=image("gfx/hat/devil.png",0,0,132+id) imagecolor(id,255,255,0) imageblend(id,1) elseif level[id] >=0 and level[id] <4 then id=image("gfx/hat/devil.png",0,0,132+id) imagecolor(id,255,100,255) imageblend(id,1) imagealpha(id,0.5) elseif level[id] >=5 and level[id] <10 then id=image("gfx/hat/devil.png",0,0,132+id) imagecolor(id,100,100,100) imageblend(id,1) imagealpha(id,0.5) elseif level[id] >=11 and level[id] < 14 then id=image("gfx/hat/devil.png",0,0,132+id) imagecolor(id,255,0,255) imageblend(id,1) imagealpha(id,0.5) elseif level[id] >=15 and level[id] < 20 then id=image("gfx/hat/devil.png",0,0,132+id) imagecolor(id,0,255,255) imageblend(id,1) imagealpha(id,0.5) elseif level[id] >=21 then id=image("gfx/sf_rank_06.bmp",0,0,132+id) imagecolor(id,255,0,0) imageblend(id,1) imagealpha(id,0.5) end end addhook("leave","save_leave") function save_die(id) if (player(id,"usgn")>0) then io.output(io.open("sys/lua/save/"..player(id,"usgn")..".txt","w+")) io.write(exp[id].." "..level[id]) io.close() end end addhook("die","save_die") function save_die(id) if (player(id,"usgn")>0) then io.output(io.open("sys/lua/save/"..player(id,"usgn")..".txt","w+")) io.write(exp[id].." "..level[id]) io.close() end end addhook("join","save_join") function save_join(id) if (player(id,"usgn")>0) then for line in io.lines("sys/lua/save/"..player(id,"usgn")..".txt") do line = line:split() local ms_exp = tonumber(line[1]) local ms_level = tonumber(line[2]) level[id]=ms_level exp[id]=ms_exp end end end