Çözüldü İtem Silme Questi En Baştaki İtemi Siliyor

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ı.

Hyuna Akali

Full Stack Developer
Grafiker
Usta Üye
Editör
Mesaj
727
Çözümler
20
Beğeni
585
Puan
839
Ticaret Puanı
0
Merhaba az önce bir item silme npcsi kodladım fakat nerede eksik yaptım bilmiyorum sürüklediğim itemi değilde onunla aynı vnumda olan ve önde olan itemi siliyor eğer koddan item.get_vnum u kaldırırsam bu seferde itemi silmez nasıl yapacağım kodları burada buyrun

Lua (Quest):
quest item_sil begin
    state start begin
        when 20087.take with item.get_id() begin
            vnum = item.get_vnum()
        say_title("İtemini Sileceğim Geri Dönüşü Yoktur Bundan Emin Misin?")
        local secim = select("Evet","Hayır")
        if secim == 1 then
        pc.remove_item(vnum,1)
        say("İtem Başarı İle Silinmiştir")
        end
        if secim == 2 then
        say_reward("İtem Silme İşlemi Gerçekleşmemiştir...")
        end
        end
    end
end
 
Çözüm
Mantığı güzel oturtmuşsunuz ama pc.remove_item(vnum, count) fonksiyonu şu şekilde çalışır;
Verilen vnum ve adet sayısına göre envanterin 1. kutusundan başlayarak sırayla diğer kutuları aratır. İlk bulduğu itemide siler.

Questlerde zaten .take işlemi aslında o itemi seçmiş oluyorsun.
Bu yüzden şu satırdaki kodu;
Lua (Quest):
pc.remove_item(vnum,1)

Şunla değiştiriniz;
Lua (Quest):
item.remove()

Eğitim videolarımda da item fonksiyonlarına girişmiştim ama daha örneklerini gösterdiğim videoları çekmedim. Eğitim serisinde de bu konuya değinecektim. :)

Metin2 Quest Fonksiyonları (Açıklamalı Şekilde)
burada metin2 quest fonksiyonlarına ve ne işe yaradığına bakabilirsin. Eğitim serileriyle paralel şekilde konuyu güncelliyorum...
Mantığı güzel oturtmuşsunuz ama pc.remove_item(vnum, count) fonksiyonu şu şekilde çalışır;
Verilen vnum ve adet sayısına göre envanterin 1. kutusundan başlayarak sırayla diğer kutuları aratır. İlk bulduğu itemide siler.

Questlerde zaten .take işlemi aslında o itemi seçmiş oluyorsun.
Bu yüzden şu satırdaki kodu;
Lua (Quest):
pc.remove_item(vnum,1)

Şunla değiştiriniz;
Lua (Quest):
item.remove()

Eğitim videolarımda da item fonksiyonlarına girişmiştim ama daha örneklerini gösterdiğim videoları çekmedim. Eğitim serisinde de bu konuya değinecektim. :)

Metin2 Quest Fonksiyonları (Açıklamalı Şekilde)
burada metin2 quest fonksiyonlarına ve ne işe yaradığına bakabilirsin. Eğitim serileriyle paralel şekilde konuyu güncelliyorum.

 
Çözüm
Teşekkür ederim zaten bilgimin %90 -95 civarı sizin videolarınızdan. Teşekkür ederim
 
Sorun çözülmüştür seçili item varken ilk item kodunu almışım
Çözüm seçili itemi silmesi için item.remove()
İyi forumlar...
 
Sorununuzun çözülmesine sevindim. :)
Çözümlenmiş konular bölüm kuralları gereği kilitlenip çözüldü olarak işaretlenmek zorunda. Bu hususta bu konuda çözüldü işaretlenip kilitlenmiştir.

Bu tür yardım konuları sayesinde benzer sorun yaşayan diğer kullanıcılara da fayda sağlayacağını düşünüyorum.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst