Çözüldü Bonus Veren Npc Yapımı

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

CanTptn

Üye
Üye
Mesaj
28
Çözümler
1
Beğeni
9
Puan
408
Ticaret Puanı
0
Çözüldü - İtem Karşılığı Bonus Veren NPC?
buradaki gibi bir sistem eklemek istiyordum oyuna,ancak boş bir npc olmadığı için üzerin quest ekleyip seçenekli hale getirdiğim bir npc nin quest kısmına ekleyip bazı değişiklikler yaptım putty den okuttuğumda efsunData fonksiyonu ile ilgili hata aldım oyuna reload q çektim ancak eklediğim npc deki eski seçenekler ikişerli şekilde ve yeni eklediğim seçenkteki bonus almada işlevsizdi.
 
Çözüm
Questin adını değiştirmişsiniz. O yüzden olmuyor.
Lua (Quest):
local efsunData = bonus.efsunData()

Şöyle değiştirin;
Lua (Quest):
local efsunData = desteknpc.efsunData()

Questler konusunda eksiğiniz var sanırsam. Youtube kanalımızda ki quest derslerine bakmanızı tavsiye ederim.
Questlerin içinde fonksiyon kullanımı ile ilgili şu videoya da bakabilirsiniz;
Konuda paylaştığım kodların tamamını aldınız mı?
efsunData fonksiyonu quest içinde bulunuyor.

Aldığınız hatayı paylaşabilirseniz çözmesi daha kolay olur :)
 
bu şekilde bir hata alıyorum birde yine de denemk amaçlı oyunda reload q çekiyorum ancak npc de olan seçenekler 2şerli gözüküyor ve bonus verme işlevsiz oluyor
 

Dosya Eklentileri

  • putty fonksiyon hata.png
    putty fonksiyon hata.png
    349,6 KB · Gösterim: 188
Sanırsam questliblerde efsunlar tanımlı değil.
Lua (Quest):
        function efsunData()
            return {
                -- efsun vnum, value
                -- buraya yeni efsun eklemek isterseniz secenek kısmına da eklemeniz gerekmektedir.
                [1] = {apply.MAX_SP, 1000, "Maks. SP "},
                [2] = {apply.MAX_HP, 1000, "Maks. HP "},
                [3] = {apply.MALL_EXPBONUS, 25, "EXP Bonusu "},
                [4] = {apply.DEX, 100, "Maks. DEX "},
            }
        end

apply.XXX yazıların yerine efsun idsini girip tekrardan deneyin. Örnek;
Lua (Quest):
                [1] = {2, 1000, "Maks. SP "},
 
Lua (Quest):
quest desteknpc begin
    state start begin
        when 20092.chat.MGE.desteknpc_itemler_menu.taslar begin
            npc.open_shop(200921)
            close()
        end
     
        when 20092.chat.MGE.desteknpc_itemler_menu.cevherler begin
            npc.open_shop(200922)
            close()
        end
     
        when 20092.chat.MGE.desteknpc_itemler_menu.susesyalar begin
            npc.open_shop(200923)
            close()
        end
     
        when 20092.chat."Bonus Ver " begin
            say_title(string.format("%s : ", mob_name(20092)))
            say("Sana 10 enerji parçasý karþýlýðýnda ")
            say("bunlardan birisini verebilirim. ")
            say("")
            say_reward("Bilgi: ")
            say("Saldýrý Deðeri (+25)[ENTER]Maksimum HP (+1500)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum DEX(+50) ")
            wait()
            if pc.count_item(51001) >= 10 then
                say_title(string.format("%s : ", mob_name(20092)))
                if get_time() > pc.getqf("sure") then   
                    say("Süper! 10 adet enerji parçasý getirdin. ")
                    say("Bunun karþýlýðý olarak bunlardan bir tanesini ")
                    say("seçenebilirsin. ")
             
                    local efsunSec = select("Saldýrý Deðeri +25", "Maks. HP +1500", "EXP Bonusu +%25", "Maks. DEX +50")
                    local efsunData = bonus.efsunData()
             
                    if efsunSec == 5 then
                        return
                    end
             
                    say_title(string.format("%s : ", mob_name(20092)))
                    say("Seçtiðiniz bonusu kontrol ediniz. ")
                    say("")
                    say(string.format("Bonus: %s (%s)", efsunData[efsunSec][3], efsunData[efsunSec][2]))
                    say("")
                    say_reward("Devam etmek istiyor musun? ")
             
                    if select("Evet ", "Hayir ") == 2 then return end
             
                    affect.add_collect(efsunData[efsunSec][1], efsunData[efsunSec][2], 60*60*24*7)
                    pc.setqf("sure", get_time() + 60*60*24*7)
                    pc.remove_item(51001, 10)
                    say_title(string.format("%s : ", mob_name(20092)))
                    say("Seçtiðiniz bonus karakterinize baþarýyla uygulandý. ")
                else
                    say("Zaten daha önce bir bonus almýþsýn. ")
                    say("süresi dolmadan yeni bir tane alamazsýn ! ")
                end
            else
                say_title(string.format("%s : ", mob_name(20092)))
                say("Yeterli enerji parçasý yok. ")
                say("Bana 10 adet enerji parçasý getirirsen ")
                say("bunlardan birisini alabilirsin. ")
                say("")
                say_reward("Bilgi: ")
                say("Saldýrý Deðeri (+25)[ENTER]Maksimum HP (+1500)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum DEX(+50) ")
            end
        end
 
        function efsunData()
            return {
                -- efsun vnum, value
                -- buraya yeni efsun eklemek isterseniz secenek kismina da eklemeniz gerekmektedir.
                [1] = {53, 25, "Saldýrý Deðeri "},
                [2] = {1, 1500, "Maks. HP "},
                [3] = {43, 25, "EXP Bonusu "},
                [4] = {54, 100, "Maks. DEX "},
            }
        end
    end
end

içerik böyle
 
En son bir moderatör tarafından düzenlenmiş:
@CanTptn Kodları kod blogu olarak düzenlermisiniz.
 
buradaki kodun başına [.code] sonunada [./code] yazarmısın? noktasız halini yazmalısın
 
o sistem zaten çalışıyor da halletim sorunu şuan sadece içeriği değiştirmede sıkıntı yaşıyorum
 
Siz beni yanlış anladınız eklediginiz quest kodlarını başına [.code] sonunada [./code] yazar iseniz noktasız şekilde

Kod:
örnek test deneme

bunun gibi düzenli duracaktır
 
@Whistle birde verdiği bonuslarda değişiklik yapıyorum ama değişmiyor ve seçenek ekliyorum ama seçeneğe tıkladığımda hiçbirşey olmuyor.
 
Questin adını değiştirmişsiniz. O yüzden olmuyor.
Lua (Quest):
local efsunData = bonus.efsunData()

Şöyle değiştirin;
Lua (Quest):
local efsunData = desteknpc.efsunData()

Questler konusunda eksiğiniz var sanırsam. Youtube kanalımızda ki quest derslerine bakmanızı tavsiye ederim.
Questlerin içinde fonksiyon kullanımı ile ilgili şu videoya da bakabilirsiniz;
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst