Eyhra Posted May 22, 2016 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 73 Reputation: 7 Joined: 04/30/14 Last Seen: Friday at 01:18 PM Share Posted May 22, 2016 Guia] Arreglar El Bug De Soul CollectRealizada por: WarfareExplicacion General:Desde Las Versiones Actuales Del Emulador Eathena, La Skill Del Champion, Soul Collect, (La Que Nos Castea Las 5 Bolitas De Golpe) Tiene Un Bug Sin Menos Importancia, ¿Pero En Todo Caso Es Un Bug No?, Lo Que Hace, Es Que Aunque Tengamos Ya Casteadas Las Bolitas, Es Volver A Castearlas, Una y Otra Vez..., Nuestro Objetivo Sera Solucionar Este Bug Tan Tonto.Requerimientos:- Compilador Para Volver a Compilar El Codigo.- Emulador Funcional De Eathena.- Archivo Skill.c (Situado En La Carpeta src/map/InicioAbrid vuestro archivo skill.c y buscar lo siguiente. case MO_CALLSPIRITS: if(sd->spiritball >= lv) { clif_skill_fail(sd,skill,0,0); return 0; } break; Abajo Pegad El Siguiente Codigo //Shintetsu Soul Collect Bug case CH_SOULCOLLECT: if(sd->spiritball >= 5) { clif_skill_fail(sd,skill,0,0); return 0; } break; Si os fijais, lo que hemos hecho, es justamente decirle que cuente las bolitas gracias a la variable spiritball, que si es superior a 5 nos haga un skill fail, por lo que no nos casteara de nuevo las bolitas, y nos solucionara el bug.Solo Falta Que Compileis y Comprobeis por vosotros mismos, que funciona correctamente. ASI ERA EN EATHENA AHORA EN RATHENA? Podrian ayudarme GRACIAS Quote Link to comment Share on other sites More sharing options...
Darknessfmy Posted May 22, 2016 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 78 Reputation: 12 Joined: 05/08/16 Last Seen: February 10, 2020 Share Posted May 22, 2016 Así esta en rA, case MO_CALLSPIRITS: if(sd) { int limit = skill_lv; if( sd->sc.data[SC_RAISINGDRAGON] ) limit += sd->sc.data[SC_RAISINGDRAGON]->val1; clif_skill_nodamage(src,bl,skill_id,skill_lv,1); pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),limit); } break; case CH_SOULCOLLECT: if(sd) { int limit = 5; if( sd->sc.data[SC_RAISINGDRAGON] ) limit += sd->sc.data[SC_RAISINGDRAGON]->val1; clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < limit; i++) pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),limit); } break; ¿Estás seguro que sigue el problema? Quote Link to comment Share on other sites More sharing options...
Eyhra Posted May 22, 2016 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 73 Reputation: 7 Joined: 04/30/14 Last Seen: Friday at 01:18 PM Author Share Posted May 22, 2016 si yo lo tengo asi mira case MO_CALLSPIRITS: if(sd) { int limit = skill_lv; if( sd->sc.data[SC_RAISINGDRAGON] ) limit += sd->sc.data[SC_RAISINGDRAGON]->val1; clif_skill_nodamage(src,bl,skill_id,skill_lv,1); pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),limit); } break; case CH_SOULCOLLECT: if(sd) { int limit = 5; if( sd->sc.data[SC_RAISINGDRAGON] ) limit += sd->sc.data[SC_RAISINGDRAGON]->val1; clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < limit; i++) pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),limit); } break; Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.