Balık Event Quest

CalvinGiorgio

Kurumsal Üye
Kurumsal Üye
Üye
Mesaj
664
Çözümler
14
Beğeni
84
Puan
539
Ticaret Puanı
0
Balık Event questi yazdım bir arkadaş istemişti fakat vazgeçtiği için paylaşıyorum.
Balik Event:
quest deneme begin
    state start begin
        --when etkinlik_sure.timer begin
            --notice_all("Balikcilik etkinliği süresi bitti.") --- tüm haritalarda duyuru geçtik
            --game.set_event_flag("timer_test_deneme",0) -- etkinlik süresi dolduğu için etkinliği pasif hale getirdik.
        --end--when timer end
        when 9009.chat."Etkinlik Ayarlari" with pc.is_gm() begin  ---gm ayar--sadece gm olan hesaplar görebilir.
        local secimyap = select("Etkinlik Bilgi","Hicbiri")
        if secimyap == 1 then
            local balik_adasi_aktif1 = game.get_event_flag("balik_adasi_aktif")
                if balik_adasi_aktif1 == 1 then
                    say("Etkinlik durumu: |cff07eb96Açık!")
                    say("Aşağıdan işlem seçiniz")
                    local etkinlik_kapat = select("Etkinlik Kapat","Ayarlar","Bilgi Al","Zaman Ayarla","İptal")
                        if etkinlik_kapat == 1 then
                            game.set_event_flag("balik_adasi_aktif",0)
                            syschat("Etkinlik durumu: |cffff9999Kapalı!")
                        elseif etkinlik_kapat == 2 then
                            say("Hoşgeldin.")
            say("")
            say("Odul itemini değiştirmek istiyorsanız.")
            say("Bigileri eksiksiz doldurunuz.")
            say("")
            say("|cff07eb96Etkinlik Odulu İtem Vnum()")
            etkinlik_odul_item = tonumber(input()) or nil
                if etkinlik_odul_item == 0 then
                say("İtem Kod'u Yanlış!")
                   return
                end
            say(" Odul için istenilicek adet sayısı giriniz. ")
                say("|cff07eb96 Odul Adet Sayısı(Rakam)")
                etkinlik_odul_adet = tonumber(input()) or nil
                if etkinlik_odul_adet == 0 then
                    say("Adet Sayısı, Hatalı!")
                    return
                end-- etkinlik odul adet end
                say("Hoşgeldin.")
            say("")
            say("Balık ayarını değiştirmek istiyorsanız.")
            say("Bigileri eksiksiz doldurunuz.")
            say("")
            say("|cff07eb96Balık item kodu İtem Vnum()")
            etkinlik_balik_item = tonumber(input()) or nil
                if etkinlik_balik_item == 0 then
                say("İtem Kod'u Yanlış!")
                   return
                end
            say(" Balık için istenilicek adet sayısı giriniz. ")
                say("|cff07eb96 Balık Adet Sayısı(Rakam)")
                etkinlik_balik_adet = tonumber(input()) or nil
                if etkinlik_balik_adet == 0 then
                    say("Adet Sayısı, Hatalı!")
                    return
                end
                    syschat("Etkinlik Odul: |cff07eb96"..item_name(etkinlik_odul_item).." ")
                    syschat("Odul Adet Sayısı: |cff07eb96"..etkinlik_odul_adet.." ")                   
                    syschat("Secilen Balik: |cff07eb96"..item_name(etkinlik_balik_item).." ")
                    syschat("Balik Adet Sayısı: |cff07eb96"..etkinlik_balik_adet.." ")
                elseif etkinlik_kapat == 3 then
                    say("Etkinlik Odul: |cff07eb96"..item_name(etkinlik_odul_item).." ")
                    say("Odul Adet Sayısı: |cff07eb96"..etkinlik_odul_adet.." ")                   
                    say("Secilen Balik: |cff07eb96"..item_name(etkinlik_balik_item).." ")
                    say("Balik Adet Sayısı: |cff07eb96"..etkinlik_balik_adet.." ")
                elseif etkinlik_kapat == 4 then
                    if game.set_event_flag(timer_test_deneme) == 0 then
                        say("Zaman zatan ayarlanmış")
                    else
                    pc.setqf("ticaret_sure",get_time() + 1800)
                    game.set_event_flag("timer_test_deneme",1)
                    --timer("etkinlik_sure",3600)
                    --game.set_event_flag("timer_test_deneme",1)
                end --etkinlik_kapat
                end --etkinlik_kapat
                elseif balik_adasi_aktif1 == 0 then
                    say("Etkinlik durumu: |cffff9999Kapalı!")
                    say("Aşağıdan işlem seçiniz")
                    local etkinlik_ac = select("Etkinlik Ac","İptal")
                        if etkinlik_ac == 1 then
                            game.set_event_flag("balik_adasi_aktif",1)
                            syschat("Etkinlik durumu: |cff07eb96Açık!")
                        end --etkinlik_ac
                    end
                end
        end--secim yap
        when 9009.chat."Balikcilik Adasi" with game.get_event_flag("balik_adasi_aktif") == 1 begin --- oyuncular görücek ve etkinlik aktif mi kuralı ekledik
            say("Etlinlik haritası aktif edilmiştir. Etlinlik haritasında geçireceğiniz süre toplam 1 saat olacaktır.")
            say("Etlinlik haritasında vaktin kısıtlı aşağıdan bir işlem seçmelisin")
                local harita_git = select("Etkinliğe Katıl","Bilgi","İptal")
                    if harita_git == 1 then
                        pc.warp(474200,954400)--harita için kordinat girilicek
                    elseif harita_git == 2 then
                    say("Etkinlik Odul: |cff07eb96"..item_name(etkinlik_odul_item).." ")
                    say("Odul Adet Sayısı: |cff07eb96"..etkinlik_odul_adet.." ")                   
                    say("Secilen Balik: |cff07eb96"..item_name(etkinlik_balik_item).." ")
                    say("Balik Adet Sayısı: |cff07eb96"..etkinlik_balik_adet.." ")
                    end--harita_git
        end  ---map index
        when 9009.take with game.get_event_flag("balik_adasi_aktif") == 1 and item.vnum == etkinlik_balik_item begin -- etkinlik aktif mi kontrol ve item kontrol
            if pc.count_item(etkinlik_balik_item) < 5 then --- 5 yazan yere sayı eklenecek bu adet sorgulanacak balik sayısıdır
                syschat("item eksik") -- item sorgusu için text bilgisi
            else
                pc.remove_item(etkinlik_balik_item,5) -- 5 yazan yere yukarıda yazdığınız sayının aynısını yazıcaksın
                pc.give_item2(etkinlik_odul_item, etkinlik_odul_adet) --- ödül ve adet verdik dokunmayın
            end   
        end --when 9009.take end
    end
end




Aşağıda görünen Etkinlik durum bilgisi Kapalı veya Açık şeklinde görünücektir.
1. Sıradaki buton if sorugusu ile döngülediği için duruma göre flag kontrolü yapar ve aç veya kapat şeklinde buton değişicektir.
1701515596613.png

Aşağıdaki resimde sadece etkinlik kapalı konumda olduğu zaman görünen buton ve açıldığı zaman görünen buton gözükmektedir.
1701515695216.png


1701515720980.png

1701515620381.png

1701515650372.png


Etkinlik ayarları için
Aşağıdaki Ayarlar butonuna tıklıyoruz.
Lightshot screenshot

Aşağıdaki resimde görünen ekranda oyuncumuza görevi yerine getirdiği zaman vereceği ödülün itemVnum değeri giriyoruz.(örn:299)
1701515831465.png


Aşağıdaki ekranda kaç adet itemVnum veriliceği değeri giriceğiz. Örn: n+1n yani 1 ve katları

1701515899391.png


aşağıdaki ekranda hangi balığı getiriceği zaman ödülü alabilicek onu giriceğiz. Örnek: 27811
1701515960537.png


Aşağıdaki ekranda kaç adet balik isteneceğini soruyoruz fakat oraya şimdilik 1 yazınız.(İşlevi yok)

1701515995091.png

aşağıdaki sonuç ekranı gelecektir.
1701516074977.png


Test yapalım.

886ffa337f669e5932d33a3433744d07.gif


Ayalar kısmında 1 adet yazdık fakat 5 adet balık sildi gördüğünüz gibi
onun ayarı şu kısımda yapılıcaktır.

1701516270976.png

kırmızı kutu içerisindeki sayıları istediğiniz şekilde değiştiriniz.

Zaman ayarlamasını yapamadım 2 yıldır uğraşmadığım için unutmuşum Eray yardımcı olursa daha güzel bir quest olucaktır.
@Whistle
 
Paylaşım için sağol elinize sağlık
 
Geri
Üst