Jump to content

[HELP] Restrição


Recommended Posts

Fala pessoal, estou com duvida em como restringir esse comando apenas para vips usarem:

o comando é esse:

function vehGUI() 
vehicleGUI = guiCreateWindow(477, 384, 301, 194, " || VEICULO ||", false) 
guiWindowSetSizable(vehicleGUI, false) 
  
vehMemo = guiCreateMemo(9, 18, 157, 133, "Obrigado por ser VIP, voce pode\n\n- Ligar/Desligar Luzes\n- Ligar/Desligar Motor\n- Trancar/Destrancar Veiculo", false, vehicleGUI) 
guiMemoSetReadOnly(vehMemo, true) 
vehLights = guiCreateButton(178, 30, 107, 26, "Luzes", false, vehicleGUI) 
vehEngine = guiCreateButton(178, 70, 107, 26, "Motor", false, vehicleGUI) 
vehLock = guiCreateButton(178, 115, 107, 26, "Tranca", false, vehicleGUI) 
vehClose = guiCreateButton(12, 158, 71, 26, "Sair", false, vehicleGUI) 
showCursor ( true ) 
end 
bindKey ( "m", "down", vehGUI ) 
addCommandHandler("vehmanager",vehGUI) 
  

Criei encima dele uma funçao local:

local function isVip(thePlayer) 
    local accName = getAccountName(getPlayerAccount (thePlayer)) 
    return isObjectInACLGroup("user."..accName, aclGetGroup( "Vip" )) 
end 

Porem nao sei aonde colocar os IFs dentro do codigo

Link to comment

Como a função isObjectInACLGroup é usada apenas no lado do servidor vc tera que usar element datas (modo inseguro) ou um triggerClientEvent, assim:

-- Script type="server" 
  
local function isVip(thePlayer) 
    local accName = getAccountName(getPlayerAccount (thePlayer)) 
    return isObjectInACLGroup("user."..accName, aclGetGroup( "Vip" )) 
end 
  
function abrirJanela (player) 
    if isVip ( player ) then 
        triggerClientEvent ( player, "showVIPGUI", player ) 
    else 
        outputChatBox ( "Apenas vips podem usar o painel !", player, 255, 0, 0 ) 
    end 
end 
addCommandHandler ( "vehmanager", abrirJanela, false, false ) 
  
-- Script type="client" 
  
function vehGUI() 
    vehicleGUI = guiCreateWindow(477, 384, 301, 194, " || VEICULO ||", false) 
    guiWindowSetSizable(vehicleGUI, false) 
      
    vehMemo = guiCreateMemo(9, 18, 157, 133, "Obrigado por ser VIP, voce pode\n\n- Ligar/Desligar Luzes\n- Ligar/Desligar Motor\n- Trancar/Destrancar Veiculo", false, vehicleGUI) 
    guiMemoSetReadOnly(vehMemo, true) 
    vehLights = guiCreateButton(178, 30, 107, 26, "Luzes", false, vehicleGUI) 
    vehEngine = guiCreateButton(178, 70, 107, 26, "Motor", false, vehicleGUI) 
    vehLock = guiCreateButton(178, 115, 107, 26, "Tranca", false, vehicleGUI) 
    vehClose = guiCreateButton(12, 158, 71, 26, "Sair", false, vehicleGUI) 
    showCursor ( true ) 
end 
addEvent ( "showVIPGUI", true ) 
addEventHandler ( "showVIPGUI", root, vehGUI ) 

Veja isso se quiser saber porque n usar element data:

Script security

Link to comment
é mais ou menos assim :wink:

server.lua

function isVip(thePlayer) 
local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
     if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin" ) ) then 
--code 
     end 
end 
addEventHandler( "onResourceStart", root, isVip ) 
  

mais informações acesse:

https://wiki.multitheftauto.com/wiki/IsObjectInACLGroup

Ai que tá, estou me atrapalhando nisso, pois o code tmb é uma funçao, eu devo remover a funçao:

function vehGUI() 

e no final retirar o vehGUI

addCommandHandler("vehmanager",vehGUI) 

??

Link to comment

client:

function vehGUI() 
    vehicleGUI = guiCreateWindow(477, 384, 301, 194, " || VEICULO ||", false) 
    guiWindowSetSizable(vehicleGUI, false) 
      
    vehMemo = guiCreateMemo(9, 18, 157, 133, "Obrigado por ser VIP, voce pode\n\n- Ligar/Desligar Luzes\n- Ligar/Desligar Motor\n- Trancar/Destrancar Veiculo", false, vehicleGUI) 
    guiMemoSetReadOnly(vehMemo, true) 
    vehLights = guiCreateButton(178, 30, 107, 26, "Luzes", false, vehicleGUI) 
    vehEngine = guiCreateButton(178, 70, 107, 26, "Motor", false, vehicleGUI) 
    vehLock = guiCreateButton(178, 115, 107, 26, "Tranca", false, vehicleGUI) 
    vehClose = guiCreateButton(12, 158, 71, 26, "Sair", false, vehicleGUI) 
    showCursor ( true ) 
end 
addEvent ( "showVIPGUI", true ) 
addEventHandler ( "showVIPGUI", root, vehGUI ) 
  

server:

local function isVip(thePlayer) 
    local accName = getAccountName(getPlayerAccount (thePlayer)) 
    return isObjectInACLGroup("user."..accName, aclGetGroup( "Vip" )) 
end 
  
function abrirJanela (player) 
    if isVip ( player ) then 
        triggerClientEvent ( player, "showVIPGUI", player ) 
    else 
        outputChatBox ( "Apenas vips podem usar o painel !", player, 255, 0, 0 ) 
    end 
end 
addCommandHandler ( "meucarro", abrirJanela, false, false ) 

Link to comment

erro:

[Expected acl-group at argument 2, got boolean 

o que é esse erro?

O nome do grupo tá errado, ou não tem esse grupo. Tenta com "VIP".

A propósito, recomendo que você crie a interface no evento "onClientResourceStart", e apenas use guiSetVisible para mostrar/ocultar a janela.

Link to comment

Bem, tudo o que sei é que no 2º argumento da função isObjectInACLGroup que deve ser o grupo da ACL, deve estar retornando false. O grupo da ACL não está retornando.

Se realmente não há erro no nome do grupo, tente executando a função aclReload e reinicie o script.

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