Jump to content

[AJUDA] setElementVisibleTo, sumir Marker.


Recommended Posts

Posted
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!

Posted

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

Posted (edited)
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
Posted
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 ? 

  • Other Languages Moderators
Posted (edited)

Linhas 17 e 18 são comentários. Coloque dois traços na frente dessas linhas.
Ou nem coloque elas no script.

Edited by Lord Henry
Posted (edited)
5 minutes ago, Lord Henry said:

Linhas 17 e 18 são comentários. Coloque dois traços na frente dessas linhas.
Ou nem coloque elas no script.

Sim, não coloquei elas no script.

Edited by Lord Henry
Posted (edited)
14 minutes ago, joao2235 said:

Sim, não coloquei elas no script.

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

Edited by Furzy
Posted
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]

  • Other Languages Moderators
Posted (edited)

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

Posted

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.

Posted

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.

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