Jump to content

Ayuda evento pvp


boker9999

Mensajes recomendados

Hola zoneros, veran tengo esta quest, y queria saber si se puede hacer que se pueden matar entre todos, aun siendo del mismo reino, y que por cada 5 muertes conseguidas de un premio.

 

Quote

quest evento_pvp begin
    state start begin
        function Config()
            return 
            {
            ["Coordenadas"] = {22352600,22385400},--Coordenadas del mapa cuando das al boton Participar
            ["Index"] = {201},--Index del mapa del evento
            ["Vidas"] = {5}--Vidas del usuario
            }
        end
        when 20011.chat."Evento pvp" with game.get_event_flag("eventopvp") == 1 begin
            local r = game.get_event_flag("eventopvp2")
            if pc.getqf("eventopvp") != r then
                pc.setqf("eventopvp",r)
                pc.setqf("muertes",0)
                pc.setqf("intento",0)
            end
            if pc.getqf("muertes") >= evento_pvp.Config().Vidas[1] then
                say("Usted ya agoto sus "..evento_pvp.Config().Vidas[1].." vidas.")
                return
            end
            if select ("Participar","Salir") == 1 then
                pc.warp(evento_pvp.Config().Coordenadas[1],evento_pvp.Config().Coordenadas[2])
            end
        end
        when 20358.chat."Evento pvp GM" with pc.is_gm() begin
            local e = select ("Iniciar evento","Terminar evento","Nada")
            if e == 1 then
                notice("Evento: Evento PVP activado!")
                notice_all("El evento pvp ha iniciado, ve a uriel para participar.")
                game.set_event_flag("eventopvp",1)
                game.set_event_flag("eventopvp2",game.get_event_flag("eventopvp2")+1)
            elseif e == 2 then
                notice_all("El evento pvp ha terminado.")
                game.set_event_flag("eventopvp",0)
            end
        end
        when login with pc.get_map_index() == evento_pvp.Config().Index[1] begin
            if pc.getqf("muertes") >= evento_pvp.Config().Vidas[1] or game.get_event_flag("eventopvp2") == 0 then
                warp_to_village()
                return
            end
            loop_timer("revisar_pvp",0.5)
        end
        when revisar_pvp.timer begin
            if pc.get_hp() <= 0 and pc.getqf("intento") == 0 then
                pc.setqf("intento",1)
                local m = pc.getqf("muertes")+1
                pc.setqf("muertes",m)
                if m >= evento_pvp.Config().Vidas[1] then
                    notice_in_map("El usuario "..pc.get_name().." ha muerto "..m.." veces y fue descalificado.")
                    cleartimer("revisar_pvp")
                    warp_to_village()
                    return
                end
                chat("Has muerto "..m.." veces")
            end
            if pc.getqf("intento") == 1 and pc.get_hp() >= 1 then
                pc.setqf("intento",0)
            end
            if game.get_event_flag("eventopvp2") == 0 then
                cleartimer("revisar_pvp")
                warp_to_village()
            end
        end
    end
end

 

Enlace para comentar
Compartir en otros sitios

Para hacer que se maten entre los del mismo reino, en el when kill no pongas pc.get_empire() != npc.get_empire().
Todos tienen que ponerse en Libre.
Debes garantizar que no pierdan puntos de ranking. En este caso no se puede evitar perderlos pero sí los puedes recuperar.

Para lo de cada 5 muertes te voy a explicar el operador módulo:
 

if math.mod(numero_de_kills, 5) == 0 then
   --Aquí pones lo del premio
end

El módulo es el residuo de la división. Si divides un número entre otro y da 0 el residuo es porque es divisible. O sea que el cociente es entero.
Haré una pequeña tablita para mostrarte
Número de kills     División
1     5  =  1/5 = no es entero
2     5  =  2/5 = no es entero
3     5  =  3/5 = no es entero
4     5  =  4/5 = no es entero
5     5  =  5/5 = da 1, es entero el cociente, o sea que el residuo es 0.
7     5  =  7/5 = no es entero
10     5  =  10/5 = da 2, es entero el cociente, osea que el residuo es 0.

y si te das cuenta cada vez que el número de kills es divisible entre 5, va a entrar a la condición.
 

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...