Jump to content

[BUSCO]Funcion restaure hp.


Dragonslayer
 Share

Recommended Posts

 

Es fácil con quest...

affect.add_collect(apply.HP_REGEN, 100000, 5)

Sabes que eso es un bonus no? Y eso no te regenera vida sino te aumenta la que tienes, si tienes  123/5000hp, en vez de regenerar te sube la de 5000 a mas vida, asi que tu vida baja se queda igual.

Link to comment
Share on other sites

Sabes que eso es un bonus no? Y eso no te regenera vida sino te aumenta la que tienes, si tienes  123/5000hp, en vez de regenerar te sube la de 5000 a mas vida, asi que tu vida baja se queda igual.

 

La puse por que en mi servidor me funciona de esa manera..... y lo que realmente hace es que te pone a que se regenere la vida en 100k durante un corto espacio de tiempo lo cual sirve para solucionar lo que pide el dueño del post...

 

 

Buenas, pues eso que busco una función que restaure el hp.

 

Me vale que restaure un porcentaje de hp o que restaure uno fijo, la restauración del hp tiene que ser inmediata.

 

Gracias de antemano.

 

Restaurar la HP inmediatamente....

 

 

E incluso si buscas un poco en este mismo foro.... veras que keko, noa la usan (Te dejo el link... 

Debes iniciar sesión para ver el contenido del enlace en esta publicación.
)

 

 

Link to comment
Share on other sites

 

Vale lo probare, gracias ^^

 

 

 

Te dejo un ejemplo de una quest completa.

quest RestaurarVida begin
	state start begin
		when login begin
			if pc.get_hp() <=0 then
				affect.add_collect(apply.HP_REGEN, 1000000, 5)
			end
			if pc.get_sp() <=0 then
				affect.add_collect(apply.SP_REGEN, 1000000, 5)
			end
		end
	end
end
Link to comment
Share on other sites

Básicamente he echo esto, pero todavía no se si funciona. Tengo que probarlo.

quest pocion20 begin
state start begin
when 27118.use begin
if get_time() < pc.getqf("tiempo1") then
syschat("Aun no puedes, tienes que esperar "+ get_time() + " segundos")
return
else
pc.setqf("tiempo1",0) 
pc.setqf("tiempo1",get_time()+4)
affect.add_collect(apply.HP_REGEN, 20000, 3)
pc.remove_item(27118,1)
end
end
end
end
Link to comment
Share on other sites

 

Básicamente he echo esto, pero todavía no se si funciona. Tengo que probarlo.

quest pocion20 begin
state start begin
when 27118.use begin
if get_time() < pc.getqf("tiempo1") then
syschat("Aun no puedes, tienes que esperar "+ get_time() + " segundos")
return
else
pc.setqf("tiempo1",0) 
pc.setqf("tiempo1",get_time()+4)
affect.add_collect(apply.HP_REGEN, 20000, 3)
pc.remove_item(27118,1)
end
end
end
end

 

Te recomiendo 2 estados para la quest debido que al hacer esto:

if get_time() < pc.getqf("tiempo1") then

Sin que tengas el qf antes definido puede darte errores (No graves) pero si te marcaría un error en locale algo de comparación con algo nulo o inexistente.

pc.setqf("tiempo1",0) 
pc.setqf("tiempo1",get_time()+4)

Es innecesario poner 2 setqf cuando en el segundo estás reemplazando completamente el primero....

 

Resumiendo.... Yo lo haría así...

quest pocion20 begin
	state start begin
		when login or enter begin
			pc.setqf("tiempo1",0) 
			set_state(estado2)
		end
	end
	state estado2 begin
		when 27118.use begin
			if get_time() < pc.getqf("tiempo1") then
				syschat("Aun no puedes, tienes que esperar ".. pc.getqf("tiempo1")-get_time() .." segundos")
				return
			else
				pc.setqf("tiempo1",get_time()+4)
				affect.add_collect(apply.HP_REGEN, 20000, 3)
				item.remove()
			end
		end
	end
end
Link to comment
Share on other sites

Desde source:

Abre "input_login.cpp" busca

void CInputLogin::Entergame(LPDESC d, const char * data)
después busca
ch->ReviveInvisible(5);
debajo escribe
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());

Eso debería solucionar eso. ( si eso no te sirve dimelo y te digo otros modos más.)

Link to comment
Share on other sites

 

Te recomiendo 2 estados para la quest debido que al hacer esto:

if get_time() < pc.getqf("tiempo1") then

Sin que tengas el qf antes definido puede darte errores (No graves) pero si te marcaría un error en locale algo de comparación con algo nulo o inexistente.

pc.setqf("tiempo1",0) 
pc.setqf("tiempo1",get_time()+4)

Es innecesario poner 2 setqf cuando en el segundo estás reemplazando completamente el primero....

 

Resumiendo.... Yo lo haría así...

quest pocion20 begin
	state start begin
		when login or enter begin
			pc.setqf("tiempo1",0) 
			set_state(estado2)
		end
	end
	state estado2 begin
		when 27118.use begin
			if get_time() < pc.getqf("tiempo1") then
				syschat("Aun no puedes, tienes que esperar "+ pc.getqf("tiempo1")-get_time() + " segundos")
				return
			else
				pc.setqf("tiempo1",get_time()+4)
				affect.add_collect(apply.HP_REGEN, 20000, 3)
				item.remove()
			end
		end
	end
end

Está mal, no puedes usar un "+", en lua es ".."

Link to comment
Share on other sites

Desde source:

Abre "input_login.cpp" busca

void CInputLogin::Entergame(LPDESC d, const char * data)
después busca
ch->ReviveInvisible(5);
debajo escribe
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());

Eso debería solucionar eso. ( si eso no te sirve dimelo y te digo otros modos más.)

Te has confundido ese es el fix para recuperar toda la vida cuando revives no?

 

Yo no pedía eso XD.

 

De todas formas ya me lo solucionaron entre Rafa y Sema. Gracias ^^

Link to comment
Share on other sites

  • 2 weeks later...

Vale despues de un tiempo, no he tenido de probarlo antes.

 

Y el resultado es que con apply.HP_REGEN, me restaura toda la vida. También he probado esto:(Pero no me restaura vida, solo me da 25k mas durante 1 segundo(y no me regenera 25k)). Al final me toca hacer la poción por c++?

quest pocion20 begin
	state start begin
		when login or enter begin
			pc.setqf("tiempo1",0) 
			set_state(estado2)
		end
	end
	state estado2 begin
		when 27118.use begin
			if get_time() < pc.getqf("tiempo1") then
				syschat("Aun no puedes, tienes que esperar ".. pc.getqf("tiempo1")-get_time() .." segundos")
				return
			else
				pc.setqf("tiempo1",get_time()+7)
				affect.add_collect(apply.MAX_HP, 25000, 1)
				pc.remove_item(27118,1)
			end
		end
	end
end
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...