Jump to content

SetElementData (CNH)


Recommended Posts

Tenho um Script de CNH e queria criar um método de dar e remover  elas por comando sem ter que fazer as aulas, por ex /cnhcarro nome e ia dar a carta de carro pro player e apareceria um output falando que foi dada a carta para o player, ou retornaria por ex "O player já tem essa carta", Já a de tirar seria: /removecnhcarro nome (é exemplo) e tiraria a carta de carro do player e apareceria um output falando q foi removida ou retornaria que ele não tem essa carta para ser removida, tentei umas func aq mais sem sucesso, se alguem poder me ajudar com pelo menos o basico eu ja fico mt grato.

Obs: Ao terminar a aula ele seta isso:

setElementData( source, "Habilitacoes:Carros", true)

 

Link to comment

Faça assim:

 

addCommandHandler( "darcnh", function (player, cmd, value)
	local acc = getPlayerAccount(player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ( "Admin" ) ) then
		if not value then
			return outputChatBox ("Uso correto: /"..cmd.." < Nick >", player, 255, 30, 30)
		end
		
		local targetPlayer = getPlayerFromPartialName( tostring(value) )
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		
		local targetAcc = getPlayerAccount(targetPlayer)
		
		if isGuestAccount(targetAcc) then 
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30)
		end
		
		if not getElementData (player, "Habilitacoes:Carros") then
			if setElementData (player, "Habilitacoes:Carros", true) then
				outputChatBox ("Você deu a habilitação ao jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
				outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' lhe deu uma habilitação.", targetPlayer, 0, 255, 0)
			else
				outputChatBox ("Este jogador já tem uma habilitação.", player, 255, 30, 30)
			end	
		end	
	else
		outputChatBox ( "Você não tem permissão !", player, 230, 20, 20 )
	end
end)

addCommandHandler( "tirarcnh", function (player, cmd, value)
	local acc = getPlayerAccount(player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ( "Admin" ) ) then
		if not value then
			return outputChatBox ("Uso correto: /"..cmd.." < Nick >", player, 255, 30, 30)
		end
		
		local targetPlayer = getPlayerFromPartialName( tostring(value) )
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		
		local targetAcc = getPlayerAccount(targetPlayer)
		
		if isGuestAccount(targetAcc) then 
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30)
		end
		
		if setElementData (player, "Habilitacoes:Carros", false) then
			outputChatBox ("Você retirou a habilitação do jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
			outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' retirou sua habilitação.", targetPlayer, 0, 255, 0)
		else
			outputChatBox ("Este jogador não tem uma habilitação.", player, 255, 30, 30)
		end		
	else
		outputChatBox ( "Você não tem permissão !", player, 230, 20, 20 )
	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

Da próxima vez você mostre o código que tentou fazer para corrigirmos.

OBS: Não testado.

  • Thanks 1
Link to comment
On 10/03/2019 at 15:26, Jonas^ said:

Faça assim:

 


addCommandHandler( "darcnh", function (player, cmd, value)
	local acc = getPlayerAccount(player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ( "Admin" ) ) then
		if not value then
			return outputChatBox ("Uso correto: /"..cmd.." < Nick >", player, 255, 30, 30)
		end
		
		local targetPlayer = getPlayerFromPartialName( tostring(value) )
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		
		local targetAcc = getPlayerAccount(targetPlayer)
		
		if isGuestAccount(targetAcc) then 
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30)
		end
		
		if not getElementData (player, "Habilitacoes:Carros") then
			if setElementData (player, "Habilitacoes:Carros", true) then
				outputChatBox ("Você deu a habilitação ao jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
				outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' lhe deu uma habilitação.", targetPlayer, 0, 255, 0)
			else
				outputChatBox ("Este jogador já tem uma habilitação.", player, 255, 30, 30)
			end	
		end	
	else
		outputChatBox ( "Você não tem permissão !", player, 230, 20, 20 )
	end
end)

addCommandHandler( "tirarcnh", function (player, cmd, value)
	local acc = getPlayerAccount(player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ( "Admin" ) ) then
		if not value then
			return outputChatBox ("Uso correto: /"..cmd.." < Nick >", player, 255, 30, 30)
		end
		
		local targetPlayer = getPlayerFromPartialName( tostring(value) )
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		
		local targetAcc = getPlayerAccount(targetPlayer)
		
		if isGuestAccount(targetAcc) then 
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30)
		end
		
		if setElementData (player, "Habilitacoes:Carros", false) then
			outputChatBox ("Você retirou a habilitação do jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
			outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' retirou sua habilitação.", targetPlayer, 0, 255, 0)
		else
			outputChatBox ("Este jogador não tem uma habilitação.", player, 255, 30, 30)
		end		
	else
		outputChatBox ( "Você não tem permissão !", player, 230, 20, 20 )
	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

Da próxima vez você mostre o código que tentou fazer para corrigirmos.

OBS: Não testado.


Bom, não funcionou, provavelmente deve ser algum erro no ElementData, Vou dar uma fuçada pra ve se consigo arrumar, No teste fala que eu ja dei a CNH e se eu Tento dar novamente retorna que eu ja tenho essa cnh, porém ao tentar entrar em um veiculo ele fala que ainda eu estou sem.

Edit: Olhei no Debugscript 3 e n acusa nada.

Desculpa a demora para dar resposta...

Edited by Madruga
Link to comment
3 hours ago, Jonas^ said:

Mostre o  código da carteira pra gente ver.

O código é grandinho mais tai..

Edit: O código em q a carta é dada ta mais ou menos na linha 323

 

-- ( Começo ) Percurso de Carro

CarroRX, CarroRY, CarroRZ       = -270.44916, 1547.39783, 75.35938 -- Coordenadas de Respawn do Carro
CarroRotA, CarroRotB, CarroRotC = 0, 0, 135.25268554688 -- Rotação do Veiculo ao Spawnar
CarroID                         = 506 -- ID do Carro
HabValorCarro                   = 5000 -- Valor da Habilitação Categoria "Carros"
CarrosDanoParaReprovar          = 950 -- 95%

MsgCarro01 = "Prova Iniciada, Siga-os Checkpoints Para Concluir o seu Objetivo!"
MsgCarro02 = "Você Não Tem Dinheiro Suficiente!"
MsgCarro03 = "Você Ja Possui Essa Habilitação!"
MsgCarro04 = "Você Reprovou no Teste, Evite Bater na Proxima Vez!"
MsgCarro05 = "Carteira de Habilitação Categoria 'Carros' Concedida!"
MsgCarro06 = "Você Saiu do Veiculo, Por Esse Motivo o Teste foi Cancelado!"
MsgCarro07 = "Você Morreu, Por Esse Motivo o Teste foi Cancelado!"

CarroX01, CarroY01, CarroZ01 = -304.31372, 1497.35303, 75.67019
CarroX02, CarroY02, CarroZ02 = -297.91571, 1412.75647, 72.31325
CarroX03, CarroY03, CarroZ03 = -358.71982, 1398.42810, 58.37130
CarroX04, CarroY04, CarroZ04 = -383.39719, 1397.47485, 42.07113
CarroX05, CarroY05, CarroZ05 = -453.04425, 1579.76025, 36.17015
CarroX06, CarroY06, CarroZ06 = -403.00198, 1714.00647, 40.57639
CarroX07, CarroY07, CarroZ07 = -388.58905, 1880.69397, 55.31573
CarroX08, CarroY08, CarroZ08 = -429.19666, 1818.11926, 67.87206
CarroX09, CarroY09, CarroZ09 = -468.87231, 1869.95264, 82.43024
CarroX10, CarroY10, CarroZ10 = -397.42804, 2034.05908, 65.20287
CarroX11, CarroY11, CarroZ11 = -458.04187, 2028.86401, 60.53470
CarroX12, CarroY12, CarroZ12 = -541.70868, 2008.56213, 60.21884
CarroX13, CarroY13, CarroZ13 = -652.17749, 2064.89575, 60.21832
CarroX14, CarroY14, CarroZ14 = -757.40155, 2064.42749, 60.22342
CarroX15, CarroY15, CarroZ15 = -851.88013, 2019.84998, 60.22160
CarroX16, CarroY16, CarroZ16 = -912.48688, 2008.76563, 60.94514

MarkerCarro01 = createMarker ( CarroX01, CarroY01, CarroZ01 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro01 = createBlipAttachedTo ( MarkerCarro01, 0 )
setElementVisibleTo ( MarkerCarro01, root, false )
setElementVisibleTo ( BlipCarro01, root, false )

MarkerCarro02 = createMarker ( CarroX02, CarroY02, CarroZ02 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro02 = createBlipAttachedTo ( MarkerCarro02, 0 )
setElementVisibleTo ( MarkerCarro02, root, false )
setElementVisibleTo ( BlipCarro02, root, false )

MarkerCarro03 = createMarker ( CarroX03, CarroY03, CarroZ03 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro03 = createBlipAttachedTo ( MarkerCarro03, 0 )
setElementVisibleTo ( MarkerCarro03, root, false )
setElementVisibleTo ( BlipCarro03, root, false )

MarkerCarro04 = createMarker ( CarroX04, CarroY04, CarroZ04 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro04 = createBlipAttachedTo ( MarkerCarro04, 0 )
setElementVisibleTo ( MarkerCarro04, root, false )
setElementVisibleTo ( BlipCarro04, root, false )

MarkerCarro05 = createMarker ( CarroX05, CarroY05, CarroZ05 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro05 = createBlipAttachedTo ( MarkerCarro05, 0 )
setElementVisibleTo ( MarkerCarro05, root, false )
setElementVisibleTo ( BlipCarro05, root, false )

MarkerCarro06 = createMarker ( CarroX06, CarroY06, CarroZ06 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro06 = createBlipAttachedTo ( MarkerCarro06, 0 )
setElementVisibleTo ( MarkerCarro06, root, false )
setElementVisibleTo ( BlipCarro06, root, false )

MarkerCarro07 = createMarker ( CarroX07, CarroY07, CarroZ07 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro07 = createBlipAttachedTo ( MarkerCarro07, 0 )
setElementVisibleTo ( MarkerCarro07, root, false )
setElementVisibleTo ( BlipCarro07, root, false )

MarkerCarro08 = createMarker ( CarroX08, CarroY08, CarroZ08 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro08 = createBlipAttachedTo ( MarkerCarro08, 0 )
setElementVisibleTo ( MarkerCarro08, root, false )
setElementVisibleTo ( BlipCarro08, root, false )

MarkerCarro09 = createMarker ( CarroX09, CarroY09, CarroZ09 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro09 = createBlipAttachedTo ( MarkerCarro09, 0 )
setElementVisibleTo ( MarkerCarro09, root, false )
setElementVisibleTo ( BlipCarro09, root, false )

MarkerCarro10 = createMarker ( CarroX10, CarroY10, CarroZ10 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro10 = createBlipAttachedTo ( MarkerCarro10, 0 )
setElementVisibleTo ( MarkerCarro10, root, false )
setElementVisibleTo ( BlipCarro10, root, false )

MarkerCarro11 = createMarker ( CarroX11, CarroY11, CarroZ11 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro11 = createBlipAttachedTo ( MarkerCarro11, 0 )
setElementVisibleTo ( MarkerCarro11, root, false )
setElementVisibleTo ( BlipCarro11, root, false )

MarkerCarro12 = createMarker ( CarroX12, CarroY12, CarroZ12 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro12 = createBlipAttachedTo ( MarkerCarro12, 0 )
setElementVisibleTo ( MarkerCarro12, root, false )
setElementVisibleTo ( BlipCarro12, root, false )

MarkerCarro13 = createMarker ( CarroX13, CarroY13, CarroZ13 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro13 = createBlipAttachedTo ( MarkerCarro13, 0 )
setElementVisibleTo ( MarkerCarro13, root, false )
setElementVisibleTo ( BlipCarro13, root, false )

MarkerCarro14 = createMarker ( CarroX14, CarroY14, CarroZ14 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro14 = createBlipAttachedTo ( MarkerCarro14, 0 )
setElementVisibleTo ( MarkerCarro14, root, false )
setElementVisibleTo ( BlipCarro14, root, false )

MarkerCarro15 = createMarker ( CarroX15, CarroY15, CarroZ15 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro15 = createBlipAttachedTo ( MarkerCarro15, 0 )
setElementVisibleTo ( MarkerCarro15, root, false )
setElementVisibleTo ( BlipCarro15, root, false )

MarkerCarro16 = createMarker ( CarroX16, CarroY16, CarroZ16 -1, "checkpoint", 3, 255 ,0 ,0, 95)
BlipCarro16 = createBlipAttachedTo ( MarkerCarro16, 0 )
setElementVisibleTo ( MarkerCarro16, root, false )
setElementVisibleTo ( BlipCarro16, root, false )

AutoEscolaCarro = {}

function CarrosHab(entrar)
if getElementData ( source, "PontosNacarteira" ) > 0 then
exports.Scripts_Dxmessages:outputDx(source, MsgMultas, "error") return end
if not getElementData(source, "Habilitacoes:Carros" ) == true then
if getPlayerMoney(source) >= HabValorCarro then
takePlayerMoney(source, HabValorCarro)
if AutoEscolaCarro[source] and isElement( AutoEscolaCarro[source] ) then destroyElement ( AutoEscolaCarro[source] )
AutoEscolaCarro[source] = nil
end
setElementInterior ( source, 0 )
setElementDimension ( source, 0 )
triggerClientEvent ( source, "AirNew:FecharAutoEscola", root )
AutoEscolaCarro[source] = createVehicle( CarroID, CarroRX, CarroRY, CarroRZ )
setElementRotation ( AutoEscolaCarro[source], CarroRotA, CarroRotB, CarroRotC )
setVehicleLocked ( AutoEscolaCarro[source], true )
warpPedIntoVehicle ( source, AutoEscolaCarro[source] )
setCameraTarget ( source )
setElementData ( source, "Carteira:StartCarro00", true )
setElementData ( source, "AirNew_TirandoCarta", "Sim" )
setElementVisibleTo ( MarkerCarro01, source, true )
setElementVisibleTo ( BlipCarro01, source, true )
exports.Scripts_Dxmessages:outputDx(source, MsgCarro01, "info")
else
exports.Scripts_Dxmessages:outputDx(source, MsgCarro02, "error")
end
else
exports.Scripts_Dxmessages:outputDx(source, MsgCarro03, "warning")
end
end
addEvent("Hab:Carro", true)
addEventHandler ( "Hab:Carro", root, CarrosHab)

function emarkerCarros(marker,md) 
	if (md) then
	  if AutoEscolaCarro[source] and isElement( AutoEscolaCarro[source] ) then
		if marker == MarkerCarro01 then
		if getElementData( source, "Carteira:StartCarro00", true ) then
        setElementVisibleTo ( MarkerCarro01, source, false )
        setElementVisibleTo ( BlipCarro01, source, false )
        setElementVisibleTo ( MarkerCarro02, source, true )
        setElementVisibleTo ( BlipCarro02, source, true )
        setElementData ( source, "Carteira:StartCarro01", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro00", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro02 then
        if getElementData( source, "Carteira:StartCarro01", true ) then
        setElementVisibleTo ( MarkerCarro02, source, false )
        setElementVisibleTo ( BlipCarro02, source, false )
        setElementVisibleTo ( MarkerCarro03, source, true )
        setElementVisibleTo ( BlipCarro03, source, true )
        setElementData ( source, "Carteira:StartCarro02", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro01", false )
        playSoundFrontEnd ( source, 43 )
		end
		end
		if marker == MarkerCarro03 then
        if getElementData( source, "Carteira:StartCarro02", true ) then
        setElementVisibleTo ( MarkerCarro03, source, false )
        setElementVisibleTo ( BlipCarro03, source, false )
        setElementVisibleTo ( MarkerCarro04, source, true )
        setElementVisibleTo ( BlipCarro04, source, true )
        setElementData ( source, "Carteira:StartCarro03", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro02", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro04 then
        if getElementData( source, "Carteira:StartCarro03", true ) then
        setElementVisibleTo ( MarkerCarro04, source, false )
        setElementVisibleTo ( BlipCarro04, source, false )
        setElementVisibleTo ( MarkerCarro05, source, true )
        setElementVisibleTo ( BlipCarro05, source, true )
        setElementData ( source, "Carteira:StartCarro04", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro03", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro05 then
        if getElementData( source, "Carteira:StartCarro04", true ) then
        setElementVisibleTo ( MarkerCarro05, source, false )
        setElementVisibleTo ( BlipCarro05, source, false )
        setElementVisibleTo ( MarkerCarro06, source, true )
        setElementVisibleTo ( BlipCarro06, source, true )
        setElementData ( source, "Carteira:StartCarro05", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro04", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro06 then
        if getElementData( source, "Carteira:StartCarro05", true ) then
        setElementVisibleTo ( MarkerCarro06, source, false )
        setElementVisibleTo ( BlipCarro06, source, false )
        setElementVisibleTo ( MarkerCarro07, source, true )
        setElementVisibleTo ( BlipCarro07, source, true )
        setElementData ( source, "Carteira:StartCarro06", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro05", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro07 then
        if getElementData( source, "Carteira:StartCarro06", true ) then
        setElementVisibleTo ( MarkerCarro07, source, false )
        setElementVisibleTo ( BlipCarro07, source, false )
        setElementVisibleTo ( MarkerCarro08, source, true )
        setElementVisibleTo ( BlipCarro08, source, true )
        setElementData ( source, "Carteira:StartCarro07", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro06", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro08 then
        if getElementData( source, "Carteira:StartCarro07", true ) then
        setElementVisibleTo ( MarkerCarro08, source, false )
        setElementVisibleTo ( BlipCarro08, source, false )
        setElementVisibleTo ( MarkerCarro09, source, true )
        setElementVisibleTo ( BlipCarro09, source, true )
        setElementData ( source, "Carteira:StartCarro08", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro07", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro09 then
        if getElementData( source, "Carteira:StartCarro08", true ) then
        setElementVisibleTo ( MarkerCarro09, source, false )
        setElementVisibleTo ( BlipCarro09, source, false )
        setElementVisibleTo ( MarkerCarro10, source, true )
        setElementVisibleTo ( BlipCarro10, source, true )
        setElementData ( source, "Carteira:StartCarro09", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro08", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro10 then
        if getElementData( source, "Carteira:StartCarro09", true ) then
        setElementVisibleTo ( MarkerCarro10, source, false )
        setElementVisibleTo ( BlipCarro10, source, false )
        setElementVisibleTo ( MarkerCarro11, source, true )
        setElementVisibleTo ( BlipCarro11, source, true )
        setElementData ( source, "Carteira:StartCarro10", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro09", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro11 then
        if getElementData( source, "Carteira:StartCarro10", true ) then
        setElementVisibleTo ( MarkerCarro11, source, false )
        setElementVisibleTo ( BlipCarro11, source, false )
        setElementVisibleTo ( MarkerCarro12, source, true )
        setElementVisibleTo ( BlipCarro12, source, true )
        setElementData ( source, "Carteira:StartCarro11", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro10", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro12 then
        if getElementData( source, "Carteira:StartCarro11", true ) then
        setElementVisibleTo ( MarkerCarro12, source, false )
        setElementVisibleTo ( BlipCarro12, source, false )
        setElementVisibleTo ( MarkerCarro13, source, true )
        setElementVisibleTo ( BlipCarro13, source, true )
        setElementData ( source, "Carteira:StartCarro12", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro11", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro13 then
        if getElementData( source, "Carteira:StartCarro12", true ) then
        setElementVisibleTo ( MarkerCarro13, source, false )
        setElementVisibleTo ( BlipCarro13, source, false )
        setElementVisibleTo ( MarkerCarro14, source, true )
        setElementVisibleTo ( BlipCarro14, source, true )
        setElementData ( source, "Carteira:StartCarro13", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro12", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro14 then
        if getElementData( source, "Carteira:StartCarro13", true ) then
        setElementVisibleTo ( MarkerCarro14, source, false )
        setElementVisibleTo ( BlipCarro14, source, false )
        setElementVisibleTo ( MarkerCarro15, source, true )
        setElementVisibleTo ( BlipCarro15, source, true )
        setElementData ( source, "Carteira:StartCarro14", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro13", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro15 then
        if getElementData( source, "Carteira:StartCarro14", true ) then
        setElementVisibleTo ( MarkerCarro15, source, false )
        setElementVisibleTo ( BlipCarro15, source, false )
        setElementVisibleTo ( MarkerCarro16, source, true )
        setElementVisibleTo ( BlipCarro16, source, true )
        setElementData ( source, "Carteira:StartCarro15", true )
        setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro14", false )
		playSoundFrontEnd ( source, 43 )
        end
		end
		if marker == MarkerCarro16 then
		if getElementData( source, "Carteira:StartCarro15", true ) then
		AutoEscolaCarroVida = getElementHealth ( AutoEscolaCarro[source] )
		if AutoEscolaCarroVida <= CarrosDanoParaReprovar then
		exports.Scripts_Dxmessages:outputDx(source, MsgCarro04, "error")
		else
		setElementData( source, "Habilitacoes:Carros", true)
		exports.Scripts_Dxmessages:outputDx(source, MsgCarro05, "success")
		end
		setTimer ( setElementData, 50, 1, source, "Carteira:StartCarro15", false )
		setElementVisibleTo ( MarkerCarro16, source, false )
		setElementVisibleTo ( BlipCarro16, source, false )
		setElementData ( source, "AirNew_TirandoCarta", "Não" )
		destroyElement ( AutoEscolaCarro[source] )
        setTimer ( setElementInterior, 400, 1, source, 3 )
        setTimer ( setElementDimension, 400, 1, source, 10 )
        setTimer ( setElementPosition, 400, 1, source, -2029.61829, -104.51949, 1035.17188 )
        setTimer ( setElementRotation, 600, 1, source, 0, 0, 180 )
        fadeCamera ( source, false, 0.1, 0, 0, 0 )   
        setTimer ( fadeCamera, 600, 1, source , true, 0.5 )
        setTimer ( setCameraTarget, 600, 1, source )
        end
		end
	  end 
	end	
end
addEventHandler("onPlayerMarkerHit",getRootElement(),emarkerCarros)

function SairDoVeiculoAutoEscolaCarro (source)
if ( AutoEscolaCarro[source] ) and isElement( AutoEscolaCarro[source] ) then
setElementData ( source, "AirNew_TirandoCarta", "Não" )
destroyElement ( AutoEscolaCarro[source] )
setElementData ( source, "Carteira:StartCarro00", false )
setElementData ( source, "Carteira:StartCarro01", false )
setElementData ( source, "Carteira:StartCarro02", false )
setElementData ( source, "Carteira:StartCarro03", false )
setElementData ( source, "Carteira:StartCarro04", false )
setElementData ( source, "Carteira:StartCarro05", false )
setElementData ( source, "Carteira:StartCarro06", false )
setElementData ( source, "Carteira:StartCarro07", false )
setElementData ( source, "Carteira:StartCarro08", false )
setElementData ( source, "Carteira:StartCarro09", false )
setElementData ( source, "Carteira:StartCarro10", false )
setElementData ( source, "Carteira:StartCarro11", false )
setElementData ( source, "Carteira:StartCarro12", false )
setElementData ( source, "Carteira:StartCarro13", false )
setElementData ( source, "Carteira:StartCarro14", false )
setElementData ( source, "Carteira:StartCarro15", false )
setElementVisibleTo ( MarkerCarro01, source, false )
setElementVisibleTo ( BlipCarro01, source, false )
setElementVisibleTo ( MarkerCarro02, source, false )
setElementVisibleTo ( BlipCarro02, source, false )
setElementVisibleTo ( MarkerCarro03, source, false )
setElementVisibleTo ( BlipCarro03, source, false )
setElementVisibleTo ( MarkerCarro04, source, false )
setElementVisibleTo ( BlipCarro04, source, false )
setElementVisibleTo ( MarkerCarro05, source, false )
setElementVisibleTo ( BlipCarro05, source, false )
setElementVisibleTo ( MarkerCarro06, source, false )
setElementVisibleTo ( BlipCarro06, source, false )
setElementVisibleTo ( MarkerCarro07, source, false )
setElementVisibleTo ( BlipCarro07, source, false )
setElementVisibleTo ( MarkerCarro08, source, false )
setElementVisibleTo ( BlipCarro08, source, false )
setElementVisibleTo ( MarkerCarro09, source, false )
setElementVisibleTo ( BlipCarro09, source, false )
setElementVisibleTo ( MarkerCarro10, source, false )
setElementVisibleTo ( BlipCarro10, source, false )
setElementVisibleTo ( MarkerCarro11, source, false )
setElementVisibleTo ( BlipCarro11, source, false )
setElementVisibleTo ( MarkerCarro12, source, false )
setElementVisibleTo ( BlipCarro12, source, false )
setElementVisibleTo ( MarkerCarro13, source, false )
setElementVisibleTo ( BlipCarro13, source, false )
setElementVisibleTo ( MarkerCarro14, source, false )
setElementVisibleTo ( BlipCarro14, source, false )
setElementVisibleTo ( MarkerCarro15, source, false )
setElementVisibleTo ( BlipCarro15, source, false )
setElementVisibleTo ( MarkerCarro16, source, false )
setElementVisibleTo ( BlipCarro16, source, false )
exports.Scripts_Dxmessages:outputDx(source, MsgCarro06, "error")
setTimer ( setElementInterior, 400, 1, source, 3 )
setTimer ( setElementDimension, 400, 1, source, 10 )
setTimer ( setElementPosition, 400, 1, source, -2029.61829, -104.51949, 1035.17188 )
setTimer ( setElementRotation, 600, 1, source, 0, 0, 180 )
fadeCamera ( source, false, 0.1, 0, 0, 0 )   
setTimer ( fadeCamera, 600, 1, source , true, 0.5 )
setTimer ( setCameraTarget, 600, 1, source )
end
end
addEventHandler ( "onVehicleExit", getRootElement(), SairDoVeiculoAutoEscolaCarro )

function MorrerAutoEscolaCarro ()
if ( AutoEscolaCarro[source] ) and isElement( AutoEscolaCarro[source] ) then
setElementData ( source, "AirNew_TirandoCarta", "Não" )
destroyElement ( AutoEscolaCarro[source] )
setElementData ( source, "Carteira:StartCarro00", false )
setElementData ( source, "Carteira:StartCarro01", false )
setElementData ( source, "Carteira:StartCarro02", false )
setElementData ( source, "Carteira:StartCarro03", false )
setElementData ( source, "Carteira:StartCarro04", false )
setElementData ( source, "Carteira:StartCarro05", false )
setElementData ( source, "Carteira:StartCarro06", false )
setElementData ( source, "Carteira:StartCarro07", false )
setElementData ( source, "Carteira:StartCarro08", false )
setElementData ( source, "Carteira:StartCarro09", false )
setElementData ( source, "Carteira:StartCarro10", false )
setElementData ( source, "Carteira:StartCarro11", false )
setElementData ( source, "Carteira:StartCarro12", false )
setElementData ( source, "Carteira:StartCarro13", false )
setElementData ( source, "Carteira:StartCarro14", false )
setElementData ( source, "Carteira:StartCarro15", false )
setElementVisibleTo ( MarkerCarro01, source, false )
setElementVisibleTo ( BlipCarro01, source, false )
setElementVisibleTo ( MarkerCarro02, source, false )
setElementVisibleTo ( BlipCarro02, source, false )
setElementVisibleTo ( MarkerCarro03, source, false )
setElementVisibleTo ( BlipCarro03, source, false )
setElementVisibleTo ( MarkerCarro04, source, false )
setElementVisibleTo ( BlipCarro04, source, false )
setElementVisibleTo ( MarkerCarro05, source, false )
setElementVisibleTo ( BlipCarro05, source, false )
setElementVisibleTo ( MarkerCarro06, source, false )
setElementVisibleTo ( BlipCarro06, source, false )
setElementVisibleTo ( MarkerCarro07, source, false )
setElementVisibleTo ( BlipCarro07, source, false )
setElementVisibleTo ( MarkerCarro08, source, false )
setElementVisibleTo ( BlipCarro08, source, false )
setElementVisibleTo ( MarkerCarro09, source, false )
setElementVisibleTo ( BlipCarro09, source, false )
setElementVisibleTo ( MarkerCarro10, source, false )
setElementVisibleTo ( BlipCarro10, source, false )
setElementVisibleTo ( MarkerCarro11, source, false )
setElementVisibleTo ( BlipCarro11, source, false )
setElementVisibleTo ( MarkerCarro12, source, false )
setElementVisibleTo ( BlipCarro12, source, false )
setElementVisibleTo ( MarkerCarro13, source, false )
setElementVisibleTo ( BlipCarro13, source, false )
setElementVisibleTo ( MarkerCarro14, source, false )
setElementVisibleTo ( BlipCarro14, source, false )
setElementVisibleTo ( MarkerCarro15, source, false )
setElementVisibleTo ( BlipCarro15, source, false )
setElementVisibleTo ( MarkerCarro16, source, false )
setElementVisibleTo ( BlipCarro16, source, false )
exports.Scripts_Dxmessages:outputDx(source, MsgCarro07, "error")
end
end
addEventHandler ( "onPlayerWasted", getRootElement(), MorrerAutoEscolaCarro )

function SairDoServidorAutoEscolaCarro ( quitType )	
if isElement( AutoEscolaCarro[source] ) then
destroyElement ( AutoEscolaCarro[source] )
end
end
addEventHandler ( "onPlayerQuit", getRootElement(), SairDoServidorAutoEscolaCarro )

-- ( Final ) Percurso de Carro

 

Edited by Madruga
Link to comment

Testa este comando:

 

addCommandHandler( "darcnh", function (player, cmd, value)
	local acc = getPlayerAccount(player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ( "Admin" ) ) then
		if not value then
			return outputChatBox ("Uso correto: /"..cmd.." < Nick >", player, 255, 30, 30)
		end
		
		local targetPlayer = getPlayerFromPartialName( tostring(value) )
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		
		local targetAcc = getPlayerAccount(targetPlayer)
		
		if isGuestAccount(targetAcc) then 
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30)
		end
		
		if not getElementData (player, "Habilitacoes:Carros" ) == true then
			outputChatBox ( "@executou", player)
			if setElementData (player, "Habilitacoes:Carros", true) then
				outputChatBox ("Você deu a habilitação ao jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
				outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' lhe deu uma habilitação.", targetPlayer, 0, 255, 0)
			else
				outputChatBox ("Este jogador já tem uma habilitação.", player, 255, 30, 30)
			end	
		end	
	else
		outputChatBox ( "Você não tem permissão !", player, 230, 20, 20 )
	end
end)

Verifica se vai realmente dar a carteira assim conseguimos corrigir o /retirarcnh.

Use /debugscript 3

  • Thanks 1
Link to comment
2 hours ago, Jonas^ said:

Testa este comando:

 


addCommandHandler( "darcnh", function (player, cmd, value)	local acc = getPlayerAccount(player)	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ( "Admin" ) ) then		if not value then			return outputChatBox ("Uso correto: /"..cmd.." < Nick >", player, 255, 30, 30)		end				local targetPlayer = getPlayerFromPartialName( tostring(value) )		if not (targetPlayer) then			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)		end				local targetAcc = getPlayerAccount(targetPlayer)				if isGuestAccount(targetAcc) then 			return outputChatBox ("Jogador não logado.", player, 255, 30, 30)		end				if not getElementData (player, "Habilitacoes:Carros" ) == true then			outputChatBox ( "@executou", player)			if setElementData (player, "Habilitacoes:Carros", true) then				outputChatBox ("Você deu a habilitação ao jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)				outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' lhe deu uma habilitação.", targetPlayer, 0, 255, 0)			else				outputChatBox ("Este jogador já tem uma habilitação.", player, 255, 30, 30)			end			end		else		outputChatBox ( "Você não tem permissão !", player, 230, 20, 20 )	endend)

Verifica se vai realmente dar a carteira assim conseguimos corrigir o /retirarcnh.

Use /debugscript 3

 

Tentei e continua na mesma, Onde vc alterou ali ta executando normal, porém a carta ainda não é dada ao player, Debugscript nada:  https://image.prntscr.com/image/rCtR3BJOQ_GsHTHVJGujQQ.png

Eu tava olhando o código, Será que precisa ter os elementos ( "Carteira:StartCarro15", true ) ou o ( source, "AirNew_TirandoCarta", "Sim" )  ? Talvez eu esteja falando bobeira mais passou na cabeça e talvez precise sla...

Link to comment

Essas datas não são setadas quando o cara inicia o teste?

A imagem do debug não esta pegando.

Quando o cara sai do server é salvo na conta com setAccountData né? pode me mostrar o evento onPlayerQuit no lado servidor por favor?

  • Thanks 1
Link to comment
12 minutes ago, Jonas^ said:

Essas datas não são setadas quando o cara inicia o teste?

A imagem do debug não esta pegando.

Quando o cara sai do server é salvo na conta com setAccountData né? pode me mostrar o evento onPlayerQuit no lado servidor por favor?

Sim mais vai q né... kkkk 

debug: http://prntscr.com/mx1ymu

cód: 

 

function SalvarDadosHab(conta)
	if conta then
	local source = getAccountPlayer(conta)
	local emp = getElementData(source,"Habilitacoes:Motos") or false
	setAccountData (conta, "Habilitacoes:Motos",emp)
	local emp = getElementData(source,"Habilitacoes:Carros") or false
	setAccountData (conta, "Habilitacoes:Carros",emp)
	local emp = getElementData(source,"Habilitacoes:Caminhoes") or false
	setAccountData (conta, "Habilitacoes:Caminhoes",emp)
	local emp = getElementData(source,"Habilitacoes:Onibus") or false
	setAccountData (conta, "Habilitacoes:Onibus",emp)
	local emp = getElementData(source,"Habilitacoes:Carretas") or false
	setAccountData (conta, "Habilitacoes:Carretas",emp)
	local emp = getElementData(source,"Habilitacoes:Barcos") or false
	setAccountData (conta, "Habilitacoes:Barcos",emp)
	local emp = getElementData(source,"Habilitacoes:Helicopteros") or false
	setAccountData (conta, "Habilitacoes:Helicopteros",emp)
	local emp = getElementData(source,"Habilitacoes:Avioes") or false
	setAccountData (conta, "Habilitacoes:Avioes",emp)
	local emp = getElementData ( source,"AirNew:AutoEscola") or false
	setAccountData (conta, "AirNew:AutoEscola", emp)
	end	
end

function CarregarDadosHab(conta)
	if not (isGuestAccount (conta)) then
		if (conta) then	
			local source = getAccountPlayer(conta)	
			local emp = getAccountData(conta,"Habilitacoes:Motos") or false
			setElementData (source, "Habilitacoes:Motos", emp)
			local emp = getAccountData(conta,"Habilitacoes:Carros") or false
			setElementData (source, "Habilitacoes:Carros", emp)
			local emp = getAccountData(conta,"Habilitacoes:Caminhoes") or false
			setElementData (source, "Habilitacoes:Caminhoes", emp)
			local emp = getAccountData(conta,"Habilitacoes:Onibus") or false
			setElementData (source, "Habilitacoes:Onibus", emp)
			local emp = getAccountData(conta,"Habilitacoes:Carretas") or false
			setElementData (source, "Habilitacoes:Carretas", emp)
			local emp = getAccountData(conta,"Habilitacoes:Barcos") or false
			setElementData (source, "Habilitacoes:Barcos", emp)
			local emp = getAccountData(conta,"Habilitacoes:Helicopteros") or false
			setElementData (source, "Habilitacoes:Helicopteros", emp)
			local emp = getAccountData(conta,"Habilitacoes:Avioes") or false
			setElementData (source, "Habilitacoes:Avioes", emp)
			local emp = getAccountData(conta,"AirNew:AutoEscola") or false
			setElementData (source, "AirNew:AutoEscola", emp)
		end
	end	
end

--------------------------------------------------------------------------------

addEventHandler("onPlayerLogin", root,
  function( _, acc )
	setTimer(CarregarDadosHab,1000,1,acc)
  end
)

function startScript ( res )
	if res == getThisResource() then
		for i, player in ipairs(getElementsByType("player")) do
			local acc = getPlayerAccount(player)
			if not isGuestAccount(acc) then
				CarregarDadosHab(acc)
			end
		end
	end
end
addEventHandler ( "onResourceStart", getRootElement(), startScript )

function stopScript( res )
    if res == getThisResource() then
		for i, player in ipairs(getElementsByType("player")) do
			local acc = getPlayerAccount(player)
			if not isGuestAccount(acc) then
				SalvarDadosHab(acc)
			end
		end
	end
end 
addEventHandler ( "onResourceStop", getRootElement(), stopScript )

function sair ( quitType )
	local acc = getPlayerAccount(source)
	if not (isGuestAccount (acc)) then
		if acc then
			SalvarDadosHab(acc)
		end
	end
end
addEventHandler ( "onPlayerQuit", getRootElement(), sair )

 

Edited by Madruga
Link to comment

Aqui está o código atualizado.

addCommandHandler( "darcnh", function (player, cmd, nickName)
	local acc = getPlayerAccount (player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ("Admin")) then
		if not nickName then
			return outputChatBox( "(ERR0) #FFFFFFSintaxe: /"..cmd.." (Nick)", player, 255, 30, 30, true)
		end
		local targetPlayer = getPlayerFromPartialName(nickName)
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		local targetAcc = getPlayerAccount(targetPlayer)
		if isGuestAccount(targetAcc) then  
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30) 
		end
		if setElementData (targetPlayer, "Habilitacoes:Carros", true) then
			outputChatBox ("Você deu a habilitação ao jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
			outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' lhe deu uma habilitação.", targetPlayer, 0, 255, 0)
		else
			outputChatBox ("Este jogador já tem uma habilitação.", player, 255, 30, 30)
		end	
	end
end)

addCommandHandler( "tirarcnh", function (player, cmd, nickName)
	local acc = getPlayerAccount (player)
	if isObjectInACLGroup ( "user." ..getAccountName(acc), aclGetGroup ("Admin")) then
		if not nickName then
			return outputChatBox( "(ERR0) #FFFFFFSintaxe: /"..cmd.." (Nick)", player, 255, 30, 30, true)
		end
		local targetPlayer = getPlayerFromPartialName(nickName)
		if not (targetPlayer) then
			return outputChatBox ("Jogador não encontrado!", player, 255, 30, 30)
		end
		local targetAcc = getPlayerAccount(targetPlayer)
		if isGuestAccount(targetAcc) then  
			return outputChatBox ("Jogador não logado.", player, 255, 30, 30) 
		end
		if getElementData (targetPlayer, "Habilitacoes:Carros" ) == true then
			if setElementData (targetPlayer, "Habilitacoes:Carros", false) then
				outputChatBox ("Você retirou a habilitação do jogador '"..getPlayerName(targetPlayer):gsub("#%x%x%x%x%x%x", "").."'", player, 0, 255, 0)
				outputChatBox ("O(a) Admin '"..getPlayerName(player):gsub("#%x%x%x%x%x%x", "").."' retirou sua habilitação.", targetPlayer, 0, 255, 0)
			end
		else
			outputChatBox ("Este jogador não tem uma habilitação.", player, 255, 30, 30)
		end
	end
end)

OBS: Testado.

@Madruga

Edited by Jonas^
Correção.
  • Thanks 1
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...