Package server.gashapon


package server.gashapon
轉蛋機子系統:以 npcId 為鍵的轉蛋機資料模型、累積機率抽獎與設定重載。

GashaponFactory 為單例總管,自資料表 gashapons 載入所有機台 (每台一個 Gashapon,以 npcId 索引),各機台再自 gashapon_items 載入其獎勵清單(每筆獎勵為 GashaponReward: 道具編號、相對權重、隨機數量區間、是否全頻廣播)。

抽獎採累積機率:機台將獎勵存為 tools.Pair<Long, GashaponReward> 的權重累計清單, Gashapon.generateReward()[0, total) 的隨機值回傳對應獎勵。 NPC 腳本透過 cm.getGashapon().generateReward() 取得獎勵物件後,在腳本內自行扣券、發獎與廣播。

亂數來自 Randomizer;資料的讀取透過 DatabaseConnection 取得共用連線。 後台「轉蛋機設置」頁的增刪改只寫入資料庫、自動生效,需經 !reloadgashponGashaponFactory.reloadGashapons())重載才採用新設定。

  • Classes
    Class
    Description
    單一轉蛋機(以 npcId 為對外鍵、id 為資料庫主鍵),持有其全部獎勵與累積機率抽選邏輯。
    轉蛋機總管(單例),以 npcId 為鍵持有所有 Gashapon 機台,供 NPC 腳本查詢抽獎。
    單筆轉蛋獎勵的不可變資料模型,對應資料表 gashapon_items 的一列。