Jump to content

[DUDA] El bonus no se mantiene


RachadoPT
 Share

Recommended Posts

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

Link to comment
Share on other sites

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

 

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

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

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

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

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

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

 

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

  • 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...