Jump to content
Sign in to follow this  
boker9999

Ayuda evento pvp

Recommended Posts

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

 

Share this post


Link to post
Share on other sites

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.
 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...