Dragonslayer Publicado 6 de Febrero del 2015 Reportar Compartir Publicado 6 de Febrero del 2015 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. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Edward™ Publicado 6 de Febrero del 2015 Reportar Compartir Publicado 6 de Febrero del 2015 En lua no se me ocurre, pero puedes hacer un item en c++ para que funcione y sea como una poción de 100% de vida, y le cambias tu el porcentaje, Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dragonslayer Publicado 6 de Febrero del 2015 Author Reportar Compartir Publicado 6 de Febrero del 2015 Bueno tendré que seguir el esquema de las bendiciones de vida al final. Bueno gracias de todas formas. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
RafaVK Publicado 6 de Febrero del 2015 Reportar Compartir Publicado 6 de Febrero del 2015 Es fácil con quest... affect.add_collect(apply.HP_REGEN, 100000, 5) Dragonslayer reacciono a esto 1 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Edward™ Publicado 6 de Febrero del 2015 Reportar Compartir Publicado 6 de Febrero del 2015 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. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
RafaVK Publicado 6 de Febrero del 2015 Reportar Compartir Publicado 6 de Febrero del 2015 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 Mas opciones de compartir...
Dragonslayer Publicado 6 de Febrero del 2015 Author Reportar Compartir Publicado 6 de Febrero del 2015 Vale lo probare, gracias Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
ZoneLife Publicado 6 de Febrero del 2015 Reportar Compartir Publicado 6 de Febrero del 2015 Puedes explicar que quieres hacer exactamente, a ver que podemos hacer tengo algunas ideas pero no se que quieres hacer exactamente. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
RafaVK Publicado 7 de Febrero del 2015 Reportar Compartir Publicado 7 de Febrero del 2015 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 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dragonslayer Publicado 7 de Febrero del 2015 Author Reportar Compartir Publicado 7 de Febrero del 2015 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 Mas opciones de compartir...
ZoneLife Publicado 7 de Febrero del 2015 Reportar Compartir Publicado 7 de Febrero del 2015 Dragon que es lo que quieres hacer exactamente reparar el HP/SP bug? Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dragonslayer Publicado 7 de Febrero del 2015 Author Reportar Compartir Publicado 7 de Febrero del 2015 Que recupere instantaneamente ese hp por ejmplo. 20k. Ya se que la función esa lo que hace es añadir 20k de vida durante 3 segundos. Pero como no encuentro y creo que no hay una que restaure hp voy a usar y esa, pero todavía no la he podido probar. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
RafaVK Publicado 7 de Febrero del 2015 Reportar Compartir Publicado 7 de Febrero del 2015 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 Dragonslayer reacciono a esto 1 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dragonslayer Publicado 7 de Febrero del 2015 Author Reportar Compartir Publicado 7 de Febrero del 2015 Vale gracias. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
ZoneLife Publicado 7 de Febrero del 2015 Reportar Compartir Publicado 7 de Febrero del 2015 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 Mas opciones de compartir...
SeMa™ Publicado 7 de Febrero del 2015 Reportar Compartir Publicado 7 de Febrero del 2015 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 ".." Dragonslayer y Digital-RBK reacciono a esto 2 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
RafaVK Publicado 7 de Febrero del 2015 Reportar Compartir Publicado 7 de Febrero del 2015 Está mal, no puedes usar un "+", en lua es ".." Tienes toda la razón no me fije en eso... ya lo edito... Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dragonslayer Publicado 13 de Febrero del 2015 Author Reportar Compartir Publicado 13 de Febrero del 2015 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 Mas opciones de compartir...
Dragonslayer Publicado 24 de Febrero del 2015 Author Reportar Compartir Publicado 24 de Febrero del 2015 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 Mas opciones de compartir...
Rafa23Alzira Publicado 24 de Febrero del 2015 Reportar Compartir Publicado 24 de Febrero del 2015 Para c++ creo que es así (en questlua_pc) int pc_give_hp(lua_State* L) { int hp = (int)lua_tonumber(L, 1); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); PointChange(POINT_HP, hp); return 0; } Dragonslayer reacciono a esto 1 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dragonslayer Publicado 24 de Febrero del 2015 Author Reportar Compartir Publicado 24 de Febrero del 2015 Para c++ creo que es así (en questlua_pc) int pc_give_hp(lua_State* L) { int hp = (int)lua_tonumber(L, 1); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); PointChange(POINT_HP, hp); return 0; } Vale gracias, lo probare. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Rafa23Alzira Publicado 24 de Febrero del 2015 Reportar Compartir Publicado 24 de Febrero del 2015 Vale gracias, lo probare. Si no te sirve fijate en la función pc.change_sp Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Mensajes recomendados