Jump to content

[ RESOLVIDO ] Desalgemar


Recommended Posts

Posted (edited)

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
Posted
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?

Posted

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).

Posted

Acho que entendi muito obrigado, acabei esquecendo do elemento data que poderia estar usando um pouco mais básico numa linguagem lua, obrigado

Posted
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

Posted

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.

Posted

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?

Posted
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" ) 

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...