a894985459

修復重砲指揮官雙胞胎猴子

發表於 2023-11-22 03:17:48
a894985459 發表於 2023-11-22 03:17:48 | 顯示全部樓層 |閱讀模式
如題
不確定對應版本,因為我是用 GMS V117 做修復
沒意外GMS V111 TMS V145附近的版本都可以使用
切入正題 不設回覆跟A幣 因為沒意義

首先找到
MapleSummon.java

搜尋
public final int getSummonType() {
複製代碼

在他的上方增加

public final int getSkillType() {
        switch (skill) {
            case 33101005:
            case 32111006:
            case 5321004:
            case 5320011:
                return 5;
        }
        return 4;
    }
複製代碼

轉到 MapleStatEffect

搜尋

private void applyBuffEffect
複製代碼
下方找個 case 結尾下增加
case 5321004: {
                SkillFactory.getSkill(5320011).getEffect(applyfrom.getTotalSkillLevel(5321004)).applyTo(applyfrom, applyto, primary, null, newDuration);
                break;
            }
複製代碼

搜尋

case 5320011:
複製代碼

找到類似以下內容(一定有一段類似)

case 3121006: // phoenix
                case 23111008:
                case 23111009:
                case 23111010:
                case 5320011:
                    ret.statups.put(MapleBuffStat.SUMMON, 1);
複製代碼

將

case 5320011:
複製代碼

移動到歸類於

ret.statups.put(MapleBuffStat.PUPPET, 1);
複製代碼

這段的上方

結果大概會是

case 5220002: // wrath of the octopi
                case 33111003:
                case 5321003:
                case 5211014:
                case 5320011:
                    ret.statups.put(MapleBuffStat.PUPPET, 1);
                    break;
複製代碼

轉到CField.java 或是 MaplePacketCreator.java

搜尋
public static byte[] spawnSummon(MapleSummon summon, boolean animated) {
複製代碼

修改

mplew.writePos(summon.getPosition());
複製代碼

的下一行

mplew.writeShort(SendPacketOpcode.SPAWN_SUMMON.getValue());
            mplew.writeInt(summon.getOwnerId());
            mplew.writeInt(summon.getObjectId());
            mplew.writeInt(summon.getSkill());
            mplew.write(summon.getOwnerLevel() - 1);
            mplew.write(summon.getSkillLevel());
            mplew.writePos(summon.getPosition());
            mplew.write(......); ← 這裡
複製代碼

為

mplew.write(summon.getSkillType());
複製代碼


結果大概會是這樣

mplew.writeShort(SendPacketOpcode.SPAWN_SUMMON.getValue());
            mplew.writeInt(summon.getOwnerId());
            mplew.writeInt(summon.getObjectId());
            mplew.writeInt(summon.getSkill());
            mplew.write(summon.getOwnerLevel() - 1);
            mplew.write(summon.getSkillLevel());
            mplew.writePos(summon.getPosition());
            mplew.write(summon.getSkillType());
複製代碼

編譯

至此你又修復了一個技能

目前還有一個小問題就是
磁錨會去占用到第二隻猴子的位置
所以在使用磁錨時會導致一隻猴子提前結束

等我哪天找到完美修復的方式在丟上來

意外插曲

image.png

無限猴子制.jpg



瀏覽 2752 回復 2

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

返回頂部