 | /** * 計算結果 */ @Override public void commit() { if (_isHit) { if (_pc.dice_hp() != 0) { if ((_random.nextInt(1000) + 1) <= _pc.dice_hp()) { _drainHp = _pc.sucking_hp(); } } if (_pc.dice_mp() != 0) { if ((_random.nextInt(1000) + 1) <= _pc.dice_mp()) { _drainMana = _pc.sucking_mp(); } } switch (_calcType) { case PC_PC: if (_pc.lift() != 0) { if ((_random.nextInt(1000) + 1) <= _pc.lift()) { L1ItemInstance armor = _targetPc.getInventory().getItemEquipped(2, 1);// 頭盔 if (armor != null) { _targetPc.getInventory().setEquipped(armor, false); // 1,356:盔甲的連線部分被破壞了。 _targetPc.sendPackets(new S_ServerMessage(1356)); } } } commitPc(); break; case PC_NPC: commitNpc(); break; } } if (!ConfigAlt.ALT_ATKMSG) { // 傷害顯示特效開關 return; } final String srcatk = _pc.getName();// 攻擊者 String tgatk = "";// 被攻擊者 String hitinfo = "";// 資訊 String dmginfo = "";// 傷害 String x = "";// 最終資訊 int i = (int) ((_damage/Math.pow(10,0)) % 10) + 14860;//個位0-9 int k = (int) ((_damage/Math.pow(10,1)) % 10) + 14870;//十位0-9 int h = (int) ((_damage/Math.pow(10,2)) % 10) + 14880;//百位0-9 int s = (int) ((_damage/Math.pow(10,3)) % 10) + 14890;//千位0-9 int m = (int) ((_damage/Math.pow(10,4)) % 10) + 14900;//萬位0-9 switch (this._calcType) { case PC_PC: tgatk = _targetPc.getName(); hitinfo = " 命中:" + _hitRate + "% 剩餘hp:" + _targetPc.getCurrentHp(); dmginfo = _isHit ? "傷害:" + _damage : "失敗"; x = srcatk + ">" + tgatk + " " + dmginfo + hitinfo; if ( _damage <= 0 ){ this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , 14150));//Miss特效 } else if ( _damage > 0 && _damage < 10 ){ this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , i));//個位數特效 } else if ( _damage >= 10 && _damage < 100){ this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , k));//十位數特效 } else if ( _damage >= 100 && _damage < 1000){ this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , k));//十位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , h));//百位數特效 } else if ( _damage >= 1000 && _damage < 10000){ this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , k));//十位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , h));//百位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , s));//千位數特效 } else if ( _damage >= 10000){ this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , k));//十位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , h));//百位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , s));//千位數特效 this._pc.sendPackets(new S_SkillSound(this._targetPc.getId() , m));//萬位數特效 } break; case PC_NPC: tgatk = this._targetNpc.getName(); hitinfo = " 命中:" + this._hitRate + "% 剩餘hp:" + this._targetNpc.getCurrentHp(); dmginfo = this._isHit ? "傷害:" + this._damage : "失敗"; x = srcatk + ">" + tgatk + " " + dmginfo + hitinfo; if ( _damage <= 0 ){ this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , 14150));//Miss特效 } else if ( _damage > 0 && _damage < 10 ){ this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , i));//個位數特效 } else if ( _damage >= 10 && _damage < 100){ this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , k));//十位數特效 } else if ( _damage >= 100 && _damage < 1000){ this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , k));//十位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , h));//百位數特效 } else if ( _damage >= 1000 && _damage < 10000){ this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , k));//十位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , h));//百位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , s));//千位數特效 } else if ( _damage >= 10000){ this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , i));//個位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , k));//十位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , h));//百位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , s));//千位數特效 this._pc.sendPackets(new S_SkillSound(this._targetNpc.getId() , m));//萬位數特效 } break; } }
| |