RachadoPT Posted January 5, 2015 Report Share Posted January 5, 2015 Buenas, tengo un problemita... En un sistema mio, eres supuesto que se receban unos bonus cuando se coge al "Poder", pero ese esta bloqueado a 3 veces... Lo que suciede es lo seguiente... Se la persona aun no lo hice ni una vez, la persona recibe los bonus y estos se mantienen... Pero si ella lo hice una o mas veces, la persona recibe el bonus pero si sale del mapa, o si sale del juego/personaje/cuenta, los bonus se van... fican solamente una vez (cuando se va de la 0 para 1... de 1 para 2, o de 2 para 3, el bonus no se mantiene ) Alguien me sabe decir lo que puede ser? El codigo: say_reward("Tens a certeza que e isso que queres?") say_reward("Já escolheste este desejo "..x.." vezes.") local a = select ("Sim" , "Nao") if a == 1 then if x == 0 then pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,60*60*24*365*60) affect.add_collect(apply.MAX_HP,2000,60*60*24*365*40) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") pc.setqf("vezes",1) elseif x == 1 then pc.setqf("vezes",2) pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,60*60*24*365*60) affect.add_collect(apply.MAX_HP,2000,60*60*24*365*40) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") elseif x == 2 then pc.setqf("vezes",3) pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,60*60*24*365*60) affect.add_collect(apply.MAX_HP,2000,60*60*24*365*40) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") end else return end else say("Nao podes escolher este desejo") say("mais vez nenhuma...") say("Excedeste o limite de 3 vezes.") end Gracias, RachadoPT harufen 1 Link to comment Share on other sites More sharing options...
pepineitor Posted January 6, 2015 Report Share Posted January 6, 2015 Cambia affect.add_collect_point por affect.add_collect Link to comment Share on other sites More sharing options...
RachadoPT Posted January 6, 2015 Author Report Share Posted January 6, 2015 Cambia affect.add_collect_point por affect.add_collect Eso es lo que tiene en el HP pero ese tambien no se mantiene... :| Link to comment Share on other sites More sharing options...
CroSSie Posted January 6, 2015 Report Share Posted January 6, 2015 UP Link to comment Share on other sites More sharing options...
RachadoPT Posted January 7, 2015 Author Report Share Posted January 7, 2015 up Link to comment Share on other sites More sharing options...
ManCaraMan Posted January 7, 2015 Report Share Posted January 7, 2015 Estas usando la variable x y vezes como una misma cosa, cambia una de esas variables y usa en ambos casos lo mismo(que por cierto macho abre un diccionario pk haces sangrar los ojos con ese "vezes"...) tu estas usando esto: elseif x == 2 then pc.setqf("vezes",3) Cuando tendrías que estar usando esto: elseif x == 2 then pc.setqf("x",3) O esto: elseif vezes == 2 then pc.setqf("vezes",3) Link to comment Share on other sites More sharing options...
RachadoPT Posted January 8, 2015 Author Report Share Posted January 8, 2015 Estas usando la variable x y vezes como una misma cosa, cambia una de esas variables y usa en ambos casos lo mismo(que por cierto macho abre un diccionario pk haces sangrar los ojos con ese "vezes"...) tu estas usando esto: elseif x == 2 then pc.setqf("vezes",3) Cuando tendrías que estar usando esto: elseif x == 2 then pc.setqf("x",3) O esto: elseif vezes == 2 then pc.setqf("vezes",3) No era de eso :/ aun no esta funcionando :| Link to comment Share on other sites More sharing options...
Guest Caes Posted January 8, 2015 Report Share Posted January 8, 2015 No era de eso :/ aun no esta funcionando :| Podrías publicar la quest completa?, el problema al parecer no radica en esas lineas que has publicado. Link to comment Share on other sites More sharing options...
RachadoPT Posted January 8, 2015 Author Report Share Posted January 8, 2015 quest shenlong_chest begin state start begin when 14238.use begin say_title("Dragon Ball System") say() say("Tens 3 desejos") say("escolhe entre os 3 e pensa bem...") say() say("O que queres?") local s = select ("Riqueza" , "Poder" , "Tentar a sorte" , "Fechar") if s == 1 then say("Com este desejo vais ficar rico") say("iras receber um premio no valor") say("de 50.000.000 yangs, ou seja, 50kk.") say() say_reward("Tens a certeza que e isso que queres?") local a = select ("Sim" , "Nao") if a == 1 then pc.remove_item("14238",1) pc.change_money(50000000) say_reward("Recebeste 50kk") say("Espero que sejas feliz com esse dinheiro.") say("Boa sorte na tua jornada!") else return end elseif s == 2 then local x = pc.getqf("vezes") if x < 3 then say("Com este desejo vais receber") say("mais 2000 de vida, ou seja, 2k HP") say("e tambem um bonus de forte contra") say("Semi Humanos 10%, ou seja, 10% hh") say("e forte contra Monstros 10%") say("Contudo, este desejo tem um limite") say("e so pode ser escolhido 3 vezes por") say("cada jogador.") say() say_reward("Tens a certeza que e isso que queres?") say_reward("Já escolheste este desejo "..x.." vezes.") local a = select ("Sim" , "Nao") if a == 1 then if x == 0 then pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,60*60*24*365*60) affect.add_collect(apply.MAX_HP,2000,60*60*24*365*40) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") pc.setqf("vezes",1) elseif x == 1 then pc.setqf("vezes",2) pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,60*60*24*365*60) affect.add_collect(apply.MAX_HP,2000,60*60*24*365*40) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") elseif x == 2 then pc.setqf("vezes",3) pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,60*60*24*365*60) affect.add_collect(apply.MAX_HP,2000,60*60*24*365*40) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") end else return end else say("Nao podes escolher este desejo") say("mais vez nenhuma...") say("Excedeste o limite de 3 vezes.") end elseif s == 3 then say("Com este desejo iras receber") say("um item aleatorio mas obviamente") say("que tenha algum valor...") say() say_reward("Tens a certeza que e isso que queres?") local a = select ("Sim" , "Nao") if a == 1 then pc.remove_item("14238",1) local random_nr = number(1,3) random_item = { 39002, 39004, 39032 } pc.give_item2(random_item[random_nr],1) say("Recebeste um item valioso") say("Faz bom uso dele") say("Boa sorte na tua jornada!") else return end else return end end end end Ahi :| Link to comment Share on other sites More sharing options...
Guest Caes Posted January 8, 2015 Report Share Posted January 8, 2015 Cuando lo usas la primera vez funciona perfectamente y no se quita?. Link to comment Share on other sites More sharing options...
RachadoPT Posted January 8, 2015 Author Report Share Posted January 8, 2015 Si :| eso es raro pero si :| Ya he intentado de otras maneras pero no ha mudado nada... Aun no se mantiene :| Link to comment Share on other sites More sharing options...
Guest Caes Posted January 8, 2015 Report Share Posted January 8, 2015 Lo que pasa es que estás agregando el bonus de forma permanente, deberías limitarlo por el tiempo que quieras dar los bonus, bájale al tiempo sino no tendría caso usarlo varias veces, por que no lo necesitarías más, ahora no se si al multiplicarlo tantas veces se bugea y lo elimina. Yo lo haría así: Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link to comment Share on other sites More sharing options...
RachadoPT Posted January 9, 2015 Author Report Share Posted January 9, 2015 Lo que pasa es que estás agregando el bonus de forma permanente, deberías limitarlo por el tiempo que quieras dar los bonus, bájale al tiempo sino no tendría caso usarlo varias veces, por que no lo necesitarías más, ahora no se si al multiplicarlo tantas veces se bugea y lo elimina. Yo lo haría así: Debes iniciar sesión para ver el contenido del enlace en esta publicación. Pero el Poder es supuesto acumularse en cada una de las 3 veces que les coges :| De ese modo el bonus sera solo de 2 horas y no permaniente :| Link to comment Share on other sites More sharing options...
XentaX Posted January 9, 2015 Report Share Posted January 9, 2015 up Link to comment Share on other sites More sharing options...
Guest Caes Posted January 9, 2015 Report Share Posted January 9, 2015 Pero el Poder es supuesto acumularse en cada una de las 3 veces que les coges :| De ese modo el bonus sera solo de 2 horas y no permaniente :| Ahh quieres acumularlo, entonces eliminarlo antes de acumularlo, no estoy seguro sobre el funcionamiento de la función remove, pero intentalo. local bonustime = 60*60*24*356*60 --4EVER if a == 1 then if x == 0 then pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,bonustime) affect.add_collect_point(apply.MAX_HP,2000,bonustime) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,bonustime) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") pc.setqf("vezes",1) elseif x == 1 then pc.setqf("vezes",2) pc.remove_item("14238",1) affect.remove_collect_point(POINT_ATTBONUS_MONSTER,10,bonustime) affect.remove_collect_point(apply.MAX_HP,2000,bonustime) affect.remove_collect_point(POINT_ATTBONUS_HUMAN,10,bonustime) affect.add_collect_point(POINT_ATTBONUS_MONSTER,20,bonustime) affect.add_collect_point(apply.MAX_HP,4000,bonustime) affect.add_collect_point(POINT_ATTBONUS_HUMAN,20,bonustime) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") elseif x == 2 then pc.setqf("vezes",3) pc.remove_item("14238",1) affect.remove_collect_point(POINT_ATTBONUS_MONSTER,20,bonustime) affect.remove_collect_point(apply.MAX_HP,4000,bonustime) affect.remove_collect_point(POINT_ATTBONUS_HUMAN,20,bonustime) affect.add_collect_point(POINT_ATTBONUS_MONSTER,30,bonustime) affect.add_collect(apply.MAX_HP,6000,bonustime) affect.add_collect_point(POINT_ATTBONUS_HUMAN,30,bonustime) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") end Link to comment Share on other sites More sharing options...
RachadoPT Posted January 9, 2015 Author Report Share Posted January 9, 2015 Ahh quieres acumularlo, entonces eliminarlo antes de acumularlo, no estoy seguro sobre el funcionamiento de la función remove, pero intentalo. local bonustime = 60*60*24*356*60 --4EVER if a == 1 then if x == 0 then pc.remove_item("14238",1) affect.add_collect_point(POINT_ATTBONUS_MONSTER,10,bonustime) affect.add_collect_point(apply.MAX_HP,2000,bonustime) affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,bonustime) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") pc.setqf("vezes",1) elseif x == 1 then pc.setqf("vezes",2) pc.remove_item("14238",1) affect.remove_collect_point(POINT_ATTBONUS_MONSTER,10,bonustime) affect.remove_collect_point(apply.MAX_HP,2000,bonustime) affect.remove_collect_point(POINT_ATTBONUS_HUMAN,10,bonustime) affect.add_collect_point(POINT_ATTBONUS_MONSTER,20,bonustime) affect.add_collect_point(apply.MAX_HP,4000,bonustime) affect.add_collect_point(POINT_ATTBONUS_HUMAN,20,bonustime) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") elseif x == 2 then pc.setqf("vezes",3) pc.remove_item("14238",1) affect.remove_collect_point(POINT_ATTBONUS_MONSTER,20,bonustime) affect.remove_collect_point(apply.MAX_HP,4000,bonustime) affect.remove_collect_point(POINT_ATTBONUS_HUMAN,20,bonustime) affect.add_collect_point(POINT_ATTBONUS_MONSTER,30,bonustime) affect.add_collect(apply.MAX_HP,6000,bonustime) affect.add_collect_point(POINT_ATTBONUS_HUMAN,30,bonustime) say("Recebeste um bonus de") say("2k de HP") say("10% Forte contra HH") say("10% Forte contra Monstros") say("Boa sorte na tua jornada!") end Ese affect.remove_collect_point no existe >> Pero el hp ya se mantiene :3 Link to comment Share on other sites More sharing options...
Guest Caes Posted January 9, 2015 Report Share Posted January 9, 2015 Ese affect.remove_collect_point no existe >> Pero el hp ya se mantiene :3 Ya me di cuenta, lo he probado sin la función y funciona Link to comment Share on other sites More sharing options...
RachadoPT Posted January 9, 2015 Author Report Share Posted January 9, 2015 Ya me di cuenta, lo he probado sin la función y funciona Para ti ha funcionado bien? '-' Link to comment Share on other sites More sharing options...
RachadoPT Posted January 11, 2015 Author Report Share Posted January 11, 2015 up Link to comment Share on other sites More sharing options...
RachadoPT Posted January 12, 2015 Author Report Share Posted January 12, 2015 up Link to comment Share on other sites More sharing options...
Recommended Posts