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 取得共用連線。
後台「轉蛋機設置」頁的增刪改只寫入資料庫、不自動生效,需經 !reloadgashpon
(GashaponFactory.reloadGashapons())重載才採用新設定。
-
ClassesClassDescription單一轉蛋機(以
npcId為對外鍵、id為資料庫主鍵),持有其全部獎勵與累積機率抽選邏輯。轉蛋機總管(單例),以npcId為鍵持有所有Gashapon機台,供 NPC 腳本查詢抽獎。單筆轉蛋獎勵的不可變資料模型,對應資料表gashapon_items的一列。