[YARDIM] Panel Açılış Animasyonunu Yenilemiyor

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı VaTaN

  • Bilgin Üye
  • *
    • İleti: 270
Animasyon paneli açılış animasyonu ekledim restartlayıp paneli ilk açışta animasyon çalışıyor ama 2 inci açışta panel animasyonsuz direk ekrana açılıyor

Kod

Client.Lua

--// Animasyon //--

sx,sy = guiGetScreenSize()
g,u = 558,371
px,py = sx/2-g/2,sy/2-u/2

        animationManagerWindow = guiCreateWindow(px, py, g, u," - Gelişmiş Animasyon Paneli", false)
        guiWindowSetSizable(animationManagerWindow, false)

baslangic = getTickCount()

addEventHandler("onClientRender",root,function()
local suan = getTickCount()
local x,y = interpolateBetween(0,0,0,px,py,0,(suan-baslangic)/3000,"InOutBack")
guiSetPosition(animationManagerWindow,x,y,false)
end)


function bind()
if (guiGetVisible (animationManagerWindow) == true) then
guiSetVisible(animationManagerWindow, false)
showCursor(false)
elseif (guiGetVisible (animationManagerWindow) == false) then
guiSetVisible(animationManagerWindow, true)
showCursor(true)
end
end
bindKey ("F9", "down", bind)

[code]
« Son Düzenleme: 30 Mayıs 2019, 10:52:31 Gönderen: Narkoz »
 


MTASATURK

[YARDIM] Panel Açılış Animasyonunu Yenilemiyor
« : 20 Mayıs 2019, 15:09:50 »

Çevrimdışı Mahlukat

  • Uzman Üye
  • *
    • İleti: 637
Yanıtla #1 : 20 Mayıs 2019, 15:24:53
Attığın kodun düzeltilmiş hali;
Kod
local sx,sy = guiGetScreenSize()
local pg,pu = 560,370
local px,py = (sx-pg)/2,(sy-pu)/2

local animler = {} -- animasyon bilgilerinin kaydedilceği tablo
local animasyonHalinde = false -- anim spam olmaması için kontrol

local animationManagerWindow = guiCreateWindow(0-pg, py, pg, pu," - Gelişmiş Animasyon Paneli", false)
guiWindowSetSizable(animationManagerWindow, false)
guiSetVisible(animationManagerWindow,false)


function bind()
if animasyonHalinde then return end -- eğer animasyonHalinde ise geri döb
animasyonHalinde  = not animasyonHalinde
if guiGetVisible(animationManagerWindow) then -- eğer panel açıksa
showCursor(false) -- imleç kapa
table.insert(animler,{ -- kapanış anim yolla
elm=animationManagerWindow, -- hangi elemente uygulancak?
baslangic=getTickCount(),
nerdenX=px,nerdenY=py, -- nereden X konumu ve nereden Y konumu
nereyeX=0-pg,nereyeY=py, -- nereye X konumu ve nereye Y konumu
sn=3000,anim="InOutBack", -- kaç saniyede gidicek/gelicek ve animasyon türü
func = function(elm,g,u) guiSetPosition(elm,g,u,false) end, -- animasyon fonksiyonu
bitis = function() guiSetVisible(animationManagerWindow,false) end,  -- animasyon bittiğinde yapılcak fonksiyon
})
addEventHandler("onClientRender",root, animRender) -- render ekle
else -- eğer kapalıysa
guiSetVisible(animationManagerWindow,true) -- aç
table.insert(animler,{ -- açılış anim yolla
elm=animationManagerWindow,
baslangic=getTickCount(),
nerdenX=0-pg,nerdenY=py,
nereyeX=px,nereyeY=py,
sn=3000,anim="OutBack", -- kaç saniyede gidicek/gelicek ve animasyon türü
func = function(elm,g,u) guiSetPosition(elm,g,u,false) end, -- animasyon fonksiyonu
bitis = function() showCursor(true) end, -- animasyon bittiğinde yapılcak fonksiyon
})
addEventHandler("onClientRender",root, animRender) -- render ekle
end
end
bindKey ("F9", "down", bind)

function animRender()
if #animler > 0 then
local suan = getTickCount()
for i,v in pairs(animler) do
local gx,gy = interpolateBetween(v.nerdenX,v.nerdenY,0,v.nereyeX,v.nereyeY,0,(suan-v.baslangic)/v.sn,v.anim) -- gidilcekX, gidilcekY
v.func(v.elm,gx,gy,false)
if gx == v.nereyeX and gy == v.nereyeY then
if v.bitis then
v.bitis()
end
table.remove(animler,i)
end
end
else
removeEventHandler("onClientRender",root, animRender)
animasyonHalinde = false
end
end

Anim ekleme açıklama;
Kod
table.insert(animler,{ -- kapanış anim yolla
elm=animationManagerWindow, -- hangi elemente uygulancak?
baslangic=getTickCount(),
nerdenX=px,nerdenY=py, -- nereden X konumu ve nereden Y konumu
nereyeX=0-pg,nereyeY=py, -- nereye X konumu ve nereye Y konumu
sn=3000,anim="InOutBack", -- kaç saniyede gidicek/gelicek ve animasyon türü
func = function(elm,g,u) guiSetPosition(elm,g,u,false) end, -- animasyon fonksiyonu
bitis = function() guiSetVisible(panel,false) end,  -- animasyon bittiğinde yapılcak fonksiyon
})
addEventHandler("onClientRender",root, animRender) -- render ekle
« Son Düzenleme: 20 Mayıs 2019, 16:28:04 Gönderen: Mahlukat »
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı VaTaN

  • Bilgin Üye
  • *
    • İleti: 270
Yanıtla #2 : 20 Mayıs 2019, 15:56:26
Paneli restartlıyıp açıyorum animasyonlu geliyor tekrar açtıgımda animasyonsuz direk geliyor çözüm olmadı her açtıgında animasyonu yapmasını istiyorum
« Son Düzenleme: 20 Mayıs 2019, 16:03:08 Gönderen: xSancak »