搜索：

    private int allgainnx = 0;
    /*End of Custom Feature*/

替換：

    private int allgainnx = 0;
    private java.util.Timer DFRecoveryTimer;
    /*End of Custom Feature*/




搜索：

    public long getChangeTime() {
        return mapChangeTime;
    }

替換：

    public long getChangeTime() {
        return mapChangeTime;
    }

    public java.util.Timer getDFRecoveryTimer() {
        return DFRecoveryTimer;
    }

    public void setDFRecoveryTimer(java.util.Timer timer) {
        DFRecoveryTimer = timer;
    }


搜索：


                bx = SkillFactory.getSkill(31110009);
                bof = chra.getTotalSkillLevel(bx);
                if (bof > 0) {
                    eff = bx.getEffect(bof);
                    mpRecover += 1;
                    mpRecoverProp += eff.getProb();
                }

替換：

                bx = SkillFactory.getSkill(31110009);
                bof = chra.getTotalSkillLevel(bx);
                if (bof > 0) {
                    final int DFRecovery = 2 * bof;
                    if(chra.getDFRecoveryTimer() != null){
                        chra.getDFRecoveryTimer().cancel();
                        chra.getDFRecoveryTimer().purge();
                    }
                    chra.setDFRecoveryTimer(new java.util.Timer());
                    TimerTask healTask = new TimerTask(){
                        @Override
                        public void run(){
                            if(chra.getStat().getMp() < chra.getStat().getMaxMp() && chra.isAlive()){
                                chra.handleForceGain(0,0,DFRecovery);
                            }
                        }
                    };
                    chra.getDFRecoveryTimer().scheduleAtFixedRate(healTask, 4000, 4000);
                }



頁首：

import java.util.TimerTask;