Jump to content

Como bloquear algumas armas nesse script?


Recommended Posts

addEventHandler("onPlayerCommand", root, function(cmd)
    local weaponName = string.lower(cmd)
    local id, weaponNames = getWeaponIDFromName(weaponName), {
        "minigun",
        "rocket launcher"
    }

    if id and not weaponNames[weaponName] then 
        giveWeapon(source, id, 300)
          outputChatBox("[ CDC-Info ]: Você recebeu 1000 unidades de munição para a arma: " .. getWeaponNameFromID(id), source, 255, 60, 0, true)
    end
end)

Olá, boa noite, boa tarde ou talvez bom dia.

to tentando bloquear algumas armas nesse meu script mas mesmo assim quando digito minigun no f8 a arma é setada pra mim

Link to comment

Olá, boa noite. O GiveWeapon também funciona se você passar uma string com o nome da arma, por isso seu código esta dando esse erro. o getWeaponIDFromName(weaponName) está atribuindo o id da minigun pra variavel id. Para fazer seu código funcionar da maneira que eu imagino que queria, o player digitando o nome da arma, e ja recebendo. Isso não seria possivel pois à armas que tem o nome composto, por tanto não seria tão simples usando o eventHandler onPlayerCommand, pos esse evento só recebe o cmd e nenhum argumento a mais. Essa versão seria mais tranquila de manipular:  

 

local ilegal = {
    'minigun',
    'rocket'
}

local armas = {
    [22] = 'pistol', --Entre o colchete entra o id da arma, recebe o valor 'comando' que o player digita pra receber a arma | caso queira adicionar mais
    [23] = 'silenced',
    [24] = 'deagle',
    [25] = 'shotgun',
    [26] = 'saw',
    [27] = 'combat',
    [28] = 'uzi',
    [29] = 'mp5',
    [32] = 'tec',
    [30] = 'ak',
    [31] = 'm4',
    [33] = 'rifle',
    [34] = 'sniper'
}

addEventHandler("onPlayerCommand", root, function(cmd)
    weaponName = string.lower(cmd)
    iprint(weaponName)

    for i, j in pairs(ilegal) do 
        if weaponName == j then -- verifica se o jogador digitou o nome de uma das armas que estão proibidas e exibe mensagem
            outputChatBox(' you cannot have this gun', source, 255, 0, 0)
            return
        end
    end

    for i, j in pairs(armas) do
        if weaponName == j then -- verific se o nome digitado está na tabela de armas
            giveWeapon(source, i, 1000, true) -- aqui entregamos o valor do i, pois dizemos que essa é a key da tabela que esta OK
            outputChatBox("[ CDC-Info ]: Você recebeu 1000 unidades de munição para a arma: " .. weaponName, source, 255, 60, 0, true)
            return
        end
    end

end)

Caso tenha alguma duvida, pergunte. Se não tiver deixe o Thanks

  • Thanks 1
Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...