Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

System KD->Marmur


Rekomendowane odpowiedzi

Opublikowano

Trochę spierdoliłem sprawę, bo trzeba uzupełniać za dużo tablic niż bym chciał, ale chuj.

Quest o tyle fajny, że ma opcje wstecz i generalnie jest mój.

 

 
quest wymiana_kd_na_marmury begin
    state start begin
        function info()
            etap_1 = {101, 531, 491}
            etap_2 = {104, 591, 691}
            etap_3 = {1093, 1902, 1095}
            npc.name()
            say_turkus("Ilość punktów: "..pc.getqf("kd"))
            local s = select("Informacje","Zaklęte potwory","Zamknij")
            if s == 3 then
                return
            elseif s == 1 then
                npc.name()
                say("Potrafię zrobić ciekawe rzeczy z Kamieniami Dusz.")
                say("Zbieram je i przetwarzam. Za każdy przyniesiony mi")
                say("Kamień dostaniesz różną liczbę punktów. To coś ")
                say("jak zakres losowania. Wygląda to tak:")
                say("")
                say_reward("KD +0 - 1-3 Punkty")
                say_title("KD +1 - 2-5 Punktów")
                say_turkus("KD +2 - 5-8 Punktów")
                say("Zbieram tylko takie, żadnych lepszych.")
                say("Dlaczego? Tak jest własnie wydajniej.")
                if select("Wstecz","Zamknij") == 1 then 
                    wymiana_kd_na_marmury.info() 
                end
            elseif s == 2 then
                npc.name()
                say("Zależy to już od etapów losowania.")
                say_reward("Etap Pierwszy - 3 Punkty")
                say_title("Etap Drugi - 5 punktów")
                say_turkus("Etap Trzeci - 10 punktów")
                local s = select("Pierwszy","Drugi","Trzeci","Wstecz","Zamknij")
                if s == 1 then
                    for i = 1, table.getn(etap_1) do
                        say_turkus(mob_name(etap_1[i]))
                    end
                if select("Wstecz","Zamknij") == 1 then 
                    wymiana_kd_na_marmury.info() 
                end
                elseif s == 2 then
                    for i = 1, table.getn(etap_2) do
                        say_turkus(mob_name(etap_2[i]))
                    end
                if select("Wstecz","Zamknij") == 1 then 
                    wymiana_kd_na_marmury.info() 
                end
                elseif s == 3 then
                    for i = 1, table.getn(etap_3) do
                        say_turkus(mob_name(etap_3[i]))
                    end
                if select("Wstecz","Zamknij") == 1 then 
                    wymiana_kd_na_marmury.info() 
                end
                elseif s == 4 then
                    wymiana_kd_na_marmury.info()
                end
            end
        end
        when 20090.chat."Kup Marmur" begin
            local c = 1000000
            npc.name()
            say_item_vnum(70104)
            say_reward("Cena: "..c)
            if select("Zakup "..item_name(70104), "Zamknij") == 1 then
                if pc.money < c then
                    npc.name()
                    say("Nie stać Cię na taki wydatek?")
                    say("Wróć kiedy zdobędziesz więcej pieniędzy.")
                else
                    npc.name()
                    say("Oto Twój nowy marmur.")
                    say_item_vnum(70104)
                    pc.give_item2(70104)
                    pc.change_money(-c)
                end
            end
        end
        when 20090.chat."Informacje" begin
            wymiana_kd_na_marmury.info()
        end
        when 20090.take begin
            if item.vnum >= 28030 and item.vnum <= 28043 then
                lv1 = math.random(1,3)
                pc.setqf("kd", pc.getqf("kd")+lv1)
                syschat("<System KD> Ilość punktów za "..item_name(item.vnum)..": "..lv1)
                syschat("<System KD> Ilość punktów: "..pc.getqf("kd"))
                item.remove()
            elseif item.vnum >= 28130 and item.vnum <= 28143 then
                lv2 = math.random(2,5)
                pc.setqf("kd", pc.getqf("kd")+lv2)
                syschat("<System KD> Ilość punktów za "..item_name(item.vnum)..": "..lv2)
                syschat("<System KD> Ilość punktów: "..pc.getqf("kd"))
                item.remove()
            elseif item.vnum >= 28230 and item.vnum <= 28243 then
                lv3 = math.random(4,8)
                pc.setqf("kd", pc.getqf("kd")+lv3)
                syschat("<System KD> Ilość punktów za "..item_name(item.vnum)..": "..lv3)
                syschat("<System KD> Ilość punktów: "..pc.getqf("kd"))
                item.remove()
            elseif item.vnum == 70104 and item.get_socket(0) == 0 then
                npc.name()
                say("Punkty: "..pc.getqf("kd"))
                say("")
                say_reward("Etap Pierwszy - 3 Punkty")
                say_title("Etap Drugi - 5 punktów")
                say_turkus("Etap Trzeci - 10 punktów")
                local so = select("Etap Pierwszy","Etap Drugi","Etap Trzeci","Zamknij")
                if so == 1 then
                    local lv1 = {104, 591, 691}
                    local n1 = math.random(table.getn(lv1))
                    if pc.getqf("kd") < 5 then
                        npc.name()
                        say("Nie masz tylu punktów.")
                    else
                        npc.name()
                        say("Twój stwór to "..mob_name(lv1[n1]))
                        say("Używaj go rozważnie i powodzenia!")
                        item.set_socket(0, lv1[n1])
                        pc.setqf("kd",pc.getqf("kd")-5)
                    end
                elseif so == 2 then
                    local lv2 = {104, 591, 691}
                    local n2 = math.random(table.getn(lv2))
                    if pc.getqf("kd") < 5 then
                        npc.name()
                        say("Nie masz tylu punktów.")
                    else
                        npc.name()
                        say("Twój stwór to "..mob_name(lv2[n2]))
                        say("Używaj go rozważnie i powodzenia!")
                        item.set_socket(0, lv2[n2])
                        pc.setqf("kd",pc.getqf("kd")-5)
                    end
                elseif so == 3 then
                    local lv3 = {1093, 1902, 1095}
                    local n3 = math.random(table.getn(lv3))
                    if pc.getqf("kd") < 10 then
                        npc.name()
                        say("Nie masz tylu punktów.")
                    else
                        npc.name()
                        say("Twój stwór to "..mob_name(lv3[n3]))
                        say("Używaj go rozważnie i powodzenia!")
                        item.set_socket(0, lv3[n3])
                        pc.setqf("kd",pc.getqf("kd")-10)
                    end
                end
            end
        end
    end
end

1367133050-U891712.jpg

Opublikowano

Serio robisz to na take? Strasznie chujowe rozwiązanie. Można to zrobić przy pc.give_item2, serio. Questa dawałem już jakiś czas temu na forum i wyszedł mi dość krócej chyba nawet.

Cieszę się, ale ja to robię na swój sposób. Grunt że działa.

1367133050-U891712.jpg

Opublikowano

Bez 18 linii, zapomniałem usunąć od konkretnej wersji :)





http://wklej.to/oAObf

@down

nie ważne, pokazałem w jaki sposób można rozwiązać takie rzeczy, ja się czegoś nauczyłem, mam nadzieję, że Ty też

with item.get_socket(0) == 0, ok?

 

ło, jeszcze tutaj się pojebałem:

item.set_socket(0, mob[math.random(3)])

w tablicy:

 

local mob = {101, 104, 114,}

 

umarł

Opublikowano

pc.give_poly_marble(ID_MOBA) i masz juz kod mniejszy bez nadawania socketow i giveitem2

A dzięki Ci wielkie.

1367133050-U891712.jpg

Opublikowano

Po pierwsze quest nie twoj .

Po drugie pelno bledow .

Nie zadziala , nie polecam .

Brakuje zakonczenia paru ifow oraz nie ma cudzyslowiow w paru miejscach.

Weź wypierdalaj xD

95495145614730418249.png


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...