asusta099 Posted October 31, 2015 Report Share Posted October 31, 2015 Me dijeron que ya estaba posteada en algún lado, así que yo la posteo aquí. Esta versión no tiene errores, yo la usaba. QUEST: quest snow_dungeon begin state start begin function _TimersKilledLevel(v) if d.getf("level") == 1 and d.count_monster() <= 0 then --d.notice("Has derrotado a todos los monstruos en unos segundos irás a la siguiente planta. (1)") d.setf("level",2) snow_dungeon._DungeonClear() server_timer("SnowJp_2",5,d.get_map_index()) elseif d.getf("level") == 3 and d.count_monster() <= 0 then --d.notice("Has derrotado a todos los monstruos en unos segundos irás a la siguiente planta. (3)") d.setf("level",4) snow_dungeon._DungeonClear() server_timer("SnowJp_4",5,d.get_map_index()) elseif d.getf("level") == 4 and d.getf("mobwelle") == 1 and d.count_monster() <= 0 then d.notice("La defensa Szel fue muy devil...") d.setf("level",4) snow_dungeon._DungeonClear() server_timer("SnowJp_41",5,d.get_map_index()) elseif d.getf("level") == 4 and d.getf("mobwelle") == 2 and d.count_monster() <= 0 then --d.notice("Has derrotado a todos los monstruos en unos segundos irás a la siguiente planta. (41)") d.setf("level",5) snow_dungeon._DungeonClear() server_timer("SnowJp_5",5,d.get_map_index()) else if v == 1 then server_timer ("Killed_Level2", 8, get_server_timer_arg()) elseif v == 2 then server_timer ("Killed_Level", 8, get_server_timer_arg()) end end end function isFlame01Map() -- snow_dungeon.isFlame01Map() local set = snow_dungeon.get_settings() local idx = pc.get_map_index() if idx == set.outside_entry_pos[1] then return true else return false end end function is_nemeres_dungeon() local set = snow_dungeon.get_settings() local map = pc.get_map_index() if map >= (set.map_index * 10000) and map < (set.map_index * 10000 + 9000) then return true else return false end end function _CheckMembersLevel() local set = snow_dungeon.get_settings() if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("Modo Test activo.") return true end local user_fail_level = {} local pids = {party.get_member_pids()} local need_level = set.need_level_group local have_ninja = false local have_shaman = false for i = 1, table.getn(pids), 1 do q.begin_other_pc_block(pids[i]) if pc.get_level() < need_level then table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name()) end local job = pc.get_job() if job == 1 -- Ninja weiblich or job == 5 --Ninja männlich then have_ninja = true end if job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then have_shaman = true end q.end_other_pc_block() end if have_ninja == false then say("No puede iniciar la mazmorra si no tiene un") say("Ninja en su grupo.") return false end if have_shaman == false then say("No puede iniciar la mazmorra si no tiene un") say("Chamán en su grupo.") return false end if table.getn(user_fail_level) >= 1 then say_npc() say("") say("Algunos miembros del grupo no tienen el nivel") say("Nivel "..need_level.." no alcanzado:") for x = 1, table.getn(user_fail_level), 1 do say(color(1,1,0), " "..user_fail_level[x]) end return false end if table.getn(user_fail_level) == 0 then return true end end function is_TestServerMode() local set = snow_dungeon.get_settings() return set.Enable_TestServerMode end function _ClearAlls() local d_index = d.get_map_index() clear_server_timer("SnowJp_1",d_index) clear_server_timer("SnowJp_2",d_index) clear_server_timer("SnowJp_3",d_index) clear_server_timer("SnowJp_4",d_index) clear_server_timer("SnowJp_41",d_index) clear_server_timer("SnowJp_5",d_index) clear_server_timer("SnowJp_6",d_index) clear_server_timer("SnowJp_7",d_index) clear_server_timer("SnowJp_8",d_index) clear_server_timer("SnowJp_9",d_index) clear_server_timer("SnowJp_Boss",d_index) clear_server_timer("Killed_Level",d_index) clear_server_timer("Killed_Level2",d_index) clear_server_timer("SnowLeftTime_0",d_index) clear_server_timer("SnowLeftTime_1",d_index) clear_server_timer("SnowLeftTime_2",d_index) clear_server_timer("SnowLeftTime_3",d_index) clear_server_timer("SnowLeftTime_4",d_index) d.purge_unique("SnowDungeonStartNpc") d.setf("level",0) d.setf("party_leader_pid",0) d.clear_regen() end function get_settings() local snow_dungeon_settings = {} snow_dungeon_settings.map_index = 219 snow_dungeon_settings.base_cord = {5120, 1536 } snow_dungeon_settings.outside_entry_pos = {61,4322,1655} snow_dungeon_settings.need_level = 100 snow_dungeon_settings.need_level_group = 100 snow_dungeon_settings.GroupDuration = 60*60*4 snow_dungeon_settings.WarpMode = 1 -- 1 == Gruppe, 2 == Todo el mapa, 3 == Solo uno, == 4 solo uno snow_dungeon_settings.WarpPositions = { --d.warp_all {5291,1814}, --Level 1 {5540,1797}, {5882,1800}, {5293,2071}, {5540,2074}, --Level 5 {5866,2076}, {5423,2244}, {5689,2237}, {5969,2229},--Level 9 {6047,1924} --Jefe } snow_dungeon_settings.JumpPositionns = { --d.jump_all {173,278}, --Level 1 {422,261}, {764,264}, {175,535}, {422,538}, --Level 5 {748,540}, {305,708}, {571,701}, {851,693}, --Level 9 {927,395} --Jefe } --['LEVEL2_STONE_pos'] = {421,191}, --['LEVEL4_TARGET_pos'] = {171,496}, snow_dungeon_settings.LEVEL1_NPC_vnum = 20397 snow_dungeon_settings.LEVEL1_NPC_pos = {172,261} snow_dungeon_settings.LEVEL2_REALKEY_vnum = 30331 snow_dungeon_settings.LEVEL5_STONE_pos = { {449, 488}, {455, 445}, {419, 422}, {382, 444}, {389, 488} } snow_dungeon_settings.LEVEL5_STONE_vnum = 20398 snow_dungeon_settings.LEVEL5_REALKEY_vnum = 30332 snow_dungeon_settings.LEVEL6_TARGET_pos = {747,494} snow_dungeon_settings.LEVEL6_STONE_vnum = 8058 --Metin snow_dungeon_settings.LEVEL7_BOSSMOB_pos = { {302, 678}, {281, 657}, {303, 635}, {324, 656} } snow_dungeon_settings.LEVEL7_BOSSMOB_vnum = 6151 snow_dungeon_settings.LEVEL8_REALKEY_vnum = 30333 --['LEVEL8_STONE_pos'] = {570, 650} snow_dungeon_settings.LEVEL9_TARGET_pos = {849, 660} snow_dungeon_settings.LEVEL9_STONE_vnum = 20399 snow_dungeon_settings.boss_pos = {927,333} snow_dungeon_settings.BossVnumGroup = 6062 --GroupMobVnum of Boss --(Group.txt) snow_dungeon_settings.BossVnum = 6191 --MobVnum of 10.Ebene --Nemere(6191) snow_dungeon_settings.Enable_TestServerMode = false snow_dungeon_settings.WarpOutOnLoginMap = true return snow_dungeon_settings end when 20395.chat."Torre Nemere" with snow_dungeon.isFlame01Map() == true begin if npc.lock() == false then set_skin(NOWINDOW) return end local set = snow_dungeon.get_settings() say_npc() say("") say("¿Quieres entrar a Torre") say("Nemere con tu grupo?") say("Tenga cuidado,") say("el lugar es muy peligroso y") say("en un descuido usted podria salir") say("muerto.") say("") say("¿Estan seguro de entrar?") if select("Si, Queremos iniciar!","No, no estamos preparados...") == 2 then return end if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then say("Habilitar modo Servidor prueba") say("Suscríbete ahora.") timer("MakeSnowDungeonCreate",3) return end if not party.is_leader() then say_npc() say("Seria glorosio que usted solo pudiera") say("destruir la Torre Nemere.") say("Usted puede terminar muerto, así que le pido") say("forme un grupo y vuelva.") return end if pc.get_level() < set.need_level then say("Usted necesita por lo menos el nivel "..set.need_level.."") say("para poder entrar a Nemere.") return end if (pc.getf("snow_dungeon","duration") + set.GroupDuration) >= get_global_time() then say_npc() say("El tiempo de espera para poder entrar a ") say("torre Nemere aún no ha expirado. ") say("Comp. Tiempo: "..LIB_duration(pc.getf("snow_dungeon","duration") - get_global_time()).."") return end if snow_dungeon._CheckMembersLevel() == false then return else timer("MakeSnowDungeonCreate",2) end end when MakeSnowDungeonCreate.timer begin local set = snow_dungeon.get_settings() local t = get_global_time() local level = 1 if snow_dungeon.is_TestServerMode() == true then set.WarpMode = 2 end if set.WarpMode == 1 then --Gruppe d.new_jump_party(set.map_index, set.WarpPositions[level][1], set.WarpPositions[level][2] ) elseif set.WarpMode == 2 then d.new_jump_all(set.map_index, set.WarpPositions[level][1], set.WarpPositions[level][2] ) elseif set.WarpMode == 3 then d.new_jump(set.map_index, set.WarpPositions[level][1] * 100, set.WarpPositions[level][2] * 100) elseif set.WarpMode == 4 then d.new_jump(set.map_index, set.WarpPositions[level][1], set.WarpPositions[level][2]) else d.new_jump_all(set.map_index, set.WarpPositions[level][1], set.WarpPositions[level][2] ) end -- if snow_dungeon.is_nemeres_dungeon() == false then -- say("ERROR FATAL") -- say("No se ha creado la Dungeon: "..set.map_index.."") -- say("Reportar con Administrador") -- return -- end snow_dungeon._ClearAlls() d.setf("party_leader_pid",party.get_leader_pid()) party.setf("ice_dungeon_map_index",d.get_map_index()) d.set_unique("SnowDungeonStartNpc", d.spawn_mob_dir(set.LEVEL1_NPC_vnum, set.LEVEL1_NPC_pos[1] ,set.LEVEL1_NPC_pos[2] ,1) ) --Eisiger Löwe --d.spawn_mob_dir(set.LEVEL1_NPC_vnum, set.LEVEL1_NPC_pos[1] ,set.LEVEL1_NPC_pos[2] ,1) end -- FUNCs function _DungeonClear() d.clear_regen() d.purge_area(512000,153600,614000,228600) end function _CheckMembersLevel() local set = snow_dungeon.get_settings() if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("Modo Test activo.") return true end local user_fail_level = {} local pids = {party.get_member_pids()} local need_level = set.need_level_group local have_ninja = false local have_shaman = false for i = 1, table.getn(pids), 1 do q.begin_other_pc_block(pids[i]) if pc.get_level() < need_level then table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name()) end local job = pc.get_job() if job == 1 -- Ninja weiblich or job == 5 --Ninja männlich then have_ninja = true end if job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then have_shaman = true end q.end_other_pc_block() end if have_ninja == false then say("No puede iniciar la mazmorra si no tiene un") say("Ninja en su grupo.") return false end if have_shaman == false then say("No puede iniciar la mazmorra si no tiene un") say("Chamán en su grupo.") return false end if table.getn(user_fail_level) >= 1 then say_npc() say("") say("Algunos miembros del grupo no tienen el nivel") say("Nivel "..need_level.." no alcanzado:") for x = 1, table.getn(user_fail_level), 1 do say(color(1,1,0), " "..user_fail_level[x]) end return false end if table.getn(user_fail_level) == 0 then return true end end function _ClearAlls() local d_index = d.get_map_index() clear_server_timer("SnowJp_1",d_index) clear_server_timer("SnowJp_2",d_index) clear_server_timer("SnowJp_3",d_index) clear_server_timer("SnowJp_4",d_index) clear_server_timer("SnowJp_41",d_index) clear_server_timer("SnowJp_5",d_index) clear_server_timer("SnowJp_6",d_index) clear_server_timer("SnowJp_7",d_index) clear_server_timer("SnowJp_8",d_index) clear_server_timer("SnowJp_9",d_index) clear_server_timer("SnowJp_Boss",d_index) clear_server_timer("Killed_Level",d_index) clear_server_timer("Killed_Level2",d_index) clear_server_timer("SnowLeftTime_0",d_index) clear_server_timer("SnowLeftTime_1",d_index) clear_server_timer("SnowLeftTime_2",d_index) clear_server_timer("SnowLeftTime_3",d_index) clear_server_timer("SnowLeftTime_4",d_index) d.purge_unique("SnowDungeonStartNpc") d.setf("level",0) d.setf("party_leader_pid",0) d.clear_regen() end when 20397.chat."La lucha inicia" begin --Eisiger Löwe if npc.lock() == false then set_skin(NOWINDOW) return end say_npc() say("") say("¿Seguros quieren iniciar?") local wp = select("Avanzar","Talvez más tarde") if wp == 1 then local set = snow_dungeon.get_settings() snow_dungeon._DungeonClear() d.regen_file("data/dungeon/ice_dungeon/zone_1.txt") d.setf("level",1) d.notice("Una ola de frío helada sobre esta tierra.") d.notice("Mata a todos los monstruos para llegar a ") d.notice("la siguiente plant.") clear_server_timer("Killed_Level",d.get_map_index()) clear_server_timer("Killed_Level2",d.get_map_index()) server_timer ("Killed_Level", 10, d.get_map_index() ) npc.purge() d.set_warp_location(set.outside_entry_pos[1], set.outside_entry_pos[2] , set.outside_entry_pos[3]) d.setqf2("snow_dungeon","duration",get_global_time() ) --setzt bei allen Gruppenmitglieder den QuestFlag. server_timer("SnowLeftTime_0",60*15,d.get_map_index()) end setskin(NOWINDOW) end function _Create_LEVEL5_STONE() local set = snow_dungeon.get_settings() local c = set.LEVEL5_STONE_pos for i = 1, table.getn(c), 1 do local n = number(1,table.getn(c)) d.set_unique("stone5_"..i.."", d.spawn_mob(set.LEVEL5_STONE_vnum, c[n][1], c[n][2])) table.remove(c,n) end end -- TIMEs when Killed_Level.server_timer begin if d.select(get_server_timer_arg()) then snow_dungeon._TimersKilledLevel(1) end end when Killed_Level2.server_timer begin if d.select(get_server_timer_arg()) then snow_dungeon._TimersKilledLevel(2) end end -- Jumps when SnowJp_2.server_timer begin --Jump Level 2 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 2 d.set_regen_file("data/dungeon/ice_dungeon/zone_2.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Encuentra el objeto "..item_name( set.LEVEL2_REALKEY_vnum ).." para liberar las fuerzas ocultas.") end end when SnowJp_3.server_timer begin --Jump Level 3 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 3 d.regen_file("data/dungeon/ice_dungeon/zone_3.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Las criaturas de los fríos inviernos fueron despertados.") d.notice("Ve y destruye a todos!") clear_server_timer("Killed_Level",d.get_map_index()) clear_server_timer("Killed_Level2",d.get_map_index()) server_timer ("Killed_Level", 10, d.get_map_index() ) end end when SnowJp_4.server_timer begin --Jump Level 4 Welle 1 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 4 d.regen_file("data/dungeon/ice_dungeon/zone_4.txt") d.setf("level",level) d.setf("mobwelle",1) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Ve a destruir la fuerza Szel.") clear_server_timer("Killed_Level",d.get_map_index()) clear_server_timer("Killed_Level2",d.get_map_index()) server_timer ("Killed_Level", 10, d.get_map_index() ) end end when SnowJp_41.server_timer begin --Jump Level 4 Welle 2 if d.select(get_server_timer_arg()) then local level = 4 d.regen_file("data/dungeon/ice_dungeon/zone_41.txt") d.setf("level",level) d.setf("mobwelle",2) d.notice("Usted ha logrado destruir la fuerza Szel muy rapido.") d.notice("Felicidades, obtiene un buff que le ayudará a destruir") d.notice("el dragón!") clear_server_timer("Killed_Level",d.get_map_index()) clear_server_timer("Killed_Level2",d.get_map_index()) server_timer ("Killed_Level", 10, d.get_map_index() ) end end when SnowJp_5.server_timer begin --Jump Level 5 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 5 d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] ) ) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Busca "..mob_name(set.LEVEL5_STONE_vnum).." y utiliza las fuerzas de "..item_name(set.LEVEL5_REALKEY_vnum).." en el orden correcto.") snow_dungeon._Create_LEVEL5_STONE() -- Entferne die Servertimer und setze anderen Flag vorsichthalber um eventuele Bugs auszuschliessen. clear_server_timer("Killed_Level",d.get_map_index()) clear_server_timer("Killed_Level2",d.get_map_index()) d.setf("mobwelle",0) d.setf("stone",0) --For npcs end end when SnowJp_6.server_timer begin --Jump Level 6 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 6 d.regen_file("data/dungeon/ice_dungeon/zone_6.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Se han escuchado explociones muy fuertes") d.notice("Un monstruo ha caído sobre la tierra!") d.notice("Destruye "..mob_name(set.LEVEL6_STONE_vnum).."") d.notice("¡Solo los chamanes pueden destruirlo!") d.spawn_mob_dir(set.LEVEL6_STONE_vnum ,set.LEVEL6_TARGET_pos[1] ,set.LEVEL6_TARGET_pos[2],1) end end when SnowJp_7.server_timer begin --Jump Level 7 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 7 d.regen_file("data/dungeon/ice_dungeon/zone_7.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Usted debe destruir la piedra metin correcta "..mob_name(set.LEVEL7_BOSSMOB_vnum)..".") -- OLD! -- local c = set.LEVEL7_BOSSMOB_pos -- local n = number(1,table.getn(c)) -- d.setf("LEVEL7_Mob_Kill_Count",0) -- d.spawn_mob_dir(set.LEVEL7_BOSSMOB_vnum, c[n][1], c[n][2],1) -- NEW d.setf("LEVEL7_BOSSMOB_VID",0) local c = set.LEVEL7_BOSSMOB_pos local n = number(1,table.getn(c)) for i = 1, table.getn(c), 1 do local vid = d.spawn_mob_dir(set.LEVEL7_BOSSMOB_vnum, c[i][1], c[i][2],1) if i == n then d.setf("LEVEL7_BOSSMOB_VID",vid) end end end end when SnowJp_8.server_timer begin --Jump Level 8 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 8 d.set_regen_file("data/dungeon/ice_dungeon/zone_8.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Ya superaste varias escalas en la torre Nemere") d.notice("Ahora tu objetivo es destruir todos los monstruos.") d.notice("Busca el item "..item_name(set.LEVEL8_REALKEY_vnum).." , cuando lo encuentres terminarás.") --d.notice("Aber nur Schamanen und Ninjas können ihn benutzen.") d.setf("fail_key_count",0) end end when SnowJp_9.server_timer begin --Jump Level 9 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = 9 d.regen_file("data/dungeon/ice_dungeon/zone_9.txt") d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.notice("Destruye "..mob_name(set.LEVEL9_STONE_vnum).." ") d.notice("¡Solo puede ser destruido por los Ninjas!") --d.notice("Aber nur Schamanen und Ninjas können ihn schanden zufügen.") d.notice("") d.spawn_mob_dir( set.LEVEL9_STONE_vnum , set.LEVEL9_TARGET_pos[1] , set.LEVEL9_TARGET_pos[2] ,1) end end when SnowJp_Boss.server_timer begin --Jump Level BossZone if d.select(get_server_timer_arg()) then d.notice("Se escucha una risa.") d.notice("Nemere: Ja Ja Ja") d.notice("Nemere: ¿Crees que me puedes ver?") d.notice("Nemere: ¿Crees que puedes derrotarme?") d.notice("Nemere: ¡No puedes escapar del destino!") d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt") local set = snow_dungeon.get_settings() local level = 10 d.setf("level",level) d.jump_all( ( set.base_cord[1] + set.JumpPositionns[level][1] ), (set.base_cord[2]+set.JumpPositionns[level][2] )) --d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) d.spawn_group( set.BossVnumGroup , set.boss_pos[1], set.boss_pos[2], 5 ,1, 1) -- (Input from SRC: argument: vnum,x,y,radius,aggressive,count) end end --Timess when SnowLeftTime_0.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Tiempo restante: 45 Minutos.") server_timer("SnowLeftTime_1",60*15,get_server_timer_arg()) end end when SnowLeftTime_1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Tiempo restante: 30 Minutos.") server_timer("SnowLeftTime_2",60*15,get_server_timer_arg()) end end when SnowLeftTime_2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Tiempo restante: 15 Minutos.") server_timer("SnowLeftTime_3",60*10,get_server_timer_arg()) end end when SnowLeftTime_3.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Tiempo restante: 5 Minutos. Despues de, 5 minutos todos serán teletransportados.") server_timer("SnowLeftTime_4",60*4,get_server_timer_arg()) end end when SnowLeftTime_4.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Tiempo restante: 1 Minutos. Despues de, 1 minuto todos serán teletransportados.") server_timer("server_timer", 60,get_server_timer_arg()) end end -- All exit when SnowJp_OutAll.server_timer begin --Jump Out Bye bye ;D if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() d.set_warp_location(set.outside_entry_pos[1], set.outside_entry_pos[2] , set.outside_entry_pos[3]) snow_dungeon._ClearAlls() d.exit_all() end end --Others when 30331.use with snow_dungeon.is_nemeres_dungeon() == true begin --LEVEL2_REALKEY_vnum local set = snow_dungeon.get_settings() local job = pc.get_job() local level = d.getf("level") if level == 2 then if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("SET VARIABLE JOB 3") job = 3 end if job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then if number(1,3) == 1 then --or d.count_monster() < 10 then d.notice("La tecla de la derecha se encontró en unos segundos irán a la siguiente planta.") d.setf("level",3) snow_dungeon._DungeonClear() server_timer("SnowJp_3",5,d.get_map_index()) item.remove() else d.notice("Esa fue una clave equivocada.") item.remove() end else d.notice("Sólo los chamanes pueden utilizarlo.") return end end end when kill with not npc.is_pc() and snow_dungeon.is_nemeres_dungeon() == true begin local set = snow_dungeon.get_settings() local level = d.getf("level") local mobvnum = npc.get_race() local mobvid = npc.get_vid() --d.notice("KILL SNOW DUNGEON: mobvnum:"..mobvnum.." level:"..level.." vid:"..npc.get_vid().."") -- level 1 kill only if level == 2 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,100) then game.drop_item( set.LEVEL2_REALKEY_vnum ,1) -- level 3 kill only -- level 4 kill only elseif level == 5 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,100) then local KILL_COUNT_FOR_DROP_KEY = 50 local n =d.getf("count") + 1 d.setf("count", n) if n == KILL_COUNT_FOR_DROP_KEY then game.drop_item( set.LEVEL5_REALKEY_vnum ,1) d.setf("count", 0) end elseif level == 6 and mobvnum == set.LEVEL6_STONE_vnum then d.notice("Der "..mob_name(set.LEVEL6_STONE_vnum).." wurde zerstört, in wenigen Sekunden geht es in den nächsten Stock.") d.setf("level",7) snow_dungeon._DungeonClear() server_timer("SnowJp_7",5,d.get_map_index()) elseif level == 7 and mobvnum == set.LEVEL7_BOSSMOB_vnum and d.getf("LEVEL7_BOSSMOB_VID") == mobvid then -- OLD -- local new = d.getf("LEVEL7_Mob_Kill_Count") +1 -- d.setf("LEVEL7_Mob_Kill_Count",new) -- if number(1,5) == 1 or new > 5 then -- snow_dungeon._DungeonClear() -- server_timer("SnowJp_8",5,d.get_map_index()) -- d.notice("Der Richtige "..mob_name(set.LEVEL7_BOSSMOB_vnum).." wurde vernichtet.") -- else -- local c = set.LEVEL7_BOSSMOB_pos -- local n = number(1,table.getn(c)) -- d.spawn_mob(set.LEVEL7_BOSSMOB_vnum, c[n][1], c[n][2]) -- d.notice("Der falsche "..mob_name(set.LEVEL7_BOSSMOB_vnum).." wurde vernichtet.") -- end -- NEW snow_dungeon._DungeonClear() server_timer("SnowJp_8",5,d.get_map_index()) d.notice("El mob correcto "..mob_name(set.LEVEL7_BOSSMOB_vnum).." ha sido destruido.") elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,100) then game.drop_item(set.LEVEL8_REALKEY_vnum,1) elseif level == 9 and mobvnum == set.LEVEL9_STONE_vnum then d.notice("El "..mob_name(set.LEVEL9_STONE_vnum).." fue destruido en pocos segundos se pasa al siguiente piso.") snow_dungeon._DungeonClear() d.setf("level",10) server_timer("SnowJp_Boss",5,d.get_map_index()) elseif level == 10 and mobvnum == set.BossVnum then local OutTimeWarp = 60 snow_dungeon._DungeonClear() d.notice("Usted tiene "..mob_name(set.BossVnum).." derrotados en "..OutTimeWarp.." Segundos.") snow_dungeon.give_names_notice() server_timer("SnowJp_OutAll",OutTimeWarp,d.get_map_index()) end end when 20398.take begin --LEVEL5_STONE_vnum if snow_dungeon.is_nemeres_dungeon() == true then local set = snow_dungeon.get_settings() local vnum = item.get_vnum() local npc_vid = npc.get_vid() local old_stone = d.getf("stone") -- for i = 1, 6, 1 do -- dchat("Búsqueda: "..i.." : "..d.get_unique_vid("stone5_"..i.."").."") -- end if set.LEVEL5_REALKEY_vnum == vnum then --30332 if npc_vid == d.get_unique_vid("stone5_1") then -- Stone 1 --dchat("Stone 1") d.setf("stone",1) chat("Esa fue una buena elección. Destruye la siguiente.") elseif npc_vid == d.get_unique_vid("stone5_2") then -- Stone 2 --dchat("Stone 2") if old_stone != 1 then chat("Orden incorrecto. La clave fue destruida.") else d.setf("stone",2) chat("Esa fue una buena elección. Destruye la siguiente.") end elseif npc_vid == d.get_unique_vid("stone5_3") then -- Stone 3 --dchat("Stone 3") if old_stone != 2 then chat("Orden incorrecto. La clave fue destruida en el proceso.") else d.setf("stone",3) chat("Esa fue una buena elección. Destruye la siguiente.") end elseif npc_vid == d.get_unique_vid("stone5_4") then -- Stone 4 --dchat("Stone 4") if old_stone != 3 then chat("Orden incorrecto. La clave fue destruida.") else d.setf("stone",4) chat("Esa fue una buena elección. Destruye la siguiente.") end elseif npc_vid == d.get_unique_vid("stone5_5") then -- Stone 5 --dchat("Stone 5") if old_stone != 4 then chat("Orden incorrecto. La clave fue destruida en el proceso.") else d.setf("level",6) d.setf("stone",5) d.notice("Has destruido todos los bloques en unos segundos va en el siguiente piso.") snow_dungeon._DungeonClear() server_timer("SnowJp_6",5,d.get_map_index()) end else chat("Orden incorrecto. La clave fue destruid en el proceso.") end --dchat("old_stone:"..old_stone.." "..d.getf("stone").."") if old_stone != d.getf("stone") then --dchat("npc remove") npc.purge() end item.remove() end end end when 30333.use with snow_dungeon.is_nemeres_dungeon() == true begin --LEVEL8_REALKEY_vnum local set = snow_dungeon.get_settings() local level = d.getf("level") local job = pc.get_job() if level == 8 then if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("SET VARIABLE JOB 3") job = 3 end if job == 1 -- Ninja weiblich or job == 5 --Ninja männlich or job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then local new = d.getf("fail_key_count") +1 if number(1,10) == 1 or new > 5 then d.notice("La tecla de la derecha se encontró en unos segundos va a la siguiente planta.") d.setf("level",9) snow_dungeon._DungeonClear() server_timer("SnowJp_9",5,d.get_map_index()) item.remove() else d.notice("Esa fue la clave equivocada.") d.setf("fail_key_count",new) item.remove() end else d.notice("Sólo los chamanes y Ninja pueden utilizar.") return end end end -- Login, Logout when logout begin if snow_dungeon.is_nemeres_dungeon() == true then local set = snow_dungeon.get_settings() pc.setqf("exit_time", get_global_time() ) snow_dungeon.unregister_name() end end when login begin local set = snow_dungeon.get_settings() -- if pc.is_gm() then -- return -- end if set.map_index == pc.get_map_index() and set.WarpOutOnLoginMap == true then --Selbe Map! pc.warp(set.outside_entry_pos[2] * 100,set.outside_entry_pos[3] * 100) return end if snow_dungeon.is_nemeres_dungeon() == true then d.set_warp_location(set.outside_entry_pos[1], set.outside_entry_pos[2] , set.outside_entry_pos[3]) -- local v = find_npc_by_vnum(set.LEVEL1_NPC_vnum) -- if v == 0 then -- d.spawn_mob_dir(set.LEVEL1_NPC_vnum, set.LEVEL1_NPC_pos[1] ,set.LEVEL1_NPC_pos[2] ,1) --Eisiger Löwe -- end snow_dungeon.register_name() end end --My Name Func function give_names_notice() --remove end function register_name() --remove end function unregister_name() --remove end ---TESTS --[[ when 9010.chat."Dungeon de Hielo: _DungeonClear" with is_test_server() begin snow_dungeon._DungeonClear() say("done") end when 9010.chat."Dungeon de Hielo: Limpiar todo" with is_test_server() begin say("done") snow_dungeon._ClearAlls() end when 9010.chat."Dungeon de Hielo: Regen en X" with is_test_server() begin snow_dungeon._DungeonClear() local n = input() d.regen_file("data/dungeon/ice_dungeon/zone_"..n..".txt") say("done") end when 9010.chat."Dungeon de Hielo: Subir a X" with is_test_server() begin local set = snow_dungeon.get_settings() local level = input() say("level:"..level.." "..set.WarpPositions[level][1].." "..set.WarpPositions[level][2].."") wait() d.warp_all( set.WarpPositions[level][1], set.WarpPositions[level][2] ) end when 9010.chat."Dungeon de Hielo: SnowJp_Boss " begin d.setf("level",10) snow_dungeon._DungeonClear() server_timer("SnowJp_Boss",5,d.get_map_index()) say("done") end when 9010.chat."Dungeon de Hielo: Salir de todo " begin say("done") server_timer("SnowJp_OutAll",5,d.get_map_index()) end ]] end end Quest_lib function LIB_duration(seconds) local days = 0 local hours = math.floor(seconds / 3600) local mins = math.floor((seconds - (hours*3600)) / 60) local secs = math.floor(seconds - hours*3600 - mins*60 ) local t = "" if tonumber(hours) >= 24 then days = math.floor(hours / 24) hours = math.floor(hours - (days*24)) end if tonumber(days) == 1 then t = t..days.." Dias " elseif tonumber(days) >= 1 then t = t..days.." Dias " end if tonumber(hours) == 1 then t = t..hours.." Horas " elseif tonumber(hours) >= 1 then t = t..hours.." Horas " end if tonumber(mins) == 1 then t = t..mins.." Minutos " elseif tonumber(mins) >= 1 then t = t..mins.." Minutos " end if tonumber(secs) == 1 then t = t..secs.." Segundos " elseif tonumber(secs) >= 1 then t = t..secs.." Segundos " end if t == "" then return "(Por el momento no puedes!)" end return t end -- 6151 Szel_4thfloor_affectlimit = {AFF_HOSIN} Szel_7thfloor_affectlimit = {AFF_GICHEON} -- 8058 IceMetin_racelimit = {WARRIOR_M,WARRIOR_W,NINJA_W,NINJA_M,SURA_M,SURA_W} -- 20399 IceStonePillar_racelimit = {WARRIOR_M,WARRIOR_W,SURA_M,SURA_W} -- C3 NEMERE END mebe 1 Quote Link to comment Share on other sites More sharing options...
Shang Posted October 31, 2015 Report Share Posted October 31, 2015 Si te cobraron por ella te estafaron bien estafado porque es la de .Risan xD Quote Link to comment Share on other sites More sharing options...
asusta099 Posted October 31, 2015 Author Report Share Posted October 31, 2015 Imagina que bajo cae la gente, pero es fue años atras. Ya habia dejado esto- Quote Link to comment Share on other sites More sharing options...
Dereck01 Posted October 31, 2015 Report Share Posted October 31, 2015 asusta llegale al facebook feo xD Quote Link to comment Share on other sites More sharing options...
FaltaUnEdwiin Posted August 18, 2021 Report Share Posted August 18, 2021 una pregunta espero me saquen de duda la quest la tengo bien y todo va bien pero al ingresar al mapa entra y luego me devuelve afuera del guardia si podrian decirme por que seria ese error se los agradeseria mucho Quote Link to comment Share on other sites More sharing options...
NazoX Posted August 18, 2021 Report Share Posted August 18, 2021 hace 10 minutos, FaltaUnEdwiin dijo: una pregunta espero me saquen de duda la quest la tengo bien y todo va bien pero al ingresar al mapa entra y luego me devuelve afuera del guardia si podrian decirme por que seria ese error se los agradeseria mucho Necesitas un grupo para entrar, nivel que te pida, que el mapa que tienes coincidan con el index de la quest, y si todo eso coincide entonces tu mapa está mal FaltaUnEdwiin 1 Quote Link to comment Share on other sites More sharing options...
FaltaUnEdwiin Posted August 18, 2021 Report Share Posted August 18, 2021 Tengo el mismo problema en ambos el purgatorio también y la idex está bien pero lo que noto que la idex solo está en en el Game99 y en en los canales solo en uno de los 3 no sé si debería estar en los 3 o como y si entro con grupo pero no sé si los personajes gm influyen o tienen que ser playera normal Quote Link to comment Share on other sites More sharing options...
caanmasu Posted August 19, 2021 Report Share Posted August 19, 2021 hace 34 minutos, FaltaUnEdwiin dijo: Tengo el mismo problema en ambos el purgatorio también y la idex está bien pero lo que noto que la idex solo está en en el Game99 y en en los canales solo en uno de los 3 no sé si debería estar en los 3 o como y si entro con grupo pero no sé si los personajes gm influyen o tienen que ser playera normal El mapa de Sohan y el de la Torre de Nemere deben estar en el mismo core. El mapa de Tierra de fuego y el Infierno deben estar en el mismo core. PD: esa quest yo no la pondría, mejor subo una yo xD Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.