Jump to content

[AJUDA]DxDrawText


Recommended Posts

Posted

Então, estou fazendo uma HUD cuja tem verificação de data, estou fazendo da seguinte forma:

function hud ()
	local job = getElementData (localPlayer, "Emprego" ) or false

	if job == "Mecanico" then
	setElementData (localPlayer, "Profissão", "Mecanico")
	elseif job == "Petroleiro" then
	setElementData (localPlayer, "Profissão", "Petroleiro")
	elseif job == "Motorista de Uber" then
	setElementData (localPlayer, "Profissão", "Motorista de Uber")
	elseif job == "Motorista de Onibus" then
	setElementData (localPlayer, "Profissão", "Motorista de Ônibus" )
	elseif job == "Entregador de Jornal" then
	setElementData (localPlayer, "Profissão", "Entregador de Jornal")
	elseif job == "Piloto de Aviao" then
	setElementData (localPlayer, "Profissão", "Piloto de Avião")
	elseif job == "PizzaBoy" then
	setElementData (localPlayer, "Profissão", "PizzaBoy")
	elseif job == "Policial" then
	setElementData (localPlayer, "Profissão", "Policial")
	elseif job == "Transportador de Drogas" then
	setElementData (localPlayer, "Profissão", "Transportador de Drogas")
	elseif job == false then
	setElementData (localPlayer, "Profissão", "Desempregado")
	end
  
	dxDrawText(""..job"", (screenW * 0.8906) - 1, (screenH * 0.1000) - 1, (screenW * 0.9922) - 1, (screenH * 0.1417) - 1, tocolor(0, 0, 0, 255), 1.00, dxfont0_CicleSemi, "left", "center", false, false, false, false, false)
end

Mas ai o debugscript está acusando que "job" é um valor boleano, como resolvo isso?

 

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted
 
  1. setAccountData ( account theAccount, string key, string value )

Em algum lugar tu colocou o setAccountData ?

 

Em job tu colocou "Emprego" or false, se tu não usou o setAccountData imagino que ele está usando o false.
Caso tu tenha usado o setAccountData não faço ideia do que está acontecendo.

 

 

 

Nota: Ainda estou aprendendo a programar.

Posted

Troque

dxDrawText(""..job"", (screenW * 0.8906) - 1, (screenH * 0.1000) - 1, (screenW * 0.9922) - 1, (screenH * 0.1417) - 1, tocolor(0, 0, 0, 255), 1.00, dxfont0_CicleSemi, "left", "center", false, false, false, false, false)

 

Por

dxDrawText(tostring( job ), (screenW * 0.8906) - 1, (screenH * 0.1000) - 1, (screenW * 0.9922) - 1, (screenH * 0.1417) - 1, tocolor(0, 0, 0, 255), 1.00, dxfont0_CicleSemi, "left", "center", false, false, false, false, false)

 

Hello, world.


Tutorial sobre interação de BOTs do Discord com o seu servidor - Visitar (Brazilian Portuguese)
Tutorial sobre tabelas - Visitar (Brazilian Portuguese)
Tutorial sobre banco de dados - Visitar (Brazilian Portuguese)
Posted

Tem certeza que você quer renderizar setElementData? Depois que o servidor sofrer queda de performance tá aí a resposta - programação mal feita.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
1 minute ago, DNL291 said:

Tem certeza que você quer renderizar setElementData? Depois que o servidor sofrer queda de performance tá aí a resposta - programação mal feita.

Como assim? Explique...

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted

setElementData consome processamento e banda - para sincronizar entre os lados. E colocar dentro do "onClientRender" além de desnecessário vai ser péssimo ao servidor. Imagine 200 jogadores no seu server, executando isso ao mesmo tempo.

Evite usar esse setElementData na renderização, você nem vai precisar fazer dessa forma pra manter a data do jogador atualizada, basta setar quando entrar/sair de um emprego, e no "onClientRender" você só vai usar o getElementData.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
2 minutes ago, DNL291 said:

setElementData consome processamento e banda - para sincronizar entre os lados. E colocar dentro do "onClientRender" além de desnecessário vai ser péssimo ao servidor. Imagine 200 jogadores no seu server, executando isso ao mesmo tempo.

Evite usar esse setElementData na renderização, você nem vai precisar fazer dessa forma pra manter a data do jogador atualizada, basta setar quando entrar/sair de um emprego, e no "onClientRender" você só vai usar o getElementData.

Então pelo o que eu entendi, se eu fizer desta maneira, o servidor vai estar continuamente verificando data de player em player, correto? Se sim, na prática, como eu deveria fazer para não acontecer esse "sobrecarregamenro"?

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted

Para otimizar, é só setar esse element-data fora desse evento e quando for realmente necessário atualizar, ou seja quando trocar de emprego.

Você precisa mesmo desses 2 elements-data? ("Profissão" e "Emprego") se você abrir mão de um já é uma otimização. 

Setando os dados, eu faria assim:

local jobNames = {
	["Motorista de Onibus"] = "Motorista de Ônibus", ["Piloto de Aviao"] = "Piloto de Avião"
}

local emprego = getElementData (localPlayer, "Emprego" ) or "Desempregado"

if jobNames[emprego] then
	emprego = jobNames[emprego]	
end
setElementData (localPlayer, "Profissão", emprego)

Se você continuar com o element-data "Emprego", então você pode setar isso dentro do evento onElementDataChange > "Emprego".

Se não, basta usar o setElementData em "Profissão"; Quando o jogador sair de um trabalho seta "Desempregado", quando entrar em um novo seta a profissão correspondente. Vai depender de como o seu sistema de empregos está programado.

Please do not PM me with scripting related question nor support, use the forums instead.

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