Jump to content

[AYUDA][SRC] Arreglar El Bug De Soul Collect.


Eyhra

Recommended Posts


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   6
  • Joined:  04/30/14
  • Last Seen:  

Guia] Arreglar El Bug De Soul Collect
Realizada por: 
Warfare


Explicacion 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/

Inicio

Abrid 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 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  78
  • Reputation:   12
  • Joined:  05/08/16
  • Last Seen:  

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?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   6
  • Joined:  04/30/14
  • Last Seen:  

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;
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...