Speak Posted January 20, 2013 Share Posted January 20, 2013 (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 February 4, 2013 by Guest Link to comment
Speak Posted January 20, 2013 Author Share Posted January 20, 2013 ja tentei e nao tive sucesso Link to comment
Vision Posted January 20, 2013 Share Posted January 20, 2013 (edited) - Edited January 20, 2013 by Guest Link to comment
Cadu12 Posted January 20, 2013 Share Posted January 20, 2013 Não faz copy-paste, ou vai dar error pra você. Primeiro, você tem que apernder Lua, depois vc faze qualquer coisas. Aqui segue 3 links: http://www.lua.org/manual/5.1/pt/manual.html http://www.lua.org/doc/wjogos04.pdf https://wiki.multitheftauto.com/wiki/PT- ... _Scripting Link to comment
DNL291 Posted January 20, 2013 Share Posted January 20, 2013 bindKey executeCommandHandler Link to comment
Speak Posted January 21, 2013 Author Share Posted January 21, 2013 sim eu pensei em executeCommandHandler mais achu que nao vai da certo Link to comment
DNL291 Posted January 21, 2013 Share Posted January 21, 2013 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. Link to comment
Anderl Posted January 21, 2013 Share Posted January 21, 2013 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. Link to comment
DNL291 Posted January 21, 2013 Share Posted January 21, 2013 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. Link to comment
Speak Posted January 23, 2013 Author Share Posted January 23, 2013 Obrigado eu ja consegui usando executeCommandHandler,bindkey Link to comment
Speak Posted February 4, 2013 Author Share Posted February 4, 2013 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 Link to comment
Anderl Posted February 4, 2013 Share Posted February 4, 2013 return --SOME_VALUE Explique melhor o seu problema. Link to comment
Speak Posted February 4, 2013 Author Share Posted February 4, 2013 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 Link to comment
Speak Posted February 4, 2013 Author Share Posted February 4, 2013 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 Link to comment
Speak Posted February 4, 2013 Author Share Posted February 4, 2013 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 Link to comment
Anderl Posted February 4, 2013 Share Posted February 4, 2013 Agradecia que explicasse o problema bem, e em português decente porque eu não percebi absolutamente nada. Link to comment
DNL291 Posted February 5, 2013 Share Posted February 5, 2013 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. Link to comment
Anderl Posted February 5, 2013 Share Posted February 5, 2013 @DNL291, o código está na primeira página do tópico. Link to comment
DNL291 Posted February 5, 2013 Share Posted February 5, 2013 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. Link to comment
Speak Posted February 7, 2013 Author Share Posted February 7, 2013 da pra arrumar isso a janela só abre e tem o botao pra fechar da pra por pra frechar e abrir pelo F1 ? Link to comment
Stanley Sathler Posted February 7, 2013 Share Posted February 7, 2013 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. Link to comment
Speak Posted February 8, 2013 Author Share Posted February 8, 2013 como DNL falo o Comando ja esta na funçao entao isso ai nao da Link to comment
Stanley Sathler Posted February 8, 2013 Share Posted February 8, 2013 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. Link to comment
Recommended Posts