Class MonsterGlobalDropEntry

java.lang.Object
server.life.MonsterGlobalDropEntry

public class MonsterGlobalDropEntry extends Object
跨怪物全域掉落項目的資料持有類別,代表適用於所有(或特定大陸)怪物的掉落設定。

MonsterDropEntry 的基礎上,額外記錄 continent(大陸限制)、 dropType(掉落類型位元組)、onlySelf(是否僅本怪物適用)旗標, 以及 minLevel(怪物最低等級門檻)、eventOnly 搭配 startDateendDate (活動期間限定掉落的時間窗)。由 MapleMonsterInformationProvider 載入全域掉落清單, 供 MapleMonsterKillManager 在計算每次掉落時,依怪物等級與 isActiveAt(long) 活動期間即時過濾後查詢。

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    int
     
    int
     
    byte
     
    long
    活動結束時間(epoch 毫秒;0 代表終點不設限);僅在 eventOnlytrue 時有意義。
    boolean
    是否為活動限定掉落(對應資料表 event_flag);true 時受 startDateendDate 活動期間約束。
    int
     
    int
     
    int
     
    int
    怪物最低等級門檻:怪物等級 ≥ 此值才會掉落本項目;0 代表不限制。
    boolean
     
    int
     
    long
    活動開始時間(epoch 毫秒;0 代表起點不設限);僅在 eventOnlytrue 時有意義。
  • Constructor Summary

    Constructors
    Constructor
    Description
    MonsterGlobalDropEntry(int itemId, int chance, int continent, byte dropType, int Minimum, int Maximum, int questid)
     
    MonsterGlobalDropEntry(int itemId, int chance, int continent, byte dropType, int Minimum, int Maximum, int questid, boolean onlySelf)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    isActiveAt(long now)
    判斷此全域掉落在指定時間點是否處於活動有效期內。

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • dropType

      public byte dropType
    • itemId

      public int itemId
    • chance

      public int chance
    • Minimum

      public int Minimum
    • Maximum

      public int Maximum
    • continent

      public int continent
    • questid

      public int questid
    • onlySelf

      public boolean onlySelf
    • minLevel

      public int minLevel
      怪物最低等級門檻:怪物等級 ≥ 此值才會掉落本項目;0 代表不限制。
    • eventOnly

      public boolean eventOnly
      是否為活動限定掉落(對應資料表 event_flag);true 時受 startDateendDate 活動期間約束。
    • startDate

      public long startDate
      活動開始時間(epoch 毫秒;0 代表起點不設限);僅在 eventOnlytrue 時有意義。
    • endDate

      public long endDate
      活動結束時間(epoch 毫秒;0 代表終點不設限);僅在 eventOnlytrue 時有意義。
  • Constructor Details

    • MonsterGlobalDropEntry

      public MonsterGlobalDropEntry(int itemId, int chance, int continent, byte dropType, int Minimum, int Maximum, int questid)
    • MonsterGlobalDropEntry

      public MonsterGlobalDropEntry(int itemId, int chance, int continent, byte dropType, int Minimum, int Maximum, int questid, boolean onlySelf)
  • Method Details

    • isActiveAt

      public boolean isActiveAt(long now)
      判斷此全域掉落在指定時間點是否處於活動有效期內。

      非活動限定(eventOnlyfalse)的掉落恆為有效;活動限定掉落則需 now 落在 [startDate, endDate] 區間內(任一端為 0 代表該端不設限)。

      Parameters:
      now - 欲判定的時間點(epoch 毫秒,通常為 System.currentTimeMillis())
      Returns:
      此掉落於 now 是否有效