從L1Attack.java去改
位置一樣在public int PcPcDamageCalc()
if(targetPlayer.getInventory().checkEquipped(XXX) && _random.nextInt(100) < 20)
{//若對方(被攻擊者)有穿編號為XXX的裝備 有20%的機率發動 XXX自己設
player.sendPackets(new S_SkillSound(_targetId, 228)); //特效 出現在對方身上
player.broadcastPacket(new S_SkillSound(_targetId, 228));//特效 出現在對方身上
if(!targetPlayer.check_magiclist(68))//如果對方沒聖結界的狀態
{
int timer=30*1000;//聖結界時間
L1SkillUse skilluse = new L1SkillUse();
L1SkillUse.SkillTimer skill = skilluse.new SkillTimer(targetPlayer, 68, timer);
skill.start();
targetPlayer.add_magiclist(68, skill);//給對方(被攻擊者)聖結界的狀態
}
}
怪物打我不會出現聖結ㄟ只有玩家打我會出現聖結這要去什麼地方改呢?
public int NpcPcDamageCalc()
if(targetPlayer.getInventory().checkEquipped(XXX) && _random.nextInt(100) < 20)
{
//若對方(被攻擊者)<--就是指我 有穿編號為XXX的裝備 有20%的機率發動
player.sendPackets(new S_SkillSound(_targetId, 228));
//特效 出現在對方(指的是我)身上
player.broadcastPacket(new S_SkillSound(_targetId, 228));
//特效 出現在對方(指的是我)身上
if(!targetPlayer.check_magiclist(68))//如果對方(指的是我)沒聖結界的狀態
{
int timer=30*1000;//聖結界時間
L1SkillUse skilluse = new L1SkillUse();
L1SkillUse.SkillTimer skill = skilluse.new SkillTimer(targetPlayer, 68, timer);
skill.start();
targetPlayer.add_magiclist(68, skill);//給對方(被攻擊者)<--就是指給我聖結界的狀態
}
}
把紅色的player改成npc就行了,來去試試
_targetPc.killSkillEffectTimer(997);
_targetPc.addSkillEffect(997, 16000);
_targetPc.sendPackets(new S_SystemMessage("\u5927\u81EA\u7136\u7684\u7CBE\u9748\u4E4B\u529B\u570D\u7E5E\u8005\u4F60\u3002"));
_pc.sendPackets(new S_SkillSound(_targetId, 4540));
_pc.broadcastPacket(new S_SkillSound(_targetId, 4540));
這是我的寫法 不過 我的沒有右上角的圖示 只有效果 @@ 可能太簡略了吧QQ
對NPC的話
_pc.broadcastPacket(new S_SkillSound(_targetId, 4540));<<這句
_Npc.broadcastPacket(new S_SkillSound(_targetId, 4540));<<改成這樣
就是npc對你攻擊會有效果哩 不會卡住
玩家對玩家要寫在pcpc下面
怪對玩家要寫在npcpc下面
希望大大有新的魔法防具效果可以分享哦