2013年6月1日 星期六

【Java教學】玩家PK殺人公告

非原創只是將新的方法分享給找不到方法的新手GM!!!
根據本站另一帖教學中新增失敗的玩家可以看看~~

=========================

教學開始

=========================

server/server/model/L1Attack.java

搜尋public int PcPcDamageCalc()

往下拉直到尋找下方這段語法↓

       
   if (dmg <= 0) {
           _isHit = false;
           _drainHp = 0; // ダメージ無しの場合は吸収による回復はしない
       }

       return (int) dmg;
   }





在return (int) dmg; 上方加入語法



//PK公告
                if (dmg <= 0) {
                    _isHit = false;
                    }
                    if(dmg >= _targetPc.getCurrentHp() //攻擊傷害大於目標目前血量
                    && _pc.getLevel() - _targetPc.getLevel() <= 10 //雙方等級差距不超過10
                    && _targetPc.getZoneType() != -1){ //被攻擊者不是在戰鬥區域
                    
                    
               BroadCastToAll((new StringBuilder()).append("【").append(_targetPc.getName()).append("】被【").append(_pc.getName()).append("】殺了!").toString()); //公頻顯示的內容
                    }
                    //PK公告 END

======================================

最後在return (int) dmg;
  }  ←的下方加入:↓廣播的方法(如果你已經有了這段就不用新增了)


   private void BroadCastToAll( String string ) {
        Collection <L1PcInstance> allpc = L1World.getInstance().getAllPlayers();
        for ( L1PcInstance pc : allpc )
          pc.sendPackets( new S_SystemMessage( string ) );
       } 

=======================================

沒有留言:

張貼留言