realasuramc Posted January 27, 2023 Share Posted January 27, 2023 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
Rougue90 Posted January 27, 2023 Share Posted January 27, 2023 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 1 Link to comment
realasuramc Posted January 29, 2023 Author Share Posted January 29, 2023 Cara mt obg 1 Link to comment
Recommended Posts