查看: 4314|回復: 6

[問題] 請問攻擊顯示

[複製鏈接]

2

主題

86

帖子

135

金錢

中級會員

Rank: 3Rank: 3

威望
0
精華
0
貢獻
0
閱讀權限
30
積分
221
在線時間
6 小時
相冊
0
日誌
0
好友
0
發表於 2018-3-13 13:10 | 顯示全部樓層 |閱讀模式
請問有人可以分享 攻擊顯示的語法嗎
我的版本 伊薇板363 感謝




上一篇︰冰火天堂
下一篇︰3.8版本 內含對話補丁登入器
[發帖際遇]: puenhan 發帖時在路邊撿到 5 金錢,偷偷放進了口袋. 幸運榜 / 衰神榜

0

主題

138

帖子

4265

金錢

論壇元老

Rank: 8Rank: 8

威望
5
精華
0
貢獻
0
閱讀權限
90
積分
4373
在線時間
25 小時
相冊
0
日誌
0
好友
0
發表於 2018-3-13 15:28 | 顯示全部樓層
這個不錯哦...想知道+1

回復 支持 反對

使用道具 舉報

5

主題

69

帖子

1798

金錢

金牌會員

Rank: 6Rank: 6

威望
5
精華
0
貢獻
0
閱讀權限
70
積分
1877
在線時間
43 小時
相冊
0
日誌
0
好友
0
發表於 2018-3-14 16:49 | 顯示全部樓層
本帖最後由 flyht 於 2018-3-14 16:51 編輯

這是原始版本寫法 我直接複製別人寫好的 主要是抓顯示圖檔
樓下是伊薇版的寫法 自己修改圖檔編號和編號對應的編碼 對到即可

L1Attack.java
public void commit() 內
                /*
                if ((_calcType == PC_PC || _calcType == NPC_PC && !_targetPc.getAttackLog()) {
                        return;
                }
                */
                上面這段改成
                if (_calcType == NPC_PC) {
                        return;
                }

                下面再加上

                /**
                 * 傷害顯示系統
                 */
        if (_calcType == PC_NPC || _calcType == PC_PC) { // 傷害顯示開關
                int units = _damage % 10;
                int tens = (_damage / 10) % 10;
                int hundreads = (_damage / 100) % 10;
                int thousands = (_damage / 1000) % 10;
                int tenthousands = (_damage / 10000) % 10;
                if ((units > 0) || (tens > 0) || (hundreads > 0)
                                || (thousands > 0) || (tenthousands > 0)) {
                        units += 2000;
                        _pc.sendPackets(new S_SkillSound(_target.getId(), units));
                }
                if ((tens > 0) || (hundreads > 0) || (thousands > 0)
                                || (tenthousands > 0)) {
                        tens += 2010;
                        _pc.sendPackets(new S_SkillSound(_target.getId(), tens));
                }
                if ((hundreads > 0) || (thousands > 0) || (tenthousands > 0)) {
                        hundreads += 2020;
                        _pc.sendPackets(new S_SkillSound(_target.getId(), hundreads));
                }
                if ((thousands > 0) || (tenthousands > 0)) {
                        thousands += 2030;
                        _pc.sendPackets(new S_SkillSound(_target.getId(), thousands));
                }
                if (tenthousands > 0) {
                        tenthousands += 2040;
                        _pc.sendPackets(new S_SkillSound(_target.getId(), tenthousands));
                }
                if (_damage == 0) {
                        _pc.sendPackets(new S_SkillSound(_target.getId(), 2050));
                }
        }

        如果不想顯示訊息就把他註解了或改成gm顯示

L1Magic.java
public void commit(int damage, int drainMana) 內
跟L1Attack.java一樣

不過_damage要改成damage

最後C_Chat.java
if (chatType == 0) 內加上簡易開關

                /**
                 * 傷害顯示系統
                 */
               
                if(chatText.matches("atkmsg")) {
                        try {
                                if(!pc.getAttackLog()) {
                                        pc.setAttackLog(true);
                                        pc.sendPackets(new S_SystemMessage("開啟傷害顯示系統"));
                                } else {
                                        pc.setAttackLog(false);
                                        pc.sendPackets(new S_SystemMessage("關閉傷害顯示系統"));
                                }
                        } catch (Exception e) {
                        }
                }

最後是圖檔編碼
這是整體動畫
#10570        51 攻擊傷害特效
      0.eff(0 51,0.0:2 1.0:2 2.0:2 3.0:2 4.0:2 5.0:2 6.0:2 7.0:2 8.0:2 9.0:2 10.0:2 11.0:2 12.0:2 13.0:2 14.0:2 15.0:2 16.0:2 17.0:2 18.0:2 19.0:2 20.0:2 21.0:2 22.0:2 23.0:2 24.0:2 25.0:2 26.0:2 27.0:2 28.0:2 29.0:2 30.0:2 31.0:2 32.0:2 33.0:2 34.0:2 35.0:2 36.0:2 37.0:2 38.0:2 39.0:2 40.0:2 41.0:2 42.0:2 43.0:2 44.0:2 45.0:2 46.0:2 47.0:2 48.0:2 49.0:2 50.0:2)
        102.type(0)
              104.attr(8)

再來是個別的數字
#2000        51=10570 攻擊傷害特效
      0.eff(0 51,0.50:2 0.0:2 0.1:2 0.2:2 0.3:2 0.4:2 0.5:2 0.6:2 0.7:2 0.8:2 0.9:2 0.10:2 0.11:2 0.12:2 0.13:2 0.14:2 0.15:2 0.16:2 0.17:2 0.18:2 0.19:2 0.20:2 0.21:2 0.22:2 0.23:2 0.24:2 0.25:2 0.26:2 0.27:2 0.28:2 0.29:2 0.30:2 0.31:2 0.32:2 0.33:2 0.34:2 0.35:2 0.36:2 0.37:2 0.38:2 0.39:2 0.40:2 0.41:2 0.42:2 0.43:2 0.44:2 0.45:2 0.46:2 0.47:2 0.48:2 0.49:2)
        102.type(0)
              104.attr(4)
#2001        51=10570 攻擊傷害特效
      0.eff(0 51,1.50:2 1.0:2 1.1:2 1.2:2 1.3:2 1.4:2 1.5:2 1.6:2 1.7:2 1.8:2 1.9:2 1.10:2 1.11:2 1.12:2 1.13:2 1.14:2 1.15:2 1.16:2 1.17:2 1.18:2 1.19:2 1.20:2 1.21:2 1.22:2 1.23:2 1.24:2 1.25:2 1.26:2 1.27:2 1.28:2 1.29:2 1.30:2 1.31:2 1.32:2 1.33:2 1.34:2 1.35:2 1.36:2 1.37:2 1.38:2 1.39:2 1.40:2 1.41:2 1.42:2 1.43:2 1.44:2 1.45:2 1.46:2 1.47:2 1.48:2 1.49:2)
        102.type(0)
              104.attr(4)
#2002        51=10570 攻擊傷害特效
      0.eff(0 51,2.50:2 2.0:2 2.1:2 2.2:2 2.3:2 2.4:2 2.5:2 2.6:2 2.7:2 2.8:2 2.9:2 2.10:2 2.11:2 2.12:2 2.13:2 2.14:2 2.15:2 2.16:2 2.17:2 2.18:2 2.19:2 2.20:2 2.21:2 2.22:2 2.23:2 2.24:2 2.25:2 2.26:2 2.27:2 2.28:2 2.29:2 2.30:2 2.31:2 2.32:2 2.33:2 2.34:2 2.35:2 2.36:2 2.37:2 2.38:2 2.39:2 2.40:2 2.41:2 2.42:2 2.43:2 2.44:2 2.45:2 2.46:2 2.47:2 2.48:2 2.49:2)
        102.type(0)
              104.attr(4)
舉3個例子 剩下自己編了 編碼號碼自己找地方改 要對應核心

圖檔載點https://goo.gl/dnpnaZ

回復 支持 反對

使用道具 舉報

5

主題

69

帖子

1798

金錢

金牌會員

Rank: 6Rank: 6

威望
5
精華
0
貢獻
0
閱讀權限
70
積分
1877
在線時間
43 小時
相冊
0
日誌
0
好友
0
發表於 2018-3-14 16:49 | 顯示全部樓層
        /**
         * 計算結果
         */
        @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;
                }
        }

回復 支持 反對

使用道具 舉報

5

主題

69

帖子

1798

金錢

金牌會員

Rank: 6Rank: 6

威望
5
精華
0
貢獻
0
閱讀權限
70
積分
1877
在線時間
43 小時
相冊
0
日誌
0
好友
0
發表於 2018-3-14 16:52 | 顯示全部樓層
#14860 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14861 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14862 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14863 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14864 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14865 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14866 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14867 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14868 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14869 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14870 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14871 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14872 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14873 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14874 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14875 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14876 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14877 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14878 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14879 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14880 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14881 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14882 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14883 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8       
#14884 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14885 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14886 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14887 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14888 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14889 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14890 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14891 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14892 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14893 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14894 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14895 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 4
#14896 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14897 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14898 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14899 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14900 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14901 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14902 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14903 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14904 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14905 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14906 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14907 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14908 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#14909 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8

回復 支持 反對

使用道具 舉報

19

主題

219

帖子

7198

金錢

黃金VIP

Rank: 8Rank: 8

威望
10
精華
0
貢獻
0
閱讀權限
90
積分
7437
在線時間
125 小時
相冊
0
日誌
0
好友
0
發表於 2018-3-15 06:24 | 顯示全部樓層
感謝大大無私的分享

回復 支持 反對

使用道具 舉報

2

主題

86

帖子

135

金錢

中級會員

Rank: 3Rank: 3

威望
0
精華
0
貢獻
0
閱讀權限
30
積分
221
在線時間
6 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2018-3-15 22:10 | 顯示全部樓層
flyht 發表於 2018-3-14 16:52
#14860 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0

感謝大大教學 有點難懂 大大有LINE可以加嗎 我最近才在學習如何修改原碼 感謝您的分享 謝謝

[發帖際遇]: puenhan 在論壇發帖時沒有注意,被小偷偷去了 5 金錢. 幸運榜 / 衰神榜
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊會員

本版積分規則

有間天堂

45客服

Archiver|手機版| 45天堂私服論壇   分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!

45天堂私服發佈站 ©    天堂私服架設教學  提供最新天堂私服最新資訊

流量最高、品質最好、服務最優、玩家首選、最新天堂私服資訊,都在45天堂私服發佈站.    免責聲明

Sitetag
line客服聯繫
掃一掃二碼
Line客服聯繫
24H專人回覆
返回頂部 返回列表