Madruga Posted March 10, 2019 Share Posted March 10, 2019 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
Jonas^ Posted March 10, 2019 Share Posted March 10, 2019 Não tentou? você tem que usar getElementData pra fazer a verificação se o cara já tem ou não a data. 1 Link to comment
Jonas^ Posted March 10, 2019 Share Posted March 10, 2019 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. 1 Link to comment
Madruga Posted March 12, 2019 Author Share Posted March 12, 2019 (edited) 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 March 12, 2019 by Madruga Link to comment
Other Languages Moderators Lord Henry Posted March 12, 2019 Other Languages Moderators Share Posted March 12, 2019 On 10/03/2019 at 15:26, Jonas^ said: Da próxima vez você mostre o código que tentou fazer para corrigirmos. /\ Link to comment
Jonas^ Posted March 12, 2019 Share Posted March 12, 2019 Mostre o código da carteira pra gente ver. 1 Link to comment
Madruga Posted March 12, 2019 Author Share Posted March 12, 2019 (edited) 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 March 12, 2019 by Madruga Link to comment
Jonas^ Posted March 12, 2019 Share Posted March 12, 2019 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 1 Link to comment
Madruga Posted March 12, 2019 Author Share Posted March 12, 2019 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
Jonas^ Posted March 12, 2019 Share Posted March 12, 2019 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? 1 Link to comment
Madruga Posted March 12, 2019 Author Share Posted March 12, 2019 (edited) 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 March 12, 2019 by Madruga Link to comment
Jonas^ Posted March 13, 2019 Share Posted March 13, 2019 (edited) 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 March 13, 2019 by Jonas^ Correção. 1 Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now