Çözüldü queste ufak bir sorun

  • Konuyu açan Konuyu açan hancı21
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 37
  • Gösterim Gösterim 216
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

hancı21

Üye
Üye
Mesaj
173
Çözümler
1
Beğeni
19
Puan
79
Ticaret Puanı
0
yüzük çalışmıyor guesti kendim düzenlendim

Kod:
Genişlet Daralt Kopyala
quest 70304 begin
    state start begin
        when 70304.chat."Seogan çorağı "  begin
            say_title("Seogan çorağı ")
            say("Yeni kıta Seogan çorağı'ya seyahat etmek ister misin? ")
            local s = select("Evet","Hayır")

            if s == 1 then
                if pc.get_conquerorlevel() >= 1 then
                    pc.warp(1221800 489500)
                else
                    say_title("Seogan çorağı ")
                    say_reward("Bu maceraya atılmak için seviyen yetersiz.!")
                    return
                end

                item.set_socket(1, get_global_time() + item.get_value(1))
                if n == max_use - 1 then
                    item.remove()
                else
                    item.set_socket(0, n + 1)

                end
            end
        end
    end
end
 
Çözüm
BAZI DEĞİŞİKLER YAPTIM DAHA UYGUN FORMATTA YENİDEN YAZDIM.

---------------------------| İTEM PROTO VE NAME |---------------------------
1. İtem_Proto ya gir 70058 ışınlanma yüzünü bul kopyala..
2.İtem_Protoda en alt kısmaa yapıştır. adını "seogan" yaz vnumunu ise "70304" yap adını sonra degiştirirsin bu kısımdan..
3.İtem_Nameye gir . 70304 seogan olarak ekle en alt kısma.
4.İtem_Proto Name Kapat ve ilgili kısımlarına at..
ÖRNEK BENİM İTEM PROTO VE NAME (SANA UYMAYABİLİR SEN YUKARIDAKİ GİBİ YAP) ÖRNEK OLSUN DİYE BIRAKIYORUM.
İTEM_PROTO ÖRNEK:
Genişlet Daralt Kopyala
70304    seogan    ITEM_QUEST    0    1    57472    4096    NONE    NONE    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    15726884    0    50    1800    0    0    0...
Kod:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin
        when 70304.chat."Seogan Çorağı'na Git" begin
            local cooldown_seconds = 300 -- Bekleme süresi (5 dakika)
            local max_uses = 50           -- Maksimum kullanım
            local warp_x, warp_y = 1221800, 489500
            local ticket_id = 27992       -- Geçiş bileti
            local ticket_amount = 1

            local cooldown = item.get_socket(1)
            local now = get_global_time()

            if cooldown ~= 0 and cooldown > now then
                local kalan = cooldown - now
                say_title("Seogan Çorağı")
                say("Yüzük yeniden kullanılmadan önce beklemelisin.")
                say_reward("Kalan süre: "..math.floor(kalan / 60).." dakika "..(kalan % 60).." saniye.")
                return
            end

            local usage = item.get_socket(0)
            if usage >= max_uses then
                say_title("Seogan Çorağı")
                say_reward("Bu yüzüğün ömrü sona erdi!")
                item.remove()
                return
            end

            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")
            local choice = select("Evet", "Hayır")
            if choice == 2 then
                say("Seyahat iptal edildi.")
                return
            end

            if pc.get_level() < 90 then  -- Dilersen conquerorlevel yerine get_level kullan
                say_title("Seogan Çorağı")
                say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                return
            end

            if pc.count_item(ticket_id) < ticket_amount then
                say_title("Seogan Çorağı")
                say_reward("Bu yolculuk için "..ticket_amount.." adet geçiş bileti gerekiyor.")
                return
            end

            pc.remove_item(ticket_id, ticket_amount)
            pc.warp(warp_x, warp_y)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            item.set_socket(1, now + cooldown_seconds)
            item.set_socket(0, usage + 1)

            if usage + 1 >= max_uses then
                say_title("Seogan Çorağı")
                say_reward("Yüzük çok fazla kullanıldığı için yok oldu.")
                item.remove()
            end
        end
    end
end
Kod:
Genişlet Daralt Kopyala
70304    Seogan Yüzüğü    ITEM_RING    ITEM_NONE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_STACK    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    seogan_ring    ICON/item/70304.tga
SYSERR: Jul 18 15:54:31.98531 :: Set_Proto_Item_Table: ItemProto Reading Failed : Invalid value. (index: 4, col: 4, value: 1)
SYSERR: Jul 18 15:54:31.99109 :: Set_Proto_Item_Table: 0 ~ 4 Values: 70304,0,33,0, proto uymadı
 
SYSERR: Jul 18 15:54:31.98531 :: Set_Proto_Item_Table: ItemProto Reading Failed : Invalid value. (index: 4, col: 4, value: 1)
SYSERR: Jul 18 15:54:31.99109 :: Set_Proto_Item_Table: 0 ~ 4 Values: 70304,0,33,0, proto uymadı
kod3:
Genişlet Daralt Kopyala
70304    "Seogan Yüzüğü"    "Seogan Yüzüğü"    10    0    0    1    8192    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    seogan_ring    ICON/item/70304.tga
 
kod3:
Genişlet Daralt Kopyala
70304    "Seogan Yüzüğü"    "Seogan Yüzüğü"    10    0    0    1    8192    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    seogan_ring    ICON/item/70304.tga
SYSERR: Jul 18 16:03:57.903830 :: Set_Proto_Item_Table: ItemProto Reading Failed : Invalid value. (index: 2, col: 2, value: Seogan Yüzüğü)
SYSERR: Jul 18 16:03:58.273725 :: Set_Proto_Item_Table: 0 ~ 2 Values: 70304,0,
SYSERR: Jul 18 16:04:03.520719 :: pid_init:
Start of pid: 33075 proto uymadı hocam
 
@Furion99 item.set_socket(0, usage + 1) komutunu, if usage + 1 &gt;= max_uses kontrolünden önce çalıştırıyorsun. Ancak kullanım hakkı sınırına ulaştıktan sonra yüzük siliniyor ve artırılmış değer kayboluyor. Bu teknik olarak bir sorun yaratmasa da sıralamayı değiştirmemek daha temiz olur fakat denenebilir. Bir ata sözü vardır. Çalışıyorsa elleme diye :).. Fakat benim sahsi düşüncem sorun item proto kısmında dogru ayarları yapmamış olmasından kaynalanıyor olmasıdır. @Furion99 düzeltmesinide DENEYEBİLİRSİN. fakat sorun sen takıyorum (giyiyorum) diyorsun. item_protoda dediğim gibi yapabilirsin.

item_proto dan bir kırmızı mavi pot item proto kopyala sonra vnumunu ver. başka birsey yapma..
sonra quets adını seogan_ring.quest veya quets adını seogan_ring.lua diye kaydet. wscp içinde ilgili kısma at.
"winscp-firezilla" programında nin oralarda içindeki quets_list e ekle sonra kur

oyna gir test et.
 
bekle knk kendi filesime kurup yapacagım. sen denemeye devam et. yapıp sana döneceğim. biraz zaman ver deneyim files kurup
 
Büyük ihtimalle server tarafıyla pack uyuşmuyor o yüzden item işleme cevap vermiyor düzeltme aşamasında ise büyük ihtimal dosyayı bozuyor server reboot sonrası okumuyor.
 
@Furion99 item.set_socket(0, usage + 1) komutunu, if usage + 1 &gt;= max_uses kontrolünden önce çalıştırıyorsun. Ancak kullanım hakkı sınırına ulaştıktan sonra yüzük siliniyor ve artırılmış değer kayboluyor. Bu teknik olarak bir sorun yaratmasa da sıralamayı değiştirmemek daha temiz olur fakat denenebilir. Bir ata sözü vardır. Çalışıyorsa elleme diye :).. Fakat benim sahsi düşüncem sorun item proto kısmında dogru ayarları yapmamış olmasından kaynalanıyor olmasıdır. @Furion99 düzeltmesinide DENEYEBİLİRSİN. fakat sorun sen takıyorum (giyiyorum) diyorsun. item_protoda dediğim gibi yapabilirsin.

item_proto dan bir kırmızı mavi pot item proto kopyala sonra vnumunu ver. başka birsey yapma..
sonra quets adını seogan_ring.quest veya quets adını seogan_ring.lua diye kaydet. wscp içinde ilgili kısma at.
"winscp-firezilla" programında nin oralarda içindeki quets_list e ekle sonra kur

oyna gir test et.
yok yine olmadı
 
@Furion99 item.set_socket(0, usage + 1) komutunu, if usage + 1 &gt;= max_uses kontrolünden önce çalıştırıyorsun. Ancak kullanım hakkı sınırına ulaştıktan sonra yüzük siliniyor ve artırılmış değer kayboluyor. Bu teknik olarak bir sorun yaratmasa da sıralamayı değiştirmemek daha temiz olur fakat denenebilir. Bir ata sözü vardır. Çalışıyorsa elleme diye :).. Fakat benim sahsi düşüncem sorun item proto kısmında dogru ayarları yapmamış olmasından kaynalanıyor olmasıdır. @Furion99 düzeltmesinide DENEYEBİLİRSİN. fakat sorun sen takıyorum (giyiyorum) diyorsun. item_protoda dediğim gibi yapabilirsin.

item_proto dan bir kırmızı mavi pot item proto kopyala sonra vnumunu ver. başka birsey yapma..
sonra quets adını seogan_ring.quest veya quets adını seogan_ring.lua diye kaydet. wscp içinde ilgili kısma at.
"winscp-firezilla" programında nin oralarda içindeki quets_list e ekle sonra kur

oyna gir test et.
hocam guesten dolayı core vermiyor pot protosunu aldım kullandım yine calışmadı reboot cektim deniyom bakim
 
beklemede kal az kaldı.. yaptım fakat ufak sorunlar var acele etme ben yardımcı olacağım. geliştiriyim vereyim suan bir 5dk mole verdim. fakat çalıştırdım. yukarıdakii kod üzerinde bazı hatalar var saniye kısmını algılamıyordu düzelttim. sadece beklemede kal. bi 5dk mola verdim. sonra geliştirip hızlıca sana göndereceğim. files kurdum anca oluyor yani demi? yazılara takılma benim files çok dilli bütün dillere aynısını ekledim o yüzden o .. sende olmaz. kanıt aşagıda bekle sana temiz kolay dosyaları ileteceğim.
 

Dosya Eklentileri

  • eeee.webp
    eeee.webp
    20 KB · Gösterim: 8
Son düzenleme:
BAZI DEĞİŞİKLER YAPTIM DAHA UYGUN FORMATTA YENİDEN YAZDIM.

---------------------------| İTEM PROTO VE NAME |---------------------------
1. İtem_Proto ya gir 70058 ışınlanma yüzünü bul kopyala..
2.İtem_Protoda en alt kısmaa yapıştır. adını "seogan" yaz vnumunu ise "70304" yap adını sonra degiştirirsin bu kısımdan..
3.İtem_Nameye gir . 70304 seogan olarak ekle en alt kısma.
4.İtem_Proto Name Kapat ve ilgili kısımlarına at..
ÖRNEK BENİM İTEM PROTO VE NAME (SANA UYMAYABİLİR SEN YUKARIDAKİ GİBİ YAP) ÖRNEK OLSUN DİYE BIRAKIYORUM.
İTEM_PROTO ÖRNEK:
Genişlet Daralt Kopyala
70304    seogan    ITEM_QUEST    0    1    57472    4096    NONE    NONE    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    15726884    0    50    1800    0    0    0    0    0    0    0
İTEM_NAME ÖRNEK:
Genişlet Daralt Kopyala
70304    seogan

---------------------------| ŞİMDİ QUETS KISMI WİNCSP YANİ FİREZİLLA KISMI |---------------------------
1.Dosya Adı "seogan_ring.quest" olacak..
2.seogan_ring.quest dosyasını aşagıdaki 2 konuma senin filesindeki uygun yere atacaksın bu dosyalar nerde ise;
/usr/home/game/share/locale/germany/quest/pre_qc
/usr/home/game/share/locale/germany/quest/source
yukarıdaki pre_qc ve source kısmına attıktan sonra
3.Aşagıdaki konuma git
/usr/home/game/share/locale/germany/quest
"quest_list" dosyasını bul düzenle diyerek aç
En sonuna ekle
quest_list:
Genişlet Daralt Kopyala
source/seogan_ring.quest
4.QUETSİ KUR VE KURDUGUNDAN EMİN OL. ERROR ALMADIGINDAN SİYAH EKRANDA KURARKEN PUTTY DİYİM YANİ NEYSE KURUYOR İSEN İŞTE.

---------------------------| YENİ seogan_ring.quest DOSYASI |---------------------------

seogan_ring.quest:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin

        when 70304.use begin

            ticket_id = 27992
            ticket_amount = 1

            if pc.count_item(ticket_id) < ticket_amount then
                say_reward("Bu yolculuk için " .. ticket_amount .. " adet geçiş bileti gerekiyor.")
                return
            end

            if pc.get_level() < 1 then
                say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                return
            end

            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")
            s = select("Evet", "Hayır")

            if s == 2 then
                -- Hayır seçildi, nesne kaybolmasın, işlem iptal olsun
                return
            end

            -- Evet seçildi, işlem devam ediyor
            pc.remove_item(ticket_id, ticket_amount)
            pc.warp(68900, 611000)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            item.remove()

        end

    end
end
[CENTER]

---------------------------| ÖNEMLİ NOT |---------------------------

/usr/home/game/share/locale/germany/map
KONUMA GİDERSİN IŞINLANMAK İSTEDİĞİN HARİTAYI BULURSUN.
ÖRNEK metin2_map_a1
Setting.txt AÇARSIN
BasePosition 409600 896000 KISMINI YAZARSIN İSTEDİĞİN YERE IŞINLAR SENİ.

BEN ÖRNEK OLMASI İÇİN BAŞKA KOD KULLANDIM. SONRADAN "IŞINLANMA KODUNU""SİMGESİNİ""ADINI" DEĞİŞTİRİRSİN.

/i 70304 (ışınlanma şisesi veya yüzügü)
/i 27992 10 (ticket yani geçiş bileti) /i 27992 da yazabilirsin.
pc.warp(68900, 611000) (ışınlayacagı harita kodu dikkat et dogru yazmalısın yoksa ışınlamaz. suan bu kalabilir eger ışınlamaz ise kendi koordinatını mapstan bakıp ekle filesten filese fark yaratabilir)
örnek pc.warp(592000, 100000) pc.warp(614200, 706800) pc.warp(590300, 111100) bu kodları dene çalışmaz ise ışınlanmak için.

✅ TEST ETTİM BAŞARILI ÇALIŞIYOR✅
✅MUTLAKA YAZDIKLARIMI ATLAMA BASİT ZATEN✅

Bitirdin beni yav 😅 YORDUN! 😵‍💫 Sıfırdan yazdım. Yetmedi sana rehber oluşturdum.

İşleyiş Adımları:​

  • Oyuncu yüzüğe tıklarsa, sistem önce bilet ve seviye kontrolü yapar.
  • Her şey uygunsa, oyuncuya bir soru sorulur:
    "Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?"
  • Oyuncu Hayırderse:
    • Hiçbir şey olmaz.
    • Nesne silinmez.
    • Işınlanma yapılmaz.
  • Oyuncu Evetderse:
    • Geçiş bileti çantadan silinir.
    • Oyuncu belirlenen koordinata (örnekte: 68900, 611000) ışınlanır.
    • Kullanılan yüzük (70304 ID'li item) envanterden silinir. (Yüzük 1 defalık kullanılır.)
  • Amaç → Bileti olan oyuncuyu ışınlayan ve ardından yüzüğü yok eden, kullan-at türünde bir teleportasyon yüzüğü yapmak.
  • Kullanım sonrası yüzük kaybolur.
  • Kullanıcı istemezse yüzük durur, kaybolmaz.

EK BİLGİ:
EK-1
KANIT: 1 ADET GÖRSEL ÇALIŞTIGINA DAİR
kanıt.webp

EK-2 ÇALIŞAN seogan_ring.quest DOSYASI
 

Dosya Eklentileri

  • kanıt.webp
    kanıt.webp
    17,9 KB · Gösterim: 4
Son düzenleme:
Çözüm
BAZI DEĞİŞİKLER YAPTIM DAHA UYGUN FORMATTA YENİDEN YAZDIM.

İTEM PROTO VE NAME
1. İtem_Proto ya gir 70058 ışınlanma yüzünü bul kopyala..
2.İtem_Protoda en alt kısmaa yapıştır. adını "seogan" yaz vnumunu ise "70304" yap adını sonra degiştirirsin bu kısımdan..
3.İtem_Nameye gir . 70304 seogan olarak ekle en alt kısma.
4.İtem_Proto Name Kapat ve ilgili kısımlarına at..
ÖRNEK BENİM İTEM PROTO VE NAME (SANA UYMAYABİLİR SEN YUKARIDAKİ GİBİ YAP) ÖRNEK OLSUN DİYE BIRAKIYORUM.
İTEM_PROTO ÖRNEK:
Genişlet Daralt Kopyala
70304    seogan    ITEM_QUEST    0    1    57472    4096    NONE    NONE    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    15726884    0    50    1800    0    0    0    0    0    0    0
İTEM_NAME ÖRNEK:
Genişlet Daralt Kopyala
70304    seogan

ŞİMDİ QUETS KISMI WİNCSP YANİ FİREZİLLA KISMI
1.Dosya Adı "seogan_ring.quest" olacak..
2.seogan_ring.quest dosyasını aşagıdaki 2 konuma senin filesindeki uygun yere atacaksın bu dosyalar nerde ise;
/usr/home/game/share/locale/germany/quest/pre_qc
/usr/home/game/share/locale/germany/quest/source
yukarıdaki pre_qc ve source kısmına attıktan sonra
3.Aşagıdaki konuma git
/usr/home/game/share/locale/germany/quest
"quest_list" dosyasını bul düzenle diyerek aç
En sonuna ekle
quest_list:
Genişlet Daralt Kopyala
source/seogan_ring.quest
4.QUETSİ KUR VE KURDUGUNDAN EMİN OL.

YENİ seogan_ring.quest DOSYASI

seogan_ring.quest:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin

        when 70304.use begin

            ticket_id = 27992
            ticket_amount = 1

            if pc.count_item(ticket_id) < ticket_amount then
                say_reward("Bu yolculuk için " .. ticket_amount .. " adet geçiş bileti gerekiyor.")
                return
            end

            if pc.get_level() < 1 then
                say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                return
            end

            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")
            s = select("Evet", "Hayır")

            if s == 2 then
                -- Hayır seçildi, nesne kaybolmasın, işlem iptal olsun
                return
            end

            -- Evet seçildi, işlem devam ediyor
            pc.remove_item(ticket_id, ticket_amount)
            pc.warp(68900, 611000)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            item.remove()

        end

    end
end
[CENTER]

ÖNEMLİ NOT:[/CENTER]

/usr/home/game/share/locale/germany/map
KONUMA GİDERSİN IŞINLANMAK İSTEDİĞİN HARİTAYI BULURSUN.
ÖRNEK metin2_map_a1
Setting.txt AÇARSIN
BasePosition 409600 896000 KISMINI YAZARSIN İSTEDİĞİN YERE IŞINLAR SENİ.
30 dk sonra eve gecicem bakim tşkler hocam
 
Filesındaki yphara level sorgulayan fonksiyonu atarsan hocam yazarım, eklenecek eşyanın ITEM_QUEST olması gerekiyor
 
Filesındaki yphara level sorgulayan fonksiyonu atarsan hocam yazarım, eklenecek eşyanın ITEM_QUEST olması gerekiyor
Amann.. Level olayını unutmusum yapmayı, tekrar kuramam, fakat evet, ekleyebiliriz. Oyuncuların 10 level altı veya 50 level üstü olması durumunda özel uyarı gösterecek, sadece 10-50 seviye arasındaki oyuncuların yüzüğü kullanmasına izin verecek şekilde quest’i düzenledim Kullanıcıya açık uyarılar ve açıklamalar sunar. Gereksiz karmaşadan uzak, sade yapıda.

Geliştirilmiş ve Düzenlenmiş Versiyon (KURULUMU HERSEYİ AYNIDIR SADECE EK ÖZELLİK EKLENDİ. KURULUM VB. DETAY İÇİN YUKARIDAKİ TEST EDİLMİŞ YORUMUMA BAKABİLİRSİNİZ.)

Bir önceki hazırladığım dosyayı filesimden kaldırdım. Bu nedenle aşağıda paylaştığım haliyle henüz test etmedim. Sadece önceki çalışan yapıya level sınırı eklenmiş versiyonudur.

Şu an için hata vereceğini düşünmüyorum. Ancak test eden arkadaşlar olursa, geri bildirim verirse memnun olurum. Hata alan olursa, elimden geldiğince yardımcı olmaya devam ederim.


🔍 Not:
Kod üzerinde level kontrolü ve diğer kontroller eklenmiştir. Yapı basit, anlaşılır ve kullanıma hazırdır. ✅

quest level sınırlı güncel:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin

        when 70304.use begin

            ticket_id = 27992
            ticket_amount = 1

            if pc.get_level() < 10 then
                say_reward("Bu maceraya atılmak için seviyeniz yetersiz!")
                say("En az 10. seviyede olmalısınız.")
                return
            end

            if pc.get_level() > 50 then
                say_reward("Seviyeniz bu yolculuk için çok yüksek!")
                say("Bu macera yalnızca 10 ile 50 seviye arasındaki oyuncular içindir.")
                return
            end

            if pc.count_item(ticket_id) < ticket_amount then
                say_reward("Bu yolculuk için " .. ticket_amount .. " adet geçiş bileti gerekiyor.")
                return
            end

            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")
            s = select("Evet", "Hayır")

            if s == 2 then
                return -- Hayır seçildi, nesne kaybolmasın.
            end

            -- Evet seçildi, işlem devam ediyor
            pc.remove_item(ticket_id, ticket_amount)
            pc.warp(68900, 611000)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            item.remove() -- Yüzük kullanıldıktan sonra kaybolur.

        end

    end
end

İşleyiş Adımları:

1️⃣ Oyuncu Yüzüğe Tıklar
➔ (Item ID: 70304)
2️⃣ Seviye Kontrolü Yapılır
  • Eğer seviye 10'dan düşükse:
    ➔ "Bu maceraya atılmak için seviyeniz yetersiz!"
    ➔ Kullanım iptal edilir.
  • Eğer seviye 50'den yüksekse:
    ➔ "Seviyeniz bu yolculuk için çok yüksek!"
    ➔ Kullanım iptal edilir.
3️⃣ Bilet Kontrolü Yapılır
  • Eğer oyuncunun envanterinde 1 adet geçiş bileti (ID: 27992) yoksa:
    ➔ "Bu yolculuk için 1 adet geçiş bileti gerekiyor."
    ➔ Kullanım iptal edilir.
4️⃣ Kullanıcıya Seçim Sunulur
➔ "Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?"
  • Oyuncu Hayır derse:
    ➔ İşlem iptal edilir, yüzük kaybolmaz.
  • Oyuncu Evet derse:
    ➔ Işınlanma işlemi başlar.
5️⃣ Işınlanma İşlemi Gerçekleşir
➔ Oyuncu X: 68900, Y: 611000 koordinatlarına ışınlanır.
➔ 1 adet geçiş bileti envanterden silinir.
➔ Kullanılan yüzük (70304) tamamen kaybolur (item.remove()).

6️⃣ ✅ İşlem tamamlanır.
 
Son düzenleme:
Amann.. Level olayını unutmusum yapmayı, tekrar kuramam, fakat evet, ekleyebiliriz. Oyuncuların 10 level altı veya 50 level üstü olması durumunda özel uyarı gösterecek, sadece 10-50 seviye arasındaki oyuncuların yüzüğü kullanmasına izin verecek şekilde quest’i düzenledim Kullanıcıya açık uyarılar ve açıklamalar sunar. Gereksiz karmaşadan uzak, sade yapıda.

Geliştirilmiş ve Düzenlenmiş Versiyon (KURULUMU HERSEYİ AYNIDIR SADECE EK ÖZELLİK EKLENDİ. KURULUM VB. DETAY İÇİN YUKARIDAKİ TEST EDİLMİŞ YORUMUMA BAKABİLİRSİNİZ.)

Bir önceki hazırladığım dosyayı filesimden kaldırdım. Bu nedenle aşağıda paylaştığım haliyle henüz test etmedim. Sadece önceki çalışan yapıya level sınırı eklenmiş versiyonudur.

Şu an için hata vereceğini düşünmüyorum. Ancak test eden arkadaşlar olursa, geri bildirim verirse memnun olurum. Hata alan olursa, elimden geldiğince yardımcı olmaya devam ederim.


🔍 Not:
Kod üzerinde level kontrolü ve diğer kontroller eklenmiştir. Yapı basit, anlaşılır ve kullanıma hazırdır. ✅

quest level sınırlı güncel:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin

        when 70304.use begin

            ticket_id = 27992
            ticket_amount = 1

            if pc.get_level() < 10 then
                say_reward("Bu maceraya atılmak için seviyeniz yetersiz!")
                say("En az 10. seviyede olmalısınız.")
                return
            end

            if pc.get_level() > 50 then
                say_reward("Seviyeniz bu yolculuk için çok yüksek!")
                say("Bu macera yalnızca 10 ile 50 seviye arasındaki oyuncular içindir.")
                return
            end

            if pc.count_item(ticket_id) < ticket_amount then
                say_reward("Bu yolculuk için " .. ticket_amount .. " adet geçiş bileti gerekiyor.")
                return
            end

            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")
            s = select("Evet", "Hayır")

            if s == 2 then
                return -- Hayır seçildi, nesne kaybolmasın.
            end

            -- Evet seçildi, işlem devam ediyor
            pc.remove_item(ticket_id, ticket_amount)
            pc.warp(68900, 611000)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            item.remove() -- Yüzük kullanıldıktan sonra kaybolur.

        end

    end
end

İşleyiş Adımları:

1️⃣ Oyuncu Yüzüğe Tıklar
➔ (Item ID: 70304)
2️⃣ Seviye Kontrolü Yapılır
  • Eğer seviye 10'dan düşükse:
    ➔ "Bu maceraya atılmak için seviyeniz yetersiz!"
    ➔ Kullanım iptal edilir.
  • Eğer seviye 50'den yüksekse:
    ➔ "Seviyeniz bu yolculuk için çok yüksek!"
    ➔ Kullanım iptal edilir.
3️⃣ Bilet Kontrolü Yapılır
  • Eğer oyuncunun envanterinde 1 adet geçiş bileti (ID: 27992) yoksa:
    ➔ "Bu yolculuk için 1 adet geçiş bileti gerekiyor."
    ➔ Kullanım iptal edilir.
4️⃣ Kullanıcıya Seçim Sunulur
➔ "Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?"
  • Oyuncu Hayır derse:
    ➔ İşlem iptal edilir, yüzük kaybolmaz.
  • Oyuncu Evet derse:
    ➔ Işınlanma işlemi başlar.
5️⃣ Işınlanma İşlemi Gerçekleşir
➔ Oyuncu X: 68900, Y: 611000 koordinatlarına ışınlanır.
➔ 1 adet geçiş bileti envanterden silinir.
➔ Kullanılan yüzük (70304) tamamen kaybolur (item.remove()).

6️⃣ ✅ İşlem tamamlanır.
hocam saol valla beni büyük derten kurtardın tşkler var ol
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst