title: '海盜魚王架構調整'
-

口述規格

  • 陣型魚 BOSS 或藏寶圖要出時, 做個Count延遲3秒才送出, 讓Client端可以消化完原本要表演的東西
  • 一般魚轉陣型魚時 會先waitting 3秒,
  • 一般魚轉陣型魚時 rand 全新不重複的BG, 要出陣型魚瞬間 clean產魚資料, 在開始生魚

海盜魚王 預計拆出的項目

1
2
3
4

封包格式

封包=FISH_APPEAR

欄位名稱 資料型態 內容
fish_id int 魚的流水ID
data_id int 魚的腳本 data_id
fish_kind string 魚種
clear_time int 銷毀時間
speed int 速度
sub_id int 魚群用ID
path_id int 游動路徑Id
scriptFishData= {
  fish_id: 59,
  data_id: 5,
  fish_kind: 'F',
  time: 23,
  clear_time: 0,
  speed: 111,
  sub_id: 0,
  path_id: 1042
}

產魚邏輯

讀取產魚腳本

產生魚

每秒呼叫 bill 得產魚物件
他會生產出產魚data
fishId
fishDataId
clean_time

收到後存起來
廣播給client

收集藏寶圖

銷毀魚

clean_time 到了後, 銷毀魚

取得魚的賠倍相關資訊

水池

子彈管理和道具管理

關卡Stage管理器?

TableGameLogic 邏輯物件

把所有關卡流程控制 存放於此

TableGameLogic(遊戲實際流程和邏輯的物件) 說明

欄位名稱 資料型態 細節 內容
theme Obj this.theme = theme 關卡描述物件
gameStatus int this.gameStatus = STATUS_WAIT_PLAY 遊戲狀態 1:遊戲中 2:押注時間 3:新局 4:等待展演轉場表演
betTime int this.betTime = 300 押注時間
showTime int this.showTime = 3 展演時間, 目前三秒
maxLaserGun Obj this.maxLaserGun = this.theme.Controll_Value.Laser_max_execute_rate 雷射砲啟動倍數上限
laserGunRate Obj this.laserGunRate = this.theme.Controll_Value.Laser_pool_ratio 雷射砲抽取%數
poolProb Obj this.poolProb = this.theme.Controll_Value.All_pool_rate 進水量
normalPoolRate Obj this.normalPoolRate = this.theme.Controll_Value.Normal_pool_rate 一般水池%數
armsPoolRate Obj this.armsPoolRate = this.theme.Controll_Value.Weapon_pool_rate 特殊武器水池%數
maxWin Obj this.maxWin = this.theme.Controll_Value.Max_win 最大贏分限制
betRange Obj this.betRange = this.theme.Bet_Ratio[lobbyId.toString()] 注碼範圍
betHitValue Obj this.betHitValue = this.theme.Bet_Hit_Value[lobbyId.toString()] 注碼對應魚量
lockState bool this.lockState = false Table上鎖狀態(若上鎖中,不分配玩家進入此桌)(BOSS出場,海盜船出場都會上鎖)(放在gameTable那一層?)
leaveLockState bool this.leaveLockState = false 最後一個玩家離開時的上鎖狀態(放在gameTable那一層?)
fishIdCount int this.fishIdCount = 0 魚ID Count計數器
gameMode int this.gameMode = NORMAL_MODE 遊戲模式 1:普通 2:陣型 3:海盜船
gameNextMode int this.gameNextMode = 0 下一局遊戲模式
gameMap Obj this.gameMap = parseInt(Math.random() * this.theme.BG_Control.formation.BG_count + 1) 遊戲地圖
gameNextMap Obj this.gameNextMap = 0 下一局遊戲地圖
gmaeSong Obj this.gmaeSong = parseInt(Math.random() * this.theme.BG_Control.formation.BGM_count + 1) 遊戲音樂
gameNextSong int this.gameNextSong = 0 下一局遊戲音樂
gameModeCount int this.gameModeCount = 0 局數計數
bossEndTime int this.bossEndTime = 0 BOSS結束時間
bossCome bool this.bossCome = false BOSS出現
onRunTimer Obj this.onRunTimer = null 遊戲計時器
runCount int this.runCount = 1 timer count
fishScriptTime int this.fishScriptTime = 0 出魚腳本timer count的最大值
fishScript Obj this.fishScript = {} 出魚腳本
fishScriptWithTime Obj this.fishScriptWithTime = {} 出魚腳本ID對應上的時間
allDeadFish Obj this.allDeadFish = {} 全部死魚物件
bossScript Obj this.bossScript = {} boss腳本物件

theme.json 異動

Doll_Data 是 用來 描述三個保底物件
滿足保底條件就送錢
doll_count = 30          收集滿30個
doll_personal_pay_rate    

"//_comment5": "掉落收集物類型",
"DROP_MONKEY": 1,    // 猴子
"DROP_PEGUIN": 2,    // 企鵝
"DROP_SHARK": 3,     // 鯊魚   

待辦事項

寫賽果從延遲改成及時寫入 (2020/2/4)

離開遊戲延遲機制待討論 (2020/2/4)