This one is an issue that I discussed with another server admin at one point in the past long long ago. It may be a legitimate bug depending on which side you're on.
It may possibly stem from the AEGIS -> eAthena database value conversion as the value used in the database is direct from what AEGIS leaks say it is (which could also be incorrect since AEGIS leaks are modified by the people who leak them or are derived from descriptions or eAthena even).
The script itself states this portion: bonus2 bWeaponComaRace,RC_DemiHuman,10;
eAthena documentation states this:
bonus2 bWeaponComaRace,x,y; y/100% chance to cause Coma when attacking a monster of race x with a normal attack
0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect,
5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon,
10=Boss monster, 11=Other than (normal monster) boss monster
However, 10/100=.1% if you read that.
Some servers say that the descriptions released and even the RMS descriptions are wrong for saying 10%, considering that other sources say that it should be 1%.
On top of this all, eAthena's coding explains how that 10 is read:
pc.c - bonus2
case SP_WEAPON_COMA_RACE:
if(sd->state.lr_flag == 2)
break;
sd->weapon_coma_race[type2] += val; <- Place 10 from the script here.
sd->special_state.bonus_coma = 1;
break;
skill.c - skill_additional_effect
if( attack_type&BF_WEAPON )
{ // Coma, Breaking Equipment
if( sd && sd->special_state.bonus_coma )
{
rate = sd->weapon_coma_ele[tstatus->def_ele];
rate += sd->weapon_coma_race[tstatus->race];
rate += sd->weapon_coma_race[tstatus->mode&MD_BOSS?RC_BOSS:RC_NONBOSS];
if (rate)
status_change_start(bl, SC_COMA, rate, 0, 0, 0, 0, 0, 0); <- That 10 continues here.
}
status.c - status_change_start
/*==========================================
* Starts a status change.
* 'type' = type, 'val1~4' depend on the type.
* 'rate' = base success rate. 10000 = 100% <- 10 = .1%
* 'tick' is base duration
* 'flag':
* &1: Cannot be avoided (it has to start)
* &2: Tick should not be reduced (by vit, luk, lv, etc)
* &4: sc_data loaded, no value has to be altered.
* &8: rate should not be reduced
*------------------------------------------*/
int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val1,int val2,int val3,int val4,int tick,int flag)
Additional eAthena updates also point to the understanding that eAthena is marking it as .1%. If you take a look at
http://sourceforge.net/apps/trac/eathen ... tem_db.txt, you will see that shadow, while he updated the wrong value, intended to change it from .5% to 5%. He did this by changing the database value from 50 to 500.
Other discussion on eAthena's own SVN show issues with it in general:
http://sourceforge.net/apps/trac/eathen ... tem_db.txt
http://sourceforge.net/apps/trac/eathen ... tem_db.txt