@@ -5,11 +5,15 @@ commands:Register("slay", function(playerid, args, argsCount, silent, prefix)
55
66 local hasAccess = exports [" admins" ]:HasFlags (playerid , " f" )
77
8- if not hasAccess then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.no_permission" )) end
8+ if not hasAccess then
9+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
10+ FetchTranslation (" admins.no_permission" ))
11+ end
912 end
1013
1114 if argsCount < 1 then
12- return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), string.format (FetchTranslation (" admins.slay.syntax" ), prefix ))
15+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
16+ string.format (FetchTranslation (" admins.slay.syntax" ), prefix ))
1317 end
1418
1519 local players = FindPlayersByTarget (args [1 ], false )
@@ -25,7 +29,10 @@ commands:Register("slay", function(playerid, args, argsCount, silent, prefix)
2529 for i = 1 , # players do
2630 local pl = players [i ]
2731 pl :Kill ()
28- ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (string.format (" admins.slay.message" ):gsub (" {ADMIN_NAME}" , admin and admin :CBasePlayerController ().PlayerName or " CONSOLE" ):gsub (" {PLAYER_NAME}" , pl :CBasePlayerController ().PlayerName )))
32+ ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
33+ FetchTranslation (" admins.slay.message" ):gsub (" {ADMIN_NAME}" ,
34+ admin and admin :CBasePlayerController ().PlayerName or " CONSOLE" ):gsub (" {PLAYER_NAME}" ,
35+ pl :CBasePlayerController ().PlayerName ))
2936 end
3037end )
3138
@@ -36,11 +43,15 @@ commands:Register("slap", function(playerid, args, argsCount, silent, prefix)
3643
3744 local hasAccess = exports [" admins" ]:HasFlags (playerid , " f" )
3845
39- if not hasAccess then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.no_permission" )) end
46+ if not hasAccess then
47+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
48+ FetchTranslation (" admins.no_permission" ))
49+ end
4050 end
4151
4252 if argsCount < 1 then
43- return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), string.format (FetchTranslation (" admins.slap.syntax" ), prefix ))
53+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
54+ string.format (FetchTranslation (" admins.slap.syntax" ), prefix ))
4455 end
4556
4657 local players = FindPlayersByTarget (args [1 ], false )
@@ -63,8 +74,11 @@ commands:Register("slap", function(playerid, args, argsCount, silent, prefix)
6374 vel .z = vel .z + math.random (100 , 300 )
6475 pl :CBaseEntity ().AbsVelocity = vel
6576 pl :CBaseEntity ().Health = pl :CBaseEntity ().Health - health
66-
67- ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.slap.message" ):gsub (" {ADMIN_NAME}" , admin and admin :CBasePlayerController ().PlayerName or " CONSOLE" ):gsub (" {PLAYER_NAME}" , pl :CBasePlayerController ().PlayerName ):gsub (" {HEALTH}" , tostring (health )))
77+
78+ ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
79+ FetchTranslation (" admins.slap.message" ):gsub (" {ADMIN_NAME}" ,
80+ admin and admin :CBasePlayerController ().PlayerName or " CONSOLE" ):gsub (" {PLAYER_NAME}" ,
81+ pl :CBasePlayerController ().PlayerName ):gsub (" {HEALTH}" , tostring (health )))
6882 end
6983end )
7084
@@ -76,11 +90,15 @@ commands:Register("rename", function(playerid, args, argsCount, silent, prefix)
7690
7791 local hasAccess = exports [" admins" ]:HasFlags (playerid , " j" )
7892
79- if not hasAccess then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.no_permission" )) end
93+ if not hasAccess then
94+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
95+ FetchTranslation (" admins.no_permission" ))
96+ end
8097 end
8198
8299 if argsCount < 2 then
83- return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), string.format (FetchTranslation (" admins.rename.syntax" ), prefix ))
100+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
101+ string.format (FetchTranslation (" admins.rename.syntax" ), prefix ))
84102 end
85103
86104 local players = FindPlayersByTarget (args [1 ], false )
@@ -90,7 +108,7 @@ commands:Register("rename", function(playerid, args, argsCount, silent, prefix)
90108
91109 local pl = players [1 ]
92110 local name = args [2 ]
93- if name == pl :CBasePlayerController ().PlayerName then
111+ if name == pl :CBasePlayerController ().PlayerName then
94112 return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), " Same name." ) -- translation
95113 end
96114
@@ -100,14 +118,19 @@ commands:Register("rename", function(playerid, args, argsCount, silent, prefix)
100118 end
101119
102120 local oldname = pl :CBasePlayerController ().PlayerName
103- pl :CBasePlayerController ().PlayerName = name
104-
105- ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.rename.message" ):gsub (" {ADMIN_NAME}" , admin :CBasePlayerController ().PlayerName ):gsub (" {PLAYER_NAME}" , pl :CBasePlayerController ().PlayerName )) -- translation
121+ pl :CBasePlayerController ().PlayerName = name
122+
123+ ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
124+ FetchTranslation (" admins.rename.message" ):gsub (" {ADMIN_NAME}" , admin :CBasePlayerController ().PlayerName ):gsub (
125+ " {PLAYER_NAME}" , pl :CBasePlayerController ().PlayerName )) -- translation
106126end )
107127
108128commands :Register (" csay" , function (playerid , args , argsCount , silent , prefix )
109129 if playerid == - 1 then
110- if argc < 1 then return print (string.format (FetchTranslation (" admins.csay.syntax" ), config :Fetch (" admins.prefix" ), " sw_" )) end
130+ if argc < 1 then
131+ return print (string.format (FetchTranslation (" admins.csay.syntax" ), config :Fetch (" admins.prefix" ),
132+ " sw_" ))
133+ end
111134
112135 local message = table.concat (args , " " )
113136 playermanager :SendMsg (MessageType .Center , string.format (" %s: %s" , " CONSOLE" , message ))
@@ -116,12 +139,19 @@ commands:Register("csay", function(playerid, args, argsCount, silent, prefix)
116139 if not player then return end
117140
118141 local hasAccess = exports [" admins" ]:HasFlags (playerid , " j" )
119- if not hasAccess then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.no_permission" )) end
142+ if not hasAccess then
143+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
144+ FetchTranslation (" admins.no_permission" ))
145+ end
120146
121- if argsCount < 1 then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), string.format (FetchTranslation (" admins.csay.syntax" ), prefix )) end
147+ if argsCount < 1 then
148+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
149+ string.format (FetchTranslation (" admins.csay.syntax" ), prefix ))
150+ end
122151
123152 local message = table.concat (args , " " )
124- playermanager :SendMsg (MessageType .Center , string.format (" %s: %s" , player :CBasePlayerController ().PlayerName , message ))
153+ playermanager :SendMsg (MessageType .Center ,
154+ string.format (" %s: %s" , player :CBasePlayerController ().PlayerName , message ))
125155 end
126156end )
127157
@@ -133,22 +163,38 @@ commands:Register("rcon", function(playerid, args, argsCount, silent, prefix)
133163 if not player then return end
134164
135165 local hasAccess = exports [" admins" ]:HasFlags (playerid , " m" )
136- if not hasAccess then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.no_permission" )) end
166+ if not hasAccess then
167+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
168+ FetchTranslation (" admins.no_permission" ))
169+ end
170+
171+ if argsCount < 1 then
172+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
173+ string.format (FetchTranslation (" admins.rcon.syntax" ), prefix ))
174+ end
137175
138- if argsCount < 1 then return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), string.format (FetchTranslation (" admins.rcon.syntax" ), prefix )) end
139-
140176 local cmd = table.concat (args , " " )
141- if cmd :find (" sw " ) then return player :SendMsg (MessageType .Chat , string.format (FetchTranslation (" admins.no_access" ), config :Fetch (" admins.prefix" ))) end
177+ if cmd :find (" sw " ) then
178+ return player :SendMsg (MessageType .Chat ,
179+ string.format (FetchTranslation (" admins.no_access" ), config :Fetch (" admins.prefix" )))
180+ end
142181
143182 server :Execute (cmd )
144183end )
145184
146185local ChangeMap = function (playerid , args , argsCount , silent )
147186 if playerid == - 1 then
148- if argc < 1 then return print (string.format (FetchTranslation (" admins.changemap.syntax" ), config :Fetch (" admins.prefix" ), " sw_" )) end
187+ if argc < 1 then
188+ return print (string.format (FetchTranslation (" admins.changemap.syntax" ),
189+ config :Fetch (" admins.prefix" ), " sw_" ))
190+ end
149191 local map = args [1 ]
150- if server :IsMapValid (map ) == 0 then return print (string.format (FetchTranslation (" admins.invalid_map" ), config :Fetch (" admins.prefix" ), map )) end
151- playermanager :SendMsg (MessageType .Chat , string.format (FetchTranslation (" admins.changing_map" ), config :Fetch (" admins.prefix" ), map ))
192+ if server :IsMapValid (map ) == 0 then
193+ return print (string.format (FetchTranslation (" admins.invalid_map" ),
194+ config :Fetch (" admins.prefix" ), map ))
195+ end
196+ playermanager :SendMsg (MessageType .Chat ,
197+ string.format (FetchTranslation (" admins.changing_map" ), config :Fetch (" admins.prefix" ), map ))
152198
153199 SetTimeout (3000 , function ()
154200 server :ChangeMap (map )
@@ -157,3 +203,178 @@ local ChangeMap = function(playerid, args, argsCount, silent)
157203end
158204commands :Register (" map" , ChangeMap )
159205commands :Register (" changemap" , ChangeMap )
206+
207+
208+ local AddSlapMenuSelectedPlayer = {}
209+ local AddSlapMenuSelectedHealth = {}
210+
211+ commands :Register (" addslapmenu" , function (playerid , args , argc , silent , prefix )
212+ if playerid == - 1 then return end
213+ local player = GetPlayer (playerid )
214+ if not player then return end
215+ if player :IsFakeClient () then return end
216+ if not exports [" admins" ]:HasFlags (playerid , " f" ) then
217+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
218+ FetchTranslation (" admins.no_permission" ))
219+ end
220+
221+ AddSlapMenuSelectedPlayer [playerid ] = nil
222+ AddSlapMenuSelectedHealth [playerid ] = nil
223+
224+ local players = {}
225+
226+ for i = 0 , playermanager :GetPlayerCap () - 1 , 1 do
227+ local pl = GetPlayer (i )
228+ if pl then
229+ if not pl :IsFakeClient () then
230+ table.insert (players , { pl :CBasePlayerController ().PlayerName , " sw_addslapmenu_selectplayer " .. i })
231+ end
232+ end
233+ end
234+
235+ if # players == 0 then
236+ table.insert (players , { FetchTranslation (" admins.no_players" ), " " })
237+ end
238+
239+ menus :RegisterTemporary (" addslapmenuadmintempplayer_" .. playerid , FetchTranslation (" admins.add.slap" ), config :Fetch (" admins.amenucolor" ), players )
240+
241+ player :HideMenu ()
242+ player :ShowMenu (" addslapmenuadmintempplayer_" .. playerid )
243+ end )
244+
245+ commands :Register (" addslapmenu_selectplayer" , function (playerid , args , argc , silent )
246+ if playerid == - 1 then return end
247+
248+ local player = GetPlayer (playerid )
249+ if not player then return end
250+ if player :IsFakeClient () then return end
251+ if not exports [" admins" ]:HasFlags (playerid , " f" ) then
252+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
253+ FetchTranslation (" admins.no_permission" ))
254+ end
255+
256+ if argc == 0 then return end
257+
258+ local pid = tonumber (args [1 ])
259+ if pid == nil then return end
260+ local pl = GetPlayer (pid )
261+ if not pl then return end
262+
263+ AddSlapMenuSelectedPlayer [playerid ] = pid
264+
265+ local options = {}
266+
267+ for i = 0 , config :FetchArraySize (" admin_commands.health" ) - 1 , 1 do
268+ table.insert (options , { config :Fetch (" admin_commands.health[" .. i .. " ]" ), " sw_addslapmenu_selecthealth \" " .. config :Fetch (" admin_commands.health[" .. i .. " ]" ).. " \" " })
269+ end
270+
271+ menus :RegisterTemporary (" addslapmenuadmintempplayerhealth_" .. playerid , FetchTranslation (" admins.slap.select_health" ), config :Fetch (" admins.amenucolor" ), options )
272+ player :HideMenu ()
273+ player :ShowMenu (" addslapmenuadmintempplayerhealth_" .. playerid )
274+ end )
275+
276+ commands :Register (" addslapmenu_selecthealth" , function (playerid , args , argc , silent , prefix )
277+ if playerid == - 1 then return end
278+ local player = GetPlayer (playerid )
279+ if not player then return end
280+ if player :IsFakeClient () then return end
281+ if not exports [" admins" ]:HasFlags (playerid , " d" ) then
282+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
283+ FetchTranslation (" admins.no_permission" ))
284+ end
285+
286+ if argc == 0 then return end
287+ if not AddSlapMenuSelectedPlayer [playerid ] then return player :HideMenu () end
288+
289+ local health = args [1 ]
290+ AddSlapMenuSelectedHealth [playerid ] = health
291+
292+ local pid = AddSlapMenuSelectedPlayer [playerid ]
293+ local pl = GetPlayer (pid )
294+ if not pl then
295+ player :HideMenu ()
296+ ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.not_connected" ))
297+ return
298+ end
299+
300+ local vel = pl :CBaseEntity ().AbsVelocity
301+ vel .x = vel .x + math.random (50 , 230 ) * (math.random (0 , 1 ) == 1 and - 1 or 1 )
302+ vel .y = vel .y + math.random (50 , 230 ) * (math.random (0 , 1 ) == 1 and - 1 or 1 )
303+ vel .z = vel .z + math.random (100 , 300 )
304+
305+ pl :CBaseEntity ().AbsVelocity = vel
306+ pl :CBaseEntity ().Health = pl :CBaseEntity ().Health - AddSlapMenuSelectedHealth [playerid ]
307+
308+ ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
309+ FetchTranslation (" admins.slap.message" ):gsub (" {ADMIN_NAME}" ,
310+ player and player :CBasePlayerController ().PlayerName ):gsub (" {PLAYER_NAME}" ,
311+ pl :CBasePlayerController ().PlayerName ):gsub (" {HEALTH}" , tostring (health )))
312+
313+ end )
314+
315+ local AddSlayMenuSelectedPlayer = {}
316+
317+ commands :Register (" addslaymenu" , function (playerid , args , argc , silent , prefix )
318+ if playerid == - 1 then return end
319+ local player = GetPlayer (playerid )
320+ if not player then return end
321+ if player :IsFakeClient () then return end
322+ if not exports [" admins" ]:HasFlags (playerid , " f" ) then
323+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
324+ FetchTranslation (" admins.no_permission" ))
325+ end
326+
327+ AddSlayMenuSelectedPlayer [playerid ] = nil
328+
329+ local players = {}
330+
331+ for i = 0 , playermanager :GetPlayerCap () - 1 , 1 do
332+ local pl = GetPlayer (i )
333+ if pl then
334+ if not pl :IsFakeClient () then
335+ table.insert (players , { pl :CBasePlayerController ().PlayerName , " sw_addslaymenu_selectplayer " .. i })
336+ end
337+ end
338+ end
339+
340+ if # players == 0 then
341+ table.insert (players , { FetchTranslation (" admins.no_players" ), " " })
342+ end
343+
344+ menus :RegisterTemporary (" addslaymenuadmintempplayer_" .. playerid , FetchTranslation (" admins.add.slay" ), config :Fetch (" admins.amenucolor" ), players )
345+
346+ player :HideMenu ()
347+ player :ShowMenu (" addslaymenuadmintempplayer_" .. playerid )
348+ end )
349+
350+ commands :Register (" addslaymenu_selectplayer" , function (playerid , args , argc , silent )
351+ if playerid == - 1 then return end
352+
353+ local player = GetPlayer (playerid )
354+ if not player then return end
355+ if player :IsFakeClient () then return end
356+ if not exports [" admins" ]:HasFlags (playerid , " f" ) then
357+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
358+ FetchTranslation (" admins.no_permission" ))
359+ end
360+
361+ if argc == 0 then return end
362+
363+ local pid = tonumber (args [1 ])
364+ if pid == nil then return end
365+ local pl = GetPlayer (pid )
366+ if not pl then return end
367+
368+ AddSlayMenuSelectedPlayer [playerid ] = pid
369+
370+ if pl :CBaseEntity ().Health <= 0 then
371+ return ReplyToCommand (playerid , config :Fetch (" admins.prefix" ), FetchTranslation (" admins.slay.already_dead" ):gsub (" {PLAYER_NAME}" , pl :CBasePlayerController ().PlayerName ))
372+ end
373+
374+ pl :Kill ()
375+ ReplyToCommand (playerid , config :Fetch (" admins.prefix" ),
376+ FetchTranslation (" admins.slay.message" ):gsub (" {ADMIN_NAME}" ,
377+ player and player :CBasePlayerController ().PlayerName ):gsub (" {PLAYER_NAME}" ,
378+ pl :CBasePlayerController ().PlayerName ))
379+
380+ end )
0 commit comments