kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
InfernoShade 1
InfernoShade
BlackFullMoon 1
BlackFullMoon
Agora Metin2 1
Agora Metin2
PrimeAC 1
PrimeAC
ShadowFon 1
ShadowFon
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplandı Levelup.quest doğru çalıştıramama

  • Konuyu başlatan Konuyu başlatan babag361
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 11
  • Görüntüleme Görüntüleme 374
  • Etiketler Etiketler
    levelup quest

babag361

Level 2
Üye
Katılım
31 Ocak 2025
Konular
17
Mesajlar
62
Çözüm
8
Online süresi
21d 2h
Reaksiyon Skoru
5
Altın Konu
0
TM Yaşı
1 Yıl 4 Ay 10 Gün
Başarım Puanı
40
MmoLira
2,195
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Levelup.quest doğru çalışmıyor, makequestbutton yazan yerleri send_letter ile değiştirince ve level 2 olunca görev geliyor fakat canavarları kesince saymıyor , o sorunu çözdükten sonra görev tamamlandı diyor ödülü vermiyor, makequestbutton olarak kullanınca (zaten orjinal hali) 2 level olunca görev hiç gelmiyor, sistem olarak https://forum.turkmmo.com/konu/3848171-official-quest-renewal/ kullanıyorum
Bu sorunu hiç yaşayan var mı nasıl çözerim. Kullandığım questi aşağıda belirtiyorum.
 

Ekli dosyalar

Son düzenleme:
Sorun güncel
 
Merhaba kardeşim, çok klasik ve gerçekten sinir bozucu bir quest problemiyle karşı karşıyasın. Öncelikle makequestbutton'ı send_letter ile değiştirerek yaptığın test, sorunun kaynağını bulmada çok akıllıca bir ilk adım olmuş, tebrik ederim. Bu sayede problemin nerede olduğunu net bir şekilde görebiliyoruz.

Sonuca gitmek için sorunu ikiye ayıralım:

* Asıl Sorun: makequestbutton Neden Çalışmıyor?

Senin de belirttiğin gibi, bu "Official Quest Renewal" adında özel bir sistem. makequestbutton fonksiyonu, standart oyun dosyalarında bulunan bir komut değildir. Bu, sistemle birlikte gelen özel bir eklentidir. Eğer 2. seviye olduğunda bu buton hiç gelmiyorsa, bunun tek bir anlamı var: Sistemin client taraflı kurulumunda bir eksiklik var. Sunucu görevi başlatıp "butonu yarat" komutunu gönderiyor, ama client'ın bu komutu işleyecek ve o butonu çizecek Python kodları eksik veya hatalı olduğu için hiçbir şey olmuyor. Uzun vadeli en doğru çözüm, sistemin client kurulum adımlarını tekrar dikkatlice kontrol etmektir.

* Geçici Çözüm ve Mantığı: Canavarlar Neden Saymıyor ve Ödül Neden Gelmiyor?

Şimdi gelelim senin send_letter ile yaptığın zekice değişikliğe... Canavarları kesince saymamasının çok net bir sebebi var. Gel, quest kodunun içindeki dedektiflik oyununa bakalım.

Quest'in en altlarındaki when kill begin bloğunda şöyle bir şart var:

[CODE title="Lua"]if lev != 0 and npc.race == ... and pc.getqf("buttonstate") == -1 then
-- Canavarı say...
end[/CODE]

Bu kod diyor ki, "Ancak ve ancak buttonstate isimli durum -1 ise kestiğin canavarı sayarım."

Peki bu buttonstate ne zaman -1 oluyor? Normalde, oyuncu görevi kabul ettiğinde olması lazım. Ama sen send_letter kullandığın için, görevi başlatan when button bloğunun bazı kısımları atlanıyor ve bu durum (buttonstate) bir türlü -1 olarak ayarlanmıyor. Muhtemelen 2 veya 1 olarak takılı kalıyor. Dolayısıyla sen canavarı kestikçe, oyun bu şarta takılıp "üzgünüm, durum -1 değil, sayamam" diyor.

İşte Çözüm (Yama):

Bu durumu düzeltmek için tek bir satır ekleyeceğiz. Oyuncunun görevi kabul ettiği, yani "Evet, bu canavarları keseceğim" dediği yere manuel olarak buttonstate'i -1 yapacağız.

Quest'in içinde elseif pc.getqf("buttonstate") == 2 then bloğunu bul. Bu bloğun içinde, oyuncunun iki görevden birini seçtiği select(...) satırları var. O seçimden sonra, oyuncu görevi onayladığında çalışan if s == 1 then koşulunu bul. İşte tam oraya sihirli dokunuşu yapacağız.

Aşağıdaki satırı bul:
q.start()

Hemen üstüne şu satırı ekle:p

pc.setqf("buttonstate", -1)

Yani kodun o kısmı şöyle görünecek:

[CODE title="Lua"]-- ... (diğer kodlar)
if s == 1 then
setskin(NOWINDOW)
pc.setqf("remain",special.levelup_quest[lev][sel*2])
syschat(string.format(gameforge.levelup._170_chat, mob_name(special.levelup_quest[lev][sel*2-1])," ".. special.levelup_quest[lev][sel*2]))
q.set_title(string.format(gameforge.levelup._180_qSetTitle, mob_name(special.levelup_quest[lev][sel*2-1])))
q.set_counter(gameforge.levelup._250_say, pc.getqf("remain"))

pc.setqf("buttonstate", -1) -- <<< BURAYA EKLE!
q.start()
end
-- ... (diğer kodlar)[/CODE]

Bu değişikliği yaptığında, görevi kabul ettiğin an durum -1 olacak ve canavar kesimleri doğru bir şekilde sayılmaya başlayacak.

"Ödülü Vermeme" sorunu da bu durumun bir yan etkisi. Canavarlar sayılmadığı için görev hiçbir zaman "tamamlandı" durumuna geçemiyor ve ödül aşamasına gelemiyor. Yukarıdaki tek satırlık değişikliği yaptığında, görev tamamlanınca ödülünü de sorunsuz bir şekilde alacaksın.

Umarım yardımcı olmuştur, kolay gelsin!
 
Son düzenleme:
Merhaba, aynı sorun bende de var, görev görüntülenmiyor. "makequestbutton" yerine "send_letter" yazarak görüntüleyebiliyorum, ancak öldürülecek iki canavar arasında seçim yapamıyorum ve öldürülen canavarlar sayılmıyor. Çözümü olan var mı?
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst