2014年5月26日 星期一

【Java教學】等級傷害加成系統

等級傷害加成

設想:攻擊方與目標方等級差距,會有傷害加成,無論是物理攻擊還是魔法攻擊。

一、打開src/l1j/server/server/model/L1Attack.java

加入宣告

import l1j.server.server.serverpackets.S_SystemMessage; 

复制代码

找到

private int calcPcPcDamage()

在該節的

return (int) dmg;

前加入

//等級差距傷害加成或減免 BY 遺忘島主
int pcLevel=_pc.getLevel();
int targetLevel=_targetPc.getLevel();
//等級超過30級以上的拒絕PVP
if (Math.abs(pcLevel-targetLevel)>30 && _pc.getMapId() == 4){
dmg=0;
_pc.sendPackets(new S_SystemMessage("在和平的亞丁大陸上,等級差距超過30級的玩家不能互相PK!!!"));
_targetPc.sendPackets(new S_SystemMessage("在和平的亞丁大陸上,等級差距超過30級的玩家不能互相PK!!!"));}
else
dmg = Math.floor(dmg * pcLevel / targetLevel);

//等級差距傷害加成或減免 BY 遺忘島主



复制代码

找到

private int calcPcNpcDamage()

在該節的

return (int) dmg;

前加入

//等級差距傷害加成或減免 BY 遺忘島主
int pcLevel=_pc.getLevel();
int targetLevel=_targetNpc.getLevel();
dmg = Math.floor(dmg * pcLevel / targetLevel);

//等級差距傷害加成或減免 BY 遺忘島主  

复制代码

找到

private int calcNpcPcDamage()

在該節的

return (int) dmg;

前加入

//等級差距傷害加成或減免 BY 遺忘島主
int npcLevel=_npc.getLevel();
int targetLevel=_targetPc.getLevel();
dmg = Math.floor(dmg * npcLevel / targetLevel);

//等級差距傷害加成或減免 BY 遺忘島主

复制代码  找到

private int calcNpcNpcDamage()

在該節的

return (int) dmg;

前加入

//等級差距傷害加成或減免 BY 遺忘島主
int npcLevel=_npc.getLevel();
int targetLevel=_targetNpc.getLevel();
dmg = Math.floor(dmg * npcLevel / targetLevel);

//等級差距傷害加成或減免 BY 遺忘島主  

复制代码

二、打開/rev2021/src/l1j/server/server/model/L1Magic.java

在下面的節中

public int calcMagicDamage(int skillId)

查找

damage = calcMrDefense(damage);

在其上加入

//等級差距傷害加成或減免 BY 遺忘島主
if (_calcType==PC_PC){
int pcLevel = _pc.getLevel();
int targetpcLevel=_targetPc.getLevel();
if (Math.abs(pcLevel-targetpcLevel)>30 && _pc.getMapId()==4){
damage=0;
_pc.sendPackets(new S_SystemMessage("在和平的亞丁大陸上,等級差距超過30級的玩家不能互相PK!!!"));
_targetPc.sendPackets(new S_SystemMessage("在和平的亞丁大陸上,等級差距超過30級的玩家不能互相PK!!!"));
}
else
damage=(int)Math.floor(damage*pcLevel/targetpcLevel);
}else if(_calcType==PC_NPC) {
int pcLevel = _pc.getLevel();
int targetnpcLevel=_targetNpc.getLevel();
damage=(int)Math.floor(damage*pcLevel/targetnpcLevel);
}else if(_calcType==NPC_NPC){
int npcLevel=_npc.getLevel();
int targetnpcLevel=_targetNpc.getLevel();
damage=(int)Math.floor(damage*npcLevel/targetnpcLevel);
}else if(_calcType==NPC_PC){
int npcLevel=_npc.getLevel();
int targetpcLevel=_targetPc.getLevel();
damage=(int)Math.floor(damage*npcLevel/targetpcLevel);
}

//等級差距傷害加成或減免 BY 遺忘島主  


作者:遺忘島主  

沒有留言:

張貼留言