Şebnem Yüzüğü questi

Şebnem Yüzüğü questi

 Şebnem Yüzüğü questi

Metin2 pvp oyununuzda bulunan şebnemleri tek bir yüzüğe dönüştürmek mümkün. Normal şebnemlerle şebnem yüzüğü arasında pek bir fark yok ama şebnem yüzüğünün avantajları daha bol. Oyuncular sürekli şebnem basmak zorunda kalmayacak, tek bir yüzüğe sağ tık yapıp şebnem özelliklerini aktif edecektir. Yine aynı şekilde sağ tık ile kapatabilecektir.

Öncelikle şebnem yüzüğünü hangi yüzük içine yerleştireceğimizi kararlaştıralım. Vereceğim şebnem yüzüğü questi 40003 kodlu yüzüğün içine açılıyor. Eğer 40003 yüzüğünü kullanıyorsanız başka bir yüzük ya da başka bir nesne içine koyabilirsiniz. Bunu tek bir değişiklikle yapabiliriz. Quest içinde en başta bulunan satırlarda

quest sebnem begin
state start begin
when 40003.use begin
if pc.getqf("sebnem") == 0 then

kodları yer alıyor.


şebnem yüzüğü questi

Burada bulunan 40003 kodu yerine kurmak istediğiniz itemin koduyla değiştirebilirsiniz. Mesela 40002 yüzüğü boşta oraya bu rakamı yazabiliriz.

Peki neden şebnem yüzüğü kullanmalıyız?

  • Bugta kalma gibi bir durum olamaz. Yani ışınlandıktan sonra normal şebnemlerle üst üste alınıyordu. Şimdi böyle bir durum yok. Bu yüzükle şebnem bugu'nu da önlemiş oluyoruz.
  • Envanterde fazlalık yapmayacaktır. Tek bir yüzük ve sadece sağ tıkla aç kapa.
  • Envanterde fazlalık yapmyacağı gibi marketinizde de fazla yer kaplamayacaktır.
  • Şebnemler aktif, şebnemler kapalı gibi uyarılarla şebnem özelliklerinin ne durumda olduğunu oyuncular görebilecektir.
  • ve Son olarak metin2 pvp serverler'de çok tercih edilir hale geldiği için

Şimdi questimizi verelim ve kuruluma geçelim.

Quest Kodları

quest sebnemyuzugu begin state start begin
when 40003.use begin
if pc.getqf("hilal") == 0 then
if pc.getqf("lolipop") == 1 or pc.getqf("mutluluk") == 1 or pc.getqf("ebedi") == 1 or pc.getqf("irade") == 1 or pc.getqf("olumcul") == 1 or pc.getqf("madalya") == 1 then
chat(" Herhangi Bir Yüzük Aktifken Başka Bir Yüzük Kullanamazsın ")
else
cmdchat("buff1")
chat(" Şebnem Yüzüğü Aktif. ")
affect.add_collect(apply.CRITICAL_PCT,20,60*60*24*365*60)
affect.add_collect(apply.PENETRATE_PCT,20,60*60*24*365*60)
affect.add_collect(apply.ATT_SPEED,8,60*60*24*365*60)
affect.add_collect(apply.RESIST_MAGIC,20,60*60*24*365*60)
affect.add_collect(apply.ATT_GRADE_BONUS,120,60*60*24*365*60)
affect.add_collect(apply.DEF_GRADE_BONUS,200,60*60*24*365*60)
pc.setqf("hilal",1)
end
elseif pc.getqf("hilal") == 1 then
cmdchat("buff1")
chat(" Şebnem Yüzüğü Deaktif. ")
affect.remove_collect(apply.CRITICAL_PCT,20,60*60*24*365*60)
affect.remove_collect(apply.PENETRATE_PCT,20,60*60*24*365*60)
affect.remove_collect(apply.ATT_SPEED,8,60*60*24*365*60)
affect.remove_collect(apply.RESIST_MAGIC,20,60*60*24*365*60)
affect.remove_collect(apply.ATT_GRADE_BONUS,120,60*60*24*365*60)
affect.remove_collect(apply.DEF_GRADE_BONUS,200,60*60*24*365*60)
pc.setqf("hilal",0)
end
end
when logout with pc.getqf("hilal") == 1 begin
affect.remove_collect(apply.CRITICAL_PCT,20,60*60*24*365*60)
affect.remove_collect(apply.PENETRATE_PCT,20,60*60*24*365*60)
affect.remove_collect(apply.ATT_SPEED,8,60*60*24*365*60)
affect.remove_collect(apply.RESIST_MAGIC,20,60*60*24*365*60)
affect.remove_collect(apply.ATT_GRADE_BONUS,120,60*60*24*365*60)
affect.remove_collect(apply.DEF_GRADE_BONUS,200,60*60*24*365*60)
pc.setqf("hilal",0)

end

end
end

Kodları kopyalayıp Sebnem.lua diye bir dosya oluşturup içine yapıştırıyoruz. Bu dosyayı filezilla ile oyun sunucumuza bağlanarak

usr/game/share/locale/turkey/quest

dizinine atıyoruz ve ardından

Putty ile ssh bağlantısı gerçekleştirip şu kodları yazıyoruz.

cd /usr/game/share/locale/turkey/quest

./qc sebnem.lua

Artık şebnem yüzüğümüz kuruldu. Oyunu aç kapa yaptığımızda yüzüğümüzün sağ tıkla çalıştığını göreceğiz.

Önceki şebnemler ne olacak?

Önceki şebnemleri kaldırmak gerekli aksi halde oyuncularda aşırı fazla özellik olur bu da oyunun düzenini bozar ve karakterler arası farklılıklar ortaya çıkar. Bu sebeple şebnem kodlarımızı kaldırmamız gerekiyor.

Öncelikle herkesin envanterinden şebnemleri kaldıralım. Navicattan oyun veri tabanımıza bağlanalım.

player tablosunu açıp yukarıdan Query yani sorgu sekmesine tıklayalım.

ve şu kodları yazalım

Delete from item where vnum="şebnem kodu"

Delete from item where vnum="şebnem kodu1" artık kaç tane var ise.

Oyunculardan kaldırma işlemini tamamladık sıra npcden kaldırma işlemine geldi.

player tablosunu tekrar açıp tablo içinden shop_item tablosunu açalım. Burada şebnem kodlarını aratıp bulundukları satırları silelim. Hepsi bu kadar. :)