Jump to content

Help - Script Level


Recommended Posts

Posted (edited)
--------------------------------------------------------------------------------------------------

function upLevel (thePlayer)
    for i,player in ipairs(getElementsByType("player")) do
        if ( player ) then
            if ( getPlayerAccount(player) ) and not ( isGuestAccount(getPlayerAccount(player)) ) then
                setElementData(player,"minutes",(getElementData(player,"minutes") or 0) +1)
                if ( getElementData(player,"minutes") > 59 ) then
                    setElementData(player,"minutes",0)
                    setElementData(player,"Level",(getElementData(player,"Level") or 0) +1)
                        local bonus = math.random(1200,7200)
                        local value = (bonus)
                    givePlayerMoney(player,value)
                        outputChatBox("#000000===================================", player, 255, 255, 255, true )					
                        outputChatBox(" #ffffff「 #00ff00Level System #ffffff」 ", player, 255, 255, 255, true )
                        outputChatBox("#FFFFFFPagamento: R$ #00FF00"..value, player, 255, 255, 255, true )
						outputChatBox("#000000===================================", player, 255, 255, 255, true )
                    local accName = getAccountName ( getPlayerAccount ( player ) )
                    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Everyone" ) ) then					
                    end
                end
            end
        end
    end
end
setTimer(upLevel,3600,0)

function setLevelLogin ()
	local account = getPlayerAccount(source)
	if ( account ) then
		local Level = (getAccountData(account,"Level") or 0)
		local minutes = (getAccountData(account,"minutes") or 0)
		setElementData(source,"Level",Level)
		setElementData(source,"minutes",minutes)
	end
end
addEventHandler("onPlayerLogin",getRootElement(),setLevelLogin)

function setLevelJoin ()
	setElementData(source,"Level",0)
	setElementData(source,"minutes",0)
end
addEventHandler("onPlayerJoin",getRootElement(),setLevelJoin)


function setLevelQuit ()
	local account = getPlayerAccount(source)
	if ( account ) then
		local minutes = (getElementData(source,"minutes") or 0)
		local Level = (getElementData(source,"Level") or 0)
		setAccountData(account,"minutes",minutes)
		setAccountData(account,"Level",Level)
	end
end
addEventHandler("onPlayerQuit",getRootElement(),setLevelQuit)

Alguem me ajudar com script de level eu quero por uma Forma de Seta Level Ex: /level tavinho 100 ( Obs: Apenas uma ajudar ! Quem quiser ajudar...)

Edited by TavinhoXP
  • Moderators
Posted

Olá novamente mano.

Vejo que vc está cometendo um pequeno equívoco na formatação de seu tópico. O texto da sua dúvida deve vim antes do código e não depois dele.

Veja as regras aqui: https://forum.multitheftauto.com/topic/114671-vídeo-tudo-sobre-este-fórum/


Agora sobre a sua dúvida, você deve adicionar um comando ativador por meio do addCommandHandler e dai nos parâmetros dele você declara qual comando deseja usar (no caso é "level")  e qual função será ativada com ele. Dai os valores que vc vai declarar depois do comando, você adiciona como parâmetros de função, da mesma forma que mostra a wiki.

Exemplo:

function levelComando (thePlayer, cmd, nick, nivel) -- thePlayer é o jogador que executou o comando.
	local jogador = getPlayerFromName (nick) -- a variável jogador recebe o player com este nick, será false se não existir.
	if jogador then -- Se existe um jogador com o nick informado, então:
		setElementData (jogador, "Level", tonumber (nivel) or 0) -- Seta o level nesse jogador (converte o nível de texto pra número antes de setar no jogador, se não for possível converter pra número, seta level 0 no jogador)
		outputChatBox ("Level setado com sucesso: "..getElementData (jogador, "Level"), thePlayer, 0, 255, 0)
	else -- Se não existe um jogador com o nick informado (se o nome tem códigos de cores, vc deve colocar também)
		outputChatBox ("Nenhum jogador com o nick informado foi encontrado.", thePlayer, 255, 0, 0)
	end
end
addCommandHandler ("level", levelComando) -- /level nickExato 100

 

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted (edited)

@Jonas^ - Brothers
A diferença é que o getPlayerFromPartialName não precisa ser o nick exato do jogador, ele retornará o primeiro jogador que encontrar cujo nick tiver qualquer parte com essa string. Já o getPlayerFromName precisa informar o nick inteiro exato, caso contrário ele não encontra o jogador. Eu optei pelo getPlayerFromName nesse caso apenas pois eu não quis complicar usando função útil. Achei mais fácil pra ele entender usando a função nativa do MTA. Claramente se eu fosse fazer o script pra mim, usaria com o Partial.

Se tem um jogador com o nick #00bfffLord, ocorre o seguinte:

getPlayerFromName ("Lord") -- Retornará false. Não encontra o jogador.
getPlayerFromPartialName ("Lord") -- Retornará o jogador, pois essa string existe dentro do nick dele. Mesmo se existir outro jogador com essa string também, retornará somente o primeiro jogador encontrado.

getPlayerFromName ("#00bfffLord") -- Retornará o jogador. Pois o nick dele é igual a este.
getPlayerFromPartialName ("#00bfffLord") -- Retornará o jogador. Pois essa string foi encontrada no nick dele (no nick inteiro).

 

Edited by Lord Henry

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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