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!