Class CheatTracker

java.lang.Object
client.anticheat.CheatTracker

public class CheatTracker extends Object
玩家端作弊行為的即時偵測引擎,為每位連線角色持有一個實例。

本類別追蹤多種異常行為的時序訊號,並在達到閾值時呼叫 CheatingOffense 所定義的自動封禁或斷線邏輯:

  • 攻擊速度異常(checkAttackcheckPVPAttack):比對 客戶端 tickcount 與伺服器時間差,偵測超速攻擊(FASTATTACK / FASTATTACK2 / FASTATTACK3)。
  • 受傷頻率與迴避率(checkTakeDamage):偵測 FAST_TAKE_DAMAGEHIGH_AVOID
  • 傷害一致性(checkSameDamage):偵測 SAME_DAMAGE
  • 召喚獸/寵物攻速(checkSummonAttackcheckFamiliarAttack)。
  • 怪物移動(checkMoveMonster)、丟棄速度(checkDrop)、 訊息頻率(checkMsg)等輔助偵測。
  • 擴音器/GM 訊息的 Spam 防護(canSmegaGMSpam)。

違規紀錄以 CheatingOffenseEntry 儲存在 offenses 映射中, 並由 CheatingOffensePersister 定期持久化;達到 CheatingOffense.shouldAutoban(int) 門檻則呼叫 AutobanManager。本類別由 MapleCharacter 持有, 並透過 CharacterAnticheatManager 協作者存取。

  • Field Details

    • lastSmegaTime

      public long[] lastSmegaTime
    • lastTime

      public long[] lastTime
    • savelastTime

      public long[] savelastTime
    • lastASmegaTime

      public long[] lastASmegaTime
  • Constructor Details

  • Method Details

    • checkAttack

      public final boolean checkAttack(int skillId, int tickcount)
    • checkPVPAttack

      public final void checkPVPAttack(int skillId)
    • getLastAttack

      public final long getLastAttack()
    • checkTakeDamage

      public final void checkTakeDamage(int damage)
    • checkSameDamage

      public final void checkSameDamage(int dmg, double expected)
    • checkMoveMonster

      public final void checkMoveMonster(Point pos)
    • resetSummonAttack

      public final void resetSummonAttack()
    • checkSummonAttack

      public final boolean checkSummonAttack()
    • resetFamiliarAttack

      public final void resetFamiliarAttack()
    • checkFamiliarAttack

      public final boolean checkFamiliarAttack(MapleCharacter chr)
    • checkDrop

      public final void checkDrop()
    • checkDrop

      public final void checkDrop(boolean dc)
    • checkMsg

      public final void checkMsg()
    • getAttacksWithoutHit

      public final int getAttacksWithoutHit()
    • setAttacksWithoutHit

      public final void setAttacksWithoutHit(boolean increase)
    • registerOffense

      public final void registerOffense(CheatingOffense offense)
    • registerOffense

      public final void registerOffense(CheatingOffense offense, String param)
    • updateTick

      public void updateTick(int newTick)
    • canSmega

      public boolean canSmega(int limit, int type)
    • canAvatarSmega

      public boolean canAvatarSmega(int limit, int type)
    • canBBS

      public boolean canBBS()
    • expireEntry

      public final void expireEntry(CheatingOffenseEntry coe)
    • getPoints

      public final int getPoints()
    • getOffenses

      public final Map<CheatingOffense, CheatingOffenseEntry> getOffenses()
    • getSummary

      public final String getSummary()
    • dispose

      public final void dispose()
    • start

      public final void start(MapleCharacter chr)
    • GMSpam

      public boolean GMSpam(int limit, int type)
    • SaveSpam

      public boolean SaveSpam(int limit, int type)
    • getLastGMspam

      public long[] getLastGMspam()
    • getLastSavespam

      public long[] getLastSavespam()
    • getLastSmegaspam

      public long[] getLastSmegaspam()
    • getLastASmegaspam

      public long[] getLastASmegaspam()