Hazırladığımız bu sistem, 250411 kodlu nesneyi bir yükseltme aracına dönüştürerek oyuncunun bir eşyayı bu nesnenin üzerine sürüklemesiyle çalışır; açılan menüden oyuncu kendi başarı şansını (%5 ile %50 arasında) belirli bir Yang bedeli karşılığında kendisi seçer, oyunun standart demirci oranları tamamen devre dışı kalarak sadece bu seçilen oran üzerinden işlem yapılır ve sonuç başarısız olursa eşya bir kademe düşerken, eşya zaten +0 ise kaybolmadan korunur, +9 seviyesindeki eşyalara ise işlem yapılmasına izin verilmez. 250411 kodlu itemin type'si 18 olmalıdır.
sansli_yukseltme_sistemi.quest:
sansli_yukseltme_sistemi.quest:
quest sansli_yukseltme_sistemi begin
state start begin
-- 250411 kodlu itemin üzerine eşya sürüklendiğinde tetiklenir
when 250411.take begin
local item_vnum = item.get_vnum()
local sonraki_vnum = item.get_refine_vnum() -- Bir sonraki kademe (+ kodu)
local onceki_vnum = item.get_alter_vnum() -- Bir alt kademe (+ kodu)
-- +9 kontrolü: Eğer sonraki vnum 0 ise item zaten max seviyededir
if sonraki_vnum == 0 then
syschat("Bu eşya zaten maksimum seviyede (+9), daha fazla yükseltilemez!")
return
end
say_title("Gelişmiş Yükseltme Sistemi")
say(string.format("Eşya: %s", item_name(item_vnum)))
say("Satın almak istediğiniz başarı şansını seçin:")
say_reward("Başarısız olursa eşya 1 kademe düşer.")
say_reward("+0 eşya başarısız olursa kaybolmaz.")
say("")
-- Menü ve Fiyatlar
local secim = select("%5 Şans (5M)", "%10 Şans (10M)", "%20 Şans (25M)", "%30 Şans (50M)", "%50 Şans (100M)", "Vazgeç")
local sans_orani = 0
local bedel = 0
if secim == 1 then sans_orani = 5 bedel = 5000000
elseif secim == 2 then sans_orani = 10 bedel = 10000000
elseif secim == 3 then sans_orani = 20 bedel = 25000000
elseif secim == 4 then sans_orani = 30 bedel = 50000000
elseif secim == 5 then sans_orani = 50 bedel = 100000000
else return end
-- Para Kontrolü
if pc.get_gold() < bedel then
syschat("Yeterli Yang yok. Gereken: "..bedel.." Yang.")
return
end
say_title("Onay")
say(string.format("Seçilen Şans: %%%d", sans_orani))
say(string.format("Ödenecek Bedel: %d Yang", bedel))
say("İşlemi onaylıyor musun?")
local onay = select("Evet, Yükselt", "Vazgeç")
if onay == 1 then
pc.change_gold(-bedel)
pc.remove_item(250411, 1) -- Şans kağıdını sil
local zar = math.random(1, 100)
if zar <= sans_orani then
-- BAŞARILI
item.remove()
pc.give_item2(sonraki_vnum)
say_reward("Tebrikler! Yükseltme başarılı.")
else
-- BAŞARISIZ
if onceki_vnum == 0 then
-- Eşya +0 ise (alt kademesi yoksa)
say_blood("Yükseltme başarısız oldu! Eşya +0 olduğu için korunmuştur.")
-- Eşyayı silmiyoruz veya aynısını tekrar veriyoruz (güvenli olması için remove/give yapıyoruz)
item.remove()
pc.give_item2(item_vnum)
else
-- Eşya +1 veya üzerindeyse (alt kademesi varsa)
item.remove()
pc.give_item2(onceki_vnum)
say_blood("Yükseltme başarısız oldu! Eşya bir kademe düştü.")
end
end
end
end
when 250411.use begin
syschat("Bu kağıdı kullanmak için yükseltmek istediğin eşyanın üzerine sürükle.")
end
end
end


