فوكس كونكر - 🦊 - Conquer
موضوع بعنوان :كويست الزعماء
الكاتب :ابو ريتاج


[
quest mohamedxx begin
    state start begin
        function setting()
            return
            {
                ["map_index"] = 63,  --  رقم الماب  
                ["ticket_vnum"] = 30613,   -- شرط الماب
                ["dungeon_entry_pos"] = {2968, 5474},  -- احداثي النقل 
                ["boss1"] = 6407,  --  اول وحش بيظهر 
                ["boss2"] = 6418,  --  الزعيم 
                ["spawn"] = {888, 626},  -- احداثي الوحش
            }
        end
        
        function make_dungeon(ld_vid, channel)
            local setting = mohamedxx.setting()
            local event_flag = string.format("frt_dungeon_status_%d", channel)
            game.set_event_flag(event_flag, get_time() + 60 * 120)
            
            d.new_jump_party(setting.map_index, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
            d.setf("frt_party_leader_pid", ld_vid)
            party.setf("frt_dungeon_index", d.get_map_index())
            
            d.spawn_mob(setting.boss1, setting.spawn[1], setting.spawn[2])
            clear_server_timer("frt_2h_left_timer", get_server_timer_arg())
            clear_server_timer("frt_exit_timer", get_server_timer_arg())
            server_timer("frt_2h_left_timer", 60 * 120, d.get_map_index())
        end
        
        when login begin
            local idx = pc.get_map_index()
            local setting = mohamedxx.setting()
            if idx >= (setting.map_index * 10000) and idx < (setting.map_index * 10000 + 10000) then
                pc.setf("enchanted_forest", "limit_activity", 0)
                if pc.getqf("dungeon_enter") > 0 then
                    pc.setqf("dungeon_enter", 0)
                    return
                end
                
                pc.warp(4693000, 9642000)
            end
        end
        
        when logout begin
            local idx = pc.get_map_index()
            local setting = mohamedxx.setting()
            if idx >= (setting.map_index * 10000) and idx < (setting.map_index * 10000 + 10000) then
                pc.setqf("exit_time_logout", get_global_time() + 5 * 60)
                if pc.getqf("dungeon_enter") > 0 then
                    pc.setqf("dungeon_enter", 0)
                end
                
                pc.setf("enchanted_forest", "limit_activity", get_time() + 10 * 60)
            end
        end
        
        when 6407.kill with pc.in_dungeon() begin
            local setting = mohamedxx.setting()
            d.spawn_mob(setting.boss2, setting.spawn[1], setting.spawn[2])
        end
        
        when 6418.kill with pc.in_dungeon() begin
            local setting = mohamedxx.setting()
            d.set_warp_location(202,4693, 9642)
            
            d.notice(" رائع, لقد احللت السلام الي داخل الغابة المسحورة!")
            d.notice(" سيتم نقلك خارج الغابة المسحورة بعد ثوان. ")
            
            server_timer("frt_exit_timer", 30, d.get_map_index())
        end
        
        when frt_2h_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.set_warp_location(202,4693, 9642)
                d.notice(" لقد انقضي الوقت. ")
                
                server_timer("frt_exit_timer", 3, get_server_timer_arg())
            end
        end
        
        when frt_exit_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                clear_server_timer("frt_exit_timer", get_server_timer_arg())
                clear_server_timer("frt_2h_left_timer", get_server_timer_arg())
                d.setf("frt_party_leader_pid", 0)
                d.exit_all()
            end
        end
        
        when 30122.chat." غرفة باغجانمو " begin
            local setting = mohamedxx.setting()
            
            say_title(mob_name(30122))
            say("")
            say(" هل تريد ان تحارب ضد باغجانمو ؟ ")
            local agree = select(" نعم ", " لا ")
            if agree == 1 then
                say_title(mob_name(30122))
                say("")
                if not party.is_party() then
                    say(" لتستطيع الدخول للغرفة يجب ان تكون ضمن ")
                    say(" اعضاء المجموعة. ")
                    return
                end
                
                local party_check = 0
                if d.find(party.getf("frt_dungeon_index")) then
                    party_check = (d.getf_from_map_index("frt_party_leader_pid", party.getf("frt_dungeon_index")) == party.get_leader_pid())
                end
                
                local event_flag = string.format("frt_dungeon_status_%d", pc.get_channel_id())
    
                if not party.is_leader() then
                    say(" لتستطيع الدخول الي الغرفة يجب ان تكون ")
                    say(" قائد المجموعة. ")
                    return
                end
                
                if party.get_near_count() < 2 then
                    say(" لتستطيع الدخول الي الغرفة يجب ان يكون بجانبك ")
                    say(" 2 اعضاء في مجموعتك. ")
                    return
                end
                
                local pids = {party.get_member_pids()}
                local ticketCheck = true
                local notEnoughTicketMembers = {}
                
            --    for i, pid in next, pids, nil do
            --        q.begin_other_pc_block(pid)
            --        if pc.count_item(setting.ticket_vnum) < 1 then
            --            table.insert(notEnoughTicketMembers, pc.get_name())
            --            ticketCheck = false
            --        end
                    
            --        q.end_other_pc_block()
            --    end
                
            --    if not ticketCheck then
            --        say(" لتستطيع الدخول الي الغرفة يجب  ")
            --        say(string.format(" ان يمتلك كل عضو من المجموعة %s.", item_name(setting.ticket_vnum)))
            --        say("")
            --        say(" الاعضاء الأتيين لا يمتكلون الأداة:")
            --        for i, name in next, notEnoughLevelMembers, nil do
            --            say("- "..name.."")
            --        end
                    
            --        return
            --    end
                
            --    for i, pid in next, pids, nil do
            --        q.begin_other_pc_block(pid)
            --        pc.remove_item(setting.ticket_vnum, 1)
            --        pc.setf("mohamedxx", "dungeon_enter", 1)
            --        q.end_other_pc_block()
            --    end
                
                say(" بعد ان تكمل اعضاء المجموعة ")
                say(" سيتم نقلهم الي داخل الغرفة. ")
                wait()
                mohamedxx.make_dungeon(party.get_leader_pid(), pc.get_channel_id())
            end
        end
    end
end


 
 كرر نفس الكويست مع تغيير الزعيم و الوحش ال يظهر قبل زعيم  

 اول وحش يظهر  هاد تقتله يظهر لك الزعيم بعد قتله  تنتقل للمدينة مباشرة  تقدر تفعل الكويست على اي شخصية بالمدينة و تحط احداثي اي ماب بدك اياه [/]