Wissloot Posted May 5, 2019 Share Posted May 5, 2019 Olá sou novo em programação em lua sei programar em outras linguagens como o Java, fiz um script em lua de dar dinheiro, porem eu gostaria de informar o nome do player e a quantidade de dinheiro desejada. Utilizei a função givePlayerMoney, porem quero deixar o script um pouco mais avançado queria dar o dinheiro informando o nome do player creio eu que utiliza a função setPlayerName porem não sei como utilizar ele no codigo Quote function DarDinheiro (player) givePlayerMoney(player,1000) outputChatBox("Você Ganhou 1k") end addCommandHandler("money", DarDinheiro) Link to comment
Jonas^ Posted May 5, 2019 Share Posted May 5, 2019 Você deve usar a função: function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Esta função não é nativa do MTA, se você preferir usar uma nativa use: GetPlayerFromName OBS: Eu usaria a primeira pois a função nativa do MTA você precisa escrever o nick do player completo que você deseja dar o dinheiro, já a primeira você apenas digita as letras iniciais que ela já puxa o jogador. Se tiver alguma dúvida deixe aqui em baixo que te auxilio. 1 Link to comment
Wissloot Posted May 5, 2019 Author Share Posted May 5, 2019 29 minutes ago, Jonas^ said: Você deve usar a função: function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Esta função não é nativa do MTA, se você preferir usar uma nativa use: GetPlayerFromName OBS: Eu usaria a primeira pois a função nativa do MTA você precisa escrever o nick do player completo que você deseja dar o dinheiro, já a primeira você apenas digita as letras iniciais que ela já puxa o jogador. Se tiver alguma dúvida deixe aqui em baixo que te auxilio. Valeu aonde eu acho essas funções que não são nativas do mta?, atraves desse GetPlayerFromName tava tentando fazer um script que confisca as armas de um player utilizando a função takeAllWeapon. porem o script não funciona quando eu coloco o GetPlayerFromName se eu tirar a função eu consigo executar o script só que eu só confisco as minhas proprias armas teria como me da uma luz? Link to comment
Jonas^ Posted May 5, 2019 Share Posted May 5, 2019 Você deve estar esquecendo dos argumentos da função, olhe este exemplo aqui: addCommandHandler ("dargrana", function (player, cmd, nick, value) if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (player)), aclGetGroup ("Admin")) then -- Se o jogador for admin, então: if not nick then return outputChatBox ("Informe o nome de um jogador.", player, 255, 30, 30) end -- Se nenhum nick for informado então, retorna e nada acontece. local playerName = getPlayerFromPartialName (nick) if not playerName then return outputChatBox ("Jogador com este nick não foi encontrado.", player, 255, 30, 30) end -- Se o jogador não for encontrado então, retorna e nada acontece. if not value then return outputChatBox ("Informe a quantia de dinheiro que deseja dar ao jogador.", player, 255, 30, 30) end -- Se o valor não for informado então, retorna e nada acontece. if givePlayerMoney (playerName, value) then -- Seta o dinheiro na conta do jogador informado pelo comando. outputChatBox ("Você deu "..tostring(value).."$ para o jogador "..string.gsub(getPlayerName (playerName), "#%x%x%x%x%x%x", "")..".", player, 0, 255, 0) outputChatBox ("Você recebeu "..tostring(value).."$ do administrador '"..string.gsub(getPlayerName (player), "#%x%x%x%x%x%x", "")..".", playerName, 0, 255, 0) else -- Senão: (a principio nunca deve entrar nesse escopo, se entrar tem algo errado, pois foi informado o nick, valor correto.) outputChatBox ("Ocorreu um erro ao setar o dinhero no jogador.", player, 255, 30, 30) end end end) function getPlayerFromPartialName (name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find (name, 1, true) then return player end end end end Link to comment
DNL291 Posted May 6, 2019 Share Posted May 6, 2019 10 hours ago, Wissloot said: aonde eu acho essas funções que não são nativas do mta? Na wiki do mta tem uma página com essas funções, são funções úteis, segue o link: https://wiki.multitheftauto.com/wiki/Useful_Functions 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