1. 程式人生 > >房卡麻將分析之“俱樂部功能”

房卡麻將分析之“俱樂部功能”

什麼是俱樂部?  

         群主(代理)建立俱樂部後,可以邀請自已的群成員成為自已的俱樂部會員,方便管理。俱樂部玩法由創始人設定,只有俱樂部成員才能加入,並且俱樂部房間全部消耗創始人房卡。俱樂部成員無需建立房間,直接開始遊戲進行玩家匹配。

為什麼要做俱樂部?

(1)代理不再需要盯著玩家群,手動給群成員充卡,也不再需要輸入房號,省事方便,提升收益。

(2)代理設定好玩法後,玩家點選進入,系統自動分配房間,避免了打和牌的情況。

三個核心功能:

(1)代理建立和檢視俱樂部相關處理。

(2)玩家加入俱樂部相關處理。

(3)玩家要進遊戲,伺服器自動建立俱樂部房間並坐下,以及同俱樂部玩家查詢匹配處理。

資料庫表與儲存過程: 需要建立三個表:

1.代理的俱樂部資訊表clubinfo,用於記錄某個代理建立的俱樂部的資訊。

2.俱樂部生成的房間表clubrooms,用於記錄俱樂部所生成的房間列表和對應房間玩家名單資訊。

3.玩家加入俱樂部的名單表clubplayers,用於記錄玩家加入了哪個俱樂部。

對應也需要建立個儲存過程:

1.建立俱樂部相關:判斷建立人身份,將建立資訊記錄到表clubinfo。

2.建立俱樂部房間相關:判斷建立人房卡數量,將房間資訊記錄到表clubrooms,以及對應的建立人俱樂部房間資訊列表獲取。

3.玩家加入俱樂部相關:將玩家新增到俱樂部,以及從俱樂部移除。

代理身份建立俱樂部的開發流程:

(1)客戶端增加“建立俱樂部”的介面,傳送“建立俱樂部”的訊息。

(2)修改私人場伺服器,轉發至遊戲伺服器。

(3)修改遊戲伺服器,增加俱樂部的資料表和相應儲存過程以存讀俱樂部資料庫表,並增加相應的訊息和資料結構,處理接收到訊息後判斷和呼叫。

(4)修改前端表現,在獲取建立成功訊息後提示成功。

加入俱樂部功能開發流程:

(1)客戶端新增加一個“加入俱樂部”的介面。

(2)申請加入,向私人場伺服器傳送訊息。

(3)獲取返回訊息後,顯示提示。

修改私人場伺服器和遊戲伺服器:

(1)PriaveteGame::OnEventSocketPrivate函式中加入處理申請加入俱樂部訊息的處理,並轉發給遊戲伺服器。

(2)遊戲伺服器接收到訊息後呼叫儲存過程,將玩家ID,名稱加入到表clubplayers中,並返回加入成功訊息。

(3)私人場伺服器收到返回訊息後轉發給客戶端。

進入遊戲的流程:

(1)修改加入房間訊息結構,附帶俱樂部型別或ID,客戶端點選“開始遊戲”,傳送訊息結構給私人場伺服器。

(2)修改伺服器上PrivateTableInfo結構,附帶俱樂部ID,在PriaveteGame::OnTCPNetworkSubJoinPrivate函式中接收到加入房間訊息,如果是俱樂部,就遍歷線上房間,匹配俱樂部ID,如果找到此房間裡有空座位,就坐下。如果沒有找到房間,就呼叫建立房間函式,建立附帶俱樂部ID的新房間並坐下,傳送更新clubrooms表的訊息給遊戲伺服器進行資料表更新。

(3)成功加入房間後,返回加入房間結果訊息給客戶端。

(4)房間解散時,也要傳送更新clubrooms表的訊息給遊戲伺服器進行資料表更新。

(5)如果不允許自動建立房間,也可以把建立房間這部分移到前端供代理手動建立房間。

代理管理俱樂部的功能:

(1)在伺服器和客戶端增加對於資料表資訊clubrooms的獲取訊息和處理。

(2)在前端部分對於代理功能加入相應的列表顯示和分享功能。

以上就是基本的流程。