Jump to content

[ RESOLVIDO ] Desalgemar


Recommended Posts

Bom eu quero que esse função de desalgemar ela só funciona se a uma outra função estiver executada, mas não funcionou tem algum problema? se a função algemar_jogador for verdadeira, em seguida executara essa função "if algemar_jogador == true then" mas ela não funciona

function desalgemar_jogador (thePlayer, _, nick, algemar_jogador) 
        if nick then  
           if getPlayerFromPartialName ( nick ) then 
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ComandosPolicia") ) then  
                local player_a_ser_algemado = getPlayerFromPartialName ( nick ) 
                local nick_do_jogador = getPlayerName ( player_a_ser_algemado ) 
                local policial = getPlayerName(thePlayer) 
            if algemar_jogador == true then  
                setPedAnimation ( player_a_ser_algemado ) 
                setElementFrozen ( player_a_ser_algemado, false )  
                outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EO #FC0303Jogador "..nick_do_jogador.."#A09E9E Foi Desalgemado pelo #FC0303Policial "..policial..".", root, 255, 255, 255, true) 
                outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EVocê Foi Desalgemado! ", player_a_ser_algemado, 255, 255, 255, true) 
            else 
                outputChatBox ("#000000[#FC0303POLICIA#000000]#A09E9EO Jogador Nao Esta Algemado", policial, 255, 255, 255, true) 
            end 
            else 
                outputChatBox("#000000[#ff0000POLICIA#000000]#FF0000Você não tem permissão para usar este comando!", thePlayer, 255, 255, 255, true) 
            end 
        end 
    end 
end 
addCommandHandler ( "desalgemar", desalgemar_jogador) 

já tentei de varias formas como elseif pra não afetar o else da acl group mas enfim n deu nada certo..

Edited by Guest
Link to comment
Bom eu quero que esse função de desalgemar ela só funciona se a uma outra função estiver executada, mas não funcionou tem algum problema? se a função algemar_jogador for verdadeira, em seguida executara essa função "if algemar_jogador == true then" mas ela não funciona
function desalgemar_jogador (thePlayer, _, nick, algemar_jogador) 
        if nick then  
           if getPlayerFromPartialName ( nick ) then 
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ComandosPolicia") ) then  
                local player_a_ser_algemado = getPlayerFromPartialName ( nick ) 
                local nick_do_jogador = getPlayerName ( player_a_ser_algemado ) 
                local policial = getPlayerName(thePlayer) 
            if algemar_jogador == true then  
                setPedAnimation ( player_a_ser_algemado ) 
                setElementFrozen ( player_a_ser_algemado, false )  
                outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EO #FC0303Jogador "..nick_do_jogador.."#A09E9E Foi Desalgemado pelo #FC0303Policial "..policial..".", root, 255, 255, 255, true) 
                outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EVocê Foi Desalgemado! ", player_a_ser_algemado, 255, 255, 255, true) 
            else 
                outputChatBox ("#000000[#FC0303POLICIA#000000]#A09E9EO Jogador Nao Esta Algemado", policial, 255, 255, 255, true) 
            end 
            else 
                outputChatBox("#000000[#ff0000POLICIA#000000]#FF0000Você não tem permissão para usar este comando!", thePlayer, 255, 255, 255, true) 
            end 
        end 
    end 
end 
addCommandHandler ( "desalgemar", desalgemar_jogador) 

já tentei de varias formas como elseif pra não afetar o else da acl group mas enfim n deu nada certo..

na onde o

algemar_jogador 

recebe o valor true?

Link to comment

Se você não modificou o código que lhe mandei no outro tópico algemar_jogador vai ser uma função e não um valor true/false Sendo assim você não pode usa-la para checar se um jogador está algemado, Oque você pode fazer é usar tabelas ou element datas, Vou explicar o modo com tabelas.

Você primeiro devera criar a tabela em si, Basta usar isso no inicio do script:

minhaTabela = {} 

Agora na parte de algemar o jogador você usa

minhaTabela[thePlayer] = true 

... E na de desalgemar você checa se ele está algemado usando:

if minhaTabela[thePlayer] then 
    -- jogador algemado 
else 
    -- jogador desalgemado 
end 

obs: Não esqueça de definir que o jogador não está mais algemado (usando minhaTabela[thePlayer] = false).

Se você quiser pode ler mais sobre tabelas aqui (Na parte de Tabelas Lua).

Link to comment
local player_a_ser_algemado = getPlayerFromPartialName ( nick ) 
local nick_do_jogador = getPlayerName ( player_a_ser_algemado ) 
setElementData ( player_a_ser_algemado, "Algemado", nick_do_jogador) 

Está Correto? , Pois quando vou executar a função /desalgemar ela não reconhece a element data '-'

local player_a_ser_desalgemado = getPlayerFromPartialName ( nick ) 
local policial = getPlayerName(thePlayer) 
if getElementData(player_a_ser_desalgemado, "Algemado") then 
else 
                outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EO Jogador Nao Esta Algemado Pra Executar Este Comando! ", policial, 255, 255, 255, true)  

Aviso não estou colocando a função completa por acaso a ver roubo

Link to comment

Tente assim:

function desalgemar_jogador (thePlayer, _, nick ) 
    if nick then 
        if getPlayerFromPartialName ( nick ) then 
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin") ) then 
                local player_a_ser_desalgemado = getPlayerFromPartialName ( nick ) 
                local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado ) 
                local policial = getPlayerName(thePlayer) 
                if getElementData(player_a_ser_desalgemado, "Algemado") then  
                    setPedAnimation ( player_a_ser_desalgemado ) 
                    setElementFrozen ( player_a_ser_desalgemado, false ) 
                    outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EO #FC0303Jogador "..nick_do_jogador.."#A09E9E Foi Desalgemado pelo #FC0303Policial "..policial..".", root, 255, 255, 255, true) 
                    outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EVocê Foi Desalgemado! ", player_a_ser_desalgemado, 255, 255, 255, true) 
                else 
                    outputChatBox ("#000000[#FC0303POLICIA#000000]#A09E9EO Jogador Nao Esta Algemado", thePlayer, 255, 255, 255, true) 
                end 
            else 
                outputChatBox("#000000[#ff0000POLICIA#000000]#FF0000Você não tem permissão para usar este comando!", thePlayer, 255, 255, 255, true) 
            end 
        end 
    end 
end 
addCommandHandler ( "desalgemar", desalgemar_jogador) 

Se não funcionar coloque aqui oque o /debugscript 3 mostra.

--

Aqui:

outputChatBox ( "#000000[#FC0303POLICIA#000000]#A09E9EO Jogador Nao Esta Algemado Pra Executar Este Comando! ", policial, 255, 255, 255, true) 

Você estava usando policial como o jogador que a mensagem será enviada, só que policial é uma string (o nome do jogador) e não um elemento, O correto seria usar thePlayer.

Link to comment
Funcionou, porém agora vem outra questão é que ele vai ficar com esse elemento data até sair do servidor, então eu posso executar o /desalgemar mesmo não está algemado, bom tem alguma função que retira o elemento ou não?
setElementData ( player_a_ser_desalgemado, "Algemado", nil ) 
-- ou 
removeElementData ( player_a_ser_desalgemado, "Algemado" ) 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...