Jump to content

[PETICION]Canjear puntos


LeyendasMt2
 Share

Recommended Posts

Hola buenas tengo una quest que suma muertes y se me ocurrio hacerla tipo el sistema de logros de keko, osea por X muertes te den un premio. Dejo la quest para ver si me podeis ayudar ^^

 

quest Ranking_de_Kills begin
state start begin
when login or levelup with pc.get_level() > 1 begin
set_state("pannello")
end
end
state pannello begin
when kill with npc.is_pc() begin
pc.setqf("conta_kills", pc.getqf("conta_kills")+1)
end
when letter begin
send_letter("Ranking de Kills")
end
when button or info begin
say_title("Ranking de Kills")
say("")
say("Hola "..pc.get_name().."")
say("Aqui podrás ver cuántos jugadores has matado")
say("En tu carrera en el NOMBRE DEL SERVIDOR!")
wait()
say("Tienes un total de:")
say_reward("".. pc.getqf("conta_kills") .." Kills")
say("")
say("Divierte te!")
end
Link to comment
Share on other sites

Hola buenas tengo una quest que suma muertes y se me ocurrio hacerla tipo el sistema de logros de keko, osea por X muertes te den un premio. Dejo la quest para ver si me podeis ayudar ^^

 

quest Ranking_de_Kills begin
state start begin
when login or levelup with pc.get_level() > 1 begin
set_state("pannello")
end
end
state pannello begin
when kill with npc.is_pc() begin
pc.setqf("conta_kills", pc.getqf("conta_kills")+1)
if pc.getqf("conta_kills") == 1 then
pc.give_item2("id_item", cantidad)
Y así...
Link to comment
Share on other sites

Gracias pacificador pero eso no es lo que quiero , tu pones alli que cuando tengas X puntos te de premio directamente. Tal vez me exprese mal, lo que quiero decir es que los puntos se acumulen y haya una tienda tipo como la que puse keko en su sistema de logros, a lo mejor tengo 20 puntos acumulados y quiero canjear 5 por un objeto , nose si me explico :okay:

Link to comment
Share on other sites

Gracias pacificador pero eso no es lo que quiero , tu pones alli que cuando tengas X puntos te de premio directamente. Tal vez me exprese mal, lo que quiero decir es que los puntos se acumulen y haya una tienda tipo como la que puse keko en su sistema de logros, a lo mejor tengo 20 puntos acumulados y quiero canjear 5 por un objeto , nose si me explico :okay:

 

Ala ya me has jodido xD, eso ya no lo sé, aunque supongo que necesitas el Sistema de Logros, en si :P
Link to comment
Share on other sites

La verdad no lo veo muy dificil, pero no manejo muy bien el tema de los qf y tal.

 

No sé tanto de qf como para hacer algo así. (al menos lo veo así, pero veremos si keko, o Noa, o Raul, o algún quester te ayuda y te hace la quest, así también aprendo ^^)
Link to comment
Share on other sites

yo pienso que es asi, pero me da error xD . Los canjes son una copia del sistema de logros de keko.

 

quest Ranking_de_Kills begin
state start begin
when login or levelup with pc.get_level() > 1 begin
set_state("pannello")
end
end
state pannello begin
when kill with npc.is_pc() begin
pc.setqf("conta_kills", pc.getqf("conta_kills")+1)
end
when letter begin
send_letter("Ranking de Kills")
end
when button or info begin
say_title("Ranking de Kills")
say("")
say("Hola "..pc.get_name().."")
say("Aqui podrás ver cuántos jugadores has matado")
say("En tu carrera en el NOMBRE DEL SERVIDOR!")
wait()
say("Tienes un total de:")
say_reward("".. pc.getqf("conta_kills") .." Kills")
say("")
say("Divierte te!")
end
--Canjeo--
when 40001.use begin
say_title ( "Canjea tus puntos logro" )
local conta_kills = pc . getqf ( "conta_kills" )
local p = select ( "Caballo armado - 5 puntos" , "Caballo militar - 30 puntos" , "Bonus mediohumanos +20% por 30min - 50 puntos" , "Bonus HP +5000 por 30min - 60 puntos" , "Armadura divina - 400 logros" , "Mascota de ataque - 30 puntos" , "Mas" )
if p == 1 then
if pc . getqf ( "conta_kills" ) <= 4 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 5 )
say ( "Has recibido un caballo armado" )
horse . set_level ( "11" )
horse . unsummon ( )
horse . summon ( )
pc . give_item2 ( "50052" , 1 )
return
elseif p == 2 then
if pc . getqf ( "conta_kills" ) <= 29 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 30 )
say ( "Has recibido un caballo militar" )
horse . set_level ( "21" )
horse . unsummon ( )
horse . summon ( )
pc . give_item2 ( "50053" , 1 )
return
elseif p == 3 then
if pc . getqf ( "conta_kills" ) <= 49 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 50 )
say ( "Has recibido 20% fuerza contra mediohumanos por 30min" )
affect . add_collect ( apply . ATTBONUS_HUMAN , 20 , 60 * 30 )
return
elseif p == 4 then
if pc . getqf ( "conta_kills" ) <= 59 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 60 )
say ( "Has recibido 5000hp por 30min" )
affect . add_collect ( apply . MAX_HP , 5000 , 60 * 30 )
return
elseif p == 5 then
if pc. getqf ( "conta_kills" ) <= 399 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 399 )
local armor = select ( "Armd. divina (G)" , "Armd. divina (N)" , "Armd. divina (S)" , "Armd. divina (C)" )
if armor == 1 then
say ( "Has recibido la Armadura divina" )
pc . give_item2 ( "42080" , 1 )
return
elseif armor == 2 then
say ( "Has recibido la Armadura divina" )
pc . give_item2 ( "44080" , 1 )
return
elseif armor == 3 then
say ( "Has recibido la Armadura divina" )
pc . give_item2 ( "46080" , 1 )
return
elseif armor == 4 then
say ( "Has recibido la Armadura divina" )
pc . give_item2 ( "48080" , 1 )
return
end
elseif p == 6 then
if pc . getqf ( "conta_kills" ) <= 29 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 29 )
say ( "Has recibido la mascota de ataque" )
pc . give_item2 ( "30312" , 1 )
return
elseif p == 7 then
local p2 = select ( "Leon Blanco - 40 puntos" , "Anillo experiencia - 5 puntos" , "Fuerza monstruo +20% 30min - 15 puntos" , "Velocidad movimiento +25% 30min - 10 puntos" , "Mascota de defensa - 25 puntos" , "Cuantos logros tengo?" , "Cerrar" )
if p2 == 1 then
if pc . getqf ( "conta_kills" ) <= 39 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 40 )
say ( "Has recibido un leon blanco disfrtualo, no se acaba" )
pc . give_item2 ( "50110" , 1 )
return
elseif p2 == 2 then
if pc . getqf ( "conta_kills" ) <= 4 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 5 )
say ( "Disfruta de un anillo de experiencia" )
pc . give_item2 ( "71015" , 1 )
return
elseif p2 == 3 then
if pc . getqf ( "conta_kills" ) <= 14 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 15 )
say ( "Has recibido 20% fuerza monstruo por 30min" )
affect . add_collect ( apply . ATTBONUS_MONSTER , 20 , 60 * 30 )
return
elseif p2 == 4 then
if pc . getqf ( "conta_kills" ) <= 9 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 10 )
say ( "Has recibido 25% velo.movimiento por 30min" )
affect . add_collect ( apply . MOV_SPEED , 25 , 60 * 30 )
return
elseif p2 == 5 then
if pc . getqf ( "conta_kills" ) <= 24 then
say ( "Lo siento necesitas mas puntos" )
return
end
local conta_kills = pc . getqf ( "conta_kills" )
pc . setqf ( "conta_kills" , conta_kills - 25 )
say ( "Has recibido la mascota de defensa" )
pc . give_item2 ( "71124" , 1 )
return
end
end
Link to comment
Share on other sites

Pos mira te explico como hacer un canje y así ya te puedes hacer tu la quest a tu gusto:

 

1 - Lo más importante es saber qué es lo que vamos a canjear? En tu caso la respuesta a esta pregunta es:

 

pc.setqf("conta_kills", pc.getqf("conta_kills")+1)

La quest te suma uno al qf llamado conta_kills cada vez que matas a un pj, así que lo que utilizaremos para canjear es el pc.getqf("conta_kills").

 

2 - Cómo lo canjeamos?

 

Bien para esto creamos nuestra tienda de canjes, en un item por ejemplo:

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("")
end
end
end

Y le metemos las opciones de las cosas que queremos que te dea:

 

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("que quieres conseguir?")
say("")
local canjes = select ("Item1", "Item2", "Item3", "Cerrar")
end
end
end

Vale, ahora vamos a hacer los cambios en si, empiezo con el primero para que veais:

 

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("que quieres conseguir?")
say("")
local canjes = select ("Item1", "Item2", "Item3", "Cerrar")
if canjes == 1 then
say_title("Tienda de Canjes")
say("")
say("Este es el item que quieres?")
say_item_vnum("iditem1")
say("")
say("Su coste es de X puntos")
say("")
local seguir = select ("Lo quiero" , Paso")
end
end
end
end

Ahora vamos a hacer que la quest te de el item y a cambio de quite X muertes, hago solo el primero para que veais,

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("que quieres conseguir?")
say("")
local canjes = select ("Item1", "Item2", "Item3", "Cerrar")
if canjes == 1 then
say_title("Tienda de Canjes")
say("")
say("Este es el item que quieres?")
say_item_vnum("iditem1")
say("")
say("Su coste es de X puntos")
say("")
local seguir = select ("Lo quiero" , Paso")
if seguir == 1 then
if pc.getqf("conta_kills") < X then
chat("Lo siento no tienes suficientes puntos para comprar este objeto")
return
end
pc.give_item2("iditem", cantidad) -- aqui damos el item
pc.setqf("conta_kills", pc.getqfI("conta_kills") - X) -- aqui quitamos los puntos que valga el item
end
end
end
end
end

Y esa seria la dinamica de una tienda de canjes, recordad que donde pone X ira la cantidad de puntos que pedira para hacer el canje y donde pone iditem pos ira la id del item que daremos a cambio de los puntos.

 

Y eso es todo, espero que os sirva esto mas que simplemente haber hecho esa quest concreta ^^

Link to comment
Share on other sites

 

Pos mira te explico como hacer un canje y así ya te puedes hacer tu la quest a tu gusto:

 

1 - Lo más importante es saber qué es lo que vamos a canjear? En tu caso la respuesta a esta pregunta es:

 

pc.setqf("conta_kills", pc.getqf("conta_kills")+1)

La quest te suma uno al qf llamado conta_kills cada vez que matas a un pj, así que lo que utilizaremos para canjear es el pc.getqf("conta_kills").

 

2 - Cómo lo canjeamos?

 

Bien para esto creamos nuestra tienda de canjes, en un item por ejemplo:

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("")
end
end
end

Y le metemos las opciones de las cosas que queremos que te dea:

 

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("que quieres conseguir?")
say("")
local canjes = select ("Item1", "Item2", "Item3", "Cerrar")
end
end
end

Vale, ahora vamos a hacer los cambios en si, empiezo con el primero para que veais:

 

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("que quieres conseguir?")
say("")
local canjes = select ("Item1", "Item2", "Item3", "Cerrar")
if canjes == 1 then
say_title("Tienda de Canjes")
say("")
say("Este es el item que quieres?")
say_item_vnum("iditem1")
say("")
say("Su coste es de X puntos")
say("")
local seguir = select ("Lo quiero" , Paso")
end
end
end
end

Ahora vamos a hacer que la quest te de el item y a cambio de quite X muertes, hago solo el primero para que veais,

 

quest canjes begin
state start begin
when iditem.use begin
say_title("Tienda de Canjes")
say("")
say("Aqui cambiaras muertes por items")
say("que quieres conseguir?")
say("")
local canjes = select ("Item1", "Item2", "Item3", "Cerrar")
if canjes == 1 then
say_title("Tienda de Canjes")
say("")
say("Este es el item que quieres?")
say_item_vnum("iditem1")
say("")
say("Su coste es de X puntos")
say("")
local seguir = select ("Lo quiero" , Paso")
if seguir == 1 then
if pc.getqf("conta_kills") < X then
chat("Lo siento no tienes suficientes puntos para comprar este objeto")
return
end
pc.give_item2("iditem", cantidad) -- aqui damos el item
pc.setqf("conta_kills", pc.getqfI("conta_kills") - X) -- aqui quitamos los puntos que valga el item
end
end
end
end
end

Y esa seria la dinamica de una tienda de canjes, recordad que donde pone X ira la cantidad de puntos que pedira para hacer el canje y donde pone iditem pos ira la id del item que daremos a cambio de los puntos.

 

Y eso es todo, espero que os sirva esto mas que simplemente haber hecho esa quest concreta ^^

 

 

Al final es más fácil de lo que yo pensaba, pensé que tenia que hacer otro qf para retirar los puntos y ahi me bloquee xD, como siempre keko enseñando nos algo nuevo :P

Gracias.

Link to comment
Share on other sites

Al final es más fácil de lo que yo pensaba, pensé que tenia que hacer otro qf para retirar los puntos y ahi me bloquee xD, como siempre keko enseñando nos algo nuevo :P

Gracias.

 

:motherofgod: Esto es amor y lo demas son tonterias , te amo keko *-* Jajaja

 

jajaja no problem chicos, ya sabeis que siempre es un placer ayudaros en lo posible a todos :D

Link to comment
Share on other sites

keko una duda.. seguro que haciendo otra quest me seguiria conservando el qf conta_kills? osea tenerlo en otra quest distinta como tu me has puesto alli arriba , lo reconoceria igual?

 

Es una gran duda que no vi reflejada en el curso de qfs :P

 

Um que yo sepa si

Link to comment
Share on other sites

  • Dilong locked this topic
Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...