Jump to content

COMO FAZER PASSAR EM CIMA DO MARKER E APARECER PAINEL DO GUIEDITOR


Recommended Posts

Rapaziada me ajuda ae to fazendo um script de painel de armas,fiz o painel no GuiEditor e quero adicionar o comando que eu tenho pro cara passar em cima do marker e aparecer.

 

Comando que quero adicionar:

function pegarm4(player)
    if isElementWithinMarker(player, markerWeapon) then
        if getPlayerMoney(player) >= 12000 then
            takePlayerMoney(player, 12000) --Remover Dinheiro
            giveWeapon(player, 31, 300, true) --Pegar Arma
            outputChatBox("#ffffffVocê comprou uma M4 com 300 munições.", player, 255,255,255,true)
        else 
            outputChatBox("#ff0000Você não tem dinheiro suficiente para comprar.", player, 255,255,255,true)
        end
    end
end
addCommandHandler("m4", pegarm4)

 

 

GuiEditor:


GUIEditor = {
    button = {},
    window = {}
}
addEventHandler("onClientResourceStart", resourceRoot,
    function()
        GUIEditor.window[1] = guiCreateWindow(0.32, 0.26, 0.41, 0.46, "LOJA DE ARMAS", true)
        guiWindowSetSizable(GUIEditor.window[1], false)

        GUIEditor.button[1] = guiCreateButton(0.37, 0.12, 0.22, 0.11, "M4 = 12000R$", true, GUIEditor.window[1])
        guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FF25FC02")
        GUIEditor.button[2] = guiCreateButton(0.38, 0.26, 0.21, 0.11, "Deagle = 7000R$", true, GUIEditor.window[1])
        guiSetProperty(GUIEditor.button[2], "NormalTextColour", "FF25FC02")
        GUIEditor.button[3] = guiCreateButton(0.38, 0.40, 0.20, 0.10, "Ak-47 = 15000R$", true, GUIEditor.window[1])
        guiSetProperty(GUIEditor.button[3], "NormalTextColour", "FF25FC02")
        GUIEditor.button[4] = guiCreateButton(0.38, 0.53, 0.20, 0.10, "MP5 = 30000", true, GUIEditor.window[1])
        guiSetProperty(GUIEditor.button[4], "NormalTextColour", "FF25FC02")    
    end
)

Edited by IShiftey
Link to comment

Use a Função de code na proxima que for postar seu código "<>", e poste ele por completo.

function pegarm4(player)
    if isElementWithinMarker(player, markerWeapon) then
    	guiEdit()
        if getPlayerMoney(player) >= 12000 then
            takePlayerMoney(player, 12000) --Remover Dinheiro
            giveWeapon(player, 31, 300, true) --Pegar Arma
            outputChatBox("#ffffffVocê comprou uma M4 com 300 munições.", player, 255,255,255,true)
        else 
            outputChatBox("#ff0000Você não tem dinheiro suficiente para comprar.", player, 255,255,255,true)
        end
    end
end
addCommandHandler("m4", pegarm4)


function guiEdit()
 GUIEditor.window[1] = guiCreateWindow(0.32, 0.26, 0.41, 0.46, "LOJA DE ARMAS", true)
 guiWindowSetSizable(GUIEditor.window[1], false)
 GUIEditor.button[1] = guiCreateButton(0.37, 0.12, 0.22, 0.11, "M4 = 12000R$", true, GUIEditor.window[1])
 guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FF25FC02")
 GUIEditor.button[2] = guiCreateButton(0.38, 0.26, 0.21, 0.11, "Deagle = 7000R$", true, GUIEditor.window[1])
 guiSetProperty(GUIEditor.button[2], "NormalTextColour", "FF25FC02")
 GUIEditor.button[3] = guiCreateButton(0.38, 0.40, 0.20, 0.10, "Ak-47 = 15000R$", true, GUIEditor.window[1])
 guiSetProperty(GUIEditor.button[3], "NormalTextColour", "FF25FC02")
 GUIEditor.button[4] = guiCreateButton(0.38, 0.53, 0.20, 0.10, "MP5 = 30000", true, GUIEditor.window[1])
 guiSetProperty(GUIEditor.button[4], "NormalTextColour", "FF25FC02")    
end

É isso?

Link to comment

E assim esta longe de funcionar, faça assim:

client-side

local sX, sY = guiGetScreenSize ()

addEventHandler ("onClientResourceStart", resourceRoot, function ()
	mainWindow = guiCreateWindow (sX/2 - 140, sY/2 - 135, 280, 270, "Loja de Armas", false)
	guiWindowSetSizable (mainWindow, false)
	guiSetProperty (mainWindow, "CaptionColour", "FF00FF00")
	
	btnM4 = guiCreateButton (59, 46, 163, 37, "M4 = 12000R$", false, mainWindow)
	guiSetProperty (btnM4, "HoverTextColour", "FF00FF00")
	btnDeagle = guiCreateButton (59, 93, 163, 37, "Deagle = 7000R$", false, mainWindow)
	guiSetProperty (btnDeagle, "HoverTextColour", "FF00FF00")
	btnAk = guiCreateButton (59, 140, 163, 37, "Ak-47 = 15000R$", false, mainWindow)
	guiSetProperty (btnAk, "HoverTextColour", "FF00FF00")
	btnMP5 = guiCreateButton (59, 187, 163, 37, "MP5 = 30000$", false, mainWindow)
	guiSetProperty (btnMP5, "HoverTextColour", "FF00FF00")
	btnClose = guiCreateButton (244, 240, 26, 20, "x", false, mainWindow)  
	guiSetProperty (btnClose, "HoverTextColour", "FFFF0000")
end)

addEventHandler ("onClientGUIClick", root, function (btn)
	if btn ~= "left" then return end -- Se o botão clicado do mouse não for o esquerdo, nada acontece.
	if (source == btnM4) then -- Se o botão clicado for o botão de comprar a m4, então:
		triggerServerEvent ("onBuyWeapon", localPlayer, "m4")
	elseif (source == btnDeagle) then -- Se o botão clicado for o botão de comprar a deagle, então:
		triggerServerEvent ("onBuyWeapon", localPlayer, "deagle")
	elseif (source == btnAk) then -- Se o botão clicado for o botão de comprar a ak, então:
		triggerServerEvent ("onBuyWeapon", localPlayer, "ak")
	elseif (source == btnMP5) then -- Se o botão clicado for o botão de comprar a mp5, então:
		triggerServerEvent ("onBuyWeapon", localPlayer, "mp5")
	elseif (source == btnClose) then -- Se o botão clicado for o botão de fechar o painel, então:
		guiSetVisible (mainWindow, false) -- Seta a janela principal como false (desativada).
		showCursor (false) -- Seta o cursor como false (desativado).
	end
end)

function showPanel ()
	if guiGetVisible (mainWindow) then -- Se o painel estiver aberto, então:
		guiSetVisible (mainWindow, false) -- Seta a janela principal como false (desativada).
		showCursor (false) -- Seta o cursor como false (desativado).
	else -- Se ela não estiver aberta ainda, entao:
		guiSetVisible (mainWindow, true) -- Seta a janela principal como true (ativada).
		showCursor (true) -- Seta o cursor como true (ativado).
	end
end
addEvent ("openShopWindow", true)
addEventHandler ("openShopWindow", getRootElement(), showPanel)

server-side

local markerShop =  createMarker (-714, 960, 11, "cylinder", 2, 0, 255, 0)
local comandoComprar = "comprar" -- Comando que ira abrir o painel

function weaponGive (string, weapon, ammo)
	if (string == "m4") then -- Se for a string 'm4' enviada pelo client, então:
		if getPlayerMoney(client) >= 12000 then -- Se o jogador tiver 12000 ou mais, então:
			takePlayerMoney (client, 12000) -- Retira a quantia de 12000 do saldo do jogador.
			giveWeapon (client, 31, 300) -- Da ao jogador uma m4 com 300 munições.
			outputChatBox ("Você comprou uma M4 com 300 munições.", client, 0, 255, 0) -- Feedback informando a compra com sucesso da arma.
		else
			outputChatBox ("Você não tem dinheiro suficiente!", client, 255, 0, 0)	
		end	
	elseif (string == "deagle") then
		if getPlayerMoney(client) >= 7000 then -- Se o jogador tiver 7000 ou mais, então:
			takePlayerMoney (client, 7000) -- Retira a quantia de 7000 do saldo do jogador.
			giveWeapon (client, 24, 300) -- Da ao jogador uma deagle com 300 munições.
			outputChatBox ("Você comprou uma Deagle com 300 munições.", client, 0, 255, 0) -- Feedback informando a compra com sucesso da arma.
		else
			outputChatBox ("Você não tem dinheiro suficiente!", client, 255, 0, 0)	
		end
	elseif (string == "ak") then
		if getPlayerMoney(client) >= 15000 then -- Se o jogador tiver 15000 ou mais, então:
			takePlayerMoney (client, 15000) -- Retira a quantia de 15000 do saldo do jogador.
			giveWeapon (client, 30, 300) -- Da ao jogador uma ak com 300 munições.
			outputChatBox ("Você comprou uma AK com 300 munições.", client, 0, 255, 0) -- Feedback informando a compra com sucesso da arma.
		else
			outputChatBox ("Você não tem dinheiro suficiente!", client, 255, 0, 0)	
		end
	elseif (string == "mp5") then
		if getPlayerMoney(client) >= 30000 then -- Se o jogador tiver 30000 ou mais, então:
			takePlayerMoney (client, 30000) -- Retira a quantia de 30000 do saldo do jogador.
			giveWeapon (client, 29, 300) -- Da ao jogador uma MP5 com 300 munições.
			outputChatBox ("Você comprou uma MP5 com 300 munições.", client, 0, 255, 0) -- Feedback informando a compra com sucesso da arma.
		else
			outputChatBox ("Você não tem dinheiro suficiente!", client, 255, 0, 0)	
		end
	end	
end
addEvent ("onBuyWeapon", true) 
addEventHandler ("onBuyWeapon", getRootElement(), weaponGive)

addCommandHandler (comandoComprar, function (thePlayer, cmd)
	if isElementWithinMarker (thePlayer, markerShop) then -- Se o jogador estiver no marker "MarkerShop", então:
		triggerClientEvent (thePlayer, "openShopWindow", thePlayer) -- Inicia conexão com o client pra exibir o painel.
	else
		outputChatBox ("Você não esta no shop de armas!", thePlayer, 255, 0, 0)
	end	
end)

@IShiftey Você pode mudar o comando pra exibir o painel e as coordenadas do marker no começo do código, pra exibir o painel precisa estar encima do marker como você queria, quando chegar encima do marker use o botão /comprar por padrão definido por mim!

Edited by Jonas^
Adicionando pra alterar o comando no começo do código + instruções!
  • Like 1
Link to comment
4 hours ago, Jonas^ said:

 

krl vlw<3 entt assim vai funcionar?

poderia me passar dc? se eu estiver com alguma duvida..

 

tipo como sou novo nessa area comecei ontem praticamente... Queria saber se era pra tacar tudo em um arquivo so ou criar 2 arquivos e tacar o client side em um e o server-side em outro

Link to comment
15 hours ago, IShiftey said:

tipo como sou novo nessa area comecei ontem praticamente... Queria saber se era pra tacar tudo em um arquivo so ou criar 2 arquivos e tacar o client side em um e o server-side em outro

  • Nesta correção do Jonas, você precisa criar 2 arquivos, um para o lado do servidor, e o outro para o lado do client.

Ou seja, você cria um arquivo para o lado server de exemplo : "armas.Lua", e para o lado client exemplo de "dx_painel.Lua", então seu "meta.xml" precisa está apontando seus arquivos:                                          

<meta>
      <script src="armas.Lua" type="server" />
      <script src="dx_painel.Lua" type="client" />
</meta>

O que for server-side, adicione em "armas.Lua", e o que for client-side, adicione em "dx_painel.Lua".

 

Observação Importante : Você pode saber para qual lado vai a função/evento, indo até wiki, e no canto superior direita da tela estará as seguintes informações :

  • Clientside event - Evento Apenas para o lado Client.
  • Serverside event - Evento Apenas para o lado Server.
  • Client-only function - Função Apenas para o lado Client.
  • Server-only function - Função Apenas para o lado Server.
  • Shared function - Função Compartilhada entre Server e Client.
  • Shared Event - Evento Compartilhado entre Server e Client.

 

.Lua - minusculo.

Edited by Lord Henry
Link to comment

Da /debugscript 3 e envia a linha do erro

 

Testei aqui está funcionando perfeitamente, apenas faltou um guiSetVisible() na hora de o resource start no client.

addEventHandler ("onClientResourceStart", resourceRoot, function ()
	mainWindow = guiCreateWindow (sX/2 - 140, sY/2 - 135, 280, 270, "Loja de Armas", false)
	guiWindowSetSizable (mainWindow, false)
	guiSetProperty (mainWindow, "CaptionColour", "FF00FF00")
	
	btnM4 = guiCreateButton (59, 46, 163, 37, "M4 = 12000R$", false, mainWindow)
	guiSetProperty (btnM4, "HoverTextColour", "FF00FF00")
	btnDeagle = guiCreateButton (59, 93, 163, 37, "Deagle = 7000R$", false, mainWindow)
	guiSetProperty (btnDeagle, "HoverTextColour", "FF00FF00")
	btnAk = guiCreateButton (59, 140, 163, 37, "Ak-47 = 15000R$", false, mainWindow)
	guiSetProperty (btnAk, "HoverTextColour", "FF00FF00")
	btnMP5 = guiCreateButton (59, 187, 163, 37, "MP5 = 30000$", false, mainWindow)
	guiSetProperty (btnMP5, "HoverTextColour", "FF00FF00")
	btnClose = guiCreateButton (244, 240, 26, 20, "x", false, mainWindow)  
	guiSetProperty (btnClose, "HoverTextColour", "FFFF0000")
	guiSetVisible (mainWindow, false) --/> Adicionando ! 
	
end)

 

Edited by Angelo Pereira
Link to comment
48 minutes ago, IShiftey said:

ta falando que Server triggered clientside event openShopWindow,but event is not added clientside, acho q algum evento no foi adicionado!

Você deve está errando em alguma coisa, eu testei aqui é esta funcionando.

Verifique se você fez certo.

Caso não encontra o problema, envie print do seu resource e meta.

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