Apenas uma otimização para evitar condição negativa: (e também corrigi umas coisinhas erradas)
addCommandHandler ("pf", function (thePlayer, cmd, nick)
if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup ("PF_CMD"))) then -- Se o jogador estiver na ACL "PF_CMD", então:
if (not nick) then -- Aqui eu separei em 3 linhas apenas pra você não se perder na indentação.
return outputChatBox ("ERRO! Informe um nick por gentileza!", thePlayer, 255, 0, 0) -- Se nenhum nick for informado, manda esse feedback e cancela a função.
end
local jogador = getPlayerFromPartialName (nick)
if (jogador) then -- Se algum jogador com o nick informado for encontrado, então:
if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (jogador)), aclGetGroup("PF"))) then -- Se o jogador estiver na ACL "PF", então:
aclGroupRemoveObject (aclGetGroup("PF"), "user."..getAccountName (getPlayerAccount (jogador))) -- Remove o jogador da ACL "PF".
outputChatBox ("Você removeu o jogador '"..string.gsub(getPlayerName (jogador), "#%x%x%x%x%x%x", "").."' do grupo da PF!", thePlayer, 0, 255, 0)
outputChatBox ("O jogador '"..string.gsub(getPlayerName (thePlayer), "#%x%x%x%x%x%x", "").."' removeu você do grupo da PF.", jogador, 255, 0, 0)
else -- Senão: (se o jogador não estiver na ACL da "PF", então:)
aclGroupAddObject (aclGetGroup("PF"), "user."..getAccountName (getPlayerAccount (jogador))) -- Adiciona o jogador na ACL "PF".
outputChatBox ("Você adicionou o jogador '"..string.gsub(getPlayerName (jogador), "#%x%x%x%x%x%x", "").."' ao grupo da PF!", thePlayer, 0, 255, 0)
outputChatBox ("O jogador '"..string.gsub(getPlayerName (thePlayer), "#%x%x%x%x%x%x", "").."' adicionou você ao grupo da PF.", jogador, 0, 255, 0)
end
else -- Senão: (se nenhum jogador com esse nick for encontrado, então:)
outputChatBox ("ERRO! Nenhum jogador com esse nick foi encontrado!", thePlayer, 255, 0, 0)
end
else -- Senão: (Se o jogador não estiver na ACL "PF_CMD", então:)
outputChatBox ("Você não tem permissão!", thePlayer, 255, 0, 0)
end
end)
function getPlayerFromPartialName(name)
local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
if name then
for _, player in ipairs(getElementsByType("player")) do
local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
if name_:find(name, 1, true) then
return player
end
end
end
end
Obs: É necessário que seu resource tenha permissão Admin.