Yardım quest

  • Konuyu açan Konuyu açan Aposs
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 777
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Aposs

Yasaklanmış Üye
Cezalı
Mesaj
22
Çözümler
1
Beğeni
4
Puan
43
Ticaret Puanı
0
Lua (Quest):
Genişlet Daralt Kopyala
quest bar begin
    state start begin
        when 50013.chat."Bar Bozdur(500K)x200" begin
                local pin = number(1,9999999)
                    local giris = tonumber ( input ( "" ) )
                    if giris != pin then
                    if pin and pin <= 999999999 and pc.count_item(80005)>=199 then
pc . remove_item (80005,200)
        else
            say("")
            say("200 x Altın Külçe(500.000 Yang) gerekli.")
        return
        end
            if 0==pc.job then
                say_reward("1 Won kazandın.")
            pc.change_cheque(1)
            elseif 1==pc.job then
                say_reward("1 Won kazandın.")
            pc.change_cheque(1)
            elseif 2==pc.job then
                say_reward("1 Won kazandın.")
            pc.change_cheque(1)
            elseif 3==pc.job then
                say_reward("1 Won kazandın.")
            pc.change_cheque(1)
                    end
                end
        end
    end
end

1617379607585.png


Npc bu şekil de bir quest yazdım,bu alana 1 yazdın mesela istediği 200 adet 500k altın külçe verecen karşılığında 1won verecek şekilde queste eklemek istiyorum.
Şuanki yazdığım questte 1 de yazsam 10000 de yazsam 1 won veriyor.Buna gerekli kodu yazabilirmisiniz.
 
Son düzenleme:
Çözüm
Bunu hesaplatmak yerine hazırını otomatik olarak yaptırmak daha mantıklı. Çünkü neticede x200 bar 1 wona eşit ve ara değerleri girdirmeye falan gerek yok. 125, 361 gibi alakasız sayıların girişini kaldırmak daha kullanışlı olur.

Tamamını yazmadım en azından bu şekilde olursa eksik olan kısımları elseif ile ekleyebilirsiniz.

Lua (Quest):
Genişlet Daralt Kopyala
quest bar begin
    state start begin
        when 50013.chat."Bar Bozdur(500K)x200" begin
            say_title("<< Altın Bar Bozdur >>")
            say("Altın bar bozdurmak mı istiyorsun?")
            say("x200 adet 500K altın bar 1 won'a eşittir.")
            say("Kaç tane bara sahipsin?")
            local barlar = select("200","400","600","800","1000","İptal")
            if barlar == 1 then...
Questin amacını tam anlayamadım, x200 tane altın bar bozdurulunca 1won verecek diyorsunuz peki girilen 1-2-3 vs. değerler ne için ?
Direkt x200 barın varlığını kontrol etsin, varsa won versin yoksa hata versin.
 
Questin amacını tam anlayamadım, x200 tane altın bar bozdurulunca 1won verecek diyorsunuz peki girilen 1-2-3 vs. değerler ne için ?
Direkt x200 barın varlığını kontrol etsin, varsa won versin yoksa hata versin.
şimdi diyelim 200 bar veriyorsun sana 1 w veriyor.400 yazdığında da 2 w verecek tam tersini yamışım :(.Şuan ne yazarsam yazayım 1 w veriyor.

Lua (Quest):
Genişlet Daralt Kopyala
                local pin = number(1,9999999)
                    local giris = tonumber ( input ( "" ) )
                    if giris != pin then
                    if pin and pin <= 999999999 and pc.count_item(80005)>=199 then
bu bölümü sonradan ekledim. Normalde;

Kod:
Genişlet Daralt Kopyala
    if pc.count_item (80005) > 199 then

1617382686055.png


bu şekilde 200 bar olunca 1 w veriyor.Ama ben yazarak yapmak istedim. diyelim 2400 bar var 2400 yazdığımda bana 12 won verecek gibi
 
Son düzenleme:
Bunu hesaplatmak yerine hazırını otomatik olarak yaptırmak daha mantıklı. Çünkü neticede x200 bar 1 wona eşit ve ara değerleri girdirmeye falan gerek yok. 125, 361 gibi alakasız sayıların girişini kaldırmak daha kullanışlı olur.

Tamamını yazmadım en azından bu şekilde olursa eksik olan kısımları elseif ile ekleyebilirsiniz.

Lua (Quest):
Genişlet Daralt Kopyala
quest bar begin
    state start begin
        when 50013.chat."Bar Bozdur(500K)x200" begin
            say_title("<< Altın Bar Bozdur >>")
            say("Altın bar bozdurmak mı istiyorsun?")
            say("x200 adet 500K altın bar 1 won'a eşittir.")
            sau("Kaç tane bara sahipsin?")
            local barlar = select("200","400","600","800","1000","İptal")
            if barlar == 0 then
                if pc.count_item(BAR_KODU) < 200 then
                    say("Maalesef 200 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x200 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc.removeitem(BAR_KODU, 200)
                    pc.set_cheque(1)
                end
            elseif barlar == 1 then
                if pc.count_item(BAR_KODU) < 400 then
                    say("Maalesef 400 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x400 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc.removeitem(BAR_KODU, 400)
                    pc.set_cheque(2)
                end
            end
        end
    end
end
 
Bunu hesaplatmak yerine hazırını otomatik olarak yaptırmak daha mantıklı. Çünkü neticede x200 bar 1 wona eşit ve ara değerleri girdirmeye falan gerek yok. 125, 361 gibi alakasız sayıların girişini kaldırmak daha kullanışlı olur.

Tamamını yazmadım en azından bu şekilde olursa eksik olan kısımları elseif ile ekleyebilirsiniz.

Lua (Quest):
Genişlet Daralt Kopyala
quest bar begin
    state start begin
        when 50013.chat."Bar Bozdur(500K)x200" begin
            say_title("<< Altın Bar Bozdur >>")
            say("Altın bar bozdurmak mı istiyorsun?")
            say("x200 adet 500K altın bar 1 won'a eşittir.")
            say("Kaç tane bara sahipsin?")
            local barlar = select("200","400","600","800","1000","İptal")
            if barlar == 1 then
                if pc.count_item(80005) < 200 then
                    say("Maalesef 200 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x200 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc . remove_item(80005, 200)
                    pc.change_cheque(1)
                end
         elseif barlar == 2 then
                if pc.count_item(80005) < 400 then
                    say("Maalesef 400 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x400 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc . remove_item(80005, 400)
                    pc.change_cheque(2)
                end
            elseif barlar == 3 then
                if pc.count_item(80005) < 600 then
                    say("Maalesef 600 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x600 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc . remove_item(80005, 600)
                    pc.change_cheque(3)
                end
            elseif barlar == 4 then
                if pc.count_item(80005) < 800 then
                    say("Maalesef 800 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x800 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc . remove_item(80005, 800)
                    pc.change_cheque(4)
                end
            elseif barlar == 5 then
                if pc.count_item(80005) < 1000 then
                    say("Maalesef 1000 tane bara sahip değilsin")
                    say("Tamamlayınca tekrar dene.")
                else
                    say("x1000 adet bara sahipsin. Bunların karşılığında sana 1 won veriyorum")
                    pc . remove_item(80005, 1000)
                    pc.change_cheque(5)
                end
            end
        end
    end
end
teşekkürler :)
 
Son düzenleme:
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst