· 8 years ago · Dec 25, 2017, 05:56 PM
1-----------------------------------------------------------------------
2--CLEINTSIDE
3--A Derpy Code for a Derpy Production (Special Thanks to Aperture Science Industries)
4-----------------------------------------------------------------------
5
6if !sql.TableExists("PlayerInfo") then
7
8 sql.Query( "CREATE TABLE IF NOT EXISTS PlayerInfo ('Name' TEXT, 'Money' INT NOT NULL, 'Frags' INT NOT NULL, 'Deaths' INT NOT NULL, 'SteamID' TEXT NOT NULL)" )
9
10end
11
12local function FormatID( SteamID )
13
14 return SteamID:lower():gsub( ":", "_" )
15
16end
17
18local function FindPlayer( info )
19 for k, v in pairs( player.GetAll() ) do
20 if( tonumber( info ) == v:EntIndex() ) then
21 return v;
22 end
23 if( info == v:SteamID() ) then
24 return v;
25 end
26 if( string.find( string.lower(v:Nick()), string.lower(info) ) != nil ) then
27 return v;
28 end
29 end
30 return nil;
31end
32
33// Name Start ------------------------------------------------- -------------------------------------------------
34
35function _R.Player:UpdateName()
36 local SteamID, Name = sql.SQLStr(string.gsub(self:Nick(), "[^a-zA-Z0-9]", ""))
37
38 SteamID = self:SteamID()
39 SteamID = FormatID( SteamID )
40
41 if ( name ~= nil ) then
42 sql.Query( Format( "UPDATE PlayerInfo SET Name = '%s' WHERE SteamID = '%s'", Name, sql.SQLStr( SteamID ) ) )
43 end
44end
45
46// Name End ------------------------------------------------- -------------------------------------------------
47
48// Money Start ------------------------------------------------- -------------------------------------------------
49
50function _R.Player:Money()
51 local SteamID, Money
52
53 SteamID = self:SteamID()
54 SteamID = FormatID( SteamID )
55
56 Money = sql.QueryValue( Format( "SELECT Money FROM PlayerInfo WHERE SteamID = '%s'", sql.SQLStr( SteamID ) ) )
57
58 return Money
59end
60
61function _R.Player:SetMoney(Amount)
62 local SteamID, AmountDiff
63
64 SteamID = self:SteamID()
65 SteamID = FormatID( SteamID )
66
67 umsg.Start( "MoneyChange", self )
68
69 umsg.Short( 0 )
70 umsg.Long( Money )
71
72 umsg.End( )
73
74 if ( tonumber( Amount ) ~= nil ) then
75 sql.Query( Format( "UPDATE PlayerInfo SET Money = '%f' WHERE SteamID = '%s'", Amount, sql.SQLStr( SteamID ) ) )
76 end
77end
78
79function _R.Player:AddMoney(Amount)
80 local SteamID, NAmount
81
82 SteamID = self:SteamID()
83 SteamID = FormatID( SteamID )
84
85 NAmount = self:Money() + Amount
86
87 umsg.Start("MoneyChange", self)
88
89 umsg.Short(Amount)
90 umsg.Long(NAmount)
91
92 umsg.End()
93
94 if ( tonumber( Amount ) ~= nil ) then
95 sql.Query( Format( "UPDATE PlayerInfo SET Money = '%f' WHERE SteamID = '%s'", NAmount, sql.SQLStr( SteamID ) ) )
96 end
97end
98
99function _R.Player:TakeMoney(Amount)
100 local SteamID, NAmount
101
102 SteamID = self:SteamID()
103 SteamID = FormatID( SteamID )
104
105 NAmount = self:Money() - Amount
106
107 umsg.Start("MoneyChange", self)
108
109 umsg.Short(Amount * -1)
110 umsg.Long(NAmount)
111
112 umsg.End()
113
114 if ( tonumber( Amount ) ~= nil ) then
115 sql.Query( Format( "UPDATE PlayerInfo SET Money = '%f' WHERE SteamID = '%s'", NAmount, sql.SQLStr( SteamID ) ) )
116 end
117end
118
119function GetCMoney(ply, cmd, args)
120 local ent = FindPlayer( args[1] )
121
122 umsg.Start("sql_GetMoney", ply)
123 umsg.Long(ent:Money())
124 umsg.String(ent:SteamID())
125 umsg.End()
126end
127concommand.Add( "Money", GetCMoney )
128
129// Money End ------------------------------------------------- -------------------------------------------------
130
131// Frags Start ------------------------------------------------- -------------------------------------------------
132
133function _R.Player:Frags()
134 local SteamID, Frags
135
136 SteamID = self:SteamID()
137 SteamID = FormatID( SteamID )
138
139 Frags = sql.QueryValue( Format( "SELECT Frags FROM PlayerInfo WHERE SteamID = '%s'", sql.SQLStr( SteamID ) ) )
140
141 return Frags
142end
143
144function _R.Player:SetFrags( Amount )
145 local SteamID
146
147 SteamID = self:SteamID()
148 SteamID = FormatID( SteamID )
149
150 if ( tonumber( Amount ) ~= nil ) then
151 sql.Query( Format( "UPDATE PlayerInfo SET Frags = '%f' WHERE SteamID = '%s'", Amount, sql.SQLStr( SteamID ) ) )
152 end
153end
154
155function _R.Player:AddFrags( Amount )
156 local SteamID, NAmount
157
158 SteamID = self:SteamID()
159 SteamID = FormatID( SteamID )
160
161 NAmount = self:Frags() + Amount
162
163 if ( tonumber( NAmount ) ~= nil ) then
164 sql.Query( Format( "UPDATE PlayerInfo SET Frags = '%f' WHERE SteamID = '%s'", NAmount, sql.SQLStr( SteamID ) ) )
165 end
166end
167
168function _R.Player:TakeFrags( Amount )
169 local SteamID, NAmount
170
171 SteamID = self:SteamID()
172 SteamID = FormatID( SteamID )
173
174 NAmount = self:Frags() - Amount
175
176 if ( tonumber( NAmount ) ~= nil ) then
177 sql.Query( Format( "UPDATE PlayerInfo SET Frags = '%f' WHERE SteamID = '%s'", NAmount, sql.SQLStr( SteamID ) ) )
178 end
179end
180
181function GetCFrags(ply, cmd, args)
182 local ent = FindPlayer( args[1] )
183
184 umsg.Start("sql_GetFrags", ply)
185 umsg.Long(ent:Frags())
186 umsg.String(ent:SteamID())
187 umsg.End()
188end
189concommand.Add( "Frags", GetCFrags )
190
191// Frags End ------------------------------------------------- -------------------------------------------------
192
193// Start Deaths ------------------------------------------------- -------------------------------------------------
194
195function _R.Player:Deaths()
196 local SteamID, Deaths
197
198 SteamID = self:SteamID()
199 SteamID = FormatID( SteamID )
200
201 Deaths = sql.QueryValue( Format( "SELECT Deaths FROM PlayerInfo WHERE SteamID = '%s'", sql.SQLStr( SteamID ) ) )
202
203 return Deaths
204end
205
206function _R.Player:SetDeaths(Amount)
207 local SteamID
208
209 SteamID = self:SteamID()
210 SteamID = FormatID( SteamID )
211
212 if ( tonumber( Amount ) ~= nil ) then
213 sql.Query( Format( "UPDATE PlayerInfo SET Deaths = '%f' WHERE SteamID = '%s'", Amount, sql.SQLStr( SteamID ) ) )
214 end
215end
216
217function _R.Player:AddDeaths(Amount)
218 local SteamID, NAmount
219
220 SteamID = self:SteamID()
221 SteamID = FormatID( SteamID )
222
223 NAmount = self:Deaths() + Amount
224
225 if ( tonumber( Amount ) ~= nil ) then
226 sql.Query( Format( "UPDATE PlayerInfo SET Deaths = '%f' WHERE SteamID = '%s'", NAmount, sql.SQLStr( SteamID ) ) )
227 end
228end
229
230function _R.Player:TakeDeaths(Amount)
231 local SteamID, NAmount
232
233 SteamID = self:SteamID()
234 SteamID = FormatID( SteamID )
235
236 NAmount = self:Deaths() - Amount
237
238 if ( tonumber( Amount ) ~= nil ) then
239 sql.Query( Format( "UPDATE PlayerInfo SET Deaths = '%f' WHERE SteamID = '%s'", NAmount, sql.SQLStr( SteamID ) ) )
240 end
241end
242
243function GetCDeaths(ply, cmd, args)
244 local ent = FindPlayer( args[1] )
245
246 umsg.Start("sql_GetDeaths", ply)
247 umsg.Long(ent:Deaths())
248 umsg.String(ent:SteamID())
249 umsg.End()
250end
251concommand.Add( "Deaths", GetCDeaths )
252
253// Deaths End ------------------------------------------------- -------------------------------------------------
254
255function _R.Player:GetPlayerInfo()
256 local SteamID, Name, Money, Frags, Deaths
257
258 SteamID = self:SteamID()
259 SteamID = FormatID( SteamID )
260
261 Name = sql.SQLStr(string.gsub(self:Nick(), "[^%w]", ""))
262
263 Money = sql.QueryValue( Format( "SELECT Money FROM PlayerInfo WHERE SteamID = '%s'", sql.SQLStr( SteamID ) ) )
264 Money = tonumber( Money ) || sql.Query( Format( "INSERT INTO PlayerInfo (Name, Money, Frags, Deaths, SteamID) VALUES ('%s', " .. self:GetTable().Money .. ", " .. 0 .. ", " .. 0 .. ", '%s')", Name, sql.SQLStr( SteamID ) ) ) || self:GetTable().Money
265
266 Frags = sql.QueryValue( Format( "SELECT Frags FROM PlayerInfo WHERE SteamID = '%s'", sql.SQLStr( SteamID ) ) )
267 Frags = tonumber( Frags ) || self:Frags()
268
269 Deaths = sql.QueryValue( Format( "SELECT Deaths FROM PlayerInfo WHERE SteamID = '%s'", sql.SQLStr( SteamID ) ) )
270 Deaths = tonumber( Deaths ) || self:Deaths()
271
272 self:SetMoney( math.min( math.ceil( Money ), 700000000 ) )
273
274 self:SetFrags( Frags )
275
276 self:SetDeaths( Deaths )
277
278 umsg.Start( "MoneyChange", self )
279
280 umsg.Short( 0 )
281 umsg.Long( Money )
282
283 umsg.End( )
284
285end
286
287function CCSetMoney( Player, Cmd, Args )
288
289 local Money = tonumber(Args[1])
290
291 if( ply:GetNWString("Status","Guest")!="Founder" ) then
292 ply:PrintMessage( 2, "Your not a founder. You cant set money." );
293 return;
294 end
295
296 Player:SetMoney(Money)
297 return;
298
299end
300concommand.Add( "bw_SetMoney", CCSetMoney );
301
302-----------------------------------------------------------------------
303--CLEINTSIDE
304--A Derpy Code for a Derpy Production (Special Thanks to Aperture Science Industries)
305-----------------------------------------------------------------------
306
307if CLIENT then
308 Money = { }
309 Frags = { }
310 Deaths = { }
311
312 // Money
313
314 function _R.Player:Money()
315 RunConsoleCommand("Money", self:EntIndex())
316 return Money[self:SteamID()] or 0
317 end
318
319 function GetMoney( MoneyMSG )
320 local AMoney = MoneyMSG:ReadLong()
321 local SteamID = MoneyMSG:ReadString()
322 Money[SteamID] = AMoney
323 end
324 usermessage.Hook("sql_GetMoney", GetMoney );
325
326 function MoneyChange( msg )
327
328 MoneyAmount = msg:ReadShort()
329 MyMoney = msg:ReadLong()
330 MoneyAlpha = 255;
331 MoneyY = ScrH() - 75;
332
333 end
334 usermessage.Hook( "MoneyChange", MoneyChange );
335
336 // Frags
337
338 function _R.Player:Frags()
339 RunConsoleCommand("Frags", self:EntIndex())
340 return Frags[self:SteamID()] or 0
341 end
342
343 function GetFrags( FragsMSG )
344 local AFrags = FragsMSG:ReadLong()
345 local SteamID = FragsMSG:ReadString()
346 Frags[SteamID] = AFrags
347 end
348 usermessage.Hook("sql_GetFrags", GetFrags );
349
350 // Deaths
351
352 function _R.Player:Deaths()
353 RunConsoleCommand("Deaths", self:EntIndex())
354 return Deaths[self:SteamID()] or 0
355 end
356
357 function GetDeaths( DeathsMSG )
358 local ADeaths = DeathsMSG:ReadLong()
359 local SteamID = DeathsMSG:ReadString()
360 Deaths[SteamID] = ADeaths
361 end
362 usermessage.Hook("sql_GetDeaths", GetDeaths );
363
364end