Jump to content

Recommended Posts

SYSERR: Mar  6 18:32:14 :: RunState: LUA_ERROR: [string "energy_system"]:31: attempt to call field `remove' (a nil value)
SYSERR: Mar  6 18:32:14 :: WriteRunningStateToSyserr: LUA_ERROR: quest energy_system.can_make leave

 

 

Quest ::

 



quest energy_system begin
    state start begin
        when 20001.chat."Egy új technológia!" begin --alchemist
            say_title(mob_name(20001))
            say("Megcsináltam!")
            say("Végre sikerült kidolgoznom egy teljesen új")
            say("technológiát.")
            say("Sikerült feldolgoznom a tárgyakat és tiszta")
            say("energiát nyerni ki belőlük! Ez teljesen")
            say("zseniális!")
            wait()
            say_title(mob_name(20001))
            say("Ha az én új technológiám segítségével semmisítesz")
            say("meg egy tárgyat, kapsz egy Energia-töredéket. Ha")
            say("egyesítesz 30 ilyen töredéket, kapsz egy")
            say("erőteljes Energia-kristályt! Tiszta, szűretlen")
            say("energiát egy drágakőbe csomagolva. Ez az energia")
            say("átjárja a teljes felszerelésed.")
            say("Érdekel?")
            wait()
            say_title(mob_name(20001))
            say("Hozz nekem egy olyan felszerelési tárgyat, mint")
            say("fegyverek, ékszerek és ruházat, amiket a")
            say("vadászatod során találsz. Átalakítom")
            say("Energia-töredékké.")
            say("Birodalmunk jövője és reménye van ebben a")
            say("technológiában. Legyőzhetetlenek leszünk!")
            setstate (can_make)
        end
    end

    state can_make begin
        function setting ()
            return
            {
                ["prob_acc_table"] =
                {
                    ["35to50"] = {30,55,70,80,90,95,97,98,99,100},
                    ["51to70"] = {20,40,60,75,85,91,96,98,99,100},
                    ["upto70"] = {10,25,45,65,80,88,94,97,99,100}
                },
                ["item_num_table"] ={0,1,2,3,4,6,8,10,12,15},
                ["energy_stone"] = 51001,
                ["charging_stone"] = 51002,
            }
        end    
        function getItemNum ( str, r )
            local setting = energy_system.setting()
            for i = 1, 10 do
                if r < setting.prob_acc_table[str][i] then
                    return setting.item_num_table[i]
                end
            end
            return 0
        end

        when 20001.chat."Energia-töredék kinyerése" begin
            say_title(mob_name(20001))
            say("Működött? Kaptál energia tölteteket?")
            say("Hozz több tárgyat és szilánkokra zúzom az alkímia")
            say("segítségével. Technológiám még nem teljesen")
            say("tökéletes. Ezért soha nem tudom garantálni,")
            say("mennyi töredéket fogsz kapni.")
            wait()
            say_title(mob_name(20001))
            say("Egy feltétel van: saját szintednek és a tárgy")
            say("szintjének legalább 35-nek kell lennie. Hmm,")
            say("lássuk...")
            wait()
            if pc.get_level() < 35 then
                say_title(mob_name(20001))
                say("Még nem vagy elég erős! Gyere vissza, ha már")
                say("elérted legalább a 35-ös szintet.")
            else
                say_title(mob_name(20001))
                say("Ah, kitűnő! Elég erős és tapasztalt vagy!")
                say("Add nekem a tárgyat, amit szeretnéd, hogy")
                say("feldolgozzak.")
            end
        end

        when 20001.take begin
            if pc.get_level() < 35 then
                say_title(mob_name(20001))
                say("Még nem vagy elég erős! Gyere vissza, ha már")
                say("elérted legalább a 35-ös szintet.")
                return
            end
            local item_vnum = item.vnum
            local levelLimit = item.get_level_limit(item_vnum)
            local setting = energy_system.setting()
            if levelLimit == nil then
                say_title(mob_name(20001))
                say("Ez a tárgy nem felel meg a technológiámnak.")
                say("Hozz valami mást.")
                wait()
            elseif item.get_type() == ITEM_WEAPON and item.get_sub_type() == WEAPON_ARROW then
                say_title(mob_name(20001))
                say("Ez a tárgy nem felel meg a technológiámnak.")
                say("Hozz valami mást.")
                wait()
            elseif levelLimit < 35 then
                -- kind of impossible condition?
                say_title(mob_name(20001))
                say("A tárgy szintje nem felel meg a technológiámnak.")
                say("Hozz valami mást.")
            else
                say_title (mob_name(20001))
                say("")
                say (item_name(item_vnum))
                say("Megsemmisíthetem ezt a tárgyat?")
                say("")
                local s = select ( "Igen!" , "Nem, mégsem!" )
                if s == 1 then
                    item.remove()
                    local r = number (1, 100)
                    local n
                    if levelLimit >= 40 and levelLimit <= 50 then
                        n = energy_system.getItemNum ("35to50",r)
                    elseif levelLimit > 50 and levelLimit <= 70 then
                        n = energy_system.getItemNum ("51to70",r)
                    else
                        n = energy_system.getItemNum ("upto70",r)
                    end
                    if (n == 0) then
                        say_title(mob_name(20001))
                        say("Hibáztam - sajnos nem sikerült Energia töredéket")
                        say("kinyernem. Következő alkalommal talán")
                        say("szerencsésebb leszek.")
                    else
                        pc.give_item2(setting.energy_stone, n)
                        say_title(mob_name(20001))
                        say ( "Csodálatos! Sikerült "..n.." Energia-töredéket" )
                        say ( "találnom. Tessék." )
                    end
                end
            end
        end

        when 20001.chat."Energia kristály készítése" begin
            local setting = energy_system.setting()
            local need = 30
            say_title(mob_name(20001))
            say("Már felhasználtad az összes erőtartalékodat? Nem")
            say("kellene olyan keményen dolgoznod és ilyen")
            say("gondatlanul elpazarolnod az életed. Szükségem")
            say("lesz 30 Energia-töredékre egy Energia-kristály")
            say("előállításához")
            wait()
            
            if pc.get_level() < 35 then
                say_title(mob_name(20001))
                say("Még nem vagy elég erős! Gyere vissza, ha már")
                say("elérted legalább a 35-ös szintet.")
                return
            end
            
            if pc.count_item (setting.energy_stone) < need then
                say_title(mob_name(20001))
                    say("Nincs elég Energia-töredéked. Ebből nem tudok")
                    say("előllítani Energia-kristályt. Gyere vissza, ha")
                    say("már összegyűjtöttél 30 töredéket")
                return
            else
                say_title(mob_name(20001))
                say("Nagyon jó, megszerezted a szükséges 30")
                say("Energia töredéket. Ebből elő tudok állítani egy")
                say("Energia-kristályt. Kérlek, várj egy percet.")
                say("Megpróbálom, de nem tudom garantálni, hogy")
                say("működik.")
                wait()
            end
            
            local charge = 100000
            say_title(mob_name(20001))
            say("Minden készen áll a töredékek Energia-kristállyá ")
            say("olvasztásához. Ugyanakkor nekem is élnem kell")
            say("valamiből, és az eszközeim nem az égből")
            say("potyognak. Költségeim fedezéséhez szükségem van")
            say(charge.." yangra. Hajlandó vagy kifizetni?")
            local s = select ("Természetesen!", "Nem, most nem.")
            if s == 2 then
                say_title(mob_name(20001))
                say("Rendben, tiszteletben tartom a döntésed.")
                say("Gyere vissza, ha meggondoltad magad és mégis")
                say("szükséged van egy Energia-kristályra.")
                return
            end

            if pc.get_gold() < charge then
                say_title(mob_name(20001))
                say("Nincs elég pénzed. "..charge.." yang alatt")
                say("sajnos nem vállalhatom az átalakítást,")
                say("nekem is meg kell élnem valamiből.")
                return
            end

            pc.change_gold (-charge)
            pc.remove_item (setting.energy_stone, need)

            if pc.getqf ("hasExperience") == 0 then
                say_title(mob_name(20001))
                say("Tudtam! Kiváló a technológiám!")
                say("Itt az Energia-kristályod. Kétségtelenül egy szép")
                say("példány! Érzed az erejét?")
                pc.give_item2 (setting.charging_stone, 1)
                pc.setqf ("hasExperience", 1);
                return
            end

            local r = number (1, 100)
            if r > 30 then
                say_title(mob_name(20001))
                say("Sajnos a kísérlet nem sikerült. Nem tudtam")
                say("Energia-kristályt előállítani. A technológiám")
                say("ragyogó - de a folyamat teli van kockázattal. A")
                say("dolgok nem mindig működnek a tervek szerint.")
                say("Biztos vagyok benne, hogy következő alkalommal")
                say("sikeres leszek!")
                return
            end
            say_title(mob_name(20001))
            say("Tudtam! Kiváló a technológiám!")
            say("Itt az Energia-kristályod. Kétségtelenül egy szép")
            say("példány! Érzed az erejét?")
            pc.give_item2 (setting.charging_stone, 1)
                    
--            setskin(NOWINDOW)
--            command("cube open")
        end
    end
end


 

 

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Days

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.