Jump to content

novo Poblema com bindKey


Recommended Posts

Posted (edited)

como posso color esse bind

bindKey('F7', 'down',

para abrir essa janela

local g_Window = nil 
addCommandHandler("window", 
function () 
    if g_Window then return end 
  
    g_Window = {} 
  
    local screenWidth, screenHeight = guiGetScreenSize() 
    g_Window.windowWidth, g_Window.windowHeight = 400, 315 
    local left = screenWidth/2 - g_Window.windowWidth/2 
    local top = screenHeight/2 - g_Window.windowHeight/2 
  
    g_Window.window = guiCreateWindow(left, top, g_Window.windowWidth, g_Window.windowHeight, "Interpolation on GUI", false) 
  
    g_Window.closeBtn = guiCreateButton(320, 285, 75, 23, "Close", false, g_Window.window) 
  
    guiWindowSetSizable(g_Window.window, false) 
    guiWindowSetMovable(g_Window.window, false) 
    guiSetEnabled(g_Window.window, false) 
    guiSetVisible(g_Window.window, false) 
  
    g_Window.startTime = getTickCount() 
    g_Window.startSize = {0, 0} 
    g_Window.endSize = {g_Window.windowWidth, g_Window.windowHeight} 
    g_Window.endTime = g_Window.startTime + 1000 
    addEventHandler("onClientRender", getRootElement(), popWindowUp) 
end) 
  
function on_closeBtn_clicked(button, state, absoluteX, absoluteY) 
    if (button ~= "left") or (state ~= "up") then 
        return 
    end 
  
    if not g_Window then return end 
  
    showCursor(false) 
    guiSetEnabled(g_Window.window, false) 
    guiWindowSetMovable(g_Window.window, false) 
  
    local screenWidth, screenHeight = guiGetScreenSize() 
    local posX, posY = guiGetPosition(g_Window.window, false) 
  
    g_Window.startTime = getTickCount() 
    g_Window.startSize = {g_Window.windowWidth, g_Window.windowHeight} 
    g_Window.startCenter =  
    { 
        posX + g_Window.windowWidth/2, 
        posY + g_Window.windowHeight/2, 
    } 
  
    g_Window.endSize = {0, 0} 
    g_Window.endTime = g_Window.startTime + 1000 
    g_Window.endCenter =  
    { 
        screenWidth,  
        screenHeight 
    } 
  
    addEventHandler("onClientRender", getRootElement(), popWindowDown) 
end 
  
function popWindowUp() 
    local now = getTickCount() 
    local elapsedTime = now - g_Window.startTime 
    local duration = g_Window.endTime - g_Window.startTime 
    local progress = elapsedTime / duration 
  
    local width, height, _ = interpolateBetween (  
        g_Window.startSize[1], g_Window.startSize[2], 0,  
        g_Window.endSize[1], g_Window.endSize[2], 0,  
        progress, "OutElastic") 
  
    guiSetSize(g_Window.window, width, height, false) 
  
    local screenWidth, screenHeight = guiGetScreenSize() 
    guiSetPosition(g_Window.window, screenWidth/2 - width/2, screenHeight/2 - height/2, false) 
  
    if not guiGetVisible(g_Window.window) then 
        guiSetVisible(g_Window.window, true) 
        guiBringToFront(g_Window.window) 
    end 
  
    if now >= g_Window.endTime then 
        guiSetEnabled(g_Window.window, true) 
  
        guiBringToFront(g_Window.window) 
        removeEventHandler("onClientRender", getRootElement(), popWindowUp) 
        addEventHandler("onClientGUIClick", g_Window.closeBtn, on_closeBtn_clicked, false) 
        showCursor(true) 
        guiWindowSetMovable(g_Window.window, true) 
    end 
end 
  
function popWindowDown() 
    local now = getTickCount() 
    local elapsedTime = now - g_Window.startTime 
    local duration = g_Window.endTime - g_Window.startTime 
    local progress = elapsedTime / duration 
  
    local width, height, _ = interpolateBetween (  
        g_Window.startSize[1], g_Window.startSize[2], 0,  
        g_Window.endSize[1], g_Window.endSize[2], 0,  
        progress, "InQuad") 
  
    guiSetSize(g_Window.window, width, height, false) 
  
    local centerX, centerY, _ = interpolateBetween (  
        g_Window.startCenter[1], g_Window.startCenter[2], 0,  
        g_Window.endCenter[1], g_Window.endCenter[2], 0,  
        progress, "InQuad") 
  
    guiSetPosition(g_Window.window, centerX - width/2, centerY - height/2, false) 
  
    if now >= g_Window.endTime then 
        removeEventHandler("onClientRender", getRootElement(), popWindowDown) 
        destroyElement(g_Window.window) 
        g_Window = nil 
    end 
end 

Edited by Guest
Posted
sim eu pensei em executeCommandHandler mais achu que nao vai da certo

Logicamente vai funcionar porém, vai chamar a função muitas vezes se o F7 for pressionado diversas vezes. Para resolver isso, você pode verificar se a janela está aberta, caso esteja, use return.

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

Posted

Ainda não percebi para que você quer a função executeCommandHandler, DNL291. O OP pode simplesmente usar bindKey diretamente com a função que abre a janela.

"[...] If you don’t love it, if you’re not having fun doing it, you don’t really love it, you’re going to give up." - Steve Jobs, 2007

Posted

A função que abre o janela está diretamente no command "window". Ele pode nomear a função para chamar com addCommandHandler & bindKey, isso seria mais simples. Mas como a função está diretamente em um comando, ele pode usar a função executeCommandHandler em bindKey, que também não tem problemas.

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

  • 2 weeks later...
Posted

ajuda eu por favor como posso por return

por que coloquei um guirdlist dai buga peciso por return só nao sei como

  
  
function executeCommandbinKey() 
  
    executeCommandHandler("window") 
  
end 
  
  
bindKey("F1","up",executeCommandbinKey) 
  
local g_Window = nil 
addCommandHandler("window", 
function () 
    if g_Window then return end 
  
    g_Window = {} 
  
    local screenWidth, screenHeight = guiGetScreenSize() 
    g_Window.windowWidth, g_Window.windowHeight = 400, 315 
    local left = screenWidth/2 - g_Window.windowWidth/2 
    local top = screenHeight/2 - g_Window.windowHeight/2 
  
    g_Window.window = guiCreateWindow(left, top, g_Window.windowWidth, g_Window.windowHeight, "Interpolation on GUI", false) 
  
    g_Window.closeBtn = guiCreateButton(320, 285, 75, 23, "Close", false, g_Window.window) 
  
    guiWindowSetSizable(g_Window.window, false) 
    guiWindowSetMovable(g_Window.window, false) 
    guiSetEnabled(g_Window.window, false) 
    guiSetVisible(g_Window.window, false) 
  
    g_Window.startTime = getTickCount() 
    g_Window.startSize = {0, 0} 
    g_Window.endSize = {g_Window.windowWidth, g_Window.windowHeight} 
    g_Window.endTime = g_Window.startTime + 1000 
    addEventHandler("onClientRender", getRootElement(), popWindowUp) 
end) 
  
function on_closeBtn_clicked(button, state, absoluteX, absoluteY) 
    if (button ~= "left") or (state ~= "up") then 
        return 
    end 
  
    if not g_Window then return end 
  
    showCursor(false) 
    guiSetEnabled(g_Window.window, false) 
    guiWindowSetMovable(g_Window.window, false) 
  
    local screenWidth, screenHeight = guiGetScreenSize() 
    local posX, posY = guiGetPosition(g_Window.window, false) 
  
    g_Window.startTime = getTickCount() 
    g_Window.startSize = {g_Window.windowWidth, g_Window.windowHeight} 
    g_Window.startCenter =  
    { 
        posX + g_Window.windowWidth/2, 
        posY + g_Window.windowHeight/2, 
    } 
  
    g_Window.endSize = {0, 0} 
    g_Window.endTime = g_Window.startTime + 1000 
    g_Window.endCenter =  
    { 
        screenWidth,  
        screenHeight 
    } 
  
    addEventHandler("onClientRender", getRootElement(), popWindowDown) 
end 
  
function popWindowUp() 
    local now = getTickCount() 
    local elapsedTime = now - g_Window.startTime 
    local duration = g_Window.endTime - g_Window.startTime 
    local progress = elapsedTime / duration 
  
    local width, height, _ = interpolateBetween (  
        g_Window.startSize[1], g_Window.startSize[2], 0,  
        g_Window.endSize[1], g_Window.endSize[2], 0,  
        progress, "OutElastic") 
  
    guiSetSize(g_Window.window, width, height, false) 
  
    local screenWidth, screenHeight = guiGetScreenSize() 
    guiSetPosition(g_Window.window, screenWidth/2 - width/2, screenHeight/2 - height/2, false) 
  
    if not guiGetVisible(g_Window.window) then 
        guiSetVisible(g_Window.window, true) 
        guiBringToFront(g_Window.window) 
    end 
  
    if now >= g_Window.endTime then 
        guiSetEnabled(g_Window.window, true) 
  
        guiBringToFront(g_Window.window) 
        removeEventHandler("onClientRender", getRootElement(), popWindowUp) 
        addEventHandler("onClientGUIClick", g_Window.closeBtn, on_closeBtn_clicked, false) 
        showCursor(true) 
        guiWindowSetMovable(g_Window.window, true) 
    end 
end 
  
function popWindowDown() 
    local now = getTickCount() 
    local elapsedTime = now - g_Window.startTime 
    local duration = g_Window.endTime - g_Window.startTime 
    local progress = elapsedTime / duration 
  
    local width, height, _ = interpolateBetween (  
        g_Window.startSize[1], g_Window.startSize[2], 0,  
        g_Window.endSize[1], g_Window.endSize[2], 0,  
        progress, "InQuad") 
  
    guiSetSize(g_Window.window, width, height, false) 
  
    local centerX, centerY, _ = interpolateBetween (  
        g_Window.startCenter[1], g_Window.startCenter[2], 0,  
        g_Window.endCenter[1], g_Window.endCenter[2], 0,  
        progress, "InQuad") 
  
    guiSetPosition(g_Window.window, centerX - width/2, centerY - height/2, false) 
  
    if now >= g_Window.endTime then 
        removeEventHandler("onClientRender", getRootElement(), popWindowDown) 
        destroyElement(g_Window.window) 
        g_Window = nil 
    end 
end 

Posted
return --SOME_VALUE 

Explique melhor o seu problema.

"[...] If you don’t love it, if you’re not having fun doing it, you don’t really love it, you’re going to give up." - Steve Jobs, 2007

Posted

o problema é que cuando o player aperta o F1 que esta a window da aparece o bug para outra pessoa que esta com debug script aberto eu achu que tenque por

return 

mais nao sei como eu achu eu coloquei um guirdlist mais achu que cuando aperta o f1 tenque ter um return false ou end mais nao sei como fasso

Posted

Qual o erro?

"[...] If you don’t love it, if you’re not having fun doing it, you don’t really love it, you’re going to give up." - Steve Jobs, 2007

Posted

eu nao sei eu recebo um erro na minha guird list mais tenho certeza que o problema é que precisa de por um return por cuando eu ablo a window nao da laag em min mais nos outros players da

Posted

o erro é que cuando aberta o f1 a window vc abre a window ai a window esta aberta dai vc aperta f1 e a windown ja esta aberta entao isso vai dar laaaaaaaaaag entao tenque por

return 

como fasso isso

Posted

Agradecia que explicasse o problema bem, e em português decente porque eu não percebi absolutamente nada.

"[...] If you don’t love it, if you’re not having fun doing it, you don’t really love it, you’re going to give up." - Steve Jobs, 2007

Posted

Não precisa ter pressa para explicar, pode explicar o problema especifico ou mostrar o código onde possa estar o erro ?

Será que você quer dizer que tem um problema com a função bindKey, para mostrar/ocultar a janela quando o botão for pressionado ? mostre o código por favor.

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

Posted

@DNL291, o código está na primeira página do tópico.

"[...] If you don’t love it, if you’re not having fun doing it, you don’t really love it, you’re going to give up." - Steve Jobs, 2007

Posted

Tente isso:

function executeCommandbinKey() 
    if g_Window.window then return end 
     
    executeCommandHandler("window") 
end 
bindKey("F1","up",executeCommandbinKey) 

Mas não entendi sua explicação muito bem.

@DNL291, o código está na primeira página do tópico.

Tinha esquecido que ele mostrou o código.

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

Posted
bindKey("F1", "down", function () 
     local isVisible = guiGetVisible() -- Check if the gui is visible 
     if(isVisible) 
          guiSetVisible(yourWindow, false) 
          showCursor(false) 
     else 
          guiSetVisible(yourWindow, true) 
          showCursor(true) 
     end 
end) 

Obs: deixei um erro proposital para evitar que você simplesmente copie o código. Portanto, leia-o, encontre o erro e tudo funcionará corretamente.

Software Engineer & Entrepreneur Running Lustrel and VilarikA • Highly engaged on open source community

Posted

Amigo, isso dá. O problema é que, apesar de eu ter deixado um erro totalmente estúpido e de fácil identificação, você parece não ter lido-o e consertado.

Pelo visto, nem você mesmo sabe o que está fazendo. Copia o código, põe no arquivo e pronto, quer ver funcionar. Bom... mostra que você não tem interesse em aprender.

Software Engineer & Entrepreneur Running Lustrel and VilarikA • Highly engaged on open source community

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...