Çözüldü Quest ile haritaya geri dönüş problemi

  • Konuyu açan Konuyu açan DeadLyEscaPe
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 722
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

DeadLyEscaPe

Üye
Üye
Mesaj
433
Çözümler
27
Beğeni
105
Puan
474
Ticaret Puanı
0
Merhabalar, bu sistemin zaten birçok yerde birçok questi mevcut. Konuyu açmamın sebebi doğru bir şekilde geriye dönüyor, süren yetişmediyse içeri almıyor vs. bunlar değil. Aşağıdaki görselde göründüğü gibi geri dönüş ile ilgili yazının sadece 5 dakika içerisinde yani geriye dönmek için 5 dakika verildiği süre zarfınca çıkmasını istiyorum. 5 dakika süre bittikten sonra o bölümün npc'den kaybolmasını istiyorum. Bunu NPC'ye with ... bla bla yaparak kontrol edebiliyorum fakat şunu fark ettim. NPC'ye ilk tıkladığınızda bunu algılıyor, buraya gayet kadar güzel. Tıkladıktan sonra ESC veya Kapat yaptıktan sonra daha süresi bitmemesine rağmen oradaki geriye dönüş bölümü siliniyor. Bunu süre bitmeden geri getirebilmek için tekrar tıklayıp altındaki bölüme gir çık yapmak gerekiyor. Bu bir bugmıdır veya benim yanlış with girmemden midir bilmiyorum. (Yanlış with girsem süre bittiğinde orası tamamen kaybolmaz ve ilk tıkladığımda süre aktifse göstermez diye düşünüyorum.) Biraz karışık olduğunu ve karışık anlattığımı biliyorum. Umarım doğru bir şekilde anlatabilmişimdir. Buraya kadar okuduysanız fikirlerinizi bekliyorum.

NPC Kontrolü:
Genişlet Daralt Kopyala
when 20090.chat."Yarım kalmış bir hesabım var..." with get_time() <= pc.getqf("iceri_giris_zaman") begin

Harita çıkışı sonrası süre başlama:
Genişlet Daralt Kopyala
        when logout or disconnect begin
            if pc.get_map_index() >= 2150000 and pc.get_map_index() <= 2159999 then
                pc.setqf("iceri_giris_zaman", get_time() + 30)
                pc.setqf("icerideyim", 1)
            end
        end

Adsız.png
 
Çözüm
Tam olarak dediğinizi anlayamadım ama aklıma çok iyi bir fikir getirdiniz. Teşekkür ederim.
O zaman şöyle açıklayayım,
Süre bittiği zaman, npc de ki chat listesinden bahsettiğin kısmı kaldırmak istiyorsun.

O kısmı kaldıran kodu da with ile yaptığını söylemişsin, o with koşulunu alıp, quest içinde geri dönüş için tanımlanan süreyi kontrol eden bloğun içine ekle. Yani süre bittiği zaman çalışan kodlar nereyse oraya ekle. Böylelikle hem süre bitmiş olacak hemde beraberinde o satırı silmiş olacak.
Bahsettiğin yeri silen satırı, sürenin bitişini temsil eden bloğun içine eklersen olur gibi sanki.
Böylelikle süre bittiği zaman çalışacak olan kod bloğu, o chat penceresini de güncellemiş olacak. Onun haricinde görünmeye devam edecektir.
 
Bahsettiğin yeri silen satırı, sürenin bitişini temsil eden bloğun içine eklersen olur gibi sanki.
Böylelikle süre bittiği zaman çalışacak olan kod bloğu, o chat penceresini de güncellemiş olacak. Onun haricinde görünmeye devam edecektir.

Tam olarak dediğinizi anlayamadım ama aklıma çok iyi bir fikir getirdiniz. Teşekkür ederim.
 
Tam olarak dediğinizi anlayamadım ama aklıma çok iyi bir fikir getirdiniz. Teşekkür ederim.
O zaman şöyle açıklayayım,
Süre bittiği zaman, npc de ki chat listesinden bahsettiğin kısmı kaldırmak istiyorsun.

O kısmı kaldıran kodu da with ile yaptığını söylemişsin, o with koşulunu alıp, quest içinde geri dönüş için tanımlanan süreyi kontrol eden bloğun içine ekle. Yani süre bittiği zaman çalışan kodlar nereyse oraya ekle. Böylelikle hem süre bitmiş olacak hemde beraberinde o satırı silmiş olacak.
 
Çözüm
O zaman şöyle açıklayayım,
Süre bittiği zaman, npc de ki chat listesinden bahsettiğin kısmı kaldırmak istiyorsun.

O kısmı kaldıran kodu da with ile yaptığını söylemişsin, o with koşulunu alıp, quest içinde geri dönüş için tanımlanan süreyi kontrol eden bloğun içine ekle. Yani süre bittiği zaman çalışan kodlar nereyse oraya ekle. Böylelikle hem süre bitmiş olacak hemde beraberinde o satırı silmiş olacak.

Bu sefer anladım fakat with koşulu zaten orada tanımlı. İçeri girmek istediğinde süre bitmişse giremezsin, bitmemişse girebilirsin diyor. O bölüme gelmeden önce ilk bölüm olan chat kısımlarından birine tıklamak gerekiyor. Ben de tek bir chat oluşturup, süre devam ediyor ise içeri yönlendirmeye, süre devam etmiyor ise yeni bir zindana giriş yaptırmaya yönlendireceğim. Teşekkür ederim.
 
Bu sefer anladım fakat with koşulu zaten orada tanımlı. İçeri girmek istediğinde süre bitmişse giremezsin, bitmemişse girebilirsin diyor. O bölüme gelmeden önce ilk bölüm olan chat kısımlarından birine tıklamak gerekiyor. Ben de tek bir chat oluşturup, süre devam ediyor ise içeri yönlendirmeye, süre devam etmiyor ise yeni bir zindana giriş yaptırmaya yönlendireceğim.
Alternatif olarak iki tane func oluşturup, birinde normal chat, diğerinde geri dönüş seçeneği olan chat tanımlı olur.
Sonra süreye göre hangi func uygunsa onu çağırabilirsin.
 
@Yeniceri , bir şey daha sormak istiyorum. Yaptığım patron haritasına her girişte aşağıdaki 215 + 0000 map indexi değişiyor. Aynı şeytan kulesindeki mantık gibi. ( Map index: 660000) İçeriye girdikten sonra bir patron çağırıp haritayı terk etsem ve 5 dakika içerisinde de geri dönmesem o patron arka planda hala orada durur mu? Yani dungeon'dan çıktığımda hangi indexli dungeon üzerinden çıktıysam oradaki moblar kendiliğinden silinir mi? Çünkü bir daha girmek istediğinde 215 + 0001 şeklinde map index kodu veriyor. Sıralamayı 1 arttırıp yeni bir dungeona giriyor. Bir önceki moblar hala orada durur mu ki acaba?

Bunu şu yüzden soruyorum; şeytan kulesinde full timer ile işler halloluyor. Belli bir süre sonra timer ile tüm dungeon d. fonksiyonları ile temizleniyor. Burada sıfır timer kullandım ve herhangi bir dungeon fonksiyonları ile örneğin: d.purge() gibi temizlik gerçekleştirmedim.
 
Son düzenleme:
@Yeniceri , bir şey daha sormak istiyorum. Yaptığım patron haritasına her girişte aşağıdaki 215 + 0000 map indexi değişiyor. Aynı şeytan kulesindeki mantık gibi. ( Map index: 660000) İçeriye girdikten sonra bir patron çağırıp haritayı terk etsem ve 5 dakika içerisinde de geri dönmesem o patron arka planda hala orada durur mu? Yani dungeon'dan çıktığımda hangi indexli dungeon üzerinden çıktıysam oradaki moblar kendiliğinden silinir mi? Çünkü bir daha girmek istediğinde 215 + 0001 şeklinde map index kodu veriyor. Sıralamayı 1 arttırıp yeni bir dungeona giriyor. Bir önceki moblar hala orada durur mu ki acaba?

Bunu şu yüzden soruyorum; şeytan kulesinde full timer ile işler halloluyor. Belli bir süre sonra timer ile tüm dungeon d. fonksiyonları ile temizleniyor. Burada sıfır timer kullandım ve herhangi bir dungeon fonksiyonları ile örneğin: d.purge() gibi temizlik gerçekleştirmedim.
Herhangi bir sıfırlama, purge veya timer vs. olmazsa mantıken moblar durmaya devam edecektir.
purge_area kullanmayı deneyebilirsin. Kullanım şeklinden tam emin değilim ancak işini görebilir.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst