Jump to content

Alguém me ajuda a fazer o player entrar na ACL acertando a senha do portão?


Recommended Posts

eu to com esse script aqui, tentando fazer que com que após o jogador acertasse a senha do portão, entrasse na ACL "PMESP"

porem está dando erro, e não sei o porque  :T

 

function createThelift ()
   mylift = createObject(980, 1539.634765625,-1627.90625,15.3828125, 0, 0, 270)						---- portao principal
end
addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource () ), createThelift )
 
--function createThelift1 ()
--   mylift1 = createObject(980, 1539.634765625,-1627.90625,15.3828125, 0, 0, 270)									----rr no script e ele aparece em outro lugar
--end
--addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource () ), createThelift1 )

--function createThelift2 ()
--   mylift12 = createObject(980, 1539.634765625,-1627.90625,15.3828125, 0, 0, 270)
--end
--addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource () ), createThelift2 )

local marker = createMarker (1545.08020, -1627.61438, 12.38281, "cylinder", 6, 0, 255, 255, 0)
function open2 (psource)
login3 = getAccountName(getPlayerAccount(psource))
isObjectInACLGroup("user."..login3, aclGetGroup("Guest"))
aclGroupAddObject (aclGetGroup("BOPE"), "user."..getAccountName(getPlayerAccount(source)))
triggerClientEvent (psource, "open2", root)
end
addEventHandler ("onMarkerHit", marker, open2)

--------------------- SCRIPT

function abrir (source)
moveObject(mylift, 980, 1539.634765625,-1327.90625,15.3828125, 0, 90,0)								---abre o primeiro portao pro lado esquerdo
setTimer ( function()
    moveObject(mylift, 980, 1539.634765625,-1627.90625,15.3828125, 0, -90, 0)						---fecha o primeiro portao pro lado direito
  end, 5000, 1 )
end
addEvent ("abrir", true)
addEventHandler ("abrir", getRootElement(), abrir)

-------------------- SCRIPT 2 

local marker2 = createMarker (1588.90808, -1637.59497, 13.44030, "cylinder", 6, 0, 255, 255, 0)
function open22 (psource)
login2 = getAccountName(getPlayerAccount(psource))
if isObjectInACLGroup("user."..login2, aclGetGroup("CV")) then
triggerClientEvent (psource, "open22", root)
end
end
addEventHandler ("onMarkerHit", marker2, open22)

function abrir2 (source)
moveObject(mylift1, 980, 1539.634765625,-1327.90625,15.3828125, 0, 90,0)
setTimer ( function()
    moveObject(mylift1, 980, 1539.634765625,-1627.90625,15.3828125, 0, 0, 0)
  end, 5000, 1 )
end
addEvent ("abrir2", true)
addEventHandler ("abrir2", getRootElement(), abrir2)

na linha 19, eu adicionei a função para entrar no group da ACL, mas está dando erro no debugscript 3
"server.lua:20: attempt to concatenate a boolean value"


alguém poderia me ajudar? sou novo nisso.


E se também alguém conseguir me explicar o porque ele está acusando de um boolean value ou me explicar o porque da esses tipo de erro em alguns scripts eu agradeço, para eu poder arrumar futuros bugs

Edited by Bruno R dos Santos
Link to comment

Você está utilizando "psource" na função, porém na linha 20 você utilizou "source"

também não entendi o porque dessa linha  :

isObjectInACLGroup("user."..login3, aclGetGroup("Guest"))

Tente assim :

function open2 (psource)
   local login3 = getAccountName(getPlayerAccount(psource))
   if login3 ~= "guest" then
      aclGroupAddObject (aclGetGroup("BOPE"), "user."..login3)
      triggerClientEvent (psource, "open2", root)
   end
end
addEventHandler ("onMarkerHit", marker, open2)

 

Edited by TioSteiN
  • Like 1
Link to comment

a linha que você não entendeu, ela verifica se o player está na ACL para abrir o marker, (não era para ser assim, então tirei a verificação, porem quando eu retiro essa linha, o script também buga '-')

edit: o Script foi perfeitamente, muito obrigado amigo, ajudou bastante ❤️

Edited by Bruno R dos Santos
atualização de status do script
Link to comment
9 hours ago, Bruno R dos Santos said:

a linha que você não entendeu, ela verifica se o player está na ACL para abrir o marker, (não era para ser assim, então tirei a verificação, porem quando eu retiro essa linha, o script também buga '-')

edit: o Script foi perfeitamente, muito obrigado amigo, ajudou bastante ❤️

na real, não foi perfeitamente não :( ele ta entrando na ACL só de passar pelo marker (para abrir o painel de senha do portao), e no caso ele teria que acertar a senha para entrar na ACL

Link to comment

Bom, existe vários erros, dentro dele, o mais importante, é : "Quando a pessoa acertar a senha do portão (Isso parte do client-side), setasse uma acl no mesmo", porem no seu script, é totalmente diferente essa indagação, pois, ao colidir com o marker, setará a acl no player.

 

Enfim, fiz um script, para você testa no seu server privado, para lhe dar um pouco de conhecimento, da forma que você colocou no título do tópico.

--# pequena demostração.

-- client-side.

local senha_do_portao = "001" --/> Senha do Portão.

addEventHandler("onClientResourceStart", resourceRoot, function ( ) --/> Ao Iniciar o Recurso do Lado Client-Side, Então :
   showCursor(true) --/> Ativar Cursor do Mouse.
   digitar_password = guiCreateEdit( 1366/2, 768/2, 100, 40, "", false ) --/> Cria uma Caixa de Texto.
   guiEditSetMaxLength ( digitar_password, 8 ) --/> Defini o Tamanho Máximo de Texto Para 8.
   botao_confirmar = guiCreateButton ( 1366/2, 768/2+60, 100, 50, "Confirmar", false ) --/> Cria um Botão de Confirmação.
   
   addEventHandler("onClientGUIClick", botao_confirmar, function ( ) --/> Adiciona um Evento de Click ao Botão Confirmar.
      local texto = guiGetText ( digitar_password ) --/> Pega o Texto de Dentro da Caixa de Texto.
      if texto == senha_do_portao then --/> Então, verifica o texto, e compara com a senha do portão.
         outputChatBox("Senha Correta.")
         triggerServerEvent("Senha_Correta", resourceRoot) --/> Enviará um Evento Para o Lado server-side.
      else
         outputChatBox("Senha invalida.")
      end
   end)
end)

-- server-side.

addEvent("Senha_Correta", true)
addEventHandler("Senha_Correta", resourceRoot, function ( ) 
   local login = getAccountName(getPlayerAccount(client))
   if login ~= "guest" then
      if isObjectInACLGroup("user."..login, aclGetGroup("PMESP")) == false then --/> Verificar se o Player Já tem a ACL, se não tem então :
         aclGroupAddObject (aclGetGroup("PMESP"), "user."..login) --/> Adiciona no Grupo Acl.
         outputChatBox("Você Recebeu um Grupo ACL da PMESP!", client, 255,255,255, true)
      else
         outputChatBox("Você Já Possui ACL da PMESP.", client, 255,255,255, true)
      end
   else
      outputChatBox("Você Está Deslogado do Servidor.", client, 255,255,255, true)
   end
end)

local mylift = createObject (980, 1539.634765625,-1627.90625,15.3828125, 0, 0, 270) --/> Cria um Objeto.
local marker = createMarker (1545.08020, -1627.61438, 12.38281, "cylinder", 6, 0, 255, 255, 0) --/> Cria um Marker.

addEventHandler ("onMarkerHit", marker, function ( hitElement, dim )
   if isElement(hitElement) and getElementType(hitElement) == "player" then
      if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(hitElement)), aclGetGroup("PMESP")) then
         moveObject(mylift, 2000, 1539.634765625, -1327.90625, 15.3828125) --/> Abrirá
         setTimer ( function ( ) moveObject(mylift, 2000, 1539.634765625, -1627.90625,15.3828125) end, 5000, 1 ) --/> Fechará em 5s.
      end
   end
end)

 

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