- Mesaj
- 470
- Çözümler
- 29
- Beğeni
- 117
- Puan
- 474
- Ticaret Puanı
- 0
Merhabalar. Ne kadar doğru ve kullanışlı olduğunu bilmeden, bazı quest dosyalarından fonksiyonların kullanımı ile ilgili araştırmalar sonucu ve bazı örneklendirmeler ile amatörce bir sistem yazdım. Benim görebildiğim oluşabilecek tüm sorunları ve hataları engelledim. Her şey şuan için doğru ve güzel işliyor. Kafamda birkaç sorum ve güncelleme yapmak istediğim şeyler var. Sorulara gelmeden önce güncellemelerden bahsetmek istiyorum.
Patronların listelendiği yeri, sırası ile;
1. Sadece seviyenin ve seviyenin altındaki patronları listede görüntüle.
2. Seviyenin görüntülendiği patronlara ait biletin envanterinde mevcut ise patronu listeye dahil et.
3. Patronlar ile arandaki soğuma süresi sıfır olan patronları görüntüle.
4. Soğuma süresini öğrenmek istediğin patronların listesini ayrı bir pencerede görüntüle. ( Daha gelişmiş versiyonu LUA ile yapılabilir mi bilmiyorum. Soğuma süresi dolan patronun PM yoluyla bilgilendirilmesi. (PM yolu ile mesaj gönderme fonksiyonu yıllar önce paylaşılmıştı sanırım.) Bunun için loop kullanılması gerek sanırım. Bunu kullanmak istemiyorum. Bunu kullanmadan yapılabilir mi?
Örneğin:
" Azrail ile arandaki soğuma süren 1 saat 53 dakika 32 saniye kaldı. "
Sorularım;
1. Soğuma süresi pc.setqf ile tutuluyor. d.setqf ile tutsam süre sadece zindan içerisinde kaldığın sürece mi geçerli olur? Zindandan çıkış yapıldığında soğuma süresi sıfırlanır mı? Bunu böyle tutmak yerine kesilen patronların soğuma sürelerini listeleyen bir mysql tablosu oluşturulsa ve oradan süre çekilip ona göre patron ile tekrar buluşup buluşulamayacağına karar verilse aynı şeyi mi yapmış oluruz performans açısından, daha mı kötü olur? Ya da bu süreyi bu şekilde tutmak doğru mu?
2. Quest ile böyle bir sistem yazılması dezavantaj mı? Game ve python taraflı yazılanlar var biliyorum. Bu şekilde kullanmak sağlıklı mı? Orta oyunculu sunucuda riskleri var mı? (Bunun için aslında kod yapısını görmeniz gerek. (Timer ve loop kullanmadım.)
Ne kadar basit ve amatörce de olsa sadece questi İşin ehli kişilerle questi paylaşmak istiyorum. Maruz görün. Eğer bilgili kişiler yardımcı olursa çok memnun olurum.
Güncelleme 20.02.2025 - 03.06 Perşembe
1. Tüm patronları oyuncuya göstermek yerine koşullanan sıralamaya göre patronları listeler.
2. Soğuma biletine sahip olunan patronların soğuma süresini görüntüleyebilir ve sıfırlayabilir.
3. VIP oyuncular, soğuma biletine ihtiyaç duymadan soğuma süresi olan tüm patronları görüntüleyebilir ve sıfırlayabilir.
4. VIP oyunculara özel olarak patronlarla yüzleşeceğin elçi ile konuşurken patrona ait biletin olmaması durumunda o an o pencereden bileti
ücreti karşılığında satın alabilme
5. Patronu tam yok etme esnasında zindandan çıkış yapmak istenildiğinde oluşan sürekli patron kesme hatası düzeltildi.
( Patron canı %10 ve altında ise çıkış yapamazsın.)
6. Beklenmeyen bir şekilde zindanda patron varken elçi ile diyaloğa girme durumunda çok büyük sıkıntılar çıkabilir. Bunun önüne tamamen geçildi.
7. Geçici süre de olsa gereksiz log tutumunu engelleme:
Oyuncunun patronla yüzleşebilecek maksimum seviyesi vardır. Bu seviye aşıldığında oyuncu patronla bir daha karşılaşamaz.
Maksimum seviye aşılmışsa kontrolü sağlandıktan sonra soğuma süresi devam eden patron var ise performans açısından silinmesi daha uygundur.
Bu kontrol zindana her giriş yapıldığında sorgulanır.
Zindana girişte seviye aşılmışsa ve soğuma süresi devam ediyorsa önceki patronların soğuma süresi sıfırlanır.
Sistem ile ilgili detaylı video:
Patronların listelendiği yeri, sırası ile;
1. Sadece seviyenin ve seviyenin altındaki patronları listede görüntüle.
2. Seviyenin görüntülendiği patronlara ait biletin envanterinde mevcut ise patronu listeye dahil et.
3. Patronlar ile arandaki soğuma süresi sıfır olan patronları görüntüle.
4. Soğuma süresini öğrenmek istediğin patronların listesini ayrı bir pencerede görüntüle. ( Daha gelişmiş versiyonu LUA ile yapılabilir mi bilmiyorum. Soğuma süresi dolan patronun PM yoluyla bilgilendirilmesi. (PM yolu ile mesaj gönderme fonksiyonu yıllar önce paylaşılmıştı sanırım.) Bunun için loop kullanılması gerek sanırım. Bunu kullanmak istemiyorum. Bunu kullanmadan yapılabilir mi?
Örneğin:
" Azrail ile arandaki soğuma süren 1 saat 53 dakika 32 saniye kaldı. "
Sorularım;
1. Soğuma süresi pc.setqf ile tutuluyor. d.setqf ile tutsam süre sadece zindan içerisinde kaldığın sürece mi geçerli olur? Zindandan çıkış yapıldığında soğuma süresi sıfırlanır mı? Bunu böyle tutmak yerine kesilen patronların soğuma sürelerini listeleyen bir mysql tablosu oluşturulsa ve oradan süre çekilip ona göre patron ile tekrar buluşup buluşulamayacağına karar verilse aynı şeyi mi yapmış oluruz performans açısından, daha mı kötü olur? Ya da bu süreyi bu şekilde tutmak doğru mu?
2. Quest ile böyle bir sistem yazılması dezavantaj mı? Game ve python taraflı yazılanlar var biliyorum. Bu şekilde kullanmak sağlıklı mı? Orta oyunculu sunucuda riskleri var mı? (Bunun için aslında kod yapısını görmeniz gerek. (Timer ve loop kullanmadım.)
Ne kadar basit ve amatörce de olsa sadece questi İşin ehli kişilerle questi paylaşmak istiyorum. Maruz görün. Eğer bilgili kişiler yardımcı olursa çok memnun olurum.
Güncelleme 20.02.2025 - 03.06 Perşembe
1. Tüm patronları oyuncuya göstermek yerine koşullanan sıralamaya göre patronları listeler.
2. Soğuma biletine sahip olunan patronların soğuma süresini görüntüleyebilir ve sıfırlayabilir.
3. VIP oyuncular, soğuma biletine ihtiyaç duymadan soğuma süresi olan tüm patronları görüntüleyebilir ve sıfırlayabilir.
4. VIP oyunculara özel olarak patronlarla yüzleşeceğin elçi ile konuşurken patrona ait biletin olmaması durumunda o an o pencereden bileti
ücreti karşılığında satın alabilme
5. Patronu tam yok etme esnasında zindandan çıkış yapmak istenildiğinde oluşan sürekli patron kesme hatası düzeltildi.
( Patron canı %10 ve altında ise çıkış yapamazsın.)
6. Beklenmeyen bir şekilde zindanda patron varken elçi ile diyaloğa girme durumunda çok büyük sıkıntılar çıkabilir. Bunun önüne tamamen geçildi.
7. Geçici süre de olsa gereksiz log tutumunu engelleme:
Oyuncunun patronla yüzleşebilecek maksimum seviyesi vardır. Bu seviye aşıldığında oyuncu patronla bir daha karşılaşamaz.
Maksimum seviye aşılmışsa kontrolü sağlandıktan sonra soğuma süresi devam eden patron var ise performans açısından silinmesi daha uygundur.
Bu kontrol zindana her giriş yapıldığında sorgulanır.
Zindana girişte seviye aşılmışsa ve soğuma süresi devam ediyorsa önceki patronların soğuma süresi sıfırlanır.
Sistem ile ilgili detaylı video:
Son düzenleme: