Jump to content

Me ajudem com este script por favor?


Recommended Posts

Boa noite meus querido, alguns dias atrás, me cadastrei no fórum a procura de conhecimento.. estava com muita dificuldade para modificar um script simples e vim procurar ajuda no forum. Assim, várias pessoas me ajudaram, até o moderador do fórum português ❤️.  Muito obrigado pela ajuda para solucionar este script..  vou mostrar o script antes e depois da modificação que me ajudaram a solucionar.

Primeiro código antes da modificação! 

function DAR_XP_AIRNEWSCR ( source, cmd, pname, Quantidade )
    if pname and tonumber(Quantidade) then
	    local cliente = getPlayerFromPartialName(pname)
	    if isElement(cliente) then
		    if getElementData ( source, "Console_AirNewSCR" ) == "Sim" then
			    setElementData ( cliente, "Level", Quantidade )
			    exports.Scripts_Dxmessages:outputDx(source, "Você Setou o Level do(a) Jogador(a) "..getPlayerName(cliente).."#ffffff para "..Quantidade.." com Sucesso!", "success")
			    exports.Scripts_Dxmessages:outputDx(cliente, "O(A) Admin "..getPlayerName(source).."#ffffff Setou seu Level para "..Quantidade.." com Sucesso!", "success")
		    end
		else
		    exports.Scripts_Dxmessages:outputDx(source, "O Jogador Não Foi Encontrado", "error")
		end
	end
end
addCommandHandler ( "level", DAR_XP_AIRNEWSCR )

 

Código modificado ficou assim usando o comando /level "nomeDoPlayer" "level"

function DAR_XP_AIRNEWSCR ( source, cmd, pname, Quantidade )
    if pname and tonumber(Quantidade) and (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(source)), aclGetGroup("Console"))) then
        local cliente = getPlayerFromPartialName(pname)
        if isElement(cliente) then
            setElementData ( cliente, "Level", tonumber(Quantidade) )
            exports.Scripts_Dxmessages:outputDx(source, "Você Setou o Level do(a) Jogador(a) "..getPlayerName(cliente).."#ffffff para "..Quantidade.." com Sucesso!", "success")
            exports.Scripts_Dxmessages:outputDx(cliente, "O(A) Admin "..getPlayerName(source).."#ffffff Setou seu Level para "..Quantidade.." com Sucesso!", "success")
        else
            exports.Scripts_Dxmessages:outputDx(source, "O Jogador Não Foi Encontrado", "error")
        end
    end
end
addCommandHandler ( "level", DAR_XP_AIRNEWSCR )

 

Agora estou com com um novo Script usando o mesmo data "Console_AirNewSCR" e quero saber se tem como eu modificar ele para dar vip usando o comando /ativar "nomeDoPlayer" "tipodovip""dinheiro" e quantos dias irá durar o vip. estou contando com a ajuda desse fórum que tem ótimos scripts que tem um conhecimento um mais avançado que eu :D . Meu muito obrigado dês de já! ? 

Comando_VIP = "ativar"
Grupo = "Console" -- Grupo no Painel P ( Manage ACL )

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

function Dar_VIP_AirNewSCR ( source, cmd, player, VIP, Dinheiro )
    if getElementData ( source, "Console_AirNewSCR" ) == "Sim" then
	    if player and VIP then
            local Jogador = getPlayerFromPartialName ( player )
            if Jogador then
		        if not isGuestAccount ( getPlayerAccount ( Jogador ) ) then
			        local Conta = getAccountName ( getPlayerAccount ( Jogador ) )
					if VIP == "Alpha" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Alpha" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Alpha", source, 255, 255, 255, true )
					    end
					elseif VIP == "Epsylon" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Epsylon" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Epsylon", source, 255, 255, 255, true )
					    end
					elseif VIP == "Sigma" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Sigma" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Sigma", source, 255, 255, 255, true )
					    end
					elseif VIP == "Omega" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Omega" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Omega", source, 255, 255, 255, true )
					    end
					end
					if VIP == "Alpha" or VIP == "Epsylon" or VIP == "Sigma" or VIP == "Omega" then
					    --return outputChatBox ( "* Erro: Esse VIP não existe!", source, 255, 255, 255, true )
					--end
			        aclGroupAddObject ( aclGetGroup( VIP ), "user."..Conta )
					Musica_Selecionada = math.random ( 1, 3 )
					triggerClientEvent ( root, "AirNewSCR_Ativar_VIP", root, Musica_Selecionada, VIP )
					if Musica_Selecionada == 1 then
						--outputChatBox ( "Arquivos/Rae_Sremmurd_Black_Beatles_ft_Gucci_Mane.mp3", source )
						Musica_Tocando = "Rae Sremmurd - Black Beatles ft. Gucci Mane"
						Bonus = 0
					elseif Musica_Selecionada == 2 then
						--outputChatBox ( "Arquivos/Post_Malone_Congratulations_ft_Quavo.mp3", source )
						Musica_Tocando = "Post Malone - Congratulations ft. Quavo"
						Bonus = 50
					elseif Musica_Selecionada == 3 then
						--outputChatBox ( "XXXTENTACION_Look_At_Me.mp3", source )
						Musica_Tocando = "XXXTENTACION - Look At Me!"
						Bonus = 100
					end
					setElementData ( root, "Ultimo_Ativador", getPlayerName(Jogador) )
					setElementData ( root, "VIP_do_Ultimo_Ativador", VIP )
					outputChatBox ( " ", root )
					outputChatBox ( " ", root )
					outputChatBox ( "=======================================================", root, 255, 255, 255, true )
					outputChatBox ( "* O(A) Jogador(a) "..getPlayerName(Jogador).." #ffffffAtivou um Plano VIP "..VIP, root, 255, 255, 255, true )
					if Bonus == 0 then
						outputChatBox ( "* Seu Bonus de Ativação foi de "..Bonus.."%, Não foi dessa vez!", root, 255, 255, 255, true )
						outputChatBox ( "* O(A) Jogador(a) Recebeu 1kk pela Ativação do VIP", root, 255, 255, 255, true )
						if Dinheiro ~= false then
						    givePlayerMoney ( Jogador, 1000000 )
						    givePlayerMoney ( Jogador, 0 )
						end
					elseif Bonus == 50 then
						outputChatBox ( "* Seu Bonus de Ativação foi de "..Bonus.."%, +50% de 1kk (1kk500k)", root, 255, 255, 255, true )
						outputChatBox ( "* O(A) Jogador(a) Recebeu 1kk pela Ativação do VIP (+500k Bonus)", root, 255, 255, 255, true )
						if Dinheiro ~= false then
						    givePlayerMoney ( Jogador, 1000000 )
						    givePlayerMoney ( Jogador, 500000 )
						end
					elseif Bonus == 100 then
						outputChatBox ( "* Seu Bonus de Ativação foi de "..Bonus.."%, +100% de 1kk (2kk)", root, 255, 255, 255, true )
					    outputChatBox ( "* O(A) Jogador(a) Recebeu 1kk pela Ativação do VIP (+1kk Bonus)", root, 255, 255, 255, true )
						if Dinheiro ~= false then
						    givePlayerMoney ( Jogador, 1000000 )
						    givePlayerMoney ( Jogador, 1000000 )
						end
					end
					outputChatBox ( "* Musica Tocando: "..Musica_Tocando, root, 255, 255, 255, true )
					outputChatBox ( "=======================================================", root, 255, 255, 255, true )
					outputChatBox ( " ", root )
					outputChatBox ( " ", root )
					outputDebugString ( "[ Ativação ] - O(A) Admin "..getPlayerName(source).." Ativou um VIP para o(a) Jogador(a) "..getPlayerName(Jogador).."!" )
					outputDebugString ( "[ Ativação ] - Bonus do VIP Gerado: "..Bonus.."%" )
					setTimer ( function()
		                restartResource ( getThisResource ( ) ) -- Reinicia o Mod Automaticamente!
						outputDebugString ( "[ AirNewSCR ] - Resource 'Scripts_AtivarVIP' Reiniciado Automaticamente! " )
	                end, 15000, 1 )
			    end
			end
	        else
	            outputChatBox ( "* Erro: Jogador não encontrado!", source, 255, 255, 255, true )
            end
		end
	end
end
addCommandHandler ( Comando_VIP, Dar_VIP_AirNewSCR )

function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc and not isGuestAccount(acc) then
			local accName = getAccountName (acc)
			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
			    setElementData ( player, "Console_AirNewSCR", "Sim" )
			else
			    setElementData ( player, "Console_AirNewSCR", "Não" )
			end
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 1500, 0 )

-- By AirNewSCR 

 

 

Link to comment
  • Moderators
40 minutes ago, SnoopSCR said:

quero saber se tem como eu modificar ele para dar vip usando o comando /ativar "nomeDoPlayer" "tipodovip""dinheiro" e quantos dias irá durar o vip

Primeiro passo é aprender calcular o tempo do VIP, recomendo Timestamp pra isso. Aqui vai um tutorial que vai te ajudar nisso:

Dominando o assunto do timestamp, é só aplicar o cálculo no código e setar na conta do jogador.

Link to comment
10 minutes ago, DNL291 said:

Primeiro passo é aprender calcular o tempo do VIP, recomendo Timestamp pra isso. Aqui vai um tutorial que vai te ajudar nisso:

Dominando o assunto do timestamp, é só aplicar o cálculo no código e setar na conta do jogador.

Ótimo vou estudar. mais eu estou tentando modificar sem usar o timestamp no momento,  tentei tirar o data "consoleAirNewSCR e colocando permissão por Acl. Ficou certo?

 

function Dar_VIP_AirNewSCR ( source, cmd, player, VIP, Dinheiro )
    if isElement(cliente) then
	    if player and VIP and (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(source)), aclGetGroup("Console"))) then
            local Jogador = getPlayerFromPartialName ( player )
            if Jogador then
		        if not isGuestAccount ( getPlayerAccount ( Jogador ) ) then
			        local Conta = getAccountName ( getPlayerAccount ( Jogador ) )
					if VIP == "Alpha" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Alpha" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Alpha", source, 255, 255, 255, true )
					    end
					elseif VIP == "Epsylon" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Epsylon" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Epsylon", source, 255, 255, 255, true )
					    end
					elseif VIP == "Sigma" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Sigma" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Sigma", source, 255, 255, 255, true )
					    end
					elseif VIP == "Omega" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Omega" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Omega", source, 255, 255, 255, true )
					    end
					end
					if VIP == "Alpha" or VIP == "Epsylon" or VIP == "Sigma" or VIP == "Omega" then
					    --return outputChatBox ( "* Erro: Esse VIP não existe!", source, 255, 255, 255, true )
					--end

Estou tentando o comando /ativar login omega 50 e não acontece nada, agora vou fazer um debug com outputChatBox pra ver o que está ocorrendo com o script. Me ajude por favor;

Edited by SnoopSCR
Link to comment
  • Moderators

Alguns erros aí.

1 - 'Cliente' não está definido, logo, retornará nil, então a verificação de certa forma está assim:

isElement(nil)

2 - Coloque getPlayerFromPartialName depois do escopo da linha 5 e substitua Jogador com player (na linha 5).

Edit: Na verdade essa parte tá certa, o que tá impedindo o seu código de executar é o isElement no começo.

Edited by DNL291
Link to comment
  • Other Languages Moderators

E tem erro de indentação. Alguns lugares vc fez por tabulações e outros por espaços. Recomendo que faça tudo por tabulação.

E caso vc queira criar outro VIP no futuro, sugiro o nome Zeta. (Z) Gostei da ideia desses nomes que vc usou.

Edited by Lord Henry
Link to comment
On 28/01/2019 at 23:50, DNL291 said:

Alguns erros aí.

1 - 'Cliente' não está definido, logo, retornará nil, então a verificação de certa forma está assim:


isElement(nil)

2 - Coloque getPlayerFromPartialName depois do escopo da linha 5 e substitua Jogador com player (na linha 5).

Edit: Na verdade essa parte tá certa, o que tá impedindo o seu código de executar é o isElement no começo.

Eu fiz a seguinte modificação e funcionou! :D

function Dar_VIP_AirNewSCR ( source, cmd, player, VIP, Dinheiro )
	    if player and VIP and tonumber(Dinheiro) and (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(source)), aclGetGroup("Console"))) then
            local Jogador = getPlayerFromPartialName ( player )
            if Jogador then
		        if not isGuestAccount ( getPlayerAccount ( Jogador ) ) then
			        local Conta = getAccountName ( getPlayerAccount ( Jogador ) )
					if VIP == "Alpha" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Alpha" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Alpha", source, 255, 255, 255, true )
					    end
					elseif VIP == "Epsylon" then
					    if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Epsylon" ) ) then
			                return outputChatBox ( "* Erro: Esse Jogador já é VIP Epsylon", source, 255, 255, 255, true )
					    end

Está tudo certo? 

On 29/01/2019 at 00:38, Lord Henry said:

E tem erro de indentação. Alguns lugares vc fez por tabulações e outros por espaços. Recomendo que faça tudo por tabulação.

E caso vc queira criar outro VIP no futuro, sugiro o nome Zeta. (Z) Gostei da ideia desses nomes que vc usou.

Vou concertar tudo logo mais. Obrigado pela dica, estamos juntos.

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