Jump to content

aerandir

Miembro
  • Contador contenido

    8
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    aerandir got a reaction from Miguelito in [BUG FIX] Combate de arena   
    Hola. Tras mucho tiempo sin pasar por aqui ni mirar metin vuelvo para daros una solucion, como ya hace mas de un año di a la guerra de gremios (por esos entonces en univjuegos).

    He conseguido "Desbuguear" el combate de arena. Sois el primer sitio donde lo publico. Lo probe con los files de DAROO. Puede que no coincidan las rutas pero si los archivos de vuestro server.

    NOTA: REALIZAD COPIA DE SEGURIDAD PRIMERO.

    Empezamos. Lo primero, buscamos en el cliente el archivo atlasinfo.txt (normalmente en el root.epk-eix) y añadimos lo siguiente mirad que no haya uno ya:
     
    NOTA:CUANDO COPIAIS ESTE TEXTO OS PONE ESPACIOS. DADLE TAB'S
    metin2_map_duel  844800  0  1  1metin2_map_duel  848400  100  1  1 Ahora vamos al servidor.

    Buscamos la ruta /usr/home/game/ y en los archivos CONFIG de las carpetas channel y game99 (segun tengais):

    channel1, 2, 3, 4:

    Añadid el numero 90 a la lista de MAP_ALLOW y mirad que no este el numero 112 en la lista.

    Game99:

    Revisad que en la lista MAP_ALLOW tengais el numero 112 (y que no tengais ningun mapa con numero 90)


    A continuacion vais a la carpeta de los mapas (/usr/home/game/share/locale/germany/map) y en ella buscais y editais archivo Index:

    Buscad
    112 metin2_map_duel cambiad por:
    90 metin2_map_duel (Si no esta ninguno, poneis solo el 90 metin2_map_duel y mirad bien que no haya mapa con numero 90)

    Despues vais a la carpeta del pais (en mi caso germany: /usr/home/game/share/locale/germany) y editais el archivo settings.lua:

    Buscad si teneis estas lineas:
    arena.add_map(112, 8534, 101, 8564, 101)arena.add_map(112, 8584, 101, 8614, 101)arena.add_map(112, 8534, 155, 8564, 155)arena.add_map(112, 8584, 155, 8514, 155) Si estan, editadlas por:
    arena.add_map(90, 8534, 101, 8564, 101)arena.add_map(90, 8584, 101, 8614, 101)arena.add_map(90, 8534, 155, 8564, 155)arena.add_map(90, 8584, 155, 8514, 155) Si no estan, solo poned las ultimas (arena.add_map(90)
     
    Por ultimo el archivo de la quest (La traduccion es mala, pero funciona xD)
    quest arena_manager begin state start begin when 20017.chat."Combate de Arena." begin if game.get_event_flag("arena_close") > 0 then say("Lucha en progreso vuelva mas tarde.") say("") return end if not npc.lock() then say("Duelo en progreso.") 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("Usted debe estar al mismo nivel "..useMinLevel.." para utilizar la arena.") say("") npc.unlock() return else say("Escriba el nombre de su oponente.") say("") local sname = input() if sname == "" then say("Su adversario no puede entrar.") npc.unlock() return else say(sname.." Solicitud de envio a la lucha.") say("") local opp_vid = find_pc_by_name(sname) if opp_vid == 0 then say(sname.." no esta conectado.") say("") npc.unlock() return elseif opp_vid == pc.get_vid() then say("Usted no puede desafiarse a si mismo.") say("") npc.unlock() return end local old = pc.select(opp_vid) local opp_level = pc.get_level() pc.select(old) if opp_level < useMinLevel then say("El oponente debe ser "..useMinLevel.." Minimo.") say("") npc.unlock() return end if not npc.is_near_vid(opp_vid, 10) then say("El oponente debe estar a su lado.") say(sname.." esta demasiado lejos.") say("") npc.unlock() return ; end local a = arena.is_in_arena(opp_vid) if a == 0 then say(sname.."El oponente se ha desconectado.") say("") npc.unlock() return ; end local agree = confirm(opp_vid, pc.name.." Aceptar la lucha?", 30) if agree != CONFIRM_OK then say(sname.." Negar la lucha?") say("") npc.unlock() return end s = arena.start_duel(sname, 3) if s == 0 then say("Ha ocurrido un error.") say("Intentalo de nuevo mas tarde.") say("") elseif s == 2 then say("Estan combatiendo en este momento.") say("") elseif s == 3 then say("En este momento el campo de") say("entrenamiento esta totalmente") say("ocupado. Por favor, espera.") say("") end end end npc.unlock() end when 20017.chat."Lista de los combates." begin local g = arena.get_duel_list() local arena_name = {} local arena_observer = {} table.foreachi(g, function(n, p) arena_name[n] = p[1].." vs "..p[2] arena_observer[n] = { p[3], p[4], p[5] } end ) table.insert(arena_name, "Combate") table.insert(arena_observer, 0) local count = table.getn(g) if count == 0 then say("No se permite pelear ahora.") say("") return ; else say("En este momento "..hay.." observadores.") say("") 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[s][1], arena_observer[s][2], arena_observer[s][3]) end end end endend Un saludo
×
×
  • Crear nuevo...