this is kinda late but....
In rathena/src/map/battle.c Find:
if(sd && (skillv = pc_checkskill(sd,MO_TRIPLEATTACK)) > 0) {
Replace the whole code section with:
if(sd && (skillv = pc_checkskill(sd,MO_TRIPLEATTACK)) > 0 &&
!(t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->class_ == MOBID_EMPERIUM) ) {
int triple_rate= 30 - skillv; //Base Rate
if (sc && sc->data[SC_SKILLRATE_UP] && sc->data[SC_SKILLRATE_UP]->val1 == MO_TRIPLEATTACK) {
triple_rate+= triple_rate*(sc->data[SC_SKILLRATE_UP]->val2)/100;
status_change_end(src, SC_SKILLRATE_UP, INVALID_TIMER);
}
if (rnd()%100 < triple_rate) {
if( skill_attack(BF_WEAPON,src,src,target,MO_TRIPLEATTACK,skillv,tick,0) )
return ATK_DEF;
return ATK_MISS;
}
}
this would supposedly cancel the chance for doing a "triple attack" when attacking emp, haven't tested this yet though ,