Jump to content

[BUSCO]Funcion restaure hp.


Dragonslayer

Mensajes recomendados

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

 

 

Enlace para comentar
Compartir en otros sitios

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
Enlace para comentar
Compartir en otros sitios

 

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
Enlace para comentar
Compartir en otros sitios

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

Enlace para comentar
Compartir en otros sitios

 

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

Enlace para comentar
Compartir en otros sitios

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 ^^

Enlace para comentar
Compartir en otros sitios

  • 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
Enlace para comentar
Compartir en otros sitios

  • Dilong locked this tema
Guest
Este tema está cerrado a otras respuestas.
  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...