Jump to content

[AJUDA] setElementVisibleTo, sumir Marker.


Recommended Posts

SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000)
MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50)
setElementVisibleTo ( MarkerTeste, root, false )

function MarkerVisible (source)
  local account = getPlayerAccount(source)
  if getAccountData(account, "FirstTime") then -- aconta true
    if not isElementVisibleTo ( MarkerTeste, source ) then -- ñ está visível
      setElementVisibleTo ( MarkerTeste, source, true )
  else
    setElementVisibleTo(MarkerTeste, source, false)
    end
  end
end
addEventHandler("onResourceStart", root, MarkerVisible)

Gostaria que apenas aqueles players que estão com a variável, "getAccountData(account, "FirstTime") then" (line7) possam ver o marker e o pickup. Não sei o que fiz de errado, alguém pode me ajudar, por favor ? Desde já agradeço!

Link to comment

onde você especifica que o elemento é true ou false?

SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000)
MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50)
setElementVisibleTo ( MarkerTeste, root, false )

function MarkerVisible (source)
  local account = getPlayerAccount(source)
  if getAccountData(account, "FirstTime", true) then -- aconta true
    if not isElementVisibleTo ( MarkerTeste, source ) then -- ñ está visível
      setElementVisibleTo ( MarkerTeste, source, true )
  else
    setElementVisibleTo(MarkerTeste, source, false)
    end
  end
end
addEventHandler("onResourceStart", root, MarkerVisible)

tente assim, não testei..

Link to comment
SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000)
MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50)


function MarkerVisible (plr)
  local account = getPlayerAccount(plr)
  if getAccountData(account, "FirstTime") then 
      setElementVisibleTo ( MarkerTeste, plr, true )
  else
    setElementVisibleTo(MarkerTeste, plr, false)
    end
end
addEventHandler("onResourceStart", root, MarkerVisible)


o if getAccountData(account,"FirstTime") then ja retorna verdadeiro, 
  mas voce pode usar  if getAccountData(account,"FirstTime") == true then e para falso if getAccountData(account,"FirstTime") == false then

O source desse evento é root.

Edited by Furzy
Link to comment
47 minutes ago, Furzy said:

SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000)
MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50)


function MarkerVisible (plr)
  local account = getPlayerAccount(plr)
  if getAccountData(account, "FirstTime") then 
      setElementVisibleTo ( MarkerTeste, plr, true )
  else
    setElementVisibleTo(MarkerTeste, plr, false)
    end
end
addEventHandler("onResourceStart", root, MarkerVisible)


o if getAccountData(account,"FirstTime") then ja retorna verdadeiro, 
  mas voce pode usar  if getAccountData(account,"FirstTime") == true then e para falso if getAccountData(account,"FirstTime") == false then

O source desse evento é root.

Testei e não funcionou... Porque estou fazendo o seguinte script, quando o player nasce pela primeira vez ele pode escolher uma skin de graça. O que será que deve estar errado ? 

Link to comment
Just now, Furzy said:

tenta trocar o evento para onPlayerLogin ai vc troca o plr por source novamente

Vou fazer isso e já posto o resultado.

function MarkerVisible (source)
  local account = getPlayerAccount(source)
  if not getAccountData(account,"FirstTime") == true then 
    setElementVisibleTo ( MarkerTeste, source, true )
  else
    setElementVisibleTo(MarkerTeste, source, false)
    end
end
addEventHandler("onPlayerLogin", root, MarkerVisible)

Fiz dessa forma acima. Console output:
WARNING: [VZR]SkinNascer\clothes_s.Lua:40: Bad argument @ 'getPlayerAccount' [Expected element at argument 1, got account]
[11:47:27] WARNING: [VZR]SkinNascer\clothes_s.Lua:41: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean]
[11:47:27] WARNING: [VZR]SkinNascer\clothes_s.Lua:42: Bad argument @ 'setElementVisibleTo' [Expected element at argument 2, got account]

Link to comment
  • Other Languages Moderators

Não use source como parâmetro de função.

function MarkerVisible (prevAcc, currAcc) -- Parâmetros do evento onPlayerLogin, vc descobre isso lendo a Wiki dele.
	if not getAccountData (currAcc, "FirstTime") then 
		setElementVisibleTo (MarkerTeste, source, true) -- Source também muda dependendo do evento. Neste caso source = jogador que logou.
	else
		setElementVisibleTo (MarkerTeste, source, false)
	end
end
addEventHandler ("onPlayerLogin", root, MarkerVisible)

 

Edited by Lord Henry
Link to comment
13 hours ago, Lord Henry said:

Não use source como parâmetro de função.


function MarkerVisible (prevAcc, currAcc) -- Parâmetros do evento onPlayerLogin, vc descobre isso lendo a Wiki dele.
	if not getAccountData (currAcc, "FirstTime") then 
		setElementVisibleTo (MarkerTeste, source, true) -- Source também muda dependendo do evento. Neste caso source = jogador que logou.
	else
		setElementVisibleTo (MarkerTeste, source, false)
	end
end
addEventHandler ("onPlayerLogin", root, MarkerVisible)

 

Ainda não funcionou, fiz tudo do jeito que informou.

Link to comment
  • Moderators

Tente o seguinte, server:

function MarkerVisible (_, acc)
	if not getAccountData(acc, "FirstTime") then
		triggerClientEvent( source, "onRequestCreateMarker", source )
		setAccountData( acc, "FirstTime", true )
	end
end
addEventHandler("onPlayerLogin", root, MarkerVisible)

Client:

addEvent( "onRequestCreateMarker", true )
addEventHandler( "onRequestCreateMarker", root, function()
	
	local SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000)
	local MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50)
	
	addEventHandler( "onClientMarkerHit", MarkerTeste, function( player )
		if player == localPlayer then
			-- código
		end
	end )
end )

A account data "FirstTime" precisa ser nil/false, se não tiver abra a internal.db e muda o valor.

Deixei a marker e pickup no cliente, só você dar continuidade no código.

Link to comment

Não funcionou mestre, criei até uma outra conta para fazer o teste, porém sem sucesso. Tenho uma função dentro do código para testes:
 

function skintrue (source)
  local account = getPlayerAccount(source)
  setAccountData(account, "FirstTime", true)
  outputChatBox("Setado para true", source)
end
addCommandHandler("skintrue", skintrue) 

function skinfalse (source)
  local account = getPlayerAccount(source)
  setAccountData(account, "FirstTime", false)
  outputChatBox("Setado para falso", source)
end
addCommandHandler("skinfalse", skinfalse) 

Usando os 2 comandos mesmo assim não fica visível nem o marker nem o pickup.

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