Jump to content

dexolus

Member
  • Posts

    51
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by dexolus

  1. Hi, im making server. I want to sit on mount then unmount it and again sit on it fast. It working but when im attacking monster it writes - If you want to do this, you have to stop. What can i do to remove it to make to work, so i can jump on mount multiple times really fast when im attacking monster? Thank you ?

  2. Hi i found here new login interface which i really like - interface its working when i put it in my client. But channel switcher is not working. At the old interface it works. It only need to change intrologin.py, so i guess there is the problem.

    This is my old intrologin.py -- https://pastebin.com/jgti94rY

    This is new intrologin.py https://pastebin.com/PFqNtwT9

    How can i make it work? When i paste to the new intrologin the 

    Spoiler

    def __LoadChannelInfo(self):

    try:

    file=old_open("channel.inf")

    lines=file.readlines()

     

    if len(lines)>0:

    tokens=lines[0].split()

     

    selServerID=int(tokens[0])

    if app.ENABLE_CHANNEL_SWITCHER:

    if(int(tokens[1]) <= constInfo.CHANNELS):

    selChannelID=int(tokens[1])

    else:

    selChannelID=1

    else:

    selChannelID=int(tokens[1])

     

    if len(tokens) == 3:

    regionID = int(tokens[2])

     

    return regionID, selServerID, selChannelID

     

    except:

    print "LoginWindow.__LoadChannelInfo - OpenError"

    return -1, -1, -1

     

    to class LoginWindow(ui.ScriptWindow): its not working. When i add new class like the old one class ConnectingDialog(ui.ScriptWindow): its not working too. Can anybody help me please? ?

  3. Hi, im writing quest for my dungeon. I want to start regen where will be like 400 monsters. And i want that one from that 400 monsters will be right and when i kill it it ports me.

    I writed this 

    Spoiler

            when 6101.kill or 6102.kill or 6103.kill or 6104.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 1 begin
                local n = number(1,8)
                if n == 1 or game.get_event_flag("trumetin") == 7 then
                    d.notice("Správná příšera byla zabita.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 2)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    game.set_event_flag("trumetin", game.get_event_flag("trumetin")+1)
                end
            end

    Which works fine. But when i set the number to local n = number(1,8) sometimes i have to kill more than 8 monsters sometimes it work good. I dont know what is wrong. Can anybody help please? Thank you ?

  4. Hi. Can you check the quest for me please? 

    Spoiler

    quest ledov_dungeon begin
        state start begin
        function settings()
            return
            {
                ["ledov_dungeon_index"] = 33, ---- Dungeon index
                ["ledov_dungeon_index_out"] = 41, ---- Map index, where players will be teleported from dungeon [Jinno M1]
                ["out_pos"] = {9694, 2786}, ---- Coordinations, where players will be teleported from dungeon [Jinno M1]
                ["ledov_dungeon_pos"] = { ----- Dungeon coords
                    [1] = {244915, 245066},
                    [2] = {245124, 245095}
                },
                ["level_check"] = {
                    ["minimum"] = 200,
                    ["maximum"] = 300},
            };
        end    
            
        function party_get_member_pids()
            local pids = {party.get_member_pids()}
            
            return pids
        end
        
        function boss1()
            local setting = ledov_dungeon.settings()
            local r = number (1,5)
            if r == 1 then    
                d.spawn_mob(101, 442, 284)
                d.spawn_mob(6108, 345, 279)
                d.spawn_mob(6108, 348, 197)
                d.spawn_mob(6108, 442, 197)
                d.spawn_mob(6108, 402, 78)
            elseif r == 2 then
                d.spawn_mob(6108, 442, 284)
                d.spawn_mob(101, 345, 279)
                d.spawn_mob(6108, 348, 197)
                d.spawn_mob(6108, 442, 197)    
                d.spawn_mob(6108, 402, 78)    
            elseif r == 3 then
                d.spawn_mob(6108, 442, 284)
                d.spawn_mob(6108, 345, 279)
                d.spawn_mob(101, 348, 197)
                d.spawn_mob(6108, 442, 197)
                d.spawn_mob(6108, 402, 78)
            elseif r == 4 then
                d.spawn_mob(6108, 442, 284)
                d.spawn_mob(101, 345, 279)
                d.spawn_mob(6108, 348, 197)
                d.spawn_mob(6108, 442, 197)
                d.spawn_mob(6108, 402, 78)
            elseif r == 5 then
                d.spawn_mob(6108, 442, 284)
                d.spawn_mob(6108, 345, 279)
                d.spawn_mob(101, 348, 197)
                d.spawn_mob(6108, 442, 197)    
                d.spawn_mob(6108, 402, 78)
            end
        end    
        
        function metin1()
            local setting = ledov_dungeon.settings()
            local r = number (1,10)
            if r == 1 then    
                d.spawn_mob(8001, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 2 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8001, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 3 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8001, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 4 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8001, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 5 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8001, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 6 then    
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8001, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 7 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8001, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 8 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8001, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 9 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8001, 979, 210)
                d.spawn_mob(8630, 979, 231)
            elseif r == 10 then
                d.spawn_mob(8630, 914, 189)
                d.spawn_mob(8630, 951, 189)
                d.spawn_mob(8630, 951, 231)
                d.spawn_mob(8630, 913, 231)
                d.spawn_mob(8630, 873, 228)
                d.spawn_mob(8630, 872, 187)
                d.spawn_mob(8630, 872, 206)
                d.spawn_mob(8630, 979, 190)
                d.spawn_mob(8630, 979, 210)
                d.spawn_mob(8001, 979, 231)        
            end
        end    

        function blud()
            local setting = ledov_dungeon.settings()
            local r = number (1,4)    
            if r == 1 then    
                d.spawn_mob(8001, 1081, 55)
                d.spawn_mob(8630, 1252, 277)
                d.spawn_mob(8630, 1184, 318)
                d.spawn_mob(8630, 983, 365)
            elseif r == 2 then
                d.spawn_mob(8630, 1081, 55)
                d.spawn_mob(8001, 1252, 277)
                d.spawn_mob(8630, 1184, 318)
                d.spawn_mob(8630, 983, 365)
            elseif r == 3 then
                d.spawn_mob(8630, 1081, 55)
                d.spawn_mob(8630, 1252, 277)
                d.spawn_mob(8001, 1184, 318)
                d.spawn_mob(8630, 983, 365)
            elseif r == 4 then
                d.spawn_mob(8630, 1081, 55)
                d.spawn_mob(8630, 1252, 277)
                d.spawn_mob(8630, 1184, 318)
                d.spawn_mob(8001, 983, 365)
            end
        end
        
        function bo()
            local setting = ledov_dungeon.settings()
            local r = number (1,4)    
            if r == 1 then    
                d.spawn_mob(102, 379, 739)
                d.spawn_mob(6109, 380, 538)
                d.spawn_mob(6109, 488, 550)
                d.spawn_mob(6109, 544, 551)
            elseif r == 2 then
                d.spawn_mob(6109, 379, 739)
                d.spawn_mob(102, 380, 538)
                d.spawn_mob(6109, 488, 550)
                d.spawn_mob(6109, 544, 551)
            elseif r == 3 then
                d.spawn_mob(6109, 379, 739)
                d.spawn_mob(6109, 380, 538)
                d.spawn_mob(102, 488, 550)
                d.spawn_mob(6109, 544, 551)
            elseif r == 4 then
                d.spawn_mob(6109, 379, 739)
                d.spawn_mob(6109, 380, 538)
                d.spawn_mob(6109, 488, 550)
                d.spawn_mob(102, 544, 551)
            end
        end    

        function is_ledoved()
            local pMapIndex = pc.get_map_index();
            local data = ledov_dungeon.settings();
            local map_index = data["ledov_dungeon_index"];

            return pc.in_dungeon() and pMapIndex >= map_index*10000 and pMapIndex < (map_index+1)*10000;
        end
        
        function clear_ledovdungeon()
            d.clear_regen();
            d.kill_all();
        end
        
        function clear_ledovtimers()
            clear_server_timer("ledov_dungeon_wave_kill", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_30min_left", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_15min_left", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_10min_left", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_5min_left", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_1min_left", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_0min_left", get_server_timer_arg())
            clear_server_timer("ledov_dungeon_final_exit", get_server_timer_arg())
        end    

        function check_enter()
            say_title(mob_name(8587))
            local settings = ledov_dungeon.settings()
            
            if ((get_global_time() - pc.getf("ledov_dungeon","exit_ledov_dungeon_time")) < 60*60) then
            
                local remaining_wait_time = (pc.getf("ledov_dungeon","exit_ledov_dungeon_time") - get_global_time() + 60*60)
                say(" Musíš počkat před vstupem do dungeonu. ")
                say_reward(" Po uplynutí této doby : "..get_time_remaining(remaining_wait_time)..'[ENTER]')
                say_reward("Můžete znovu vstoupit do dungeonu.")
                return
            end
            
            if party.is_party() then            
                if not party.is_leader() then
                    say_reward(" Nech mě nejprve mluvit s vůdcem skupiny. ")
                    return
                end

                if party.get_near_count() < 2 then
                    say_reward(" Pro vstup musí mít tvoje skupina alespoň dva členy. ")
                    say_reward(" Všichni členové musí být kolem. ")
                    say_reward(" [ENTER]Jinak tě nemohu pustit. ")
                    return false;
                end
                
                local levelCheck = true
                local MemberHaveLowLevel = {}
                local MemberHaveHighLevel = {}
                local pids = {party.get_member_pids()}
                
                if not party.is_map_member_flag_lt("exit_ledov_dungeon_time", get_global_time() - 60 * 60 ) then
                    say_reward(" Někteří členi skupiny ")
                    say_reward(" musí ještě počkat. ")
                    return false;
                end
                            
                for i, pid in next, pids, nil do
                    q.begin_other_pc_block(pid)
                    if pc.get_level() < settings["level_check"]["minimum"] then
                        table.insert(MemberHaveLowLevel, pc.get_name())
                        levelCheck = false
                    end

                    q.end_other_pc_block()
                end

                if not levelCheck then
                    say_reward(" Pokud chceš vstoupit do Ledové rokle ")
                    say_reward(" musíš mít alespoň level 201 ")
                    say_reward("")
                    say_reward(" Následující hráči nemají dostatečný level : ")
                    for i, n in next, MemberHaveLowLevel, nil do
                        say_title("- "..n)
                    end
                    return
                end
                
                for i, pid in next, pids, nil do
                    q.begin_other_pc_block(pid)
                    if pc.get_level() > settings["level_check"]["maximum"] then
                        table.insert(MemberHaveHighLevel, pc.get_name())
                        levelCheck = false
                    end

                    q.end_other_pc_block()
                end

                if not levelCheck then
                    say_reward(" Pokud chceš vstoupit do Ledové rokle ")
                    say_reward(" Musíš mít maximálně level 300. ")
                    say_reward("")
                    say_reward(" Tito hráči mají příliš vysoký level : ")
                    for i, n in next, MemberHaveHighLevel, nil do
                        say_title("- "..n)
                    end
                    return
                end
        
            else
            
                if ((get_global_time() - pc.getf("ledov_dungeon","exit_ledov_dungeon_time")) < 60*60) then
                
                    local remaining_wait_time = (pc.getf("ledov_dungeon","exit_ledov_dungeon_time") - get_global_time() + 60*60)
                    say(" Před vstupem do Cesty zkázy musíš počkat. ")
                    say_reward(" Můžeš znovu vstoupit za: "..get_time_remaining(remaining_wait_time)..'[ENTER]')
                    return
                end
                
                if (pc.get_level() < settings["level_check"]["minimum"]) then
                    say(string.format(" Minimální level pro vstup do Ledové rokle je %d. ", settings["level_check"]["minimum"]))
                    return false;
                end
                
                if (pc.get_level() > settings["level_check"]["maximum"]) then
                    say(string.format(" Maximální level pro vstup do Ledové rokle je %d. ", settings["level_check"]["maximum"]))
                    return false;
                end
            end
            
            return true;
        end    
            
        function create_dungeon()
            local setting = ledov_dungeon.settings()
            local pids = {party.get_member_pids()}
            
            if party.is_party() then
                game.set_event_flag("trumetin", 0)
                d.new_jump_party(setting["ledov_dungeon_index"], setting["ledov_dungeon_pos"][1][1], setting["ledov_dungeon_pos"][1][2])
                d.setf("ledov_dungeon_level", 1)
                d.regen_file("data/dungeon/ledov_dungeon/regen1.txt")
                server_timer("ledov_dungeon_30min_left", 7200, d.get_map_index())
                server_loop_timer("ledov_dungeon_wave_kill", 15, d.get_map_index())
            else
                game.set_event_flag("trumetin", 0)
                d.new_jump(setting["ledov_dungeon_index"], setting["ledov_dungeon_pos"][1][1]*100, setting["ledov_dungeon_pos"][1][2]*100)
                d.setf("ledov_dungeon_level", 1)
                d.regen_file("data/dungeon/ledov_dungeon/regen1.txt")
                server_timer("ledov_dungeon_30min_left", 7200, d.get_map_index())
                server_loop_timer("ledov_dungeon_wave_kill", 15, d.get_map_index())
            end
        end    
        
            
            
        
            when login with ledov_dungeon.is_ledoved() begin
                local settings = ledov_dungeon.settings()
                            
                d.set_warp_location(settings["ledov_dungeon_index_out"], settings["out_pos"][1], settings["out_pos"][2]);
                if not pc.is_gm() then
                    if not pc.in_dungeon() then
                        pc.warp(settings["ledov_dungeon_index_out"], settings["out_pos"][1]*100, settings["out_pos"][2]*100)
                    end
                end
            end    

            when 20089.chat." Ledová rokle " begin
                local settings = ledov_dungeon.settings()
                say_title(mob_name(20089))
                say("")
                say(" Opravdu chceš vstoupit do Ledové rokle? ")
                if (select ("Ano", "Ne") == 1) then
                    if ledov_dungeon.check_enter() then
                        say_reward(" Na dokončení Ledové rokle máš pouze 2 hodiny.")
                        say_reward(" Po uplynutí této doby budete teleportování zpět sem. ")
                        say_reward(" Pro postup do dalšího patra zabij správnou příšeru" )
                        wait()
                        ledov_dungeon.create_dungeon()
                    end
                end
            end

            ---TIME RESET - ONLY FOR GM
            when 20089.chat."Resetování času pyčo" with pc.is_gm() begin
                say("")
                say("")
                say("")
                if select('Resetovat čas kurva','Ne dopiči') == 2 then return end
                    addimage(25, 10, "ledov_bg_01.tga")
                    say("")
                    say("")
                    say("")
                    say_title(mob_name(20095))
                    say("")
                    say("Bylo resetovane kundo")
                    pc.setf('ledov_dungeon','exit_ledov_dungeon_time', 0)
                    
                    -- Dungeon Info
                    pc.setqf("rejoin_time", get_time() - 3600)
            end    

            
            when 6101.kill or 6102.kill or 6103.kill or 6104.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 1 begin
                local n = number(1,8)
                if n == 1 or game.get_event_flag("trumetin") == 7 then
                    d.notice("Správná příšera byla zabita.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 2)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    game.set_event_flag("trumetin", game.get_event_flag("trumetin")+1)
                end
            end
            
            when ledov_dungeon_spawner.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 2 then
                        game.set_event_flag("tru", 0)
                        d.setf("ledov_dungeon_level", 3)
                        ledov_dungeon.boss1()
                        d.notice("Zabij správného bosse pro postup do dalšího patra")
                        d.notice("Pokud zabiješ špatného bosse může ti dát trest")
                        d.jump_all(settings["ledov_dungeon_pos"][2][1], settings["ledov_dungeon_pos"][2][2])
                    elseif d.getf("ledov_dungeon_level") == 4 then
                        game.set_event_flag("truu", 0)
                        d.setf("ledov_dungeon_level", 5)    
                        d.regen_file("data/dungeon/ledov_dungeon/regen2.txt")
                        d.jump_all(245389, 244810)
                    elseif d.getf("ledov_dungeon_level") == 6 then
                        d.setf("ledov_dungeon_level", 7)
                        d.regen_file("data/dungeon/ledov_dungeon/regenhradby.txt")
                        d.jump_all (245655, 244818)
                    elseif d.getf("ledov_dungeon_level") == 8 then
                        d.setf("ledov_dungeon_level", 9)
                        ledov_dungeon.metin1()
                        d.notice("Rozbij správný balvan pro postup do dalšího patra.")
                        d.notice("Jeden balvan je špatný za jeho rozbití budeš potrestán")
                        game.set_event_flag("truuhrad", 0)
                    elseif d.getf("ledov_dungeon_level") == 10 then
                        d.setf("ledov_dungeon_level", 11)
                        d.notice("Najdi a rozbij balvany.")
                        d.notice("Jeden balvan je špatný, za jeho rozbití dostaneš trest")
                        ledov_dungeon.blud()
                        game.set_event_flag("blud", 0)
                        d.jump_all (245903, 244789)
                    elseif d.getf("ledov_dungeon_level") == 12 then
                        d.setf("ledov_dungeon_level", 13)
                        d.notice("Zabij všechny příšery balvany a bosse.")
                        d.regen_file("data/dungeon/ledov_dungeon/regenkomb.txt")
                        d.jump_all (244803, 245324)
                    elseif d.getf("ledov_dungeon_level") == 14 then
                        d.notice("Zabij správného bosse pro postup")
                        d.notice("Jeden boss je špatný za jeho zabití budeš potrestán")
                        d.setf("ledov_dungeon_level", 15)
                        ledov_dungeon.bo()
                        game.set_event_flag("lord", 0)
                    elseif d.getf("ledov_dungeon_level") == 16 then    
                        d.notice("Zabij Nemereho pro dokončení dungeonu")
                        d.setf("ledov_dungeon_level", 17)
                        d.regen_file("data/dungeon/ledov_dungeon/regenlast.txt")
                    end
                end
            end
            
            when 6108.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 3 begin
                local n = number(1,4)
                if n == 1 or game.get_event_flag("tru") == 3 then
                    d.notice("Správný boss byl zabit.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 4)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    d.notice("Toto nebyl správný boss.")
                    game.set_event_flag("tru", game.get_event_flag("tru")+1)
                end
            end    
            
            when 101.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 3 begin
                d.notice("Zabil jsi špatného bosse. Budeš potrestán.")
                d.notice("Aby jsi se vrátil zpět zabij správnou příšeru.")
                game.set_event_flag("trumet", 0)
                d.regen_file("data/dungeon/ledov_dungeon/regentrest.txt")
                server_timer("ledov_dungeon_trest", 3, d.get_map_index())    
            end
            
            when ledov_dungeon_trest.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 3 then
                        d.jump_all(244848, 244820)
                    end
                end
            end
                
            
            when 6101.kill or 6102.kill or 6103.kill or 6104.kill or 6105.kill or 6106.kill or 6107.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 3 begin
                local n = number(1,8)
                if n == 1 or game.get_event_flag("trumet") == 7 then
                    d.notice("Správná příšera byla zabita.")
                    server_timer("ledov_dungeon_trestt", 10, d.get_map_index())    
                else
                    game.set_event_flag("trumet", game.get_event_flag("trumet")+1)
                end
            end
            
            when ledov_dungeon_trestt.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 3 then
                        d.jump_all(245124, 245095)
                    end
                end
            end
                    


            when 6101.kill or 6102.kill or 6103.kill or 6104.kill or 6105.kill or 6106.kill or 6107.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 5 begin
                local n = number(1,8)
                if n == 1 or game.get_event_flag("truu") == 7 then
                    d.notice("Správná příšera byla zabita.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 6)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    game.set_event_flag("truu", game.get_event_flag("truu")+1)
                end
            end

            when ledov_dungeon_wave_kill.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 7 then
                        d.notice("Zabij všechny příšery")
                        if d.count_monster() == 0 then
                            clear_server_timer("ledov_dungeon_wave_kill", get_server_timer_arg())
                            d.setf("ledov_dungeon_level", ?
                            d.notice("Zabil jsi všechny příšery.")
                            server_timer("ledov_dungeon_spawner", 1, d.get_map_index())
                        else
                            d.notice(string.format("Zbývá zabít %d příšer", d.count_monster()));
                        end
                    elseif d.getf("ledov_dungeon_level") == 13 then
                        d.notice("Zabij všechny příšery")
                        if d.count_monster() == 0 then
                            clear_server_timer("ledov_dungeon_wave_kill", get_server_timer_arg())
                            d.setf("ledov_dungeon_level", 14)
                            d.notice("Zabil jsi všechny příšery.")
                            server_timer("ledov_dungeon_spawner", 20, d.get_map_index())
                        else
                            d.notice(string.format("Zbývá zabít %d příšer", d.count_monster()));
                        end                    
                    end
                end
            end
            
            when 8630.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 9 begin
                local n = number(1,9)
                if n == 1 or game.get_event_flag("truuhrad") == 8 then
                    d.notice("Správný balvan byl rozbit.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 10)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    d.notice("Toto nebyl správný balvan.")
                    game.set_event_flag("truuhrad", game.get_event_flag("truuhrad")+1)
                end
            end
            
            when 8001.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 9 begin
                game.set_event_flag("trs", 0)
                d.notice("Rozbil jsi špatný balvan. Budeš potrestán.")
                d.notice("Aby jsi se vrátil zpět zabij správnou příšeru.")
                d.regen_file("data/dungeon/ledov_dungeon/regentrest.txt")
                server_timer("ledov_dungeon_tres", 15, d.get_map_index())    
            end
            
            when ledov_dungeon_tres.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 9 then
                        d.jump_all(244848, 244820)
                    end
                end
            end    
            
            when 6101.kill or 6102.kill or 6103.kill or 6104.kill or 6105.kill or 6106.kill or 6107.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 9 begin
                local n = number(1,8)
                if n == 1 or game.get_event_flag("trs") == 7 then
                    d.notice("Správná příšera byla zabita.")
                    d.clear_regen("data/dungeon/ledov_dungeon/regentrest.txt")
                    server_timer("ledov_dungeon_pico", 15, d.get_map_index())    
                else
                    game.set_event_flag("trs", game.get_event_flag("trs")+1)
                end
            end        
            
            when ledov_dungeon_pico.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 9 then
                        d.jump_all(245655, 244818)
                    end
                end
            end    

            when 8630.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 11 begin
                local n = number(1,3)
                if n == 1 or game.get_event_flag("blud") == 2 then
                    d.notice("Správný balvan byl rozbit.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 12)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    d.notice("Toto nebyl správný balvan.")
                    game.set_event_flag("blud", game.get_event_flag("blud")+1)
                end
            end
            
            when 8001.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 11 begin
                d.spawn_mob(8632, 122, 72)
                d.notice("Rozbil jsi špatný balvan. Budeš potrestán.")
                d.notice("Aby jsi se vrátil zpět rozbij správný balvan.")
                server_timer("ledov_dungeon_tres", 15, d.get_map_index())    
            end        
            
            when ledov_dungeon_tres.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 11 then
                        d.jump_all(244848, 244820)
                    end
                end
            end

            when 8632.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 11 begin
                server_timer("ledov_dungeon_trestboss", 15, d.get_map_index())
                d.notice("Zabil jsi bosse, budeš teleportován zpět")
            end

            when ledov_dungeon_trestboss.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 11 then
                        d.jump_all(245655, 244818)
                    end
                end
            end
            
            when 6109.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 15 begin
                local n = number(1,4)
                if n == 1 or game.get_event_flag("lord") == 3 then
                    d.notice("Správný boss byl zabit.")
                    ledov_dungeon.clear_ledovdungeon()
                    d.setf("ledov_dungeon_level", 16)
                    server_timer("ledov_dungeon_spawner", 15, d.get_map_index())    
                else
                    d.notice("Toto nebyl správný boss.")
                    game.set_event_flag("lord", game.get_event_flag("lord")+1)
                end
            end    
            
            when 102.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 15 begin
                d.notice("Zabil jsi špatného bosse. Budeš potrestán.")
                d.notice("Aby jsi se vrátil zpět zabij Mrazivého lorda")
                d.spawn_mob(102, 65, 93)
                server_timer("ledov_dungeon_trestik", 3, d.get_map_index())    
            end
            
            when ledov_dungeon_trestik.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 15 then
                        d.jump_all(244848, 244820)
                    end
                end
            end
                
            
            when 102.kill with pc.in_dungeon() and d.getf("ledov_dungeon_level") == 15 begin
                server_timer("ledov_dungeon_lord", 10, d.get_map_index())
            end
            
            when ledov_dungeon_lord.server_timer begin
                local settings = ledov_dungeon.settings()
                if d.select(get_server_timer_arg()) then
                    if d.getf("ledov_dungeon_level") == 15 then
                        d.jump_all(245124, 245095)
                    end
                end
            end

            when kill with ledov_dungeon.is_ledoved() and not npc.is_pc() and npc.get_race() == 6191 begin
                local settings = ledov_dungeon.settings()
                if d.getf("ledov_dungeon_level") == 17 then                
                    d.setf("ledov_dungeon_level", 18)
                    d.notice("Úspěšně jsi dokončil dungeon")
                    d.notice("Za dvě minuty budeš teleportován.")
                    notice_all("Hráč ".. pc.get_name() .." dokázal projít Ledovou rokli!")
                    server_timer("ledov_dungeon_final", 115, d.get_map_index())
                end
            end        
            
            when ledov_dungeon_30min_left.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("Zbývá 30 minut!")
                    server_timer("ledov_dungeon_15min_left", 15*60, d.get_map_index())
                end
            end

            when ledov_dungeon_15min_left.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("Zbývá 15 minut!!")
                    server_timer("ledov_dungeon_10min_left", 5*60, d.get_map_index())
                end
            end

            when ledov_dungeon_10min_left.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("Zbývá 10 minut!")
                    server_timer("ledov_dungeon_5min_left", 5*60, d.get_map_index())
                end
            end

            when ledov_dungeon_5min_left.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("Zbývá 5 minut!")
                    server_timer("ledov_dungeon_1min_left", 4*60, d.get_map_index())
                end
            end

            when ledov_dungeon_1min_left.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("Zbývá 1 minuta!")
                    server_timer("ledov_dungeon_0min_left", 60, d.get_map_index())
                end
            end

            when ledov_dungeon_0min_left.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("Čas vypršel. Budeš teleportován.")
                    server_timer("ledov_dungeon_final", 5, d.get_map_index())
                end
            end

            when ledov_dungeon_final.server_timer begin
                if d.select(get_server_timer_arg()) then                                
                    d.exit_all()
                end
            end
            
            when logout with ledov_dungeon.is_ledoved() begin 
                pc.setf("ledov_dungeon","exit_ledov_dungeon_time", get_global_time())
                pc.setqf("ledov_dungeon", get_time() + 3600)
            end
            
        end
    end

    I think the problem is here with that index?

     

    Spoiler

        function is_ledoved()
            local pMapIndex = pc.get_map_index();
            local data = ledov_dungeon.settings();
            local map_index = data["ledov_dungeon_index"];

            return pc.in_dungeon() and pMapIndex >= map_index*10000 and pMapIndex < (map_index+1)*10000;

    Thank you ?

  5. Hi i have problem with my dungeons. Sometimes i enter dungeon by npc and there is no monsters. So i spawn npc or go to the town to the npc and enter again and its working.

    But does anybody know where is problem? It does not work on more dungeons. I seen it in plechitos dungeons. In my dungeons which i made... Can anybody help me? I can upload the quest later. But i think its correct. When plechitos dungeons make it too.

     

    Thank you ?

  6. I made it working, it gives me exp but i cant level up. It left with 1 bzk needed and i can click how many times i want it takes the item but not level up..

     

    Spoiler

    quest exp begin
        state start begin
            when 100300.use begin
                pc.give_exp(pc.get_name(), 100000)
                pc.remove_item(100300, 1)
            end
                
            when 100400.use begin
                pc.give_exp(pc.get_name(), 100000)
                pc.remove_item(100400, 1)
            end
        end
    end

     

  7. Hello, i writed quest. When i click on item(vnum) i want to get some exp around 1000..

    Quest is like this 

    Spoiler

        quest magic ring by Hany begin
        state start begin
            when 30527.use begin
                pc.give_exp2(10000)
                pc.remove_item(ItemValue, 1)
            end    
        end
    end 

    But it does not work. It remove item but i dont get exp. 
    Can you help me please? What is wrong?

  8. Hi. I made it working. bcs i rewrite 
     

    Spoiler

            function make_dungeon()
                local setting = crystal_dungeon.settings()
                
                d.new_jump_party(setting["map_index"], setting["spawm_pos"][1][1], setting["spawm_pos"][1][2])
                d.setf("lair_check", 1)
                d.setf("level_four_login", 0)
                crystal_dungeon.get_regens(1)
            end

    To

            function make_dungeon()
                local setting = crystal_dungeon.settings()
                
                d.join(setting["map_index"], setting["spawm_pos"][1][1], setting["spawm_pos"][1][2])
                d.setf("lair_check", 1)
                d.setf("level_four_login", 0)
                crystal_dungeon.get_regens(1)
            end

    But now it ports anyone and does not level check it. So i can enter with level one even i have set it from level 105. Anyone know fix please? ?

  9. Hello, i downloaded dungeon. Transalated and do everything i mostly wanted. But i dont know how can i set only one person can go the dungeon. Now u need group more then 2 peoples to enter dungeon.  Here the quest file. Hope somebody will help me or explain how to do it.

    Spoiler

    quest crystal_dungeon begin
        state start begin
            --Functions
            function settings()
                return
                {
                    ["map_index"] = 9,
                    ["spawm_pos"] = {
                        [1] = {21272, 29576},
                        [2] = {21650, 29689},
                        [3] = {21232, 30067},
                        [4] = {21396, 30104},
                        [5] = {21765, 30187},
                    },
                    ["level_check"] = {
                        ["minimum"] = 105,
                        ["maximum"] = 120
                    },
                    ["keys"] = {30701, 30702, 30703},
                    ["metin_stones"] = {8411, 8412, 8413, 8414},
                };
            end
            
            function spawn_boss(level)
                local boss_settings = {
                    [3] = {948, 741, 191},
                    [5] = {949, 431, 544},
                    [7] = {950, 773, 681}
                    };
                
                return d.spawn_mob(boss_settings[level][1], boss_settings[level][2], boss_settings[level][3])
            end
            
            function spawn_metins_4thfloor()
                local setting = crystal_dungeon.settings()
                local r = number (1,8)
                if r == 1 then
                    d.spawn_mob(setting["metin_stones"][3], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 2 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][3], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 3 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][3], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 4 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][3], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 5 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][3], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 6 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][3], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 7 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][3], 397, 737)
                    d.spawn_mob(setting["metin_stones"][2], 410, 714)
                elseif r == 8 then
                    d.spawn_mob(setting["metin_stones"][2], 250, 659)
                    d.spawn_mob(setting["metin_stones"][2], 239, 714)
                    d.spawn_mob(setting["metin_stones"][2], 257, 745)
                    d.spawn_mob(setting["metin_stones"][2], 282, 777)
                    d.spawn_mob(setting["metin_stones"][2], 321, 767)
                    d.spawn_mob(setting["metin_stones"][2], 371, 770)
                    d.spawn_mob(setting["metin_stones"][2], 397, 737)
                    d.spawn_mob(setting["metin_stones"][3], 410, 714)
                end
            end
            
            function make_dungeon()
                local setting = crystal_dungeon.settings()
                
                d.new_jump_party(setting["map_index"], setting["spawm_pos"][1][1], setting["spawm_pos"][1][2])
                d.setf("lair_check", 1)
                d.setf("level_four_login", 0)
                crystal_dungeon.get_regens(1)
            end

            function get_regens(level)
                local regens = {
                    [1] = "data/dungeon/crystal_dungeon/regen_1.txt",
                    [2] = "data/dungeon/crystal_dungeon/regen_2.txt",
                    [3] = "data/dungeon/crystal_dungeon/regen_3.txt",
                    [4] = "data/dungeon/crystal_dungeon/regen_4a.txt",
                    [5] = "data/dungeon/crystal_dungeon/regen_4b.txt",
                    [6] = "data/dungeon/crystal_dungeon/regen_5.txt",
                    [7] = "data/dungeon/crystal_dungeon/regen_5_metins.txt"};
                
                return d.set_regen_file(regens[level])
            end
            
            function party_get_member_pids()
                local pids = {party.get_member_pids()}
                
                return pids
            end
            
            ------
            ------[Dungeon enter]
            ------
            when 20092.chat." Krystalová jeskyně " begin
                local settings = crystal_dungeon.settings()
                
                say_title(mob_name(9214))
                say("")
                
                if not party.is_party() then
                    say(" Pro vstup do Krystalové jeskyně musíš být ve skupině.  ")
                    say("")
                    return
                end
                
                if not party.is_leader() then
                    say("Pouze vůdce skupiny může spustit Jeskyni Krystalů.")
                    say("")
                    say("")
                    say("")
                    return
                end
                
                if party.get_near_count() < 2 then
                    say(" Pokud chceš vstoupit, ")
                    say(" Tvoje skupina musí mít aspoň 2 členy . ")
                    return
                end
                
                local levelCheck, maximlevelCheck = true, true
                local notEnoughLevelMembers, notEnoughmaximLevelMembers = {}, {}
                local pids = {party.get_member_pids()}
                
                for i, pid in next, crystal_dungeon.party_get_member_pids(), nil do
                    q.begin_other_pc_block(pid)
                    
                    if pc.get_level() < settings["level_check"]["minimum"] then
                        table.insert(notEnoughLevelMembers, pc.get_name())
                        levelCheck = false
                    end
                    if pc.get_level() > settings["level_check"]["maximum"] then
                        table.insert(notEnoughmaximLevelMembers, pc.get_name())
                        maximlevelCheck = false
                    end
                    
                    q.end_other_pc_block()
                end
                
                if not levelCheck then
                    say(" Pokud chcete vstoupit do Jeskyně ")
                    say(" Krystalů, musí každý člen skupiny ")
                    say(string.format(" mít minimálně level %s.", settings["level_check"]["minimum"]))
                    say("")
                    say(" Následující členi nemají požadovaný level :")
                    for i, name in next, notEnoughLevelMembers, nil do
                        say("- "..name)
                    end
                    return
                end
                
                if not maximlevelCheck then
                    say(" Pokud chcete vstoupit do Jeskyně  ")
                    say(" Krystalů, musí každý člen skupiny ")
                    say(string.format(" mít minimálně level %s.", settings["level_check"]["maximum"]))
                    say("")
                    say(" Následující členi nemají požadovaný level :  ")
                    for i, name in next, notEnoughmaximLevelMembers, nil do
                        say("- "..name.."")
                    end
                    return
                end
                
                say("Budeš teleportován.")
                say("")
                wait()
                crystal_dungeon.make_dungeon()
            end
            
            ----
            ----Dungeon start
            ----
            
            when login begin
                local get_flag = d.getf("lair_check")
                local four_login = d.getf("level_four_login")
                local six_login = d.getf("level_six_login")
                
                if get_flag == 2 then
                    say_title(" Druhé patro : ")
                    say("")
                    say(" Zabij všechny příšery, aby ti padla pečeť. ")
                    say(" Přetáhnutím pečetě se portneš do dalšího patra. ")
                    say(" Může ti padnout i falešná pečeť.  ")
                    d.setf("crystal_seal", 0)
                elseif get_flag == 3 then
                    say_title(" Třetí patro : ")
                    say("")
                    say(" Zabijte všechny příšery na tomto patře. ")
                    say(" Jsou to strážci Krystalického dráčka.")
                    say(" Po zabití všech příšer se objeví Krystalický dráček. ")
                    say("")
                    say("")
                    say_title(" Rychle! Máš 10 minut. ")
                    if four_login == 0 then
                        d.setf("level_four_login", 1)
                        d.setf("lair_check", 3)
                        clear_server_timer("level_four_timer", get_server_timer_arg())
                        clear_server_timer("exit_before", get_server_timer_arg())
                        server_timer("level_four_timer", 10 * 60, d.get_map_index())
                    end
                elseif get_flag == 4 then
                    say_title(" Čtvrté patro : ")
                    say("")
                    say(" Dobrá práce, mnoho hráčů se tak vysoko nedostalo. ")
                    say(" Rychle! Musíš rozbít balvany aby ti padla pečeť. ")
                    say(" Pouze jedna pečeť je ta správná. ")
                    say("")
                    say("")
                    say("")
                    say_title(" Pilíř je na konci tohoto patra. ")
                    say_title("")
                elseif get_flag == 5 then
                    say_title(" Paté patro : ")
                    say("")
                    say(" Zabij všechny příšery na tomto patře. ")
                    say(" Po zabítí příšer se objeví Krystalický dinosaur ")
                    say(" Zabij Krystalického dinosaura pro postup do dalšího patra. ")
                    say("")
                    say("")
                    say("")
                    say_title(" Hodně štěstí. ")
                elseif get_flag == 6 then
                    say_title(" Šesté patro: ")
                    say("")
                    say(" Pro vstup do dalšího patra musíš rozbít všechny balvany. ")
                    say("")
                    say("")
                    say_title(" Máš 15 minut na rozbití všech balvanů. ")
                    say_title(" Poté budeš teleportován pryč. ")
                    if six_login == 0 then
                        d.setf("level_six_login", 1)
                        d.setf("lair_check", 6)
                        clear_server_timer("level_six_timer", get_server_timer_arg())
                        clear_server_timer("exit_before2", get_server_timer_arg())
                        server_timer("level_six_timer", 15 * 60, d.get_map_index())
                    end
                else
                    return
                end
            end
            
            when kill with npc.get_race() == 940 or npc.get_race() == 941 or npc.get_race() == 942 begin
                local count, check = d.getf("mobs") + 1, false;
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 1 then
                            --83
                    if count < 83 and check == false then
                        d.setf("mobs", count)
                    else
                        if d.getf("metin_stone") == 0 then
                            d.clear_regen()
                            d.kill_all()
                            d.spawn_mob(setting["metin_stones"][1], 261, 276)
                            d.spawn_mob(setting["metin_stones"][1], 242, 303)
                            d.spawn_mob(setting["metin_stones"][1], 293, 305)
                            d.notice(string.format(" %s spawnut ! ", mob_name(8411)))
                            d.setf("metin_stone", 1)
                        end
                        check = true
                    end
                end
            end
            
            when kill with npc.get_race() == 8411 and pc.in_dungeon() begin
                local count, check_metin1 = d.getf("metins") + 1, false;
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 1 then
                    if count < 3 and check_metin1 == false then
                        d.setf("metins", count)
                    else
                        if d.getf("metin_stone1") == 0 then
                            d.notice(" Zvládl jsi to. Budeš teleportován!")
                            d.kill_all()
                            d.setf("lair_check", 2)
                            d.setf("metin_stone1", 1)
                            cleartimer("level_timer")
                            timer("level_timer", 7)
                        end
                        check_metin1 = true
                    end
                end
            end
            
            
            when 942.kill or 943.kill or 944.kill begin
                local count, check_2 = d.getf("mobs_2") + 1, false;
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 2 then
                            --73
                    if count < 73 and check_2 == false then
                        d.setf("mobs_2", count)
                    else
                        if d.getf("crystal_seal") == 0 then
                            game.drop_item(setting["keys"][1], 1)
                            d.setf("crystal_seal", 1)
                        end
                        check_2 = true
                    end
                end
            end
            
            
            when 9210.take with item.vnum == 30701 and pc.in_dungeon() begin
                local setting = crystal_dungeon.settings()
                local n = number (1,2)
                
                if n == 1 then
                    d.clear_regen()
                    pc.remove_item(setting["keys"][1], 1)
                    d.notice(" Toto nebyla správna pečeť .")
                    d.notice(" Dropni správnou !")
                    d.spawn_mob(9211, 753, 172)
                    timer("effect_purge", 10)
                    d.setf("mobs_2", 1)
                    crystal_dungeon.get_regens(2)
                    d.setf("crystal_seal", 0)
                else
                    d.notice(" Toto je správná pečeť. ")
                    d.kill_unique(9210)
                    d.clear_regen()
                    d.kill_all()
                    d.setf("lair_check", 3)
                    pc.remove_item(setting["keys"][1], 1)
                    cleartimer("level_timer")
                    timer("level_timer", 12)
                end
            end
            
            when 940.kill or 943.kill or 944.kill or 945.kill begin
                local count, check3 = d.getf("mobs_3") + 1, false;
                
                if d.getf("lair_check") == 3 then
                            --105
                    if count < 105 and check3 == false then
                        d.setf("mobs_3", count)
                    else
                        if d.getf("crystal_boss1") == 0 then
                            d.kill_all()
                            d.clear_regen()
                            d.notice(" Všechny příšery byli poraženy! ")
                            d.notice(" Krystalický dráček se zjeví zachvíly ! ")
                            timer("third_boss", 10)
                            d.setf("third_boss", 1)
                            d.setf("crystal_boss1", 1)
                        end
                        check3 = true
                    end
                end
            end
            
            when 948.kill begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 3 then
                    d.clear_regen()
                    d.kill_all()
                    d.setf("lair_check", 4)                
                    d.notice(" Krystalický dráček byl zabit! ")
                    d.notice(" Budeš teleportován.")
                    cleartimer("level_four_timer")
                    cleartimer("level_timer")
                    timer("level_timer", 10)
                else
                    return
                end
            end
            
            when 8412.kill begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 4 then
                    game.drop_item(setting["keys"][2],1)
                end                
            end
            
            when 8413.kill begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 4 then
                    game.drop_item(setting["keys"][3],1)
                end
            end
            
            when 9212.take with item.vnum == 30702 and pc.in_dungeon() begin
                local setting = crystal_dungeon.settings()
                pc.remove_item(setting["keys"][2], 1)
                d.spawn_mob(9213, 405, 687)
                timer("wait_eff1", 2)
            end
            
            when 9212.take with item.vnum == 30703 and pc.in_dungeon() begin
                local setting = crystal_dungeon.settings()
                pc.remove_item(setting["keys"][3], 1)
                d.spawn_mob(9213, 405, 687)
                timer("wait_eff2", 2)
            end
            
            when 944.kill or 945.kill or 946.kill begin
                local count, check_4 = d.getf("mobs_5") + 1, false;
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 5 then
                            --75
                    if count < 75 and check_4 == false then
                        d.setf("mobs_5", count)
                    else
                        if d.getf("crystal_dino") == 0 then
                            d.clear_regen()
                            d.kill_all()
                            timer("crystal_dino", 10)
                            d.setf("crystal_dino", 1)
                        end
                        check_4 = true
                    end
                end
            end
            
            when 949.kill with pc.in_dungeon() begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 5 then
                    d.clear_regen()
                    d.kill_all()
                    d.setf("lair_check", 6)                
                    d.notice(" Krystalický dinosaur byl zabit! ")
                    d.notice(" Budeš teleportován do dalšího patra. ")
                    cleartimer("level_timer")
                    timer("level_timer", 10)
                else
                    return
                end
            end

            when 8414.kill with pc.in_dungeon() begin
                local count, check_5 = d.getf("metins_6") + 1, false;
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 6 then
                    if count < 7 and check_5 == false then
                        d.setf("metins_6", count)
                    else
                        if d.getf("crystal_dragon") == 0 then
                            d.notice(" Všechny balvany byly rozbity! ")
                            d.notice(" Krystalický drak se brzy objeví! ")
                            cleartimer("level_six_timer")
                            cleartimer("level_timer")
                            d.kill_all()
                            d.setf("lair_check", 7)
                            d.setf("crystal_dragon", 1)
                            cleartimer("level_timer")
                            timer("level_timer", 7)
                        end
                        check_5 = true
                    end
                end
            end

            when 950.kill with pc.in_dungeon() begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("lair_check") == 7 then
                    d.clear_regen()
                    d.kill_all()
                    d.notice(" Krystalický drak byl zabit! ")
                    d.notice(" Dobrá práce, úspěšně jste prošli Krystalovou jeskyni! ")
                    d.notice(" Za 3minuty budeš teleportován. ")
                    cleartimer("level_timer")
                    server_timer("final", 3 * 60, d.get_map_index())
                else
                    return
                end
            end

            ---
            --- Dungeon end
            ---
            
            ---
            --- TIMERS
            ---        
            when effect_purge.timer begin
                d.kill_unique(9211)
            end
            
            when third_boss.timer begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("third_boss") == 1 then
                    crystal_dungeon.spawn_boss(3)
                    d.setf("third_boss", 0)
                else
                    return
                end
            end
            
            when crystal_dino.timer begin
                local setting = crystal_dungeon.settings()
                
                if d.getf("crystal_dino") == 1 then
                    crystal_dungeon.spawn_boss(5)
                    d.notice(string.format("  %s je tu! Zabij ho! ", mob_name(949)))
                    d.setf("crystal_dino", 0)
                else
                    return
                end
            end
            
            when wait_eff1.timer begin
                d.notice(" Toto nebyla správná pečeť! ")
                d.notice(" Najdi správnou pečeť. ")            
            end
            
            when wait_eff2.timer begin
                d.notice(" Toto byla správná pečeť! ")
                d.notice(" Budeš teleportován do dalšího patra. ")
                d.kill_unique(9212)
                d.clear_regen()
                d.kill_all()
                d.setf("lair_check", 5)
                cleartimer("level_timer")
                timer("level_timer", 12)
            end
            
            when level_four_timer.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.set_warp_location(41, 9694, 2786)
                    d.notice(" Došel ti čas. ")
                    d.notice(" Budeš teleportován! ")
                    
                    server_timer("exit_before", 10, get_server_timer_arg())
                end
            end
            
            when level_six_timer.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.set_warp_location(41, 9694, 2786)
                    d.notice(" Došel ti čas! ")
                    d.notice(" Budeš teleportován! ")
                    
                    server_timer("exit_before2", 10, get_server_timer_arg())
                end
            end

            when final.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.set_warp_location(41, 9694, 2786)
                    d.notice(" Uplynuli 3 minuty. Budeš teleportován. ")
                    
                    server_timer("final_warp", 10, get_server_timer_arg())
                end
            end

            when exit_before.server_timer begin
                if d.select(get_server_timer_arg()) then
                    clear_server_timer("exit_before", get_server_timer_arg())
                    clear_server_timer("final", get_server_timer_arg())
                    clear_server_timer("level_four_timer", get_server_timer_arg())
                    d.exit_all()
                end
            end
            
            when exit_before2.server_timer begin
                if d.select(get_server_timer_arg()) then
                    clear_server_timer("exit_before2", get_server_timer_arg())
                    clear_server_timer("final", get_server_timer_arg())
                    clear_server_timer("level_six_timer", get_server_timer_arg())
                    d.exit_all()
                end
            end
            
            when final_warp.server_timer begin
                if d.select(get_server_timer_arg()) then
                    clear_server_timer("final_warp", get_server_timer_arg())
                    clear_server_timer("final", get_server_timer_arg())
                    clear_server_timer("final", get_server_timer_arg())
                    d.exit_all()
                end
            end
            
            when level_timer.timer begin
                local get_flag = d.getf("lair_check")
                local setting = crystal_dungeon.settings()
                
                d.clear_regen()
                d.kill_all()
                
                if get_flag == 2 then
                    d.new_jump_party(setting["map_index"], setting["spawm_pos"][2][1], setting["spawm_pos"][2][2])
                    crystal_dungeon.get_regens(2)
                    d.spawn_mob(9210, 753, 172)
                    d.setf("lair_check", 2)
                end
                if get_flag == 3 then
                    d.new_jump_party(setting["map_index"], setting["spawm_pos"][2][1], setting["spawm_pos"][2][2])
                    crystal_dungeon.get_regens(3)
                    d.setf("lair_check", 3)
                end
                if get_flag == 4 then
                    d.new_jump_party(setting["map_index"], setting["spawm_pos"][3][1], setting["spawm_pos"][3][2])
                    crystal_dungeon.get_regens(4)
                    d.setf("lair_check", 4)
                    crystal_dungeon.spawn_metins_4thfloor()
                end
                if get_flag == 5 then
                    d.new_jump_party(setting["map_index"], setting["spawm_pos"][4][1], setting["spawm_pos"][4][2])
                    crystal_dungeon.get_regens(5)
                    d.setf("lair_check", 5)
                end
                if get_flag == 6 then
                    d.new_jump_party(setting["map_index"], setting["spawm_pos"][5][1], setting["spawm_pos"][5][2])
                    crystal_dungeon.get_regens(6)
                    crystal_dungeon.get_regens(7)
                    d.setf("lair_check", 6)
                end
                if get_flag == 7 then
                    crystal_dungeon.spawn_boss(7)
                    d.setf("lair_check", 7)
                end
            end
            
        end
    end
     

     

    Thanks for help. ?

    • Lmao 1
×
×
  • 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.