--[[ DungeonLib, Dungeon Information System Library, Version 1.8 Copyright 2019 Owsap Productions ]] dungeonLib = {} dungeonInfo = {} dungeonInfo.table = { -- game.get_event_flags --[[ { ["type"] = 2, -- Dungeon type [ 0 (Unkown), 1 (Private), 2 (Global) ] ["organization"] = 0, -- Dungeon organization [ 0 (None), 1 (Party), 2 (Guild) ] ["level_limit"] = 75, -- Dungeon level limit [ max_level ] ["party_members"] = 8, -- Dungeon party members [ max_members (0) Unlimited ] ["map"] = 66, -- Dungeon map index ["cooldown"] = 0, -- [ 0 (None) ] | Ex: 60 * 60 * 3 = 3 hours ["duration"] = 0, -- [ 0 (None) ] | Ex: 60 * 60 * 3 = 3 hours ["entrance_map"] = 65, -- Entrance map index ["strength_bonus"] = 63, -- Strength bonus id against dungeon monsters ["resistance_bonus"] = 35, -- Resistance bonus id against dungeon monsters ["item_vnum"] = 0, -- Required dungeon item }, { -- Balçıks ["type"] = 2, ["organization"] = 0, ["level_limit"] = 65, ["party_members"] = 0, ["map"] = 313, ["map_coords"] = {5851, 1296}, ["cooldown"] = 60*15*1, ["duration"] = 60*5, ["entrance_map"] = 65, ["strength_bonus"] = 35, ["resistance_bonus"] = 43, ["item_vnum"] = 30812, },]] { -- devil_tower ["type"] = 2, ["organization"] = 0, ["level_limit"] = 55, ["party_members"] = 8, ["map"] = 66, ["map_coords"] = {5905, 1108}, ["cooldown"] = 60, ["duration"] = 0, ["entrance_map"] = 65, ["strength_bonus"] = 35, ["resistance_bonus"] = 44, ["item_vnum"] = 0, }, { -- catacomb ["type"] = 1, ["organization"] = 0, ["level_limit"] = 75, ["party_members"] = 5, ["map"] = 216, ["map_coords"] = {3151, 13163}, ["cooldown"] = 60*45, ["duration"] = 60*15, ["entrance_map"] = 216, ["strength_bonus"] = 35, ["resistance_bonus"] = 44, ["item_vnum"] = 30319, }, { -- ork_maze ["type"] = 1, ["organization"] = 0, ["level_limit"] = 75, ["party_members"] = 0, ["map"] = 245, ["map_coords"] = {3306, 7553}, ["cooldown"] = 60*45*1, ["duration"] = 60*15*1, ["entrance_map"] = 64, ["strength_bonus"] = 35, ["resistance_bonus"] = 44, ["item_vnum"] = 90005, }, { -- Barones ["type"] = 1, ["organization"] = 0, ["level_limit"] = 75, ["party_members"] = 0, ["map"] = 217, ["map_coords"] = {689, 6107}, ["cooldown"] = 60*45, ["duration"] = 60*15, ["entrance_map"] = 71, ["strength_bonus"] = 1, ["resistance_bonus"] = 43, ["item_vnum"] = 30324, }, { -- Beran-Setaou ["type"] = 1, ["organization"] = 0, ["level_limit"] = 80, ["party_members"] = 0, ["map"] = 207, ["map_coords"] = {1815, 12206}, ["cooldown"] = 60*15, ["duration"] = 60*15, ["entrance_map"] = 73, ["strength_bonus"] = 39, ["resistance_bonus"] = 40, ["item_vnum"] = 30179, }, { -- Razadör ["type"] = 1, ["organization"] = 0, ["level_limit"] = 90, ["party_members"] = 0, ["map"] = 351, ["map_coords"] = {6013, 7071}, ["cooldown"] = 60*60*1, ["duration"] = 60*15, ["entrance_map"] = 62, ["strength_bonus"] = 22, ["resistance_bonus"] = 41, ["item_vnum"] = 71175, }, { -- Nemere ["type"] = 1, ["organization"] = 0, ["level_limit"] = 90, ["party_members"] = 0, ["map"] = 352, ["map_coords"] = {4320, 1650}, ["cooldown"] = 60*60, ["duration"] = 60*15, ["entrance_map"] = 61, ["strength_bonus"] = 22, ["resistance_bonus"] = 40, ["item_vnum"] = 71174, }, { -- Jotunheim ["type"] = 1, ["organization"] = 0, ["level_limit"] = 95, ["party_members"] = 0, ["map"] = 353, ["map_coords"] = {8295, 14188}, ["cooldown"] = 60*60*2, ["duration"] = 60*15, ["entrance_map"] = 353, ["strength_bonus"] = 35, ["resistance_bonus"] = 43, ["item_vnum"] = 30613, }, { -- Mantar ["type"] = 2, ["organization"] = 0, ["level_limit"] = 100, ["party_members"] = 0, ["map"] = 244, ["map_coords"] = {11144, 534}, ["cooldown"] = 60*60*2, ["duration"] = 60*15, ["entrance_map"] = 68, ["strength_bonus"] = 1, ["resistance_bonus"] = 42, ["item_vnum"] = 31322, }, { -- hydra ["type"] = 1, ["organization"] = 0, ["level_limit"] = 100, ["party_members"] = 5, ["map"] = 502, ["map_coords"] = {1686, 6117}, ["cooldown"] = 60*60*2, ["duration"] = 60*15, ["entrance_map"] = 502, ["strength_bonus"] = 63, ["resistance_bonus"] = 40, ["item_vnum"] = 31323, }, { -- Crystal ["type"] = 1, ["organization"] = 0, ["level_limit"] = 110, ["party_members"] = 8, ["map"] = 9, ["map_coords"] = {7339, 6231}, ["cooldown"] = 60*60*3, ["duration"] = 60*15, ["entrance_map"] = 64, ["strength_bonus"] = 35, ["resistance_bonus"] = 41, ["item_vnum"] = 55034, }, { -- blue_tower ["type"] = 1, ["organization"] = 0, ["level_limit"] = 110, ["party_members"] = 8, ["map"] = 18, ["map_coords"] = {5905, 1108}, ["cooldown"] = 60*60*3, ["duration"] = 60*15, ["entrance_map"] = 65, ["strength_bonus"] = 35, ["resistance_bonus"] = 44, ["item_vnum"] = 55035, }, { -- midgard_dungeon ["type"] = 0, ["organization"] = 0, ["level_limit"] = 110, ["party_members"] = 6, ["map"] = 507, ["map_coords"] = {10608, 7620}, ["cooldown"] = 60*60*4, ["duration"] = 60*15, ["entrance_map"] = 69, ["strength_bonus"] = 35, ["resistance_bonus"] = 43, ["item_vnum"] = 31324, }, { -- Zodyak ["type"] = 2, ["organization"] = 0, ["level_limit"] = 90, ["party_members"] = 0, ["map"] = 358, ["map_coords"] = {3334, 14313}, ["cooldown"] = 0, ["duration"] = 0, ["entrance_map"] = 358, ["strength_bonus"] = 63, ["resistance_bonus"] = 0, ["item_vnum"] = 0, }, { -- Balçık ["type"] = 2, ["organization"] = 0, ["level_limit"] = 115, ["party_members"] = 0, ["map"] = 27, ["map_coords"] = {5851, 1296}, ["cooldown"] = 60*60*6, ["duration"] = 60*15, ["entrance_map"] = 65, ["strength_bonus"] = 35, ["resistance_bonus"] = 44, ["item_vnum"] = 70001, }, { -- maymun ["type"] = 2, ["organization"] = 0, ["level_limit"] = 115, ["party_members"] = 0, ["map"] = 248, ["map_coords"] = {10705, 15265}, ["cooldown"] = 60*60*6, ["duration"] = 60*15, ["entrance_map"] = 67, ["strength_bonus"] = 0, ["resistance_bonus"] = 44, ["item_vnum"] = 70021, }, { -- Veba ["type"] = 2, ["organization"] = 0, ["level_limit"] = 120, ["party_members"] = 0, ["map"] = 30, ["map_coords"] = {3279, 7590}, ["cooldown"] = 60*60*8, ["duration"] = 60*15, ["entrance_map"] = 64, ["strength_bonus"] = 112, ["resistance_bonus"] = 42, ["item_vnum"] = 30813, }, { -- Baykus ["type"] = 2, ["organization"] = 0, ["level_limit"] = 120, ["party_members"] = 0, ["map"] = 251, ["map_coords"] = {2900, 393}, ["cooldown"] = 60*60*8, ["duration"] = 60*15, ["entrance_map"] = 67, ["strength_bonus"] = 0, ["resistance_bonus"] = 44, ["item_vnum"] = 50067, }, { -- Naga ["type"] = 2, ["organization"] = 0, ["level_limit"] = 120, ["party_members"] = 0, ["map"] = 249, ["map_coords"] = {5769, 1331}, ["cooldown"] = 60*60*12, ["duration"] = 60*15, ["entrance_map"] = 65, ["strength_bonus"] = 0, ["resistance_bonus"] = 42, ["item_vnum"] = 30812, }, { -- Sualti ["type"] = 2, ["organization"] = 0, ["level_limit"] = 120, ["party_members"] = 0, ["map"] = 76, ["map_coords"] = {1686, 6117}, ["cooldown"] = 60*60*12, ["duration"] = 60*15, ["entrance_map"] = 502, ["strength_bonus"] = 112, ["resistance_bonus"] = 40, ["item_vnum"] = 30814, }, } dungeonInfo.map_name = { [0] = "Bilinmiyor", [9] = "Kristal Zindan", [64] = "Seungryong Vadisi", [65] = "Hwang Tapınağı ", [66] = "Şeytan Kulesi", [216] = "Şeytan Katakombu", [321] = "Büyülü Orman", [322] = "Erebus Zindanı ", [502] = "Gemi Savunması Girişi ", [207] = "Beran-Setaou ", [73] = "Sürgün Mağarası Kat 2 ", [71] = "Örümcek Zindanı Kat 2 ", [217] = "Baronesin İni ", [61] = "Sohan Dağı ", [352] = "Nemerenin Gözetleme Kulesi", [62] = "Doyum Paper ", [351] = "Kırmızı Ejderha Kalesi ", [302] = "Guatama Uçurumu ", [353] = "Jotun Thrym ", [358] = "Zodyak Tapınağı ", [244] = "Lanetli Orman ", [67] = "Hayalet Orman ", [68] = "Kızıl Orman ", [507] = "Ruhlar Mağarası ", [69] = "Yılan Vadisi ", [245] = "Ork Labirenti ", [18] = "Şeytani Kurt Mağarası ", [27] = "Balçık Mağarası ", [248] = "Lanetli Maymun Adası ", [30] = "Veba Zindanı ", [251] = "Kral Baykus ", [249] = "Naga Kraliçesi ", [76] = "Balina Mağarası Girişi ", } dungeonInfo.bonus_name = { [0] = "Bilinmiyor ", [1] = "Hayvanlara Karşı Güç ", [19] = "Orklara Karşı Güç ", [22] = "Şeytanlara Karşı Güç ", [63] = "Canavarlara Karşı Güç ", [35] = "Ölümsüzlere Karşı Güç", [38] = "Orklara Karşı Güç ", [39] = "Mistiklere Karşı Güç ", [40] = "Buz Tılsımı ", [41] = "Ateş Tılsımı ", [42] = "Toprak Tılsımı ", [43] = "Rüzgar Tılsımı ", [44] = "Karanlık tılsımı ", [45] = "Şimşek Tılsımı ", [112] = "Patronlara Karşı Güç ", } function dungeonLib.GetRepTime(dungeon_index) if dungeon_index == 66 then -- devil_tower return 83832 -- Sürekli girilebilir elseif dungeon_index == 507 then -- midgard_dungeon return pc.getf("ruh_dungeon", "ruh_dungeon_cooltime") elseif dungeon_index == 358 then -- Zodyak return 83833 -- Animasfer ile girilebilir elseif dungeon_index == 501 then -- hydra return pc.getf("hidra_dungeons", "hidra_dungeons_cooltime") elseif dungeon_index == 244 then -- Mantar return pc.getf("mushroom_dungeon", "mushroom_dungeon_cooltime") elseif dungeon_index == 245 then -- ork_zindani return pc.getf("ork_maze_dungeon", "ork_maze_dungeon_cooltime") elseif dungeon_index == 216 then -- catacomb return pc.getf("catacomb_dungeon", "catacomb_dungeon_cooltime") elseif dungeon_index == 207 then -- Beran-Setaou return pc.getf("mavi_dungeon", "mavi_dungeon_cooltime") elseif dungeon_index == 217 then -- Barones return pc.getf("barones_dungeon", "barones_dungeon_cooltime") elseif dungeon_index == 352 then -- Nemere return pc.getf("nemere_dungeon","nemere_dungeon_cooltime") elseif dungeon_index == 351 then -- Razadör return pc.getf("razo_dungeon","razo_dungeon_cooltime") elseif dungeon_index == 353 then -- Jotunheim return pc.getf("jotunheim_dungeon","jotunheim_dungeon_cooltime") elseif dungeon_index == 18 then -- BlueTower return pc.getf("maviolum_dungeon", "maviolum_dungeon_cooltime") elseif dungeon_index == 9 then -- Crystal return pc.getf("kristal_dungeon", "kristal_dungeon_cooltime") elseif dungeon_index == 76 then -- Sualti return pc.getf("maymunsu", "dungeon_time") elseif dungeon_index == 27 then -- Balçık return pc.getf("salyamen_dungeon", "salyamen_dungeon_cooltime") elseif dungeon_index == 30 then -- Veba return pc.getf("veba_dungeon", "veba_dungeon_cooltime") elseif dungeon_index == 251 then -- Baykus return pc.getf("baykus_dungeon", "baykus_dungeon_cooltime") elseif dungeon_index == 249 then -- Naga return pc.getf("naga_dungeon", "naga_dungeon_cooltime") elseif dungeon_index == 76 then -- Sualti return pc.getf("balina_zindan", "balina_zindan_cooltime") elseif dungeon_index == 248 then -- korsun return pc.getf("korsan_dungeon", "korsan_dungeon_cooltime") end end function dungeonLib.update() local dungeonTable = dungeonInfo.table if table.getn(dungeonTable) == 0 then return end cmdchat(string.format("DungeonInfo %d", q.getcurrentquestindex())) cmdchat(string.format("CleanDungeonInfo")) for index in ipairs(dungeonTable) do -- Get indexed data from dungeon table dungeonType = dungeonTable[index]["type"] dungeonOrganization = dungeonTable[index]["organization"] dungeonLevelLimit = dungeonTable[index]["level_limit"] dungeonPartyMembers = dungeonTable[index]["party_members"] dungeonMap = dungeonTable[index]["map"] dungeonMapIndex = dungeonMap dungeonMapCoordX = dungeonTable[index]["map_coords"][1] dungeonMapCoordY = dungeonTable[index]["map_coords"][2] dungeonCooldown = dungeonTable[index]["cooldown"] dungeonDuration = dungeonTable[index]["duration"] dungeonEntranceMap = dungeonTable[index]["entrance_map"] dungeonStrengthBonus = dungeonTable[index]["strength_bonus"] dungeonResistanceBonus = dungeonTable[index]["resistance_bonus"] dungeonItemVnum = dungeonTable[index]["item_vnum"] dungeonRepTime = dungeonLib.GetRepTime(dungeonMap) -- Converts data to string dungeonMapName = dungeonInfo.map_name[dungeonMap] dungeonEntranceMapName = dungeonInfo.map_name[dungeonEntranceMap] dungeonStrengthBonusName = dungeonInfo.bonus_name[dungeonStrengthBonus] dungeonResistanceBonusName = dungeonInfo.bonus_name[dungeonResistanceBonus] -- Replace converted strings for client communication dungeonMapName = string.gsub(dungeonMapName, " ", "_") dungeonEntranceMapName = string.gsub(dungeonEntranceMapName, " ", "_") dungeonStrengthBonusName = string.gsub(dungeonStrengthBonusName, " ", "_") dungeonResistanceBonusName = string.gsub(dungeonResistanceBonusName, " ", "_") cmdchat(string.format("UpdateDungeonInfo %d %d %d %d %s %d %d %d %d %d %s %s %s %d %d %d %d %d", dungeonType, dungeonOrganization, dungeonLevelLimit, dungeonPartyMembers, dungeonMapName, dungeonMapIndex, dungeonMapCoordX, dungeonMapCoordY, dungeonCooldown, dungeonDuration, dungeonEntranceMapName, dungeonStrengthBonusName, dungeonResistanceBonusName, dungeonItemVnum, 0, 0, 0, dungeonRepTime )) end end