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

FURZY'S CUSTOM WEAPON SYSTEM

Discord: Furzy#4125

 

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 ? 

  • 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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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

  • 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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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.

  • Moderators
Posted

Qual erro aparece no /debugscript 3?

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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.

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

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