Skip to content

Commit 2091b98

Browse files
committed
update(src): Menu
1 parent ad27798 commit 2091b98

File tree

5 files changed

+290
-26
lines changed

5 files changed

+290
-26
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"health": [
3+
5,
4+
10,
5+
15,
6+
20,
7+
25,
8+
30,
9+
35,
10+
40,
11+
45,
12+
50,
13+
55,
14+
60,
15+
65,
16+
70,
17+
75,
18+
80,
19+
85,
20+
90,
21+
95,
22+
100
23+
]
24+
}

plugins/admins_commands/commands.lua

Lines changed: 245 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3037
end)
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
6983
end)
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
106126
end)
107127

108128
commands: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
126156
end)
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)
144183
end)
145184

146185
local 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)
157203
end
158204
commands:Register("map", ChangeMap)
159205
commands: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

Comments
 (0)