Merhaba dostum, istediğin sıralı görev yapısı oyununa derinlik katacak çok güzel bir fikir. Bunu tek bir quest dosyasında "quest flag" sistemini kullanarak kolayca yapabiliriz. Mantık şu: Bir görevi bitiren oyuncuya bir "işaret" vereceğiz ve sonraki görevin başında bu işareti kontrol edeceğiz.
İşte senin görevlerin için hazırlanmış bir taslak. Bu yapıyı kendi görevine uyarlayabilirsin:
[CODE title="Lua"]quest sirali_gorev_zinciri begin
state start begin
-- --- GÖREV 1: SEVİYE 75 ---
-- Oyuncu 75. seviyeye ulaştığında VE henüz 75 görevini yapmadıysa...
when login or levelup with pc.get_level() >= 75 and pc.getqf("gorev_zinciri_75") == 0 begin
quest.set_state("gorev_75_baslangic")
end
-- --- GÖREV 2: SEVİYE 80 ---
-- Oyuncu 80. seviyeye ulaştığında, 75. görevi bitirdiğinde VE henüz 80 görevini yapmadıysa...
when login or levelup with pc.get_level() >= 80 and pc.getqf("gorev_zinciri_75") == 1 and pc.getqf("gorev_zinciri_80") == 0 begin
quest.set_state("gorev_80_baslangic")
end
-- --- GÖREV 3: SEVİYE 85 ---
when login or levelup with pc.get_level() >= 85 and pc.getqf("gorev_zinciri_80") == 1 and pc.getqf("gorev_zinciri_85") == 0 begin
quest.set_state("gorev_85_baslangic")
end
-- --- GÖREV 4: SEVİYE 90 ---
when login or levelup with pc.get_level() >= 90 and pc.getqf("gorev_zinciri_85") == 1 and pc.getqf("gorev_zinciri_90") == 0 begin
quest.set_state("gorev_90_baslangic")
end
end
-- --- GÖREVLERİN İŞLEYİŞİ VE TAMAMLANMASI ---
-- 75. Seviye Görevi
state gorev_75_baslangic begin
when -- [BURAYA GÖREVİN BİTME ŞARTI GELECEK, örneğin NPC ile konuşma veya canavar kesme] -- begin
say_title("Görev Tamamlandı!")
say("Tebrikler, ilk görevi başarıyla bitirdin.")
-- Ödülleri burada ver...
-- ANAHTAR KISIM: 75. görevin bittiğine dair "işareti" (flag) oyuncuya veriyoruz.
pc.setqf("gorev_zinciri_75", 1)
quest.done() -- Görevi pencereden kaldır.
quest.set_state("start") -- Kontrol döngüsüne geri dön.
end
end
-- 80. Seviye Görevi
state gorev_80_baslangic begin
when -- [80. seviye görevinin bitme şartı] -- begin
-- Ödülleri ver...
-- ANAHTAR KISIM: 80. görevin bittiğine dair işareti ver.
pc.setqf("gorev_zinciri_80", 1)
quest.done()
quest.set_state("start")
end
end
-- (Buraya 85 ve 90 için de benzer 'state' blokları eklenecek)
end[/CODE]
Özetle:
- Her görevin başlama şartına bir önceki görevin bitmiş olma kontrolünü (pc.getqf("önceki_görev_adı") == 1) ekle.
- Her görevin sonuna da o görevin bittiğini belirten işareti (pc.setqf("bu_görevin_adı", 1)) koy.
Bu yapı ile görevlerin tam istediğin gibi sırayla ve sorunsuz bir şekilde çalışacaktır.