P43tous Posted March 24, 2020 Share Posted March 24, 2020 (edited) Opa blz! Preciso de ajuda, como fazer para deixar outro jogador que não seja do grupo "VIPCARRO" pelo menos pegar carona ?? ? ?"> E também como fazer pra colocar ao invés da ACL do grupo, colocar o veiculo pelo nick do jogador ??? function enterVehicle(thePlayer, seat, jacked) local account = getPlayerAccount(thePlayer) if (not account or isGuestAccount(account)) then return end local accountName = getAccountName(account) if (getElementModel(source) == 602) and (not isObjectInACLGroup("user.".. accountName,aclGetGroup("VIPCARRO"))) then setVehicleLocked(source, true) outputChatBox("#ffff00SOMENTE MEMBROS DA #000000[ #ff0000Nome da gang #000000] #ffff00PODEM USAR ESSE VEICULO!", thePlayer) else setVehicleLocked(source, false) end end addEventHandler("onVehicleStartEnter",root,enterVehicle) Edited March 24, 2020 by P43tous Complemento de informação Link to comment
CrowleySCR Posted March 24, 2020 Share Posted March 24, 2020 Olá, respondendo a sua primeira pergunta -> seat um exemplo: HeliHabs = { [487]=true,[488]=true,[497]=true,[417]=true } function enterVehicle ( player, seat, jacked ) if seat == 0 then -- // se ele entrar de piloto então: local MinhaConta = getPlayerAccount(player) if ( HeliHabs[getElementModel(source)] ) then local Hab = getAccountData(MinhaConta, "Hab") if Hab == false then cancelEvent() end end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), enterVehicle ) 1 Link to comment
KronoS Lettify Posted March 25, 2020 Share Posted March 25, 2020 Respondendo à sua primeira pergunta: function enterVehicle(thePlayer, seat, jacked) local account = getPlayerAccount(thePlayer) if (not account or isGuestAccount(account)) then return end local accountName = getAccountName(account) if (not isObjectInACLGroup("user.".. accountName,aclGetGroup("VIPCARRO"))) then -- Se não estiver em tal grupo da ACL, então if (seat == 0) and (getElementModel(source) == 602) then -- Se estiver entrando como motorista, então cancelo o evento e ele não entra outputChatBox("#ffff00SOMENTE MEMBROS DA #000000[ #ff0000Nome da gang #000000] #ffff00PODEM USAR ESSE VEICULO!", thePlayer) cancelEvent() end end end addEventHandler("onVehicleStartEnter",root,enterVehicle) Detalhe do código: A lógica: Se não estiver no determinado grupo e tentar entrar como motorista no carro de tal ID, ele não vai conseguir entrar. O que quer dizer que ele vai poder entrar em qualquer outro assento mesmo não sendo do determinado grupo da ACL. OBS: Usei a função cancelEvent pois ela é mais fácil e prática de se lidar nessas ocasiões que o setVehicleLocked. Quanto à sua segunda pergunta, se puder esclarecer melhor tentarei responder. 1 Link to comment
P43tous Posted March 25, 2020 Author Share Posted March 25, 2020 @KronoS Lettify Obrigado pela ajuda com relação a primeira pergunta! Quando a segunda: Como faço pra vincular o carro a um player e não a uma aclgroup? Link to comment
Other Languages Moderators androksi Posted March 25, 2020 Other Languages Moderators Share Posted March 25, 2020 getPlayerName 1 Link to comment
KronoS Lettify Posted March 25, 2020 Share Posted March 25, 2020 7 hours ago, P43tous said: @KronoS Lettify Obrigado pela ajuda com relação a primeira pergunta! Quando a segunda: Como faço pra vincular o carro a um player e não a uma aclgroup? Você quer definir um dono para o carro? 1 Link to comment
Other Languages Moderators Lord Henry Posted March 26, 2020 Other Languages Moderators Share Posted March 26, 2020 Eu vincularia ele à conta do jogador. "Jogador de login tal é o proprietário deste veículo" 1 Link to comment
P43tous Posted March 29, 2020 Author Share Posted March 29, 2020 On 25/03/2020 at 09:36, KronoS Lettify said: Você quer definir um dono para o carro? @KronoS Lettify ISSO !! Você pode me ajudar a fazer isso/? Link to comment
Angelo Pereira Posted March 29, 2020 Share Posted March 29, 2020 (edited) 1 hour ago, P43tous said: Você pode me ajudar a fazer isso/? Pelo que eu consegui compreende, você quer adicionar o veiculo apenas para um jogador só entrar no P1. Para isto, você precisar adicionar um elemento no veiculo, com o LOGIN ou SERIAL ou IDAccount do player no veiculo, e fazer uma verificação. Fiz um mini exemplo, utilizando o ID Account, ao entrar, setará um elemento ID Account do Player no veiculo, caso o veiculo não tenha nenhum elemento, setará um elemento com o ID da Conta do Player, e então, caso outra pessoa tente entrar no veiculo, e seja ID Account diferente, não conseguirá entrar no veiculo no P1. addEventHandler("onVehicleStartEnter", root, function ( player, seat ) if seat == 0 then local veh = getPedOccupiedVehicle(player) local account_id = getAccountID(getPlayerAccount(player)) if account_id ~= false then --/> Verificar se o Player Está Logado. local dono_do_veiculo = getElementData(veh, "Dono:Veiculo") or setElementData(veh, "Dono:Veiculo", account_id) --/> Verificar o Elemento do seu Veiculo, Caso não tiver, Então Adicionar. if getElementData(veh, "Dono:Veiculo") ~= account_id then --/> Verificará o Elemento do Veiculo, com o ID da Sua Conta. cancelEvent(true) --/> Caso não ser o Dono Do Veiculo, Então Bloquear. end else cancelEvent(true) --/> Se não tiver Logado, Então Cancelará, sua Entrada. end end end) Espero ter ajudado, e tirado sua dúvida. Edited March 29, 2020 by Angelo Pereira Link to comment
KronoS Lettify Posted March 29, 2020 Share Posted March 29, 2020 3 hours ago, P43tous said: @KronoS Lettify ISSO !! Há várias formas de definir um dono para um veículo, se quiser especificar mais um pouco ou explicar o que você está fazendo ou o que quer fazer. Link to comment
P43tous Posted March 29, 2020 Author Share Posted March 29, 2020 3 hours ago, KronoS Lettify said: Há várias formas de definir um dono para um veículo, se quiser especificar mais um pouco ou explicar o que você está fazendo ou o que quer fazer. Veja! Nesse código estou limitando o uso do veiculo somente a integrantes do ACLgrupo "Admin". Porém ficaria melhor se fosse por Player e não por AclGroup. Não sei escrever esse código ja tentei varias vezes. Por exemplo: Name jogador : P43tous somente ele tera acesso ao comando e veiculo vip independente de qual AclGroup ele seja. veh = {} vehCol = {} function veiculodayz (thePlayer) local accountname = getAccountName (getPlayerAccount (thePlayer)) if not isObjectInACLGroup ("user."..accountname, aclGetGroup ("Admin")) then outputChatBox ("VOCÊ NÃO TEM CARRO VIP", thePlayer) elseif isObjectInACLGroup ("user."..accountname, aclGetGroup ("Admin")) then local x, y, z = getElementPosition (thePlayer) if isElement (veh[thePlayer]) then spawnVehicle (veh[thePlayer], x+3, y, z) setElementData (vehCol[thePlayer], "parent", veh[thePlayer]) setElementData (veh[thePlayer], "parent", vehCol[thePlayer]) setElementData (vehCol[thePlayer], "vehicle", true) setElementData (vehCol[thePlayer], "Tire_inVehicle", 4) setElementData (vehCol[thePlayer], "Engine_inVehicle", 2) setElementData (vehCol[thePlayer], "Parts_inVehicle", 1) destroyElement(veh[thePlayer]) destroyElement(vehCol[thePlayer]) outputChatBox ("VOCÊ DESTRUIU CARRO VIP", thePlayer) else veh[thePlayer] = createVehicle (602, x+3, y, z,0,0,0) setVehicleColor (veh[thePlayer], 0, 0, 0) outputChatBox ("VOCÊ CRIOU CARRO VIP", thePlayer) if isElement (vehCol[thePlayer]) then attachElements (vehCol[thePlayer], veh[thePlayer], 0, 0, 0) else vehCol[thePlayer] = createColSphere (x, y, z, 2.5) attachElements (vehCol[thePlayer], veh[thePlayer], 0, 0, 0) setElementData (vehCol[thePlayer], "parent", veh[thePlayer]) setElementData (veh[thePlayer], "parent", vehCol[thePlayer]) setElementData (vehCol[thePlayer], "vehicle", true) setElementData (vehCol[thePlayer], "Tire_inVehicle", 4) setElementData (vehCol[thePlayer], "Engine_inVehicle", 2) setElementData (vehCol[thePlayer], "Parts_inVehicle", 1) setElementData (vehCol[thePlayer], "fuel", 100) setVehicleDamageProof(veh[thePlayer], true) end end end end addCommandHandler ("carro", veiculodayz) function enterVehicle(thePlayer, seat, jacked) local account = getPlayerAccount(thePlayer) if (not account or isGuestAccount(account)) then return end local accountName = getAccountName(account) if (not isObjectInACLGroup("user.".. accountName,aclGetGroup("Admin"))) then -- Se não estiver em tal grupo da ACL, então if (seat == 0) and (getElementModel(source) == 602) then -- Se estiver entrando como motorista, então cancelo o evento e ele não entra outputChatBox("#ffff00SOMENTE MEMBROS DA #000000[ #ff0000Nome da gang #000000] #ffff00PODEM USAR ESSE VEICULO!", thePlayer) cancelEvent() end end end addEventHandler("onVehicleStartEnter",root,enterVehicle) Link to comment
KronoS Lettify Posted March 29, 2020 Share Posted March 29, 2020 Fazer isso por nick pode ser um tanto inseguro. Por que não tenta fazer isso por nome de conta? Em casos específico pode até usar as funções account-data para salvar algo. Link to comment
P43tous Posted March 30, 2020 Author Share Posted March 30, 2020 13 hours ago, KronoS Lettify said: Fazer isso por nick pode ser um tanto inseguro. Por que não tenta fazer isso por nome de conta? Em casos específico pode até usar as funções account-data para salvar algo. Mas como faço isso por conta nesse caso.? me ajude com um exemplo! Link to comment
Other Languages Moderators Lord Henry Posted March 30, 2020 Other Languages Moderators Share Posted March 30, 2020 (edited) veh = {} -- Table de veículos, cada veículo será indexado em determinado jogador. addCommandHandler ("carro", function (thePlayer, cmd) if (veh[thePlayer]) then -- Se o veículo do jogador já existe, então: destroyElement (veh[thePlayer]) -- Destrói o veículo. veh[thePlayer] = nil -- Remove o veículo da table. outputChatBox ("Seu carro VIP foi destruído.", thePlayer, 255, 255, 0) else -- Se o veículo não existe, então: local x, y, z = getElementPosition (thePlayer) veh[thePlayer] = createVehicle (602, x, y+3, z+1) -- Cria o veículo, próximo ao jogador. setVehicleColor (veh[thePlayer], 0, 0, 0) -- Torna o veículo preto. setElementData (veh[thePlayer], "owner", getAccountName (getPlayerAccount (thePlayer))) -- Coloca o login de quem criou o veículo como dono. outputChatBox ("Carro VIP criado.", thePlayer, 0, 255, 0) end end) addEventHandler ("onVehicleStartEnter", root, function (thePlayer, seat, jacked) -- Quando alguém tenta entrar em um veículo, ativa essa função. if (getElementModel (source) == 602) then -- Se o veículo que o jogador está tentando entrar for o modelo do carro VIP, então: if (isGuestAccount (getPlayerAccount(thePlayer))) then return cancelEvent() end -- Se o jogador estiver deslogado, nada acontece e ele nem entra no veículo. (a ação de entrada no veículo é cancelada) if (seat == 0) then -- Se o jogador está tentando entrar como motorista, então: if (not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup ("VIPCARRO"))) then -- Se o jogador que está tentando entrar não estiver na ACL Group VIPCARRO, então: outputChatBox ("Você não tem permissão para dirigir veículos VIP.", thePlayer, 255, 0, 0) cancelEvent () -- Cancela a entrada no veículo. elseif (getElementData (source, "owner")) then -- Se o jogador está na ACL Group VIPCARRO e o carro tem um dono registrado, então: if not (getElementData (source, "owner") == getAccountName(getPlayerAccount(thePlayer))) then -- Se o jogador que está tentando entrar não for o dono do veículo, então: outputChatBox ("Você não pode dirigir este veículo pois ele não pertence a você.", thePlayer, 255, 0, 0) cancelEvent () -- Cancela a entrada no veículo. end end end end end) addEventHandler ("onPlayerQuit", root, function () -- Destroi o veículo criado pelo jogador quando ele desconecta do server. if (veh[source]) then destroyElement (veh[source]) veh[source] = nil end end) Edited March 30, 2020 by Lord Henry Código comentado. 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