Jump to content

MENSAGEM DX


Recommended Posts

Bom dia pessoal, sou novo na programação lua e estou tentando aprender um pouco sobre essa linguagem. 

Estou tentando criar um script de autoescola e estou com dificuldade na parte onde o jogador entra no veiculo e aparece uma mensagem dx na parte superior da tela, já tentei de tudo e a mensagem não aparece, já vi vários tópicos aqui e nenhum conseguiu me ajudar.

-------------CLIENTE-------------
local sx,sy = guiGetScreenSize() 
local px,py = 1280,720
local x,y =  (sx/px), (sy/py) 


function semCategoriaA()
    if getPedOccupiedVehicle(source) then
        dxDrawRectangle(screenW * 0.3146, screenH * 0.0000, screenW * 0.3714, screenH * 0.0417, tocolor(50, 0, 195, 55), false)
        dxDrawImage(screenW * 0.3005, screenH * -0.0194, screenW * 0.0620, screenH * 0.0787, ":[PJ]GuiEditor/images/plus.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
        dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) - 1, (screenW * 0.6807) - 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
        dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) - 1, (screenW * 0.6807) + 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
        dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) + 1, (screenW * 0.6807) - 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
        dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) + 1, (screenW * 0.6807) + 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
        dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", screenW * 0.3573, screenH * 0.0000, screenW * 0.6807, screenH * 0.0417, tocolor(255, 255, 255, 255), 1.40, "default-bold", "center", "center", false, false, false, false, false)
    end
end
addEvent("semCNH:A", true)
addEventHandler("semCNH:A", root, semCategoriaA)





-------------SERVER-------------
function moto581(player, seat)
    local id = getElementModel(source)
    if not getElementData(player, "Categoria:A", false) and seat == 0 then
        if id == 581 then
           triggerClientEvent(source, "semCNH:A", root)
        end
    end
end
addEventHandler("onVehicleStartEnter", root, moto581)

Se alguém puder me ajudar, irei ficar muito agradecido. Tenham um ótimo dia!!

 

Obs: já tenho dxmessages, baixei outros scripts que possuem mensagem dx e eles funcionaram normalmente.

Edited by MarcMSilva
correção ortográfica
Link to comment
-------------CLIENTE-------------
local sx,sy = guiGetScreenSize() 
local px,py = 1280,720
local x,y =  (sx/px), (sy/py) 
local isRenderVisible = false

function semCategoriaA()
   dxDrawRectangle(screenW * 0.3146, screenH * 0.0000, screenW * 0.3714, screenH * 0.0417, tocolor(50, 0, 195, 55), false)
   dxDrawImage(screenW * 0.3005, screenH * -0.0194, screenW * 0.0620, screenH * 0.0787, ":[PJ]GuiEditor/images/plus.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) - 1, (screenW * 0.6807) - 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) - 1, (screenW * 0.6807) + 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) + 1, (screenW * 0.6807) - 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) + 1, (screenW * 0.6807) + 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", screenW * 0.3573, screenH * 0.0000, screenW * 0.6807, screenH * 0.0417, tocolor(255, 255, 255, 255), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   end

function enter()
  if getPedOccupiedVehicleSeat(localPlayer) == 0 then
    if not getElementData(localPlayer, "CNH:A") then
      if not (isRenderVisible) then
        addEventHandler("onClientRender", root, semCategoriaA)
        isRenderVisible = true
      end
    end
  end
end
addEventHandler("onClientVehicleEnter", localPlayer, enter)

function exit(_, seat)
  if seat == 0 then
    if (isRenderVisible) then
      removeEventHandler("onClientRender", root, semCategoriaA)
      isRenderVisible = false
    end
  end
end
addEventHandler("onClientVehicleExit", localPlayer, exit)

Não testei mas creio que funcione. Esse evento não precisa ser pelo server-side, só irá gerar mais processamento para o servidor.

Link to comment
21 hours ago, ber said:

-------------CLIENTE-------------
local sx,sy = guiGetScreenSize() 
local px,py = 1280,720
local x,y =  (sx/px), (sy/py) 
local isRenderVisible = false

function semCategoriaA()
   dxDrawRectangle(screenW * 0.3146, screenH * 0.0000, screenW * 0.3714, screenH * 0.0417, tocolor(50, 0, 195, 55), false)
   dxDrawImage(screenW * 0.3005, screenH * -0.0194, screenW * 0.0620, screenH * 0.0787, ":[PJ]GuiEditor/images/plus.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) - 1, (screenW * 0.6807) - 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) - 1, (screenW * 0.6807) + 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) + 1, (screenW * 0.6807) - 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) + 1, (screenW * 0.6807) + 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", screenW * 0.3573, screenH * 0.0000, screenW * 0.6807, screenH * 0.0417, tocolor(255, 255, 255, 255), 1.40, "default-bold", "center", "center", false, false, false, false, false)
   end

function enter()
  if getPedOccupiedVehicleSeat(localPlayer) == 0 then
    if not getElementData(localPlayer, "CNH:A") then
      if not (isRenderVisible) then
        addEventHandler("onClientRender", root, semCategoriaA)
        isRenderVisible = true
      end
    end
  end
end
addEventHandler("onClientVehicleEnter", localPlayer, enter)

function exit(_, seat)
  if seat == 0 then
    if (isRenderVisible) then
      removeEventHandler("onClientRender", root, semCategoriaA)
      isRenderVisible = false
    end
  end
end
addEventHandler("onClientVehicleExit", localPlayer, exit)

Não testei mas creio que funcione. Esse evento não precisa ser pelo server-side, só irá gerar mais processamento para o servidor.

Não funcionou da mesma maneira. 

Talvez seja esse meu dxmessage que esteja errado, vou tentar achar o "certo" e colocar no servidor.

Link to comment

Consegui usando o seguinte código no client-side:

local screenW,screenH = guiGetScreenSize()
local resW,resH = 1280,720
local x,y =  (screenW/resW), (screenH/resH)

function semCategoriaA()
  if getPedOccupiedVehicle(localPlayer) then
    dxDrawRectangle(screenW * 0.3146, screenH * 0.0000, screenW * 0.3714, screenH * 0.0417, tocolor(50, 0, 195, 55), false)
    dxDrawImage(screenW * 0.3005, screenH * -0.0194, screenW * 0.0620, screenH * 0.0787, ":[PJ]GuiEditor/images/plus.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
    dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) - 1, (screenW * 0.6807) - 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
    dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) - 1, (screenW * 0.6807) + 1, (screenH * 0.0417) - 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
    dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) - 1, (screenH * 0.0000) + 1, (screenW * 0.6807) - 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
    dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", (screenW * 0.3573) + 1, (screenH * 0.0000) + 1, (screenW * 0.6807) + 1, (screenH * 0.0417) + 1, tocolor(50, 0, 195, 55), 1.40, "default-bold", "center", "center", false, false, false, false, false)
    dxDrawText("VOCÊ NÃO POSSUI A CARTERIA NACIONAL DE HABILITAÇÃO TIPO A!", screenW * 0.3573, screenH * 0.0000, screenW * 0.6807, screenH * 0.0417, tocolor(255, 255, 255, 255), 1.40, "default-bold", "center", "center", false, false, false, false, false)
  end
end 

function avisoCategoriaA(source, seat)
  local occupied = getPedOccupiedVehicle(source)
  if getElementData(source, "Categoria:A", false) then return end
  if (getElementModel (occupied) == 581) or (getElementModel (occupied) == 462) or (getElementModel (occupied) == 521) or (getElementModel (occupied) == 463) or (getElementModel (occupied) == 522)
  or (getElementModel (occupied) == 461) or (getElementModel (occupied) == 448) or (getElementModel (occupied) == 468) or (getElementModel (occupied) == 586) or (getElementModel (occupied) == 523)  then
    if seat == 0 then
      addEventHandler("onClientRender", root, semCategoriaA)
    end
  end
end
addEventHandler("onClientVehicleEnter", root, avisoCategoriaA)

muito obrigado pela ajuda.

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