Jump to content

Help - Script Level


Recommended Posts

--------------------------------------------------------------------------------------------------

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
Link to comment
  • Other Languages Moderators

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

 

Link to comment
  • Other Languages Moderators

@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
  • Thanks 2
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...