private void handleHyperPassiveSkills(MapleCharacter chra) {
        int prefix = chra.getJob() * 10000;
        Skill bx;
        int bof;
        MapleStatEffect eff;
        for (int i = 30; i < 50; i++) {
            bx = SkillFactory.getSkill(prefix + i);
            bof = chra.getSkillLevel(bx);
            if (bx != null && bx.isHyper() && bof > 0) {
                eff = bx.getEffect(bof);
                if (eff != null) {
                    switch (i) {
                        case 30:
                            localstr += eff.getStrX();
                            break;
                        case 31:
                            localdex += eff.getDexX();
                            break;
                        case 32:
                            localint_ += eff.getIntX();
                            break;
                        case 33:
                            localluk += eff.getLukX();
                            break;
                        case 34:
                            crit_rate += eff.getCr();
                            break;
                        case 35:
                            accuracy += eff.getAccR();
                            break;
                        case 36:
                            percent_hp += eff.getPercentHP();
                            break;
                        case 37:
                            percent_mp += eff.getPercentMP();
                            break;
                        case 38:
                            localmaxmp += eff.getMaxDemonFury();
                            break;
                        case 39:
                            wdef += eff.getWDEFX();
                            break;
                        case 40:
                            mdef += eff.getMDEFX();
                            break;
                        case 41:
                            speed += eff.getSpeed();
                            break;
                        case 42:
                            jump += eff.getJump();
                            break;
                    }
                }
            }
        }
        for (int i = 30; i < 50; i++) {
            bx = SkillFactory.getSkill(prefix + i);
            bof = chra.getSkillLevel(bx);
            if (bx != null && bx.isHyper() && bof > 0) {
                eff = bx.getEffect(bof);
                String name = bx.getName();
                if (eff != null && name != null) {
                    int skill = GameConstants.findSkillByName(name.split(" - ")[0], prefix, 0);
                    if (skill != 0) {
                        Skill skil = SkillFactory.getSkill(skill);
                        if (skil != null && chra.getSkillLevel(skil) > 0) {
                            if (eff.getDAMRate() > 0) {
                                //skil.getEffect(chra.getSkillLevel(skil)).setDAMRate(eff.getDAMRate());
                            }
                        }
                    }
                }
            }
        }
    }