Jump to content

Dúvida de como usar tal função


Recommended Posts

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

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.

  • Like 1
Link to comment
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

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

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