[YARDIM] Expected Gui Element Hatası

Ky · 6 · 1138

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Ky

  • Uzman Üye
  • *
    • İleti: 614
: 21 Ekim 2019, 16:31:06
Selamun aleyküm aşağıdaki gördüğünüz kodlarda guiSetText kısmında hata veriyor 100 kere inceledim guiSetTextde bir hata yok fakat hata var diye gösteriyor ama script çalışıyor çalışmasındada hiçbir problem yok sadece debugscript 3 kısmında guiSetTextde hata gösteriyor Expected Bad Argument@ gui-element vb vb gibi yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
Kod
send = nil
local sure = 43

addEventHandler("onClientResourceStart", getRootElement(),
function ()
        if send == false or send == nil then
            send = true
            zaman1 = nil
            zaman2 = nil
            suren = sure*1000
            addEventHandler("onClientRender", root, function()
            if not zaman1 then
               zaman1 = getTickCount ()
            end
            zaman2 = getTickCount ()
            local zamanlama = tostring(math.floor((suren - (zaman2 - zaman1))/1000))
            guiSetText( zamanlabel, ""..zamanlama.."" )
            if tonumber(zamanlama) <= 0 then
                  --guiSetVisible(panelim,false)
                  send = false
               end
            end)

end
end)
« Son Düzenleme: 18 Ocak 2020, 17:01:48 Gönderen: Narkoz »
 


MTASATURK

[YARDIM] Expected Gui Element Hatası
« : 21 Ekim 2019, 16:31:06 »

Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 684
  • SH Gaming
Yanıtla #1 : 21 Ekim 2019, 18:34:16
Script startlandığında neden böyle bir şey yapıyorsunuz? Ne yapmak istediğinizi tam olarak açıklayabilir misiniz? Bu aldığınız hata sadece ilk başta bir kere veriyordur muhtemelen daha sonra vermeyebilir.


Kod
addEventHandler("onClientResourceStart", getRootElement(),
Bu satırı altta verdiğim gibi yaparsanız akış durumu daha iyi olacaktır. (Hatayı da çözebilir.)

Kod
addEventHandler("onClientResourceStart", getRootElement(getThisResource()),


Ek olarak bu yazdığın kodun üstünde GUI elementini oluşturmalısın aksi takdirde hata verebilir.
« Son Düzenleme: 21 Ekim 2019, 18:42:39 Gönderen: Paradox »
 


Çevrimdışı Ky

  • Uzman Üye
  • *
    • İleti: 614
Yanıtla #2 : 21 Ekim 2019, 19:38:15
Linki görebilmek için Kayıt olun yada Giriş yapın.
Script startlandığında neden böyle bir şey yapıyorsunuz? Ne yapmak istediğinizi tam olarak açıklayabilir misiniz? Bu aldığınız hata sadece ilk başta bir kere veriyordur muhtemelen daha sonra vermeyebilir.


Kod
addEventHandler("onClientResourceStart", getRootElement(),
Bu satırı altta verdiğim gibi yaparsanız akış durumu daha iyi olacaktır. (Hatayı da çözebilir.)

Kod
addEventHandler("onClientResourceStart", getRootElement(getThisResource()),


Ek olarak bu yazdığın kodun üstünde GUI elementini oluşturmalısın aksi takdirde hata verebilir.
Öncelikle cevabınız için teşekkür ederim deniyeceğim amacım şu benim Red v Blue diye bir oyun modu sunucum var savaş sunucusu herşey otomatik oyun bitince otomatik olarak script resetleniyor ve 1 dakika sonra oyun başlıyor bende onClientResourceStart yaptım yani oyun reslenince otomatik olarak sayacı başlatması için.

Mesaj Birleştirildi: 21 Ekim 2019, 19:44:15
Denedim hata halen devam ediyor neyse aslında çokta önemli değil sorunsuz şekilde çalışıyor işlevi görüyor peki size bir sorum daha olucaktı aşağıdaki kodlarda playSound kısmı sadece butona tıklayan oyuncuda çalıyor oyuncu butona tıklayınca sunucu aktif olan tüm oyuncularda playSoundu nasıl çaldırıcam yardımcı olurmsunuz ?
Kod
addEventHandler("onClientGUIClick",root,function()
if source == muzikopen then
if ( isURL ( ) ) then
local yazicek = guiGetText(url)
ses = playSound(yazicek,true)
else
outputChatBox("Lütfen Boş Alana URL Giriniz !", 255, 0, 0)
end
elseif source == muzikclosed then
stopSound (ses)
elseif source == kapat then
guiSetVisible(panel,false)
showCursor(false)
end
end)
« Son Düzenleme: 21 Ekim 2019, 19:44:15 Gönderen: Ky »
 


Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 684
  • SH Gaming
Yanıtla #3 : 21 Ekim 2019, 19:52:29
Kod
local i

addEventHandler("onClientResourceStart", getRootElement(),
function ()
for i = 43,0,-1 do
guiSetText( zamanlabel, ""..i.."" )
end
if i == 0 then
--guiSetVisible(panelim,false)
                --Süre bitince yapmak istedikleriniz(Bu kısımda hata olabilir, birde for döngüsünün içine alıpta denemek gerek.
end
end)

Bu kodu kullanabilirsiniz daha iyi gözüküyor, çalışmaz ise söyleyin. Ya da en basitinden lua hazır yapmış bizim için bir foknsiyon adı setTimer onu kullanarak da yapabilirsiniz.



Linki görebilmek için Kayıt olun yada Giriş yapın.
Öncelikle cevabınız için teşekkür ederim deniyeceğim amacım şu benim Red v Blue diye bir oyun modu sunucum var savaş sunucusu herşey otomatik oyun bitince otomatik olarak script resetleniyor ve 1 dakika sonra oyun başlıyor bende onClientResourceStart yaptım yani oyun reslenince otomatik olarak sayacı başlatması için.

Mesaj Birleştirildi: [time]21 Ekim 2019, 20:50:26[/time]
Denedim hata halen devam ediyor neyse aslında çokta önemli değil sorunsuz şekilde çalışıyor işlevi görüyor peki size bir sorum daha olucaktı aşağıdaki kodlarda playSound kısmı sadece butona tıklayan oyuncuda çalıyor oyuncu butona tıklayınca sunucu aktif olan tüm oyuncularda playSoundu nasıl çaldırıcam yardımcı olurmsunuz ?
Kod
addEventHandler("onClientGUIClick",root,function()
if source == muzikopen then
if ( isURL ( ) ) then
local yazicek = guiGetText(url)
ses = playSound(yazicek,true)
else
outputChatBox("Lütfen Boş Alana URL Giriniz !", 255, 0, 0)
end
elseif source == muzikclosed then
stopSound (ses)
elseif source == kapat then
guiSetVisible(panel,false)
showCursor(false)
end
end)

Client kısmında yapılan işlemler sadece ve sadece yapan kişi görür,duyar veya her ne yapıyorsa.. Bunu düzeltmen için playSound'u serverde çalıştırman gerekli(client ile de yapabilirsin trigger ile) ve bir for dongüsü ile tüm oyuncuları çekip onlara göndermelisin.
EK: Serverde playSound yoktu :P
« Son Düzenleme: 21 Ekim 2019, 20:04:03 Gönderen: Paradox »
 


Çevrimdışı Ky

  • Uzman Üye
  • *
    • İleti: 614
Yanıtla #4 : 21 Ekim 2019, 19:59:30
Linki görebilmek için Kayıt olun yada Giriş yapın.
Kod
local i

addEventHandler("onClientResourceStart", getRootElement(),
function ()
for i = 43,0,-1 do
guiSetText( zamanlabel, ""..i.."" )
end
if i == 0 then
--guiSetVisible(panelim,false)
                --Süre bitince yapmak istedikleriniz(Bu kısımda hata olabilir, birde for döngüsünün içine alıpta denemek gerek.
end
end)

Bu kodu kullanabilirsiniz daha iyi gözüküyor, çalışmaz ise söyleyin. Ya da en basitinden lua hazır yapmış bizim için bir foknsiyon adı setTimer onu kullanarak da yapabilirsiniz.



Client kısmında yapılan işlemler sadece ve sadece yapan kişi görür,duyar veya her ne yapıyorsa.. Bunu düzeltmen için playSound'u serverde çalıştırman gerekli(client ile de yapabilirsin trigger ile) ve bir for dongüsü ile tüm oyuncuları çekip onlara göndermelisin.
playSound hatasını düzelttim teşekkür ederim fakat zamandaki hata halen devam ediyor yine guiSetText kısmında aynı hatayı verdi ama bu sefer işlevde çalışmadı.
 


Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 684
  • SH Gaming
Yanıtla #5 : 22 Ekim 2019, 09:20:24
Aceleye gelmiş çok yanlış kod atmışım :) Bunu dener misin.
Kod
local i = 43

addEventHandler("onClientResourceStart", getRootElement(),
function ()
setTimer(function()
if zamanlabel then
i = i - 1
guiSetText( zamanlabel, ""..i.."" )
if i == 0 then
--guiSetVisible(panelim,false)
                --Süre bitince yapmak istedikleriniz
end
end
end,1000,43)
end)
 


MTASATURK

Ynt: [YARDIM] Expected gui-element hatası !
« Yanıtla #5 : 22 Ekim 2019, 09:20:24 »