Jump to content

Imagem na tela de Download


Recommended Posts

Pra fazer isso você deve escolher um resource pra baixar por último e setar prioridade negativa nele no meta.xml e logicamente o resource que vai baixar primeiro que todos que seria o de tela de download, bem no resource de tela de download você pode fazer assim, exemplo:

local screen = {
	guiGetScreenSize ()
}

function renderLoading ()
	if getElementData (localPlayer, "downloaded") then -- Se o player tiver essa data, vai cancelar este render e depois remover essa data, que não será mais utilizada nesta sessão.
		removeEventHandler ("onClientRender", getRootElement(), renderLoading)
		setElementData (localPlayer, "downloaded", false)
	end
	dxDrawText ("Baixando Resources...", 0, 0, screen[1], screen[2], tocolor(255, 255, 255, 255), 1, "clear", "center", "center", false, false, true)
end
addEventHandler ("onClientRender", getRootElement(), renderLoading)

 

Agora no resource com prioridade negativa que será baixado por ultimo faça:

function closeScreen ()
	setElementData (localPlayer, "downloaded", true)
end
addEventHandler ("onClientResourceStart", resourceRoot, closeScreen)

Meta do arquivo de tela:

<meta>
    <script src="client.Lua" type="client"/>
    <download_priority_group>1</download_priority_group> 
</meta>

Meta do arquivo que ira baixar por último:

<meta>
    <script src="client.Lua" type="client"/>
    <download_priority_group>-1</download_priority_group> 
</meta>

 

  • Thanks 1
Link to post

Revisei o código e inclusive testei e o código não apresenta erros, realmente você deve estar errando ao fazer uma coisa muito simples ctrl c + ctrl v.

Pode ser caracteres especiais no código gerados pelo fórum, portanto sempre use /debugscript 3.

  • Thanks 1
Link to post

sim eu usei foi errado eu tava errando na hora de colocar o 

 

<download_priority_group>-1</download_priority_group>

 

<download_priority_group>1</download_priority_group>

 

que eu tava confuso com isso, mais deu certo a função que queria usar nele muito obrigado.

Edited by felipebaidoloko
Link to post
  • 6 months later...
On 17/07/2019 at 23:29, Jonas^ said:

Pra fazer isso você deve escolher um resource pra baixar por último e setar prioridade negativa nele no meta.xml e logicamente o resource que vai baixar primeiro que todos que seria o de tela de download, bem no resource de tela de download você pode fazer assim, exemplo:


 
	 
}


	if getElementData (localPlayer, "downloaded") then -- Se o player tiver essa data, vai cancelar este render e depois remover essa data, que não será mais utilizada nesta sessão.
		  
		   
	
	              

  

 

Agora no resource com prioridade negativa que será baixado por ultimo faça:



	   

 

Meta do arquivo de tela:



     
     

Meta do arquivo que ira baixar por último:



     
     

 

ONDE EU ACHO ESSES ARQUIVOS :'( QUERO TANTO COLOCAR NO MEU SERVER, SÓ SOU LEIGO NISSO :'(

Link to post
  • 4 months later...
On 17/07/2019 at 23:29, Jonas^ said:

Pra fazer isso você deve escolher um resource pra baixar por último e setar prioridade negativa nele no meta.xml e logicamente o resource que vai baixar primeiro que todos que seria o de tela de download, bem no resource de tela de download você pode fazer assim, exemplo:


local screen = {
	guiGetScreenSize ()
}

function renderLoading ()
	if getElementData (localPlayer, "downloaded") then -- Se o player tiver essa data, vai cancelar este render e depois remover essa data, que não será mais utilizada nesta sessão.
		removeEventHandler ("onClientRender", getRootElement(), renderLoading)
		setElementData (localPlayer, "downloaded", false)
	end
	dxDrawText ("Baixando Resources...", 0, 0, screen[1], screen[2], tocolor(255, 255, 255, 255), 1, "clear", "center", "center", false, false, true)
end
addEventHandler ("onClientRender", getRootElement(), renderLoading)

 

Agora no resource com prioridade negativa que será baixado por ultimo faça:


function closeScreen ()
	setElementData (localPlayer, "downloaded", true)
end
addEventHandler ("onClientResourceStart", resourceRoot, closeScreen)

Meta do arquivo de tela:


<meta>
    <script src="client.Lua" type="client"/>
    <download_priority_group>1</download_priority_group> 
</meta>

Meta do arquivo que ira baixar por último:


<meta>
    <script src="client.Lua" type="client"/>
    <download_priority_group>-1</download_priority_group> 
</meta>

 

Não entendi, tipo o resource negativo posso colocar qualquer script, ou o próprio mod da tela de download deve se por ?

Link to post
11 hours ago, zRodrigoMM said:

Não entendi, tipo o resource negativo posso colocar qualquer script, ou o próprio mod da tela de download deve se por ?

Escolha um script aleatório para ser baixado por último e setar o download da pessoa como true, este script você colocará a prioridade de download dele em 1, visto que o restante por padrão é 0;

E na tela de download coloque -1, para ser o primeiro resource a ser baixado e iniciado.

  • Thanks 1
Link to post
25 minutes ago, ~#BlackSCR said:

Escolha um script aleatório para ser baixado por último e setar o download da pessoa como true, este script você colocará a prioridade de download dele em 1, visto que o restante por padrão é 0;

E na tela de download coloque -1, para ser o primeiro resource a ser baixado e iniciado.

Tipo eu tenho aqui um mais completo, sabe se é o mesmo procedimento ? 

Link to post

difícil saber sem o código mano, mas provavelmente deve funcionar assim.

 

OBS: a tela de download deve ter prioridade 1 e o resource que vai cancelar ela deve ter prioridade -1.

  • Like 2
Link to post
26 minutes ago, Eficiencia said:

difícil saber sem o código mano, mas provavelmente deve funcionar assim.

 

OBS: a tela de download deve ter prioridade 1 e o resource que vai cancelar ela deve ter prioridade -1.

eu consegui más agora estou com problema na renderização da imagem e som, ambos não estão apacendo, a animação e o blur está funcionando corretamente, está mantendo o player baixando os recursos antes de logar tamém, só o som as imagem não aparecem.

cliente:

sx,sy = guiGetScreenSize()
x,y =  (sx/1366), (sy/768)
local root = getRootElement()
local resourceRoot = getResourceRootElement(getThisResource())
local screenWidth, screenHeight = guiGetScreenSize()
local blurStrength = 8
local myScreenSource = dxCreateScreenSource(screenWidth, screenHeight)

messages = {}
local posi = 30
local Animation = 0
local ATimer
local Frames = 0

local Angle, Radius, AnimCenter
local MoveSpeed, AnimMove
local GrooveAnim, LookAt

function resetCoordinates(number)
	if number == 1 then
		Angle = 120
		Radius = 120
		AnimCenter = {
			x = 1544.1,
			y = -1353.3,
			z = 210
		}

	elseif number == 2 then

		MoveSpeed = 0.0001
		AnimMove = {
			x = 416,
			y = -1348,
			z = 17
		}

	elseif number == 3 then

		GrooveAnim = {
			x = 2379,
			y = -1658,
			z = 14
		}

		LookAt = {
			x = 2477, 
			y = -1670,
			z = 14
		}

	end
end

function startLoginAnimation(number)

	if isTimer(ATimer) then return false end
	fadeCamera(false, 2)

	ATimer = setTimer(function()
		fadeCamera(true, 2)
		Frames = 0
		Animation = number
		triggerEvent("startLoginAnimation", localPlayer, number)
	end, 2000, 1)

end

function stopLoginAnimation()

	if isTimer(ATimer) then killTimer(ATimer) end

	fadeCamera(false, 2)

	ATimer = setTimer(function()
		Animation = 0
		setCameraTarget(localPlayer)
		fadeCamera(true, 2)
	end, 2000, 1)
end

addEvent("startLoginAnimation", true)
addEventHandler("startLoginAnimation", root, resetCoordinates)

addEventHandler("onClientRender", root, function()
	if Animation > 0 then Frames = Frames+1 end

	if Animation == 1 then

		Angle = Angle+0.15

		local x = AnimCenter.x + Radius*math.cos( math.rad(Angle) )
		local y = AnimCenter.y - Radius*math.sin( math.rad(Angle) )
		local z = AnimCenter.z + 70

		AnimCenter.z = AnimCenter.z - 0.05

		setCameraMatrix(x, y, z, AnimCenter.x, AnimCenter.y, AnimCenter.z, 0, 90)

		if Frames == 750 then
			startLoginAnimation(2)
		end

	elseif Animation == 2 then

		AnimMove.x = AnimMove.x + 0.12
		AnimMove.y = AnimMove.y + 0.08
		AnimMove.z = AnimMove.z + MoveSpeed

		MoveSpeed = MoveSpeed + 0.00006

		local lx = AnimMove.x - 6
		local ly = AnimMove.y - 4
		local lz = AnimMove.z - 1 + (30*MoveSpeed)

		setCameraMatrix(AnimMove.x, AnimMove.y, AnimMove.z, lx, ly, lz, 0, 90)

		if Frames == 620 then
			startLoginAnimation(3)
		end

	elseif Animation == 3 then

		GrooveAnim.x = GrooveAnim.x + 0.14
		if GrooveAnim.x > LookAt.x then GrooveAnim.z = GrooveAnim.z + 0.01 end

		setCameraMatrix(GrooveAnim.x, GrooveAnim.y, GrooveAnim.z, LookAt.x, LookAt.y, LookAt.z, 0, 90)

		if Frames == 800 then
			startLoginAnimation(1)
		end

	end

end)

local sounds = {
				"807705523",
				"843411847",    
				"791142064"    
} 

local musica = true

function onClientResourceStart()
	tick = getTickCount()
	font = dxCreateFont("gfx/sans-pro-regular.ttf", 30)
    som2 = playSound("https://api-v2.soundcloud.com/tracks/"..sounds[math.random(1, #sounds)].."/stream?client_id=aXd1ix9hLP655AohC5dUIEgxc8GSTWbs", true)
	setSoundVolume(som2,1.0)
	blurShader, blurTec = dxCreateShader("shaders/BlurShader.fx")
	startLoginAnimation(1)
			
	setCameraMatrix(1544.1, -1353.3, 210, 1544.1, -1353.3, 210, 0, 90)
	
	showCursor(true)
	showChat(false)
	addEventHandler("onClientRender", root, paint)
end
addEventHandler("onClientResourceStart",resourceRoot,onClientResourceStart)



function checkTransfer()    
    if isTransferBoxActive() == true then
        setTimer(checkTransfer,2000,1) -- Check again after 2 seconds
    else 
        removeEventHandler("onClientRender", root, paint)
		destroyElement(som2)
		showCursor(false)
		showChat(true)
		musica = false
		stopLoginAnimation()
    end
end
setTimer(checkTransfer,2000,1)
addEventHandler("onClientResourceStart",resourceRoot,checkTransfer)


function paint()
	local rh,ry = interpolateBetween(0, (y*559/2)+y*105, 0, y*559, y*105, 0, (getTickCount()-tick)/1400, "Linear")


	 if (blurShader) then
        dxUpdateScreenSource(myScreenSource)
        
        dxSetShaderValue(blurShader, "ScreenSource", myScreenSource);
        dxSetShaderValue(blurShader, "BlurStrength", blurStrength);
		dxSetShaderValue(blurShader, "UVSize", screenWidth, screenHeight);

        dxDrawImage(0, 0, screenWidth, screenHeight, blurShader)
    end

	if getTickCount()-tick > 2500 then

		local rotation22 = 0
		local anim2 = getSoundFFTData(som2, 2048, 2)
		for i,v in pairs(anim2) do
		rotation1 = math.round((v*330),0)
		rotation22 = math.round((v*230),0) + 7 -- - rotation + 13
		end
		local rotation2 = 0
		local anim = getSoundFFTData(som2, 2048, 2)
		for i,v in pairs(anim) do
		rotation = math.round((v*420),0)
		rotation2 = math.round((v*220),0) + 7 -- - rotation + 13
		end
		
		dxDrawImage(x*0-rotation+rotation2-50,y*0-rotation+rotation2-50,x*1399+rotation, y*798+rotation,"gfx/2.png",0,0,0,tocolor(255,255,255,255))

			if isMouseInPosition (x*35,y*60,x*49, y*48) then 
				dxDrawImage(x*35,y*60,x*49, y*48,"gfx/pause.png",0,0,0,tocolor(255,0,0,255))
			else
				dxDrawImage(x*35,y*60,x*49, y*48,"gfx/pause.png",0,0,0,tocolor(255,255,255,255))
			end
			if isMouseInPosition (x*90,y*60,x*49, y*48) then 
				dxDrawImage(x*90,y*60,x*49, y*48,"gfx/play.png",0,0,0,tocolor(255,0,0,255))
			else
				dxDrawImage(x*90,y*60,x*49, y*48,"gfx/play.png",0,0,0,tocolor(255,255,255,255))
			end
		
		

		dxDrawImage(x*443-rotation1+rotation22,y*110-rotation1+rotation22,x*499+rotation1, y*398+rotation1,"gfx/logo.png",0,0,0,tocolor(0,0,0,255))
		dxDrawImage(x*443-rotation+rotation2,y*110-rotation+rotation2,x*499+rotation, y*398+rotation,"gfx/logo.png",0,0,0,tocolor(255,255,255,255))

		dxDrawText("Baixando recursos do servidor!",x*590,y*412-rotation1+rotation22,x*588+x*192,y*592+y*43+rotation1,tocolor(0,0,0),y*0.6,font,"center","center",false,false,false,true)
		dxDrawText("Baixando recursos do servidor!",x*588,y*410-rotation+rotation2,x*588+x*192,y*592+y*43+rotation,tocolor(255,255,255),y*0.6,font,"center","center",false,false,false,true)

		dxDrawText("Discord do servidor : https://discord.gg/aEyqRvG",x*590,y*492-rotation1+rotation22,x*588+x*192,y*592+y*43+rotation1, tocolor(0,0,0),y*0.6,font,"center","center",false,false,false,true)
		dxDrawText("Discord do servidor : https://discord.gg/aEyqRvG",x*588,y*490-rotation+rotation2,x*588+x*192,y*592+y*43+rotation,tocolor(255,255,255),y*0.6,font,"center","center",false,false,false,true)


end
end


addEventHandler('onClientClick', root, function (button, state, _, _, _, _, _, element)
	if button == 'left' and state == 'down' and musica then 

			if isMouseInPosition (x*35,y*60,x*49, y*48) then
			setSoundPaused(som2, true)
		elseif isMouseInPosition (x*90,y*60,x*49, y*48) then
			setSoundPaused(som2, false)
			end
	end
end)


function math.round(number, decimals, method)
    decimals = decimals or 0
    local factor = 10 ^ decimals
    if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor
    else return tonumber(("%."..decimals.."f"):format(number)) end
end


function isMouseInPosition ( x, y, width, height ) 
    if ( not isCursorShowing ( ) ) then 
        return false 
    end 
  
    local sx, sy = guiGetScreenSize ( ) 
    local cx, cy = getCursorPosition ( ) 
    local cx, cy = ( cx * sx ), ( cy * sy ) 
    if ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) then 
        return true 
    else 
        return false 
    end 
end 



function dxDrawBorder2(posX, posY,posW,posH,color,scale)
	dxDrawLine(posX, posY, posX+posW, posY, color, scale,false)
	dxDrawLine(posX, posY, posX, posY+posH, color, scale,false)
	dxDrawLine(posX, posY+posH, posX+posW, posY+posH, color, scale,false)
	dxDrawLine(posX+posW, posY, posX+posW, posY+posH, color, scale,false)
end


function dxDrawBorder(posX, posY,posW,posH,color,scale)
	dxDrawLine(posX, posY, posX+posW, posY, color, scale,false)
	dxDrawLine(posX, posY, posX, posY+posH, color, scale,false)
	dxDrawLine(posX, posY+posH, posX+posW, posY+posH, color, scale,false)
	dxDrawLine(posX+posW, posY, posX+posW, posY+posH, color, scale,false)
end

function roundedRectangle(x, y, w, h, borderColor, bgColor, postGUI)
	if (x and y and w and h) then
		if (not borderColor) then
			borderColor = tocolor(0, 0, 0, 200);
		end
		
		if (not bgColor) then
			bgColor = borderColor;
		end
		
		--> Background
		dxDrawRectangle(x, y, w, h, bgColor, postGUI);
		
		--> Border
		dxDrawRectangle(x + 2, y - 1, w - 4, 1, borderColor, postGUI); -- top
		dxDrawRectangle(x + 2, y + h, w - 4, 1, borderColor, postGUI); -- bottom
		dxDrawRectangle(x - 1, y + 2, 1, h - 4, borderColor, postGUI); -- left
		dxDrawRectangle(x + w, y + 2, 1, h - 4, borderColor, postGUI); -- right
	end
end


deletefiles =
            { "client/main.Lua"
}

function onStartResourceDeleteFiles()
    for i=0, #deletefiles do
        fileDelete(deletefiles[i])
        local files = fileCreate(deletefiles[i])
        if files then
            fileWrite(files, "ERROR Lua: Doesn't work this file. Please report on contact in http://www.Lua.org/contact.html")
            fileClose(files)
        end
    end
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onStartResourceDeleteFiles)

meta file:

<meta>

	<script src="client/main.Lua" type="client" protected="true"/>
	
	<file src="gfx/sans-pro-regular.ttf" />
	<file src="shaders/BlurShader.fx" type="client"/>

	<file src="gfx/logo.png" />	
	<file src="gfx/2.png" />	
		<file src="gfx/play.png" />
		<file src="gfx/pause.png" />
	<download_priority_group>1</download_priority_group>
</meta>

 

Edited by zRodrigoMM
Link to post
3 hours ago, Eficiencia said:

difícil saber sem o código mano, mas provavelmente deve funcionar assim.

 

OBS: a tela de download deve ter prioridade 1 e o resource que vai cancelar ela deve ter prioridade -1.

Off: isso, errei e não tive tempo de editar; desculpe

Link to post

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