搜索：

    public static final void NPCTalk(final LittleEndianAccessor slea, final MapleClient c, final MapleCharacter chr) {
        if (chr == null || chr.getMap() == null || chr.getBattle() != null) {
            return;
        }
        final MapleNPC npc = chr.getMap().getNPCByOid(slea.readInt());
        if (npc == null) {
            return;
        }
        if (chr.hasBlockedInventory()) {
            return;
        }
        if (npc.hasShop()) {
            chr.setConversation(1);
            npc.sendShop(c);
        } else {
            NPCScriptManager.getInstance().start(c, npc.getId());
        }
    }

替換：

    public static final void NPCTalk(final LittleEndianAccessor slea, final MapleClient c, final MapleCharacter chr) {
        if (chr == null || chr.getMap() == null || chr.getBattle() != null) {
            return;
        }
        final MapleNPC npc = chr.getMap().getNPCByOid(slea.readInt());
        if (npc == null) {
            return;
        }
        if (chr.hasBlockedInventory()) {
            return;
        }
        if (npc.hasShop()) {
            chr.setConversation(1);
            npc.sendShop(c);
        } else {
            NPCScriptManager.getInstance().start(c, npc.getId(), npc);
        }
    }


搜索：

    public final void start(final MapleClient c, final int npc) {
        start(c, npc, "");
    }
    
    public final void start(final MapleClient c, final int npc, String filename) {
        final Lock lock = c.getNPCLock();
        lock.lock();
        try {
            if (!cms.containsKey(c) && c.canClickNPC()) {
            if (c.getPlayer().isGM()) {
                c.getPlayer().dropMessage(5, "[系統提示]您已經建立與NPC: " + npc + " 的對話");
                    }
                Invocable iv = null;
                if (filename != null) {
                    iv = getInvocable("npc/" + filename + ".js", c, true);
                }
                if (iv == null) {
                    iv = getInvocable("npc/" + npc + ".js", c);
                }
                if (iv == null) {
                    iv = getInvocable("npc/notcoded.js", c, true); //safe disposal
                    if (iv == null) {
                        dispose(c);
                        return;
                    }
                }
                final ScriptEngine scriptengine = (ScriptEngine) iv;
                final NPCConversationManager cm = new NPCConversationManager(c, npc, -1, (byte) -1, iv);
                cms.put(c, cm);
                scriptengine.put("cm", cm);



替換：

    public final void start(final MapleClient c, final int npc) {
        start(c, npc, "", null);
    }

    public final void start(final MapleClient c, final int npc, MapleNPC npcob) {
        start(c, npc, "", npcob);
    }

    public final void start(final MapleClient c, final int npc, String filename, MapleNPC npcob) {
        final Lock lock = c.getNPCLock();
        lock.lock();
        try {
            if (!cms.containsKey(c) && c.canClickNPC()) {
            if (c.getPlayer().isGM()) {
                c.getPlayer().dropMessage(5, "[系統提示]您已經建立與NPC: " + npc + " 的對話");
                    }
                Invocable iv = null;
                if (filename != null) {
                    iv = getInvocable("npc/" + filename + ".js", c, true);
                }
                if (iv == null) {
                    iv = getInvocable("npc/" + npc + ".js", c);
                }
                if (iv == null) {
                    iv = getInvocable("npc/notcoded.js", c, true); //safe disposal
                    if (iv == null) {
                        dispose(c);
                        return;
                    }
                }
                final ScriptEngine scriptengine = (ScriptEngine) iv;
                final NPCConversationManager cm = new NPCConversationManager(c, npc, npcob,  -1, (byte) -1, iv);
                cms.put(c, cm);
                scriptengine.put("cm", cm);

頁首：

import server.life.MapleNPC;




搜索：

public abstract class AbstractPlayerInteraction {

    protected MapleClient c;
    protected int id, id2;

    public AbstractPlayerInteraction(final MapleClient c, final int id, final int id2) {
        this.c = c;
        this.id = id;
        this.id2 = id2;
    }

替換：


public abstract class AbstractPlayerInteraction {

    protected MapleClient c;
    protected int id, id2;
    protected MapleNPC npcob;

    public AbstractPlayerInteraction(final MapleClient c, final int id, final int id2) {
        this.c = c;
        this.id = id;
        this.id2 = id2;
    }

    public AbstractPlayerInteraction(final MapleClient c, final int id, final MapleNPC npcob, final int id2) {
        this.c = c;
        this.id = id;
        this.npcob = npcob;
        this.id2 = id2;
    }

頁首：

import server.life.MapleNPC;


搜索：

    public NPCConversationManager(MapleClient c, int npc, int questid, byte type, Invocable iv) {
        super(c, npc, questid);
        this.type = type;
        this.iv = iv;
    }

替換：

    public NPCConversationManager(MapleClient c, int npc, int questid, byte type, Invocable iv) {
        super(c, npc, questid);
        this.type = type;
        this.iv = iv;
    }

    public NPCConversationManager(MapleClient c, int npc, MapleNPC npcob, int questid, byte type, Invocable iv) {
        super(c, npc, npcob, questid);
        this.type = type;
        this.iv = iv;
    }


頁首：

import server.life.MapleNPC;


搜索：

    public void setFace2(int id) {
        c.getPlayer().setDemonMarking(id);
    }
}


替換：

    public void setFace2(int id) {
        c.getPlayer().setDemonMarking(id);
    }

    public MapleNPC getNpcob() {
        return this.npcob;
    }

    public int getNpcdist() {
        int dis =(int) this.npcob.getPosition().distance(c.getPlayer().getPosition());
        return dis;
    }
}

頁首：

import server.life.MapleNPC;



搜索：

    public final void openNpc(final int id, String s) {
        getClient().removeClickedNPC();
        NPCScriptManager.getInstance().start(getClient(), id, s);
    }

替換：

    public final void openNpc(final int id, String s) {
        getClient().removeClickedNPC();
        NPCScriptManager.getInstance().start(getClient(), id, s, null);
    }

搜索：

    public void HotTime() {
        for (MapleCharacter mc : getPlayerStorage().getAllCharacters()) {
            NPCScriptManager.getInstance().start(mc.getClient(), 9010010, "dlqpsxm");
        }
    }

替換：

    public void HotTime() {
        for (MapleCharacter mc : getPlayerStorage().getAllCharacters()) {
            NPCScriptManager.getInstance().start(mc.getClient(), 9010010, "dlqpsxm", null);
        }
    }