Originally posted by [b]Inquisetor90[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=4465
It no longer makes your def 90+90 and mdef 90+90. It reduces ALL incoming damage (not sure about pure damage) to 1/10.
In /src/map/status.c
To prevent myself from reiterating, the 4 functions below
//~ Function1: static signed char status_calc_def(struct block_list *bl, struct status_change *sc, int def)
//~ Function2: static signed short status_calc_def2(struct block_list *bl, struct status_change *sc, int def2)
//~ Function3: static signed char status_calc_mdef(struct block_list *bl, struct status_change *sc, int mdef)
//~ Function4: static signed short status_calc_mdef2(struct block_list *bl, struct status_change *sc, int mdef2)
has the coding,
CODE
if(sc->data[SC_STEELBODY])
return 90;
My suggestion:
Remove the above code from all the stated 4 functions in status.c. Then in battle.c where you see this coding
CODE
//Finally damage reductions....
if( sc->data[SC_ASSUMPTIO] )
{
if( map_flag_vs(bl->m) )
damage = damage*2/3; //Receive 66% damage
else
damage >>= 1; //Receive 50% damage
}
Write this directly below as a new if statement:
CODE
//Finally damage reductions....
if( sc->data[SC_ASSUMPTIO] )
{
if( map_flag_vs(bl->m) )
damage = damage*2/3; //Receive 66% damage
else
damage >>= 1; //Receive 50% damage
}
if( sc->data[SC_STEELBODY] )
damage /= 10; //Receive 10% damage
Note on TODO:
- Assumptio would have a similar coding structure to steel body which could resulting in equip defense and magic defense rising above 100. I have not requested a solve for the assumptio issue until
i) The defense reduction formula is changed in battle.c and
ii) the SVN can support equip defense and magic defense values above 9999
are done first.
This post has been edited by Inquisetor90: Nov 2 2010, 12:26 PM