Jump to content

Me ajudem no problema


Recommended Posts

Olá eu tento fazer para que mostra o dinheiro do jogador (Isso eu já conseguir) e mostre se ele tem cnh mais essa parte de mostrar se ele tem cnh não conseguir me ajudem? Código: 

function revistar_jogador1 ( thePlayer, comando, nick )
    if nick then
        if getPlayerFromPartialName ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policial" ) ) then -- Acl Pra Quem Pode Usar o Comando
                local player_a_ser_revistado    =   getPlayerFromPartialName ( nick )
                local Hab1                      =   getElementData ( player_a_ser_revistado, "DNL:Categoria(A)" )                
                local dinheiro_do_jogador       =   getPlayerMoney ( playerMoney )
                local nick_do_jogador           =   getPlayerName ( player_a_ser_revistado )
                local nick_do_policial          =   getPlayerName ( thePlayer )
                local estrelas_de_procurado     =   getPlayerWantedLevel ( player_a_ser_revistado )
                local policiax, policiay, policiaz = getElementPosition ( thePlayer ) -- Encontrar posição do policial
                local revistadox, revistadoy, revistadoz = getElementPosition ( player_a_ser_revistado ) -- Encontrar posição de quem sera revistado
                local dist = getDistanceBetweenPoints3D ( policiax, policiay, policiaz, revistadox, revistadoy, revistadoz ) -- Calcular a distancia entre os dois elementos 
                    if ( dist > 5 )  then -- se a distancia for 5 executara a função a seguir
                    outputChatBox("Chegue mais perto para executar o comando", thePlayer, 255, 255, 255, true) -- Chat Box 
                    elseif ( dist < 4 )then -- Caso ao contrario a distancia for 4 executara a função a seguir
                    setPedAnimation( thePlayer, "POLICE", "plc_drgbst_01", 3100, true, false, false, false)
                    --outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ff0000Policial #ffffff"..nick_do_policial.." #c1c1c1esta #ff0000Revistando #c1c1c1o #ff0000Suspeito "..nick_do_jogador.."", root, 255, 255, 255, true) -- Chat Box 
                    setTimer ( function()
                    outputChatBox("#bebebeInformações do cidadão", thePlayer, 255, 255, 255, true)                      
                    outputChatBox("#bebebeDinheiro: "..getElementData(player_a_ser_revistado,"playerMoney"), thePlayer, 255, 255, 255, true)
                    outputChatBox("#bebebeTeste: "..getElementData(player_a_ser_revistado,"DNL:Categoria(A)"), thePlayer, 255, 255, 255, true)                    
                    end, 3390, 1 )  
                    triggerClientEvent(thePlayer, "doShowDXProgressBar", thePlayer) -- Chamar evento do client
                end
            else            
                outputChatBox("Somente policiais podem usar esse comando!", thePlayer, 255, 255, 255, true) -- Se voce nao for da acl voce nao tera permissao a este comando
        end
    end
end
end
addCommandHandler ( "vercnh", revistar_jogador1 )

 

Link to comment

Tente assim:

Apontei as correções no próprio código.

OBS: Não testado.

function revistar_jogador1 (thePlayer, comando, nick)
	if nick then
		if getPlayerFromPartialName (nick) then
			local accName = getAccountName (getPlayerAccount (thePlayer))
			if isObjectInACLGroup ("user."..accName, aclGetGroup("Policial")) then --// Somente quem estiver na ACL "Policia" poderá usar o comando.
				local player_a_ser_revistado = getPlayerFromPartialName(nick)              
				local dinheiro_do_jogador = getPlayerMoney (player_a_ser_revistado) --// Você estava usando "playerMoney" como elemento.
				local nick_do_jogador = getPlayerName(player_a_ser_revistado)
				local nick_do_policial = getPlayerName(thePlayer)
				local estrelas_de_procurado = getPlayerWantedLevel(player_a_ser_revistado)
				local policiax, policiay, policiaz = getElementPosition (thePlayer) --// Encontrar posição do policial
				local revistadox, revistadoy, revistadoz = getElementPosition ( layer_a_ser_revistado) --// Encontrar posição de quem será revistado
				local dist = getDistanceBetweenPoints3D (policiax, policiay, policiaz, revistadox, revistadoy, revistadoz) --// Calcular a distancia entre os dois elementos
				if dist <= 5 then
					setPedAnimation(thePlayer, "POLICE", "plc_drgbst_01", 3100, true, false, false, false)
					-- outputChatBox("[#ff0000POLICIA#000000] #c1c1c1O #ff0000Policial #ffffff"..nick_do_policial.." #c1c1c1esta #ff0000Revistando #c1c1c1o #ff0000Suspeito "..nick_do_jogador.."", root, 0, 0, 0, true) --// ChatBox
					setTimer (function()
						outputChatBox("Informações do cidadão", thePlayer, 190, 190, 190)                      
						outputChatBox("Dinheiro: "..dinheiro_do_jogador..""), thePlayer, 190, 190, 190) --// Você estava tentando obter o dinheiro do player por Data.
						if (getElementData(player_a_ser_revistado, "DNL:Categoria(A)")) then
							outputChatBox("CNH: Possui", thePlayer, 190, 190, 190)
						else
							outputChatBox("CNH: Não possui", thePlayer, 190, 190, 190)
						end
					end, 3390, 1)
					triggerClientEvent(thePlayer, "doShowDXProgressBar", thePlayer) --// Chamar evento do client
				else
					outputChatBox("Chegue mais perto jogador pera revistá-lo", thePlayer)
				end
			else            
				outputChatBox("Somente policiais podem usar esse comando", thePlayer, 255, 255, 255, true) --// Se quem deu o comando não estiver na ACL, passa um chatbox para o mesmo.
			end --// Estava faltando esse "end" para fechar teu escopo.
		end
	end
end
addCommandHandler("vercnh", revistar_jogador1)

 

Edited by #DeltaSCR
Bugs na Identação
Link to comment
  • Moderators

Não se esqueça que a função getPlayerFromPartialName não é uma função do próprio MTA, você deve incluí-la no seu código:

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

O comando de depuração /debugscript 3 também é necessário para você encontrar os erros de execução no código.

E também o element-data da cnh não vai existir no seu servidor de uma forma mágica, você deve ter esse script da habilitação no seu servidor e tenha certeza que o element-data esteja funcionando como esperado.

@Luccas

 

Edited by DNL291
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...