Jump to content

Recommended Posts

  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

  • Premium

quest arena_manager begin
    state start begin
        when 20017.chat.gameforge.arena_manager._10_npcChat begin
            if game.get_event_flag("arena_close") > 0 then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._30_say)
                return
            end

            if not npc.lock() then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._40_say)
                return
            end

            local useMinLevel = game.get_event_flag("arena_use_min_level")

            if useMinLevel == 0 then
                useMinLevel = 25 ;
            end

            if pc.get_level() < useMinLevel then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._50_say, useMinLevel))
                npc.unlock()
                return
            else
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._60_say)

                local sname = input()

                if sname == "" then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._70_say)
                    npc.unlock()
                    return
                else
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._80_say, pc.name, sname))
                wait("")

                    local opp_vid = find_pc_by_name(sname)

                    if opp_vid == 0 then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._90_say, sname))
                        npc.unlock()
                        return
                    elseif opp_vid == pc.get_vid() then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._100_say)
                        npc.unlock()
                        return
                    end

                    local old = pc. select(opp_vid , opp_vid )
                    local opp_level = pc.get_level()
                    pc. select(old , old )

                    if opp_level < useMinLevel then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._110_say, useMinLevel))
                        npc.unlock()
                        return
                    end
                    if not npc.is_near_vid(opp_vid, 10) then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._120_say, sname))
                        npc.unlock()
                        return ;
                    end

                    local a = arena.is_in_arena(opp_vid)
                    if a == 0 then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._130_say, sname))
                        npc.unlock()
                        return ;
                    end
                say_title(gameforge.arena_manager._140_sayTitle)
                say(string.format(gameforge.arena_manager._85_say, pc.name, sname))
                    local agree = confirm(opp_vid, string.format(gameforge.arena_manager._87_say, sname, pc.name), 30)
                    if agree!= CONFIRM_OK then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(string.format(gameforge.arena_manager._150_say, sname))
                        npc.unlock()
                        return
                    end

                    s = arena.start_duel(sname, 3)
            
                    if s == 0 then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._160_say)
                    elseif s == 2 then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._170_say)
                    elseif s == 3 then
                say_title(gameforge.arena_manager._20_sayTitle)
                say(gameforge.arena_manager._180_say)
                    end
                end
            end
            npc.unlock()
        end

        when 20017.chat.gameforge.arena_manager._190_npcChat begin
            local g = arena.get_duel_list()
            local arena_name = {}
            local arena_observer = {}

            table.foreachi(g,
                function(n, p)
                    arena_name[n] = string.format(gameforge.arena_manager._195_say, p[1], p[2])
                    arena_observer[n] = { p[3], p[4], p[5] }
                end
            )

            table.insert(arena_name, gameforge.arena_manager._200_tableInsert)
            table.insert(arena_observer, 0)

            local count = table.getn(g)
            if count == 0 then
            say_title(gameforge.arena_manager._20_sayTitle)
            say(gameforge.arena_manager._210_say)
            return ;
            else
            say_title(gameforge.arena_manager._20_sayTitle)
            say(string.format(gameforge.arena_manager._220_say, count))
            wait()
            end

            if table.getn(g)!= 0 then
                local s = select_table(arena_name)

                if table.getn(arena_observer) == s then
                    return ;
                end

                if table.getn(arena_observer) >= s then
                    arena.add_observer(arena_observer[1], arena_observer[2], arena_observer[3])
                end
            end
        end
    end
end


 

Link to comment
Share on other sites

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.