最新天堂1游戏开机预告 【公告】99天堂发布站2000人QQ交流群 86429772
设为首页 | 加入收藏
首页 家族 文章 工具 优势   战歌
★ ★ ★  ★ ★ ★
  百度一下     360搜索     天堂图档     SEO查询     在线翻译     家族联盟     个性签名
发布游戏     发布家族     广告价格     宣传优势    广告联系     工具下载     技术文章
天堂1游戏怪物被攻擊後,對自己和組隊內的玩家顯示血條
文章作者:久久 文章来源:天堂1游戏发布网 更新时间:2010/12/13 15:53:45 

怪物被攻擊後,對自己和組隊內的玩家顯示血條



到config的altsettings設定#怪物顯示血條
MonsterHpBar = false

這個修改是參考roylin168大大發的怪物被攻擊時顯示血條&怪死血條消失
修改的檔案: L1MonsterInstance,攻擊怪物的時候才會顯示血條,怪物死掉時血條會立即消失,
只有自己和組隊內的玩家看的到被打怪物的血條,停了10秒若沒有繼續攻擊則怪物血條消失,
編譯好後請放進l1j.server.server.model.Instance。

編譯好的Class檔案,沒辦法直接上傳,只好用免空:
下載點一(VS)
下載點二(FS)

要先import
import java.util.Timer;
import java.util.TimerTask;
import l1j.server.server.serverpackets.S_HPMeter;

- 20101206
  修改了2/5的部分,帶寵物會有Exception的產生..
  載點檔案也更新過了,如果還有問題再請試用過的大大們提出,謝謝。
  1.         // ************* 打怪才顯示血條 by fysmloves 1/5 *************
  2.         Timer cancel_broadcast = null;
  3.         L1PcInstance pc = null;
  4.         L1PcInstance pc_party[] = null;
  5.         // ************************ End 1/5 ************************
  6.         ////////////@Override
  7.         public void receiveDamage(L1Character attacker, int damage) { // 攻撃でHPを減らすときはここを使用
  8.                 if (getCurrentHp() > 0 && !isDead()) {
  9.                         if (getHiddenStatus() == HIDDEN_STATUS_SINK
  10.                                         || getHiddenStatus() == HIDDEN_STATUS_FLY) {
  11.                                 return;
  12.                         }
  13.                         if (damage >= 0) {
  14.                                 if (!(attacker instanceof L1EffectInstance)) { // FWはヘイトなし
  15.                                         setHate(attacker, damage);
  16.                                 }
  17.                         }
  18.                         if (damage > 0) {
  19.                                 removeSkillEffect(FOG_OF_SLEEPING);
  20.                         }

  21.                         onNpcAI();

  22.                         if (attacker instanceof L1PcInstance) { // 仲間意識をもつモンスターのターゲットに設定
  23.                                 serchLink((L1PcInstance) attacker, getNpcTemplate()
  24.                                                 .get_family());
  25.                         }

  26.                         if (attacker instanceof L1PcInstance && damage > 0) {
  27.                                 L1PcInstance player = (L1PcInstance) attacker;
  28.                                 player.setPetTarget(this);

  29.                                 if (getNpcTemplate().get_npcId() == 45681 // リンドビオル
  30.                                                 || getNpcTemplate().get_npcId() == 45682 // アンタラス
  31.                                                 || getNpcTemplate().get_npcId() == 45683 // パプリオン
  32.                                                 || getNpcTemplate().get_npcId() == 45684) // ヴァラカス
  33.                                 {
  34.                                         recall(player);
  35.                                 }
  36.                         }

  37.                         // ************* 打怪才顯示血條 by fysmloves 2/5 *************
  38.                         if ( L1World.getInstance().getPlayer(attacker.getName()) != null )
  39.                                 pc = L1World.getInstance().getPlayer(attacker.getName());
  40.                         else {
  41.                                 L1NpcInstance pet = (L1NpcInstance) L1World.getInstance().findObject(attacker.getId());
  42.                                 pc = L1World.getInstance().getPlayer(pet.getMaster().getName());
  43.                         } // else
  44.                        
  45.                         if ( pc.getParty() != null ) pc_party = pc.getParty().getMembers();
  46.                         // ************************ End 2/5 ************************

  47.                         int newHp = getCurrentHp() - damage;
  48.                         if (newHp <= 0 && !isDead()) {
  49.                                 int transformId = getNpcTemplate().getTransformId();
  50.                                 // ************* 打怪才顯示血條 by fysmloves 3/5 *************       
  51.                                 pc.sendPackets(new S_HPMeter(this.getId(), 0xFF));        // 關閉血條
  52.                                 if ( pc.getParty() != null ) {
  53.                                         for ( int i = 0; i < pc_party.length; i++ ) {
  54.                                                 pc_party[i].sendPackets(new S_HPMeter(this.getId(), 0xFF));
  55.                                         } // for
  56.                                 } // if
  57.                                 // ************************ End 3/5 ************************
  58.                                 // 変身しないモンスター
  59.                                 if (transformId == -1) {
  60.                                         setCurrentHpDirect(0);
  61.                                         setDead(true);
  62.                                         setStatus(ActionCodes.ACTION_Die);
  63.                                         openDoorWhenNpcDied(this);
  64.                                         Death death = new Death(attacker);
  65.                                         GeneralThreadPool.getInstance().execute(death);
  66.                                         // Death(attacker);
  67.                                 } else { // 変身するモンスター
  68. // distributeExpDropKarma(attacker);
  69.                                         transform(transformId);
  70.                                 }
  71.                         }

  72.                         if (newHp > 0) {
  73.                                 setCurrentHp(newHp);
  74.                                 hide();
  75.                                 // ************* 打怪才顯示血條 by fysmloves 4/5 *************
  76.                                 pc.sendPackets(new S_HPMeter(this));
  77.                                        
  78.                                 if ( pc.getParty() != null ) {
  79.                                         for ( int i = 0; i < pc_party.length; i++ ) {
  80.                                                 pc_party[i].sendPackets(new S_HPMeter(this));
  81.                                         } // for
  82.                                 } // if
  83.                                
  84.                                 if ( cancel_broadcast != null ) {
  85.                                         cancel_broadcast.cancel();
  86.                                         cancel_broadcast = null;
  87.                                 } // if
  88.                                 // ************************ End 4/5 ************************
  89.                         } // if
  90.                         // ************* 打怪才顯示血條 by fysmloves 5/5 *************
  91.                         cancel_broadcast = new Timer();
  92.                         final L1Object broadcastMonster = this;
  93.        
  94.                         cancel_broadcast.schedule(new TimerTask() {
  95.                                 @Override  
  96.                                 public void run() {
  97.                                         pc.sendPackets(new S_HPMeter(broadcastMonster.getId(), 0xFF));        // 關閉血條
  98.                                         if ( pc.getParty() != null ) {
  99.                                                 for ( int i = 0; i < pc_party.length; i++ ) {
  100.                                                         pc_party[i].sendPackets(new S_HPMeter(broadcastMonster.getId(), 0xFF));
  101.                                                 } // for
  102.                                         } // if
  103.                                         cancel_broadcast.cancel();
  104.                                 }  
  105.                         }, 10000);        // 10秒沒繼續打怪就關閉血條
  106.                         // ************************ End 5/5 ************************
  107.                 } else if (!isDead()) { // 念のため
  108.                         setDead(true);
  109.                         setStatus(ActionCodes.ACTION_Die);
  110.                         Death death = new Death(attacker);
  111.                         GeneralThreadPool.getInstance().execute(death);
  112.                         // Death(attacker);
  113.                 }
  114.         }
复制代码
转于99nets
浏览次数:63
最新文章
· 请注意,一定要看,发布游戏的亲们清注意...
· 八月广告优惠规则...
· 99天堂更好域名为99t1.cc...
· 热烈庆祝99天堂发布站成立4周年...
· 天堂游戏任务-欲望的沼泽(耳环任务)...
· 为方便大家找服,收集了天堂1游戏发布网站...
· 天堂孤魂:一路有你...
· 天堂里的五个天使...
· 远离天堂,追寻爱情...
· 天堂1游戏里 我们都不寂寞...
热门文章
· 永恒塔防5月14日更新 新服“银月之城”火爆开启...
· 天堂1游戏哥唱的是寂寞...
· 天堂1游戏核心內的java檔案相關內容分析...
· 教你創造 NPC 、販賣物品...
· 天堂1游戏“见与不见”都是一种修行...
· 详细的游戏架设教程...
· 99天堂1游戏发布站祝大家新年快乐...
· 坏像有一种可能将物质转化之前用光束入言淌传的技拙...
· 天堂1游戏添加和删掉NPC的方法...
· 天堂1游戏新版l1jdb目录解析...
· 天堂1游戏部分新水龙魔法编码...
· 天堂1游戏怪物被攻擊後,對自己和組隊內的玩家顯示血...
· 同志们好!为神话服务!《幻境2》明星访谈...
· 99天堂1游戏发布优秀文章...
· 原创文章啊...
· 仙域地府开启 恐怖巫术“三魂七魄”乍现人间...
· 天堂1游戏架设三宝...
关于我们广告联系更多天堂1游戏网站帮助友情连接
Copyright 2008-2010 Www.99t1.cc 天堂1游戏 All Rights Reserved (注:本站只接受官方授权游戏广告,非官方授权游戏请办理广告业务之前告知本站)
拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活 品牌商标,文字,形象及内容归 Www.99t1.cc 天堂1游戏发布站 版权所有,任何组织或个人未经 Www.99t1.cc 天堂1游戏发布站 同意,不得使用和传播
本站所有游戏均来自网络版权归游戏业主所有,如果无意之中侵犯了您的版权,请来信告知,本站将在3个工作日内删除.联系邮箱:[email protected]
*注释:本站发布所有游戏信息,均来自互联网,与本站无关,请玩家仔细辨认游戏信息的真实性,避免上当受骗. 苏ICP备12011632号-1