Refine Extra Şans Sistemi

  • Konuyu açan Konuyu açan TheAdmin33
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 24
  • Gösterim Gösterim 788
Ekran görüntüsü 2025-04-28 234816.webp
 
Var mı yardımcı olabilecek
İtem yerine 10M Gold isteyecek şekilde düzenlemeyi @TheAdmin33 isimli arkadaşımız paylaşacaktır kısaca yapılacak değişiklikler:

  1. Sunucu Tarafı (Game Source):
  • char_item.cpp: Bu dosyada ana değişiklikleri yaptık. exChance_Const enum'unu kaldırıp yerine RequiredYangAmount sabitini (10M Yang olarak) tanımladık. DoRefine ve DoRefineWithScroll fonksiyonları içindeki eşya kontrolünü (CountSpecifyItem) kaldırıp yerine oyuncunun Yang'ını kontrol eden GetGold() fonksiyonunu getirdik. Başarılı veya başarısız yükseltmelerde eşya silme (RemoveSpecifyItem) yerine PointChange(POINT_GOLD, ...) ile Yang eksiltme işlemini ekledik. İlgili hata mesajlarını da Yang'a göre güncelledik.
  • char.h, packet.h, input_main.cpp: Bu dosyalar, exChance (ekstra şans yüzdesi) değerinin istemciden sunucuya iletilmesi ve ilgili fonksiyonlara parametre olarak geçirilmesiyle ilgiliydi. Maliyetin türü (eşya/Yang) bu dosyaları etkilemediği için burada bir değişiklik yapmadık ve yapılmasına gerek yoktu.
  1. İstemci Tarafı (Pack):
  • constinfo.py: Eşya adedini tutan EXTRA_CHANCE_REQUIRED_ITEM_COUNT sabitini kaldırıp/yorumlayıp yerine Yang miktarını tutan EXTRA_CHANCE_REQUIRED_YANG sabitini (10M olarak) ekledik.
  • locale/locale_game.txt: Yükseltme penceresinde gösterilen maliyet metnini (REFINE_EXCHANCE_TEXT_2) "Su Taşı" yerine "Yang" olarak güncelledik.
  • root/uirefine.py: Yükseltme penceresindeki kaydırıcı (slider) hareket ettiğinde maliyet metnini güncelleyen OnChangeExChance fonksiyonunu, yeni eklediğimiz EXTRA_CHANCE_REQUIRED_YANG sabitini kullanarak Yang miktarını doğru hesaplayacak ve gösterecek şekilde düzenledik (manuel düzenleme yapıldı).
 
Son düzenleme:
İtem yerine 10M Gold isteyecek şekilde düzenlemeyi @TheAdmin33 isimli arkadaşımız paylaşacaktır kısaca yapılacak değişiklikler:

  1. Sunucu Tarafı (Game Source):
  • char_item.cpp: Bu dosyada ana değişiklikleri yaptık. exChance_Const enum'unu kaldırıp yerine RequiredYangAmount sabitini (10M Yang olarak) tanımladık. DoRefine ve DoRefineWithScroll fonksiyonları içindeki eşya kontrolünü (CountSpecifyItem) kaldırıp yerine oyuncunun Yang'ını kontrol eden GetGold() fonksiyonunu getirdik. Başarılı veya başarısız yükseltmelerde eşya silme (RemoveSpecifyItem) yerine PointChange(POINT_GOLD, ...) ile Yang eksiltme işlemini ekledik. İlgili hata mesajlarını da Yang'a göre güncelledik.
  • char.h, packet.h, input_main.cpp: Bu dosyalar, exChance (ekstra şans yüzdesi) değerinin istemciden sunucuya iletilmesi ve ilgili fonksiyonlara parametre olarak geçirilmesiyle ilgiliydi. Maliyetin türü (eşya/Yang) bu dosyaları etkilemediği için burada bir değişiklik yapmadık ve yapılmasına gerek yoktu.
  1. İstemci Tarafı (Pack):
  • constinfo.py: Eşya adedini tutan EXTRA_CHANCE_REQUIRED_ITEM_COUNT sabitini kaldırıp/yorumlayıp yerine Yang miktarını tutan EXTRA_CHANCE_REQUIRED_YANG sabitini (10M olarak) ekledik.
  • locale/locale_game.txt: Yükseltme penceresinde gösterilen maliyet metnini (REFINE_EXCHANCE_TEXT_2) "Su Taşı" yerine "Yang" olarak güncelledik.
  • root/uirefine.py: Yükseltme penceresindeki kaydırıcı (slider) hareket ettiğinde maliyet metnini güncelleyen OnChangeExChance fonksiyonunu, yeni eklediğimiz EXTRA_CHANCE_REQUIRED_YANG sabitini kullanarak Yang miktarını doğru hesaplayacak ve gösterecek şekilde düzenledik (manuel düzenleme yapıldı).
Bunun yerine ayaz mantığında her artı basma seviyesinde o item nezdinde istenen yangi miktarını maksimum yükseltme şansı %10 olarak ayarlanıp o itemin artı basma fiyatının %10 u kadar arttırarak sağlamamız için nasıl bir düzenleme gerekiyor? Yani mesela item +1 e basılırken normalde 600 yang istiyor iken %10 şansla 6000 yang istesin gibi
 
Geri
Üst