Class QuestRolloutDifferTest.RecordingQm

java.lang.Object
scripting.QuestRolloutDifferTest.RecordingQm
Enclosing class:
QuestRolloutDifferTest

public static final class QuestRolloutDifferTest.RecordingQm extends Object
受信任第一方腳本以 HostAccess.ALL 直呼本物件的 public 方法 —— 與線上 qm (NPCConversationManager,extends AbstractPlayerInteraction)同樣的 host-interop 路徑。每個方法把 「多載判別標籤 + 引數」追加到有序 log;回傳法給確定值(兩引擎同分支)。多為 void(差異只來自 引擎:多載選擇/數值強制/String 身份),正是 differ 要隔離的對象。

刻意鏡射「比 Tier2 實際驅動更寬」的多載集(send*S byte 系列、forceStartQuest 全多載、warp 家族、 teachSkill 全多載…),使多載解析差異可歸因於引擎而非「stub 缺方法」。複製 NPCConversationManager 的生產轉址(#L → sendSimplelastMsg 抑制)—— Tier2 代表已選 「每次進入至多一則對話、且字串不含 #L」使轉址/抑制永不觸發、每筆 qm.* 1:1 對應腳本實呼。

關鍵:刻意定義 gainSp22110-22119.js 呼叫不存在的 qm.gainSp(int,int)(整個 src/ 無此方法),兩引擎在 invoke 時同樣拋 TypeError: gainSp is not a function;若在此補一個 gainSp 會把這個本應一致的失敗掩蓋掉。Tier3 不 invoke 故不受影響;此處明文記錄此一刻意省略。

  • Field Details

  • Constructor Details

    • RecordingQm

      public RecordingQm()
  • Method Details

    • sendNext

      public void sendNext(String text)
    • sendNext

      public void sendNext(String text, int id)
    • sendNextS

      public void sendNextS(String text, byte type)
    • sendNextS

      public void sendNextS(String text, byte type, int idd)
    • sendPrev

      public void sendPrev(String text)
    • sendPrev

      public void sendPrev(String text, int id)
    • sendPrevS

      public void sendPrevS(String text, byte type)
    • sendNextPrev

      public void sendNextPrev(String text)
    • sendNextPrev

      public void sendNextPrev(String text, int id)
    • sendNextPrevS

      public void sendNextPrevS(String text)
    • sendNextPrevS

      public void sendNextPrevS(String text, byte type)
    • sendNextPrevS

      public void sendNextPrevS(String text, byte type, int idd)
    • sendOk

      public void sendOk(String text)
    • sendOk

      public void sendOk(String text, int id)
    • sendOkS

      public void sendOkS(String text, byte type)
    • sendYesNo

      public void sendYesNo(String text)
    • sendYesNo

      public void sendYesNo(String text, int id)
    • sendAcceptDecline

      public void sendAcceptDecline(String text)
    • askAcceptDecline

      public void askAcceptDecline(String text)
    • askAcceptDecline

      public void askAcceptDecline(String text, int id)
    • sendSimple

      public void sendSimple(String text)
    • sendSimple

      public void sendSimple(String text, int id)
    • say

      public void say(String text)
    • dispose

      public void dispose()
    • safeDispose

      public void safeDispose()
    • forceStartQuest

      public void forceStartQuest()
    • forceStartQuest

      public void forceStartQuest(int idd)
    • forceStartQuest

      public void forceStartQuest(String customData)
    • forceStartQuest

      public void forceStartQuest(int id, String data)
    • forceStartQuest

      public void forceStartQuest(int id, int npc)
    • forceStartQuest

      public void forceStartQuest(int id, int data, boolean filler)
    • forceCompleteQuest

      public void forceCompleteQuest()
    • forceCompleteQuest

      public void forceCompleteQuest(int idd)
    • startQuest

      public void startQuest(int idd)
    • completeQuest

      public void completeQuest(int idd)
    • getQuestStatus

      public byte getQuestStatus(int id)
    • isQuestActive

      public boolean isQuestActive(int id)
    • isQuestFinished

      public boolean isQuestFinished(int id)
    • gainItem

      public void gainItem(int id, short quantity)
    • gainItem

      public void gainItem(int id, short quantity, boolean randomStats)
    • gainExp

      public void gainExp(int gain)
    • gainMeso

      public void gainMeso(int gain)
    • removeAll

      public void removeAll(int id)
    • haveItem

      public boolean haveItem(int itemid)
    • haveItem

      public boolean haveItem(int itemid, int quantity)
    • canHold

      public boolean canHold()
    • canHold

      public boolean canHold(int itemid)
    • canHold

      public boolean canHold(int itemid, int quantity)
    • teachSkill

      public void teachSkill(int id, int level)
    • teachSkill

      public void teachSkill(int id, int level, byte masterlevel)
    • teachSkill

      public void teachSkill(int id, int level, byte masterlevel, int day)
    • changeJob

      public void changeJob(int job)
    • expandInventory

      public void expandInventory(byte type, int amt)
    • summonMsg

      public void summonMsg(int type)
    • summonMsg

      public void summonMsg(String msg)
    • warp

      public void warp(int map)
    • warp

      public void warp(int map, int portal)
    • warp

      public void warp(int map, String portal)
    • warpS

      public void warpS(int map, int portal)
    • warpS

      public void warpS(int map, String portal)
    • warpMap

      public void warpMap(int mapid, int portal)
    • getMeso

      public int getMeso()
    • getLevel

      public int getLevel()
    • getJob

      public int getJob()
    • getMapId

      public int getMapId()
    • getPlayerStat

      public int getPlayerStat(String type)
    • getNpc

      public int getNpc()
    • getQuest

      public int getQuest()