Çözüldü Otomatik Sağlıklı Çalışan Event Quest Paylaşabilecek Var mı?

  • Konuyu açan Konuyu açan byzirvex
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 700
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

byzirvex

Üye
Üye
Mesaj
62
Çözümler
1
Beğeni
5
Puan
424
Ticaret Puanı
0
reload veya reload q yaptığımızda timerı sıfırlanmayacak otomatik event questi olan varsa paylaşa bilir mi ?

@Quaftar
 
Çözüm
Otomatik event.Quest:
Genişlet Daralt Kopyala
quest event begin
    state start begin   
        when letter begin
            send_letter("Etkinlik Takvimi ")
        end
        when info or button begin
            say_title("Etkinlik Takvimi :")
            say("")
            say("Pazartesi: Ay Işığı 18.00 - 19.00 ")
            say("Salı: Futbol Topu 15.00 - 19.00 ")
            say("Çarşamba: Mistik Sandık 15.00 - 19.00 ")
            say("Perşembe: Kostüm Sandık 15.00 - 19.00 ")
            say("Cuma: Bulmaca Kutusu 15.00 - 19.00 ")
            say_reward("Özel Eventler;")
            say("Cmrtsi: Sürpriz Etkinlikler  ")
            say("Pazar:  Sürpriz Etkinlikler")
            say("")
            wait()
            send_letter("Etkinlik Takvimi ")
        end...
Otomatik event.Quest:
Genişlet Daralt Kopyala
quest event begin
    state start begin   
        when letter begin
            send_letter("Etkinlik Takvimi ")
        end
        when info or button begin
            say_title("Etkinlik Takvimi :")
            say("")
            say("Pazartesi: Ay Işığı 18.00 - 19.00 ")
            say("Salı: Futbol Topu 15.00 - 19.00 ")
            say("Çarşamba: Mistik Sandık 15.00 - 19.00 ")
            say("Perşembe: Kostüm Sandık 15.00 - 19.00 ")
            say("Cuma: Bulmaca Kutusu 15.00 - 19.00 ")
            say_reward("Özel Eventler;")
            say("Cmrtsi: Sürpriz Etkinlikler  ")
            say("Pazar:  Sürpriz Etkinlikler")
            say("")
            wait()
            send_letter("Etkinlik Takvimi ")
        end
        when login begin   
            local saat = tonumber(os.date("%H"))
            local gun = tostring(os.date("%A"))
            if gun == "Monday" then
                if saat == 18 then
                    if game.get_event_flag("ay_ac") == 0 then
                        game.set_event_flag("ay_ac",1)
                        game.set_event_flag("ay_kapa",0)
                        game.set_event_flag("ayisigi",1)
                        notice_all("Ayışığı Eventi 2 saat süreyle başlamıştır.")
                    end
                elseif saat == 19 then
                    if game.get_event_flag("ay_kapa") == 0 then
                        game.set_event_flag("ay_ac",0)
                        game.set_event_flag("ay_kapa",1)
                        game.set_event_flag("ayisigi",0)
                        notice_all("Ayışığı Eventi sona ermiştir.")
                    end
                end
            elseif gun == "Tuesday" then
                if saat == 15 then
                    if game.get_event_flag("top_ac") == 0 then
                        game.set_event_flag("top_ac",1)
                        game.set_event_flag("top_kapa",0)
                        game.set_event_flag("futboltopu",1)
                        notice_all("Futbol Topu Eventi 2 saat süreyle başlamıştır.")
                    end
                elseif saat == 19 then
                    if game.get_event_flag("top_kapa") == 0 then
                        game.set_event_flag("top_ac",0)
                        game.set_event_flag("top_kapa",1)
                        game.set_event_flag("futboltopu",0)
                        notice_all("Futbol Topu Eventi bitmiştir.")
                    end
                end
            elseif gun == "Wednesday" then
                if saat == 15 then
                    if game.get_event_flag("sandik_ac") == 0 then
                        game.set_event_flag("sandik_ac",1)
                        game.set_event_flag("sandik_kapa",0)
                        game.set_event_flag("esrarengiz_sandik",1)
                        notice_all("Mistik Sandık Eventi 2 saat süreyle başlamıştır.")
                    end
                elseif saat == 19 then
                    if game.get_event_flag("sandik_kapa") == 0 then
                        game.set_event_flag("sandik_ac",0)
                        game.set_event_flag("sandik_kapa",1)
                        game.set_event_flag("esrarengiz_sandik",0)
                        notice_all("Mistik Sandık Eventi bitmiştir.")
                    end
                end
            elseif gun == "Thursday" then
                if saat == 15 then
                    if game.get_event_flag("kostum_ac") == 0 then
                        game.set_event_flag("kostum_ac",1)
                        game.set_event_flag("kostum_kapa",0)
                        game.set_event_flag("dressup",1)
                        notice_all("Kostüm Eventi 2 saat süreyle başlamıştır.")
                    end
                elseif saat == 19 then
                    if game.get_event_flag("kostum_kapa") == 0 then
                        game.set_event_flag("kostum_ac",0)
                        game.set_event_flag("kostum_kapa",1)
                        game.set_event_flag("dressup",0)
                        notice_all("Kostüm Eventi bitmiştir.")
                    end
                end
            elseif gun == "Friday" then
                if saat == 15 then
                    if game.get_event_flag("bilgi_ac") == 0 then
                        game.set_event_flag("bilgi_ac",1)
                        game.set_event_flag("bilgi_kapa",0)
                        game.set_event_flag("kids_day_quiz",1)
                        notice_all("Bulmaca Kutusu Eventi 2 saat süreyle başlamıştır.")
                    end
                elseif saat == 19 then
                    if game.get_event_flag("bilgi_kapa") == 0 then
                        game.set_event_flag("bilgi_ac",0)
                        game.set_event_flag("bilgi_kapa",1)
                        game.set_event_flag("kids_day_quiz",0)
                        notice_all("Bulmaca Kutusu Eventi bitmiştir.")
                    end
                end
            end   
        end
    end
end
Bunu denemedim ama reboot atınca büyük ihtimalle sorun yaşamazsınız, siz yinede deneyiniz.
 
Çözüm
Normalde reload q veya reboot attığınızda quest timerler otomatik olarak kapanır. @Quaftar 'ın verdiği kodlarda when login kısmında kontrol yapıldığı için istediğiniz şekilde çalışması gerekiyor.

Fakat burada da şöyle bir şey var her oyuncu girdiğinde bu kodlar tekrar tekrar kontrol edilecek. Eğer oyuncu girişi olmazsa sistem işlemez tıkalı kalır.
 
Pek olacağını sanmıyorum. Çünkü zamana göre kontrol ediyor. Bundan daha ağır questlerde çalışıyor sistemde. Sadece yorumumda temel çalışma mantığını anlattım. Çalışması için aktif oyuncu olması gerekiyor. Işınlanması veya login olması gerek. Diğer türlü server bomboşken hiçbir işlem yapılmaz.

Kaynak kodlarıyla otomatik event açtırma yöntemleri var ancak bu questte gayet işe yarar. Sonuçta eskiden kaynak kodları mı vardı. :)

Bu olayı şöyle açıklayabilirim. Mesela bizim sitemizde de zamanlanmış görevler bulunuyor. Bu iki ayrı seçeneği var. Birincisi ziyaretçi etkinliğine göre çalışsın ikincisi server cron tarafında çalışsın. Bu questte ise oyuncu etkinliği olduğu sürece çalışır.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst