---
# System prepended metadata

title: Data Flow Diagram
tags: [系統分析]

---

# Data Flow Diagram

### 登入/登出系統 (葳)
:::success
![](https://hackmd.io/_uploads/S1yXP44v3.png)

#### 細部說明：
1.若為新玩家可選擇以訪客身分登入或是註冊(可選擇使用Fb、Twitter、gmail登入)。
2.登入成功後若有簽到，可以獲得金幣(更改用戶資料金幣數)。
3.若是第一次玩，一開始會先進入新手村，開始新手教學，結束新手教學后，玩家選擇任一地圖開始，地圖會綁一個對應的角色。
4.若是舊玩家，登入之後會到上次遊戲進度點的地方。
5.遊戲途中只要在有網路的環境及非戰鬥狀態下，玩家的遊戲進度都會自動存檔。
:::

---
### 競技場系統(彥熏)
:::success
![](https://hackmd.io/_uploads/r1IbfbIDn.png)

#### 細部說明:
1. 玩家在進入競技場後要選擇比賽模式(排位賽or一般賽) -> 登記入賽，
   系統便會自動分配選擇同樣賽制的玩家(一般)。
2. 接著雙方玩家必須選擇品質相同的角色和武器，選擇完成後便會被傳送至
   競技場地圖進入實際的戰鬥過程。
3. 在決鬥至其中一方玩家戰勝後，系統便會依據玩家剛開始選擇的遊戲模式
   去判定所給予的獎勵(一般賽: 金幣數量提升 / 排位賽: 得到積分和代幣)。
   * 代幣: 可用來在競技場商店購買專屬商品。
   * 積分: 在累積足夠多的積分後就能提升玩家排位。
4. 玩家若想獲得競技場專屬商品，便必須前往競技場商店使用代幣進行交易，
   交易過程則和一般商店一樣使同樣的系統。
:::

---
### 公會系統（穎）
:::success
![](https://hackmd.io/_uploads/r14TjhTI2.jpg)
#### 細部說明：
 1.玩家可選擇要創建公會或是申請加入公會
 2.當玩家選擇創建公會後需要輸入公會名稱
 3.公會長可以加入成員、刪除成員以及看見工會成員列表
 4.當玩家選擇申請加入公會，通過申請後可以看見該公會成員列表
 5.當玩家申請失敗後，可以重新申請
:::

---

### 背包系統(葳)
:::success
![](https://hackmd.io/_uploads/SJUmYTTLh.png)
#### 細部說明：
1.玩家在打怪過程中會獲得角色碎片，連接到地圖資料庫中的掉落物名稱，將獲得的角色碎片放入背包。
2.將部分用戶資料(人物外觀、玩家等級、玩家暱稱、玩家ID)匯入背包資料庫
3.玩家可以接收或贈送物品給其他玩家(更新背包資料)
4.玩家可以比較裝備之間的功能差異(匯入裝備、道具資料庫)
:::

---
### 戰鬥系統(秉霖、之賢)(舊的)
:::success
![](https://hackmd.io/_uploads/rJf1be0Lh.png)
#### 細部說明
1.玩家在進入怪物視野後才會進入戰鬥
2.玩家能選擇的行為有逃跑、更換裝備、使用道具、普通攻擊、大招、小招。
3.玩家打的傷害會根據其穿戴的裝備、使用的角色，以及使用的道具效果而計算，怪物打的傷害則是由怪物的數值而定。
4.戰鬥在任意一方全數死亡(或玩家逃跑)後結束
5.經判定後，若為玩家獲勝，則可以獲得怪物掉落的物品，若玩家戰敗，則會損失身上裝備並且回到新手村(逃跑例外)。
:::
### 玩家攻擊
:::success
![](https://hackmd.io/_uploads/HJ_VveUv3.png)
#### 細部說明
1.每把武器的技能數量不同。
2.計算傷害的方式，會根據職業的數值以及武器的數值而有所不同。
:::
### 更換裝備
:::success
![](https://hackmd.io/_uploads/rJUSOgUwh.png)

#### 細部說明
1.更換裝備後技能會因裝備而改變
:::
### 使用道具
:::success
![](https://hackmd.io/_uploads/rkX7KxUD2.png)

:::
### 玩家戰鬥
:::success
![](https://hackmd.io/_uploads/SkotteIP3.png)
#### 細部說明
1.玩家逃跑需脫離怪物的視野範圍
2.戰鬥開始後玩家能使用道具、更換裝備，以及攻擊
3.玩家經過掉落物時，掉落物會自動加入背包(若還有空間)
:::
### 怪物戰鬥
:::success
![](https://hackmd.io/_uploads/HyI69g8v3.png)
#### 細部說明
1.怪物掉落的物品包括金幣、道具、裝備
:::
### 地圖(秉霖)(舊的)

:::success
![](https://hackmd.io/_uploads/Bkr1kh28n.png)
#### 細部說明:
1.玩家在新手村中可以選擇使用傳送點或傳送門傳送到世界中，若使用傳送門，玩家只能傳送到完成過的地圖。
2.玩家若為公會成員，可以在公會中選擇進入世界王地圖，世界王地圖是所有公會都連通的，且跟其他世界地圖沒有相連。
3.在世界中進入Boss關前必須離開隊伍，並且在獲勝後會回到新手村。
:::
### 進入世界地圖
:::success
![](https://hackmd.io/_uploads/BycWhlID2.png)

#### 細部說明
1.世界地圖中，每張地圖都會有往前跟往後的傳送點可以使用(除了新手村只能往後)，抵達傳送點後也可以選擇返回新手村
2.若玩家到達過該地圖，則他可以使用在新手村中的傳送們進行傳送
:::
### 進入公會戰地圖
:::success
![](https://hackmd.io/_uploads/BJ_ETg8wh.png)


#### 細部說明
1.若玩家為公會成員，則他能夠參與公會戰
2.公會戰的BOSS每隔一段時間會刷新，並且傷害最高的公會以及最後殺死BOSS的玩家都會有額外獎勵
:::
### 進入BOSS地圖
:::success
![](https://hackmd.io/_uploads/HySgAgLPn.png)
#### 細部說明
1.每個地形的最後一張地圖都是BOSS關，BOSS關只能單人進入
2.若顯卡沒有達到3060以上，則進入BOSS關後會直接判定失敗
3.打贏BOSS後，若玩家為首次通關，則會開啟下一張地圖，並且返回新手村
:::

---

### 好友(祝)
:::success
![](https://hackmd.io/_uploads/SkUkAlAL3.jpg)
#### 細部說明
1.可從好友列表中搜尋好友-->用戶(傳送者)使用friend name or friend ID，可搜尋friends(其他玩家)
2.a 若發送friend申請，[接受]-->檢查friend列表總數是否超過30人(上限30人)，[是]-->加入失敗(好友已達上限) / [否]-->加入至好友列表
2.b [拒絕] -->傳送者可於30秒後再試一次
3.可於好友列表中，刪除好友
4.於好友列表中，發出組隊邀請:
[隊伍目前人數<5]-->可加入隊伍中
[隊伍目前人數=5]-->加入失敗
5.好友列表中，可將好友拉進黑名單中
:::

---
### 商店系統(彥熏)
:::success
![](https://hackmd.io/_uploads/HyY8vlUD3.png)


#### 細部說明:
1. 玩家要先進入新手村地圖並找到商店之後，才能使用遊戲內的交易功能。
2. 接著玩家要和店員NPC互動，才能進入商品介面挑選想要購買的商品，
   * 交易失敗: 若玩家身上金幣不足以支付價格，系統會自動提示玩家金幣不足。
   * 交易成功: 玩家身上所攜帶的金幣足夠支付商品價格，再按下購買鍵後，
系統便會扣除玩家身上金幣，並將購買數量的商品物件傳送至玩家背包。
3. 若玩家想在商店進行拍賣，在和店員NPC互動後，便能將身上的物品拖移至交易介面，系統則會在計算出物品價值後，將賣出的物品歸類為商品並傳入商品系統中，玩家身上的金幣也會依賣出物品的價值提升。
:::

### 聊天系統(祝)
:::success
![](https://hackmd.io/_uploads/SkOYlW0Ih.jpg)
#### 細部說明
1. 聊天室-->分為四個:公會 / friend / 隊伍
2. **a**. [公會聊天室包含]: 公會name、傳送者之user name、會長標示、副會長標示、公會之歷史對話紀錄
   **b**. [friend聊天室包含]:傳送者之user name、friend之歷史對話紀錄
   **c**. [隊伍聊天室包含]:隊伍ID、隊伍name、傳送者之user name、隊伍之       歷史對話紀錄
:::


---
# ERD (馥安、宣閔)
:::success
![](https://hackmd.io/_uploads/HkXH-jdw3.png)

- 說明文件放在word檔！
- 一個公會有多個公會任務，每個任務有一筆任務資訊(ID、任務名稱、該任務的獎勵)。
- 好友的table有聊天紀錄、好友ID等欄位。
- 裝備
 一個背包裡面有多種裝備
 每個裝備有一個裝備資訊
一個裝備資訊可以有一個或多個裝備技能
- 道具
一個背包裡面有多種道具
每個道具有一筆道具資訊，該筆道具資訊顯示該道具的名稱、價格...等
- 拍賣紀錄
依照賣家和買家的玩家ID去紀錄每筆拍賣紀錄之金額和拍賣的物品ID
- 玩家可以選擇一種職業擔任，每種職業有對應的職業數值。
一個玩家會有多個個人任務，每個任務有對應的任務資訊table。
- 玩家可以組隊成隊伍，每個隊伍會有該隊伍的ID和名稱。
- 不同地圖會掉落各種裝備供玩家蒐集。地圖中也會出現不同的怪獸，每個怪獸會有對應的怪獸資訊table，table內會有很多欄位顯示該怪獸的能力值。
- 各個npc會用不同互動種類ID來分類。
:::

---
# 業務流程圖
### 戰鬥模式 (之賢)
:::success
![](https://hackmd.io/_uploads/rkDziSww3.png)
- 進入戰鬥前判斷為個人還是小組以及是主動進入怪物視野或是被動
- 進入戰鬥後選擇我方行為
- 我方行為
    - 使用藥水:
        可以補充能量
    - 更換武器:
        可以從背包中更換目前使用的武器。
    - 攻擊:
        分為普通攻擊及技能攻擊，技能攻擊有大招小招，使用後計算傷害
    - 防禦:
        減少傷害，使用後計算傷害。
    - 逃跑:
        離開怪物範圍停止戰鬥。
- 在我方行為結束後，判斷我方是否死亡，是的話損失被包內尚未儲存到倉庫的裝備，並回到新手村；若我方尚未死亡則接續判斷怪物是否死亡，是的話就掉落金幣或裝備，並且玩家繼續探索地圖；若我方尚未死亡且怪物也尚未死亡則繼續戰鬥。
- 只要玩家死亡回到新手村、玩家逃跑、玩家打敗怪物則離開戰鬥模式。
:::
### 主線任務 (宣閔)
:::success
![](https://hackmd.io/_uploads/S16QZIvvh.jpg)
- 新手剛登入遊戲，要先選擇初始地圖是叢林、山脈還是沙漠，選完之後沒有被選擇的地圖就會被鎖住，直到蒐集完上一個地圖的人物碎片，下一個地圖才會解鎖。
- 選完初始地圖後，會進入新手村。如果想要執行主線任務，就要去尋找主線任務npc，接受任務的話，就進入初始地圖；反之，繼續在新手村。
- 接受主線任務進入初始地圖後，就要開始打怪蒐集人物碎片，沒有蒐集完就繼續尋找；反之，解鎖地圖2。解鎖地圖3的步驟如上。
- 當初始地圖、地圖2和地圖3都解鎖了，隱藏地圖-洞穴，就會被解鎖。禁入洞穴尋找最終boss並打敗他。打敗的話，就可以進入寶藏間獲取寶藏，並破解主線任務；反之，回到記錄點繼續尋找最終boss。
:::
