Paylaşım Yeni Quest I Bot Kontrol

KutlukHan

Yeni Üye
Aileden Biri
0
Aktiflik
Bu sistem, oyuncu şehirde gezerken veya boş dururken değil, yalnızca bir canavara veya metine saldırıp onu öldürdüğünde devreye girerek son doğrulamanın üzerinden 10 dakika geçmişse ekrana 6 haneli rastgele bir sayı ve 5 farklı seçenekten oluşan bir güvenlik penceresi getirir; bu süreçte oyuncunun hareketi kısıtlanıp bineğinden indirilerek saldırı yapması engellenirken, 30 saniyelik süre içerisinde doğru butonu bulamayan, iki kez yanlış tercihte bulunan veya hiçbir işlem yapmayan kullanıcılar bot olarak algılanıp sunucudan anında bağlantıları kesilerek oyundan atılır.

Kod:
quest bot_kontrol begin
    state start begin
        when kill with not npc.is_pc() begin
            if get_time() - pc.getqf("son_bot_kontrol") >= 600 then
                bot_kontrol.dogrulama()
            end
        end

        function dogrulama()
            local map = pc.get_map_index()
            local x, y = pc.get_x(), pc.get_y()
            pc.set_warp_location(map, x, y)
            
            if horse.is_summon() then horse.unsummon() end
            if pc.is_mount() then pc.unmount() end

            local dogru = number(100000, 999999)
            local s1, s2, s3 = number(100000, 999999), number(100000, 999999), number(100000, 999999)
            
            local siklar = {dogru, s1, s2, s3}
            for i = 4, 2, -1 do
                local j = number(1, i)
                siklar[i], siklar[j] = siklar[j], siklar[i]
            end

            timer("bot_sure_siniri", 30)
            say_title("[Sistem] Bot Kontrolü")
            say("")
            say_reward("Lütfen aşağıdaki sayıyı seçin:")
            say("")
            say_white("Sayı: "..dogru)
            say("")

            local sec = select(tostring(siklar[1]), tostring(siklar[2]), tostring(siklar[3]), tostring(siklar[4]), "Kapat")

            if siklar[sec] == dogru then
                cleartimer("bot_sure_siniri")
                pc.setqf("son_bot_kontrol", get_time())
                pc.setqf("hata", 0)
                syschat("Doğrulama başarılı.")
            else
                local hata = pc.getqf("hata") + 1
                pc.setqf("hata", hata)
                if hata >= 2 then
                    pc.setqf("hata", 0)
                    pc.disconnect()
                else
                    syschat("Yanlış cevap! 1 hakkınız kaldı.")
                    bot_kontrol.dogrulama()
                end
            end
        end

        when bot_sure_siniri.timer begin
            pc.setqf("hata", 0)
            pc.disconnect()
        end
    end
end
 
Geri