Metin2 Otomatik Pelerin Sistemi | Gamesfrm.com
Moderatör Alımları
Reklam Alanı   Reklam Alanı
Meyhane2   Reklam Alanı

Metin2 Otomatik Pelerin Sistemi

RuLing

İşsiz Moderatör
Yönetici
Haber Editörü
Sosyal Editör
Katılım
28 May 2018
Mesajlar
4,078
Tepki puanı
269
Konum
Diyarbakır
Merhaba arkadaşlar,

Pelerine basıldığı zaman 10 dakika boyunca aktif olsun istiyorsanız bu questi kullanmalısınız.

Kod:
quest rmgames_pelerin begin
    state start begin
        when 70038.use begin
            if pc.getqf("rmpelerin") == 0 then
                syschat("Otomatik pelerin sistemi aktive edildi.")
                syschat("NOT: Sistem 10 dakika sonra kendini kapanacaktır.")
                pc.setqf("rmpelerin", 1)
                pc.setqf("sure", get_time()+ 60*10)
                pc.aggregate_monster()
                loop_timer("kapat", 1)
            elseif pc.getqf("rmpelerin") == 1 then
                syschat("Otomatik pelerin sistemi deaktif edildi.")
                pc.setqf("rmpelerin", 0)
                pc.setqf("sure", 0)
                cleartimer("kapat")
            end
        end
                  
        when kapat.timer with pc.getqf("rmpelerin") == 1 begin
            if pc.is_dead() == true then
                pc.setqf("rmpelerin", 0)
                cleartimer("kapat")       
                syschat("Karakterin öldü. Pelerin kapatıldı.")           
            elseif pc.getqf("sure") < get_time() then
                pc.setqf("rmpelerin", 0)
                cleartimer("kapat")
                syschat("10 dakika doldu. Pelerin kapatıldı.")           
            end
            pc.aggregate_monster()
        end   
      
        when login with pc.getqf("rmpelerin") == 1 begin
            pc.setqf("rmpelerin",0)
            pc.setqf("sure", 0)
        end   
    end
end
 

engin62

Seviye 3
Üye
Katılım
19 Ara 2018
Mesajlar
32
Tepki puanı
21
Konum
Istanbul
Kod:
quest rmgames_pelerin begin
    state start begin
        when 70038.use begin
            if pc.getqf("rmpelerin") == 0 then
                say("Pelerin sistemi aktive edildi.")
                say("NOT: 10 dakika sonra 3 haneli bir kod girmeniz gerekecek.")
                pc.setqf("rmpelerin", 1)
                pc.setqf("sure", get_time() + 600) -- 10 dakika = 600 saniye
                pc.aggregate_monster()
                set_timer("kapat", 600) -- 10 dakika = 600 saniye
            else
                say("Pelerin sistemi zaten aktif durumda.")
            end
        end

        when kapat.timer begin
            if pc.is_dead() then
                pc.setqf("rmpelerin", 0)
                clear_timer("kapat")
                say("Karakter öldü. Pelerin kapatıldı.")
            elseif pc.getqf("sure") < get_time() then
                pc.setqf("rmpelerin", 0)
                clear_timer("kapat")
                say("10 dakika doldu. Pelerin kapatıldı.")
            end
            pc.aggregate_monster()
        end

        when login begin
            if pc.getqf("rmpelerin") == 1 then
                if pc.getqf("sure") < get_time() then
                    pc.setqf("rmpelerin", 0)
                    clear_timer("kapat")
                    say("10 dakika doldu. Pelerin kapatıldı.")
                else
                    pc.aggregate_monster()
                    set_timer("kapat", pc.getqf("sure") - get_time())
                end
            end
        end

        when 70039.use begin
            if pc.getqf("rmpelerin") == 1 then
                local kod = input("10 dakika dolmak üzere. Devam etmek için 3 haneli bir kod girin:")
                if string.len(kod) == 3 and tonumber(kod) ~= nil then
                    local digit1 = tonumber(string.sub(kod, 1, 1))
                    local digit2 = tonumber(string.sub(kod, 2, 2))
                    local digit3 = tonumber(string.sub(kod, 3, 3))
                    if digit1 >= 1 and digit1 <= 9 and digit2 >= 1 and digit2 <= 9 and digit3 >= 1 and digit3 <= 9 then
                        say("Doğru kod girdiniz. Pelerin devam ediyor.")
                    else
                        pc.setqf("rmpelerin", 0)
                        clear_timer("kapat")
                        say("Hatalı kod girdiniz. Pelerin kapatıldı.")
                    end
                else
                    pc.setqf("rmpelerin", 0)
                    clear_timer("kapat")
                    say("Hatalı kod girdiniz. Pelerin kapatıldı.")
                end
            else
                say("Pelerin sistemi zaten aktif değil.")
            end
        end
    end
end

Yapılan iyileştirmeler şunlardır:

  1. loop_timer fonksiyonu yerine set_timer fonksiyonu kullanılmıştır.
  2. "elseif" yerine "else" kullanılmıştır, çünkü sadece iki durum var ve "else" daha okunabilir bir seçenektir.
  3. pc.is_dead() fonksiyonu true veya false döndürdüğü için == true kontrolü kaldırılmıştır.
  4. "login" durumunda pelerin hala aktifse, geçerli süre kontrol edilerek doğru bir şekilde zamanlayıcı ayarlanmıştır.
  5. Bazı kod düzenlemeleri ve biçimlendirmeler yapılmıştır.
  6. 10 Dakika sonunda 3 haneli doğrulama kodu geliyor. Kullanıcı doğru cevap verirse pelerin devam ediyor.
 
Üst