Harf Etkinlik Quest

  • Konuyu açan Konuyu açan texas1343
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 3
  • Gösterim Gösterim 129

texas1343

MT Üye
MT Üye
Mesaj
575
Çözümler
25
Beğeni
344
Puan
799
Ticaret Puanı
0
iyi aksamlar Harf Etkinlik Quest paylaşmak istiyorum sabahtan beri uğraşıyorum iyi kullanımlar

yapılanlar;

GM karakteri ile npc aracılı ile event başlatılabilir ve sunucuya notice_all geçer başladığına dair
metin taşlarından toplanan 5.harf belirli npc item karşılığı takas edilir
toplanan 5.harf belirlenen 3.adet itemden bir tanesini rastgele verir
oyunucu leveli ve metin taşı leveli karşılaştılarak 15 levelden fazla olan oyuncular metin taşından harfleri düşüremez
event bittiği zaman takas npcsinde "Takas et" butounu kalıyordu düzeldi event aktif olduğu zaman geliyor
oyuncu mevcut olan itemler veya olmayan itemler renkli şekilde oyuncuya gösterilir
metinden harf düşme oranı ayarlanabilr

aklıma gelen bunlar eksik varsa yorumlarda belirtin İyi kullanımlar :)

Kod:
Genişlet Daralt Kopyala
quest harf_etkinlik begin
    state start begin
        -- GM'lere özel etkileşim (20023 NPC)
        when 20023.chat."harf_etkinlik" with pc.is_gm() begin
            local etkinlik_durumu = game.get_event_flag("harf_etkinlik")

            if etkinlik_durumu == 0 then
                say_title("Harf Etkinliği")
                say("Harf Etkinliğini başlatmak istiyor musunuz?")
                local ysno = select("Evet", "Hayır")

                if ysno == 1 then
                    game.set_event_flag("harf_etkinlik", 1)
                    notice_all("Harf Etkinliği başladı! Harfleri toplayın!")
                end
            else
                say_title("Harf Etkinliği")
                say("Harf Etkinliğini kapatmak istiyor musunuz?")
                local yesno = select("Evet", "Hayır")

                if yesno == 1 then
                    game.set_event_flag("harf_etkinlik", 0)
                    notice_all("Harf Etkinliği sona erdi!")
                end
            end
        end

        -- Metin taşlarından harf düşürme (8001-8027)
        when 8001.kill or 8002.kill or 8003.kill or 8004.kill or 8005.kill or
             8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or
             8011.kill or 8012.kill or 8013.kill or 8014.kill or 8015.kill or
             8016.kill or 8017.kill or 8018.kill or 8019.kill or 8020.kill or
             8021.kill or 8022.kill or 8023.kill or 8024.kill or 8025.kill or
             8026.kill or 8027.kill begin
            if game.get_event_flag("harf_etkinlik") == 1 then
                local metin_level = npc.get_level()
                local player_level = pc.get_level()
                local level_difference = math.abs(player_level - metin_level)

                if level_difference > 15 then
                    chat("[Uyarı]: Seviyeniz ile metin taşı arasındaki fark çok fazla! Harf düşmeyecek.")
                    return
                end

                local drop_chance = 50
                if math.random(1, 100) <= drop_chance then
                    local harfler = {25041, 25040, 27992, 27993, 27994}
                    local harf_secimi = harfler[number(1, 5)]
                    game.drop_item(harf_secimi, 1)
                end
            end
        end

        -- Takas NPC (20024)
        when 20024.chat."Takas Yap" with game.get_event_flag("harf_etkinlik") == 1 begin
            if game.get_event_flag("harf_etkinlik") == 0 then
                say("Etkinlik şu anda kapalı, takas yapamazsınız.")
                return
            end

            if pc.count_item(25041) >= 1 and pc.count_item(25040) >= 1 and
               pc.count_item(27992) >= 1 and pc.count_item(27993) >= 1 and pc.count_item(27994) >= 1 then

                pc.remove_item(25041, 1)
                pc.remove_item(25040, 1)
                pc.remove_item(27992, 1)
                pc.remove_item(27993, 1)
                pc.remove_item(27994, 1)

                local reward_items = {27004, 27006, 71084}
                local selected_reward = reward_items[number(1, 3)]

                pc.give_item2(selected_reward, 1)

                say("Tebrikler! Gerekli eşyaları getirdin ve ")
                say_item("Ödül Item", selected_reward, "")
            else
                say("Takas için şu eşyaların her birinden 1 adet getirmen gerekiyor:")

                if pc.count_item(25041) < 1 then
                    say("|cFFFFA500- Büyülü Metal eksik.|r")
                else
                    say("|cFF00FF00- Büyülü Metal mevcut.|r")
                end

                if pc.count_item(25040) < 1 then
                    say("|cFFFFA500- Parlak Cevher eksik.|r")
                else
                    say("|cFF00FF00- Parlak Cevher mevcut.|r")
                end

                if pc.count_item(27992) < 1 then
                    say("|cFFFFA500- Kutsama Kağıdı eksik.|r")
                else
                    say("|cFF00FF00- Kutsama Kağıdı mevcut.|r")
                end

                if pc.count_item(27993) < 1 then
                    say("|cFFFFA500- Ruh Taşı eksik.|r")
                else
                    say("|cFF00FF00- Ruh Taşı mevcut.|r")
                end

                if pc.count_item(27994) < 1 then
                    say("|cFFFFA500- Ejderha Pençesi eksik.|r")
                else
                    say("|cFF00FF00- Ejderha Pençesi mevcut.|r")
                end
            end
        end
    end
end
 
Öncelikle paylasım için tesekurler yararlı bir paylasım fakat harf ettligi olusan durum bu sekilde yapılmaktadır mmo tutkunları harfleri slot kestikce toplanılır mmo tutkunları harfleri topluyan oyuncular sandık haline getirir o harfleri birlestirerek Sandık olusur sandıktan cıkan sans durumuna gore item atılmaktadır bu sekilde olmus olsaydı daha mantıklı olabilir diye dusunuyorum cunku 14 yıllık 65-250 oyunculugumdan bildigim icin bu etkinlikleri unutmam tabi istiyende questi uyarlıyabilir istedigi sekle gore :)
 
Öncelikle paylasım için tesekurler yararlı bir paylasım fakat harf ettligi olusan durum bu sekilde yapılmaktadır mmo tutkunları harfleri slot kestikce toplanılır mmo tutkunları harfleri topluyan oyuncular sandık haline getirir o harfleri birlestirerek Sandık olusur sandıktan cıkan sans durumuna gore item atılmaktadır bu sekilde olmus olsaydı daha mantıklı olabilir diye dusunuyorum cunku 14 yıllık 65-250 oyunculugumdan bildigim icin bu etkinlikleri unutmam tabi istiyende questi uyarlıyabilir istedigi sekle gore :)
Teşekkürler 10 yıllık metin2 deneyiminde 65-250 hiç oynamadığım için anlattığın şekilde bilmiyordum aklıma bu geldi
 
Güncelleme;

ödül aldığımız zaman aldığımız ödülün fareyi üstüne süreklediğmizde ismi Örnek veriyorum "Büylü Metal" yazması yerine "Ödül item" diye gözüküyordu bunu düzelttim


bul:
Genişlet Daralt Kopyala
                say("Tebrikler! Gerekli eşyaları getirdin ve ")
                say_item("Ödül Item", selected_reward, "")
            else
                say("Takas için şu eşyaların her birinden 1 adet getirmen gerekiyor:")

change

değiş:
Genişlet Daralt Kopyala
                say("Tebrikler! Gerekli eşyaları getirdin ve ")
                say_item(item_name(selected_reward), selected_reward, "")  -- item_name fonksiyonu ile doğru item ismini alıyoruz
            else
                say("Takas için şu eşyaların her birinden 1 adet getirmen gerekiyor:")
 
Geri
Üst