LeyendasMt2 Posted February 22, 2013 Report Share Posted February 22, 2013 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 More sharing options...
PACI Posted February 22, 2013 Report Share Posted February 22, 2013 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 More sharing options...
LeyendasMt2 Posted February 22, 2013 Author Report Share Posted February 22, 2013 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 More sharing options...
PACI Posted February 22, 2013 Report Share Posted February 22, 2013 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 Link to comment Share on other sites More sharing options...
LeyendasMt2 Posted February 22, 2013 Author Report Share Posted February 22, 2013 La verdad no lo veo muy dificil, pero no manejo muy bien el tema de los qf y tal. Link to comment Share on other sites More sharing options...
PACI Posted February 22, 2013 Report Share Posted February 22, 2013 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 More sharing options...
LeyendasMt2 Posted February 22, 2013 Author Report Share Posted February 22, 2013 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 More sharing options...
KeKo Posted February 22, 2013 Report Share Posted February 22, 2013 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 LeyendasMt2 and PACI 2 Link to comment Share on other sites More sharing options...
PACI Posted February 22, 2013 Report Share Posted February 22, 2013 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 Gracias. Link to comment Share on other sites More sharing options...
LeyendasMt2 Posted February 22, 2013 Author Report Share Posted February 22, 2013 :motherofgod: Esto es amor y lo demas son tonterias , te amo keko *-* Jajaja Link to comment Share on other sites More sharing options...
KeKo Posted February 23, 2013 Report Share Posted February 23, 2013 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 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 LeyendasMt2 and PACI 2 Link to comment Share on other sites More sharing options...
LeyendasMt2 Posted February 23, 2013 Author Report Share Posted February 23, 2013 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 Link to comment Share on other sites More sharing options...
KeKo Posted February 24, 2013 Report Share Posted February 24, 2013 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 Um que yo sepa si Link to comment Share on other sites More sharing options...
Recommended Posts