Çö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_coragi 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_conqueror_level() >= 1 then
                    pc.warp(1221800, 489500)
                else
                    say_title("Seogan çorağı")
                    say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                end
            end
        end
    end
end

dener misin bi warplardan sonra virgül koymamışsın onu düzelttim ve bu bir item olmadığı için itemle ilgili yerleri kaldırdım eğer itemse ona göre düzenleriz tekrar . bide eğer çalışmazsa if pc.get_conqueror_level bunuda değiştirdim eğer çalışmazsa burayıda sendeki quest functionsa göre yazarsın
 
Kod:
Genişlet Daralt Kopyala
quest seogan_coragi 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_conqueror_level() >= 1 then
                    pc.warp(1221800, 489500)
                else
                    say_title("Seogan çorağı")
                    say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                end
            end
        end
    end
end

dener misin bi warplardan sonra virgül koymamışsın onu düzelttim ve bu bir item olmadığı için itemle ilgili yerleri kaldırdım eğer itemse ona göre düzenleriz tekrar . bide eğer çalışmazsa if pc.get_conqueror_level bunuda değiştirdim eğer çalışmazsa burayıda sendeki quest functionsa göre yazarsın
İtemle çalışıcak aslında
 
orjinal halini paylaşırsan. ve ne yapmak istediğini açıklarsan daha net yardımcı olup çözüm sürecine daha verimli katkı saglayabiliriz.

pc.warp(1221800 489500) satırında virgül eksik
n ve max_use değişkenleri tanımlanmamış.
Kullanılmayan ya da eksik bırakılmış bu sayaç sistemi, düzgün çalışmaz.
item.set_socket kısmı işlevsiz kalmış gibi. Eğer yüzüğe cooldown (bekleme süresi) eklemek istiyorsan, o kısım netleşmelisin.

Düzeltilmiş Hali Sadece Seyahat İşlevi için yazarken girintü ve çıkıntılara dikkat et.. lua
quest seogan_ring 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
end
end
end
end
 

Dosya Eklentileri

  • 12.webp
    12.webp
    14 KB · Gösterim: 6
İtemle çalışıcak aslında
27992, 27993, 27994 kısmı istediği item amount kısmı ise istediği item adeti

warp.lua:
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 choice = select("Evet ", "Hayır ")

            if choice == 1 then
                if pc.get_conquerorlevel() < 1 then
                    say_title("Seogan çorağı ")
                    say("Bu maceraya atılmak için seviyen yetersiz! ")
                    return
                end

                required_items = {
                    {id = 27992, amount = 2},
                    {id = 27993, amount = 1},
                    {id = 27994, amount = 5}
                }

                local item_count = 0
                while required_items[item_count + 1] ~= nil do
                    item_count = item_count + 1
                end

                i = 1
                while i <= item_count do
                    item = required_items[i]
                    player_count = pc.count_item(item.id)
                    if player_count < item.amount then
                        say("Yeterli " .. tostring(item.id) .. " yok! Gerekli: " .. tostring(item.amount) .. ", sende: " .. tostring(player_count))
                        return
                    end
                    i = i + 1
                end

                i = 1
                while i <= item_count do
                    item = required_items[i]
                    pc.remove_item(item.id, item.amount)
                    i = i + 1
                end

                pc.warp(1221800, 489500)
                say("Seogan çorağı kıtasına yolculuk başlıyor! ")

            else
                say("Seyahat iptal edildi. ")
            end
        end
    end
end
 
orjinal halini paylaşırsan. ve ne yapmak istediğini açıklarsan daha net yardımcı olup çözüm sürecine daha verimli katkı saglayabiliriz.

pc.warp(1221800 489500) satırında virgül eksik
n ve max_use değişkenleri tanımlanmamış.
Kullanılmayan ya da eksik bırakılmış bu sayaç sistemi, düzgün çalışmaz.
item.set_socket kısmı işlevsiz kalmış gibi. Eğer yüzüğe cooldown (bekleme süresi) eklemek istiyorsan, o kısım netleşmelisin.

Düzeltilmiş Hali Sadece Seyahat İşlevi için yazarken girintü ve çıkıntılara dikkat et.. lua
quest seogan_ring 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
end
end
end
end
aslında portallarlan mapa ışınlanmıyor bende yeni yüzük yapmaya çalışıyorum direk mapa ışınlanması için wohara seviyesi kontrollü olcak yohara seviyesinde degilse oyuncu ışınlanmaması lazım
 
27992, 27993, 27994 kısmı istediği item amount kısmı ise istediği item adeti

warp.lua:
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 choice = select("Evet ", "Hayır ")

            if choice == 1 then
                if pc.get_conquerorlevel() < 1 then
                    say_title("Seogan çorağı ")
                    say("Bu maceraya atılmak için seviyen yetersiz! ")
                    return
                end

                required_items = {
                    {id = 27992, amount = 2},
                    {id = 27993, amount = 1},
                    {id = 27994, amount = 5}
                }

                local item_count = 0
                while required_items[item_count + 1] ~= nil do
                    item_count = item_count + 1
                end

                i = 1
                while i <= item_count do
                    item = required_items[i]
                    player_count = pc.count_item(item.id)
                    if player_count < item.amount then
                        say("Yeterli " .. tostring(item.id) .. " yok! Gerekli: " .. tostring(item.amount) .. ", sende: " .. tostring(player_count))
                        return
                    end
                    i = i + 1
                end

                i = 1
                while i <= item_count do
                    item = required_items[i]
                    pc.remove_item(item.id, item.amount)
                    i = i + 1
                end

                pc.warp(1221800, 489500)
                say("Seogan çorağı kıtasına yolculuk başlıyor! ")

            else
                say("Seyahat iptal edildi. ")
            end
        end
    end
end

Yapmak istediğin tam olarak buysa denenebilir.​

eğer yüzüğün seyahat ettirme hakkını sınırsız yapmak istemiyorsan, bu mantık faydalı. deneyebilirsin. şimdi tam olarak amaçını bilmediğim için birsey diyemeyecegim.
Cooldown (bekleme süresi) eklemiyor.
Sadece item bazlı kontrol sağlıyor.
Kullanımı sırasında yüzüğün kendisine dair bir sayaç veya kullanım limiti tanımlamıyor.

Kodun İşlevi:​

  • Oyuncuya “Seyahat etmek ister misin?” diye sorar.
  • Eğer seviye 1’den küçükse reddeder.
  • Eğer yeterli seviyedeyse, aşağıdaki itemleri kontrol eder:
    • 27992 ID'li itemden 2 adet.
    • 27993 ID'li itemden 1 adet.
    • 27994 ID'li itemden 5 adet.
  • Bu itemler yoksa, oyuncuya eksik olan itemleri ve miktarlarını bildirir.
  • Tüm itemler varsa, o itemleri envanterden siler (remove_item) ve oyuncuyu Seogan Çorağı haritasına yollar.
 
27992, 27993, 27994 kısmı istediği item amount kısmı ise istediği item adeti

warp.lua:
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 choice = select("Evet ", "Hayır ")

            if choice == 1 then
                if pc.get_conquerorlevel() < 1 then
                    say_title("Seogan çorağı ")
                    say("Bu maceraya atılmak için seviyen yetersiz! ")
                    return
                end

                required_items = {
                    {id = 27992, amount = 2},
                    {id = 27993, amount = 1},
                    {id = 27994, amount = 5}
                }

                local item_count = 0
                while required_items[item_count + 1] ~= nil do
                    item_count = item_count + 1
                end

                i = 1
                while i <= item_count do
                    item = required_items[i]
                    player_count = pc.count_item(item.id)
                    if player_count < item.amount then
                        say("Yeterli " .. tostring(item.id) .. " yok! Gerekli: " .. tostring(item.amount) .. ", sende: " .. tostring(player_count))
                        return
                    end
                    i = i + 1
                end

                i = 1
                while i <= item_count do
                    item = required_items[i]
                    pc.remove_item(item.id, item.amount)
                    i = i + 1
                end

                pc.warp(1221800, 489500)
                say("Seogan çorağı kıtasına yolculuk başlıyor! ")

            else
                say("Seyahat iptal edildi. ")
            end
        end
    end
end
muhhammedim ışınlayma yüzü gibi bir yüzük yapmaya çalışıyorum yohara mapına portallar ışınlamıyor yohara seviyesi kontrollü olcak yohara seviyesideki oyuncular gidebilecek
 

Yapmak istediğin tam olarak buysa denenebilir.​

eğer yüzüğün seyahat ettirme hakkını sınırsız yapmak istemiyorsan, bu mantık faydalı. deneyebilirsin. şimdi tam olarak amaçını bilmediğim için birsey diyemeyecegim.
Cooldown (bekleme süresi) eklemiyor.
Sadece item bazlı kontrol sağlıyor.
Kullanımı sırasında yüzüğün kendisine dair bir sayaç veya kullanım limiti tanımlamıyor.

Kodun İşlevi:​

  • Oyuncuya “Seyahat etmek ister misin?” diye sorar.
  • Eğer seviye 1’den küçükse reddeder.
  • Eğer yeterli seviyedeyse, aşağıdaki itemleri kontrol eder:
    • 27992 ID'li itemden 2 adet.
    • 27993 ID'li itemden 1 adet.
    • 27994 ID'li itemden 5 adet.
  • Bu itemler yoksa, oyuncuya eksik olan itemleri ve miktarlarını bildirir.
  • Tüm itemler varsa, o itemleri envanterden siler (remove_item) ve oyuncuyu Seogan Çorağı haritasına yollar.
sadece ışınlama yüzügü gibi yohara seviyesindeki karakterleri ışınlasın yeter yüzügü 1 defa kullandıkdan sonra yüzük kayıp olcak
 

Anlayabilmen için Teknik Not :​

  • item.set_socket(0, X): Kullanım sayısını tutar.
  • item.set_socket(1, ZAMAN): Cooldown için zamanı tutar.
  • İlk kullanımda item'in socket'leri sıfır olacağı için çalışır.
  • Kullanım sayısı 50’ye ulaşınca yüzük otomatik silinir.

  • ✅ Seviye kontrolü: En az 1. seviye olmalı.
  • ✅ Item kontrolü: Oyuncunun belirttiğin “geçiş bileti” iteminden belirli miktarda olması gerek (örneğin 1 adet).
  • ✅ Cooldown: 5 dakika (300 saniye) bekleme süresi. yani 5dakika ara ile kullanabilir.
  • ✅ Kullanım limiti: Toplamda 50 kez kullanılabilsin. Sonrasında yüzük yok olur degiştirebilirsin.
Quets adını seogan_ring.quest veya .lua kullanman teknik olarak sorun çıkarmaz "seogan_ring.lua" tercih ederim adını mantıken.

Aşağıda zaten ilgili kısımlar açıklandı. TEST ETMEDİM hata alırsan hatanı paylaş İYİLEŞTİRMELER yapıyım.
temiz kod:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin
        when 70304.chat."Seogan Çorağı'na Git" begin
            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")

            -- AYARLAR:
            local cooldown_seconds = 300  -- 5 dakika bekleme süresi
            local max_uses = 50            -- Maksimum kullanım sayısı
            local warp_x, warp_y = 1221800, 489500
            local ticket_id = 27992        -- Geçiş bileti item ID'si
            local ticket_amount = 1        -- Gereken bilet sayısı

            -- COOLDOWN KONTROLÜ:
            local cooldown = item.get_socket(1)
            local now = get_global_time()

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

            -- KULLANIM SAYISI KONTROLÜ:
            local usage = item.get_socket(0)
            if usage >= max_uses then
                say_reward("Bu yüzüğün ömrü sona erdi!")
                item.remove()
                return
            end

            -- SEÇİM:
            local choice = select("Evet", "Hayır")
            if choice == 2 then
                say("Seyahat iptal edildi.")
                return
            end

            -- SEVİYE KONTROLÜ:
            if pc.get_conquerorlevel() < 1 then
                say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                return
            end

            -- GEÇİŞ BİLETİ KONTROLÜ:
            if pc.count_item(ticket_id) < ticket_amount then
                say_reward("Bu yolculuk için "..ticket_amount.." adet geçiş bileti gerekiyor.")
                return
            end

            -- GEÇİŞ BİLETİNİ SİL:
            pc.remove_item(ticket_id, ticket_amount)

            -- WARP:
            pc.warp(warp_x, warp_y)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            -- COOLDOWN AYARLA:
            item.set_socket(1, now + cooldown_seconds)

            -- KULLANIM SAYISINI ARTIR:
            item.set_socket(0, usage + 1)

            -- KULLANIM SONRASI KONTROL (OPSİYONEL):
            if usage + 1 >= max_uses then
                say_reward("Yüzük çok fazla kullanıldığı için yok oldu.")
                item.remove()
            end
        end
    end
end
[CENTER]

---------------------------| AŞAĞI YORUMLARDAN NOT |---------------------------
İtem_Proto:
Genişlet Daralt Kopyala
70304    À̅©ÀǠ¹݁ö    ITEM_QUEST    0    MASK_ITEM_TYPE_ETC    MASK_ITEM_SUBTYPE_ETC_ETC    1    NONE    NONE    NONE    NONE    250000    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
[/CENTER]
Senin item_proto satırın → ✅
Yüzük quest dosya → ✅
Doğrudan birbirleriyle uyumlu ve çalışır. quets adını seogan_ring.quest veya .lua kullanman teknik olarak sorun çıkarmaz seogan_ring.lua tercih ederim adını mantıken.
  • Item vnum’u: Zaten doğru (70304).
  • ITEM_QUEST olarak tanımlanması: Doğru. (Takaslanamaz / satılamaz olmasını sağlar.)
  • item_list.txt içinde doğru ikon tanımlı mı?
  • item_desc.txt içine açıklama ekledin mi? (Oyuncular ne işe yaradığını görsün diye.)
 
Son düzenleme:

Anlayabilmen için Teknik Not :​

  • item.set_socket(0, X): Kullanım sayısını tutar.
  • item.set_socket(1, ZAMAN): Cooldown için zamanı tutar.
  • İlk kullanımda item'in socket'leri sıfır olacağı için çalışır.
  • Kullanım sayısı 50’ye ulaşınca yüzük otomatik silinir.

  • ✅ Seviye kontrolü: En az 1. seviye olmalı.
  • ✅ Item kontrolü: Oyuncunun belirttiğin “geçiş bileti” iteminden belirli miktarda olması gerek (örneğin 1 adet).
  • ✅ Cooldown: 5 dakika (300 saniye) bekleme süresi. yani 5dakika ara ile kullanabilir.
  • ✅ Kullanım limiti: Toplamda 50 kez kullanılabilsin. Sonrasında yüzük yok olur degiştirebilirsin.
Aşağıda zaten ilgili kısımlar açıklandı. TEST ETMEDİM hata alırsan hatanı paylaş İYİLEŞTİRMELER yapıyım.
temiz kod:
Genişlet Daralt Kopyala
quest seogan_ring begin
    state start begin
        when 70304.chat."Seogan Çorağı'na Git" begin
            say_title("Seogan Çorağı")
            say("Yeni kıta Seogan Çorağı'na seyahat etmek ister misin?")

            -- AYARLAR:
            local cooldown_seconds = 300  -- 5 dakika bekleme süresi
            local max_uses = 50            -- Maksimum kullanım sayısı
            local warp_x, warp_y = 1221800, 489500
            local ticket_id = 27992        -- Geçiş bileti item ID'si
            local ticket_amount = 1        -- Gereken bilet sayısı

            -- COOLDOWN KONTROLÜ:
            local cooldown = item.get_socket(1)
            local now = get_global_time()

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

            -- KULLANIM SAYISI KONTROLÜ:
            local usage = item.get_socket(0)
            if usage >= max_uses then
                say_reward("Bu yüzüğün ömrü sona erdi!")
                item.remove()
                return
            end

            -- SEÇİM:
            local choice = select("Evet", "Hayır")
            if choice == 2 then
                say("Seyahat iptal edildi.")
                return
            end

            -- SEVİYE KONTROLÜ:
            if pc.get_conquerorlevel() < 1 then
                say_reward("Bu maceraya atılmak için seviyen yetersiz!")
                return
            end

            -- GEÇİŞ BİLETİ KONTROLÜ:
            if pc.count_item(ticket_id) < ticket_amount then
                say_reward("Bu yolculuk için "..ticket_amount.." adet geçiş bileti gerekiyor.")
                return
            end

            -- GEÇİŞ BİLETİNİ SİL:
            pc.remove_item(ticket_id, ticket_amount)

            -- WARP:
            pc.warp(warp_x, warp_y)
            say("Seogan Çorağı'na yolculuk başlıyor!")

            -- COOLDOWN AYARLA:
            item.set_socket(1, now + cooldown_seconds)

            -- KULLANIM SAYISINI ARTIR:
            item.set_socket(0, usage + 1)

            -- KULLANIM SONRASI KONTROL (OPSİYONEL):
            if usage + 1 >= max_uses then
                say_reward("Yüzük çok fazla kullanıldığı için yok oldu.")
                item.remove()
            end
        end
    end
end
1752852184106.webp

item protosu
Kod:
Genişlet Daralt Kopyala
70304    À̅©ÀǠ¹݁ö    ITEM_QUEST    0    MASK_ITEM_TYPE_ETC    MASK_ITEM_SUBTYPE_ETC_ETC    1    NONE    NONE    NONE    NONE    250000    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
 
24747 eklentisini görüntüle
item protosu
Kod:
Genişlet Daralt Kopyala
70304    À̅©ÀǠ¹݁ö    ITEM_QUEST    0    MASK_ITEM_TYPE_ETC    MASK_ITEM_SUBTYPE_ETC_ETC    1    NONE    NONE    NONE    NONE    250000    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
Senin item_proto satırın → ✅
Yüzük quest dosya → ✅
Doğrudan birbirleriyle uyumlu ve çalışır. quets adını seogan_ring.quest veya .lua kullanman teknik olarak sorun çıkarmaz seogan_ring.lua tercih ederim adını mantıken.
  • Item vnum’u: Zaten doğru (70304).
  • ITEM_QUEST olarak tanımlanması: Doğru. (Takaslanamaz / satılamaz olmasını sağlar.)
  • item_list.txt içinde doğru ikon tanımlı mı?
  • item_desc.txt içine açıklama ekledin mi? (Oyuncular ne işe yaradığını görsün diye.)
item protoyu neden attın anlamadım.
 
Senin item_proto satırın → ✅
Yüzük quest dosya → ✅
Doğrudan birbirleriyle uyumlu ve çalışır. seogan_ring.quest veya .lua kullanman teknik olarak sorun çıkarmaz seogan_ring.lua tercih ederim quets adını mantıken.
  • Item vnum’u: Zaten doğru (70304).
  • ITEM_QUEST olarak tanımlanması: Doğru. (Takaslanamaz / satılamaz olmasını sağlar.)
  • item_list.txt içinde doğru ikon tanımlı mı?
  • item_desc.txt içine açıklama ekledin mi? (Oyuncular ne işe yaradığını görsün diye.)
item protoyu neden attın anlamadım.
acaba protadamı sıkıntı var dedimde hepsi yapıldı
 
acaba protadamı sıkıntı var dedimde hepsi yapıldı
Sorunun çözüldü ÇÖZÜM SÜRECİN'de destek olabildi isem ne mutlu bana, başarılarının devamını dilerim. Çözümünü işaretleme yaparak VEYA açıklayarak konuyu kapatmayı unutma.

Eğer ÇÖZÜLMEDİ ise sorununu net bir şekilde tam olarak açıkla sonucu hızlandırmaya yönelik hızlı destek olayım.

Verdiğim QUETS sorun çıkardı mı ÇALIŞTI MI ?
 
Sorunun çözüldü ÇÖZÜM SÜRECİN'de destek olabildi isem ne mutlu bana, başarılarının devamını dilerim. Çözümünü işaretleme yaparak konuyu kapatmayı unutma.

Eğer ÇÖZÜLMEDİ ise sorununu net bir şekilde tam olarak açıkla sonucu hızlandırmaya yönelik hızlı destek olayım.

Verdiğim QUETS sorun çıkardı mı ÇALIŞTI MI ?
çalışmadı iteme tıklıyom tepki vermiyor
 
yüzüğü neden iteme takıyorsun ki ?
sag tıklayıp kullanacaksın. yanlış item proto almışssın demekki.
item protodan kırmızı mavi sarı potun kini al. vnumunu 70304 yap dene. bu yüzük tek kullanımlık veya defalarca kullanımlık giyilebilir birsey degil.

.lua yı kurarken hata almadı ve quets list e ekledi isen dediğim gibi yap. item protonu düzelt pottan örnek al ve vnumu düzelt dene sonraa item protoda istediğin ayarı gene yaparsın.
 
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
 
düzenlemeler yaptım aslın da arkadaşında verdiği çalışır server taraflı kontrol et packlerle uyuşmuyor olabilir tepki vermiyorsa.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst