# DreeWar.io 哈嘍各位安安,我是睿ヽ(•ω•ゞ) 歡迎來觀看由睿開發ㄉ**多人線上即時卡牌戰爭遊戲** 這是一款結合卡牌 即時對戰 佔領 建築 謀策 的對稱性戰爭遊戲 ------------------- ## **遊戲背景** 夢都大陸,一塊充滿夢想與無限可能性的大陸! 一直以來,這塊地上有兩個勢力不斷的在爭奪這裡主宰,也就是紅派與藍派 他們利用這裡出產的BP建築堅固的堡壘,利用魔法MP向對方發起了魔法攻擊,為了是佔領這款大陸的中央 世界之樹 世界之樹旁有四座大樹守護者 噴蛙 噴蛙會阻止任何人佔領這塊地! 與你的夥伴巧妙運用每一張手牌,不論是蓋起防禦工事還是施展魔法,將敵人逐出這塊地吧! ---------- ## **遊戲玩法** ### **概述** 遊戲分成兩隊,遊戲的目標是佔領地圖中央的世界之樹獲得積分以贏得勝利,你也可以利用樹旁的噴蛙來對佔領方進行反制,遊戲中你能夠打出手牌來發動技能或建築有利工事 ### **操作** 以下操作皆為默認設定 **WSAD**前後左右移動 **滾輪**更改欲施放的牌組 滑鼠**左鍵**施放牌組 滑鼠**右鍵**開啟表情介面,將鼠標移至上頭並放開右鍵施放表情 **Tab**顯示玩家列表 ### **建築** **世界之樹**(位於地圖中央) 遊戲的核心目標,佔領後可以為自己隊伍加分 佔領時間為5秒 ![](https://i.imgur.com/YV8CwHj.png =256x) **噴蛙**(共四個,圍繞在世界之樹旁) 佔領後,可以對世界之樹內部的敵方守軍產生打擊 每秒向世界樹散彈打出2顆傷害5點的蛙彈 佔領時間為3秒 ![](https://i.imgur.com/HCemhEE.png =256x) **隊伍重生點**(藍隊點位於最左方 紅隊點位於最右方) 玩家死後重生之地,各自駐紮有兩個砲台防禦 ,砲台無敵,攻擊為40血量 ![](https://i.imgur.com/SJ09jl0.png =256x) **遊戲目標是佔領世界之樹,每隔1秒加1分 300分即勝利** ### **屬性** 遊戲中玩家有三種屬性點數 * BP![](https://i.imgur.com/Y1CQlhk.png =30x) * BP能用來興建建築 * 最大值:3 * 回復速度:基礎回復速度x花園數量x0.8(獲得一點) * MP![](https://i.imgur.com/7Koo51C.png =30x) * MP能用魔法攻擊使用 * 最大值:10 * 回復速度:基礎回復速度x花園數量x蜜蜂園數量x0.8(獲得一點) * 生命值HP![](https://i.imgur.com/rYx2EmG.png =30x) * 生命值代表玩家血量,一旦歸零則玩家死亡回到原點! * 最大值:100 ### **卡牌** 整個遊戲從攻擊到建築都是圍繞著卡牌,遊戲中你會獲得四張完全隨機的卡牌. 透過消耗MP或者BP來進行施放,遊戲中有三種種類的卡牌 * **建築牌組** * 消耗BP以施放,能夠用來興建建築來給我方提供更大的優勢,目前共有五大建築牌 |**名稱**|蜂之園|磚牆|砲台|花園|工蜂哨| |--------| -------- | -------- | -------- | -------- | -------- | |消耗|3![](https://i.imgur.com/Y1CQlhk.png =15x)|1![](https://i.imgur.com/Y1CQlhk.png =15x)|2![](https://i.imgur.com/Y1CQlhk.png =15x)|3![](https://i.imgur.com/Y1CQlhk.png =15x)|3![](https://i.imgur.com/Y1CQlhk.png =15x)| |功能|能加速生成BP產量!每多一個蜜蜂園能使生產時間減少20%|能夠阻擋子彈或者是技能攻擊(不論敵我)|能夠遠程攻擊附近的敵人|能加速生成MP產量!每多一個花園能使生產時間減少20%|在附近的玩家(不論敵我)能回復每秒0.5點的血量| |血量|20|100|50|20|50| |其他|||傷害:10射速為三秒一發||| |卡牌|![](https://i.imgur.com/vhDXqUd.png =100x)|![](https://i.imgur.com/gXAVJuu.png =100x)|![](https://i.imgur.com/qX9GlVH.png =100x)|![](https://i.imgur.com/XWNi3UP.png =100x)|![](https://i.imgur.com/hEQMjLG.png =100x) | * **普攻牌組** | 普通攻擊 | | -------- | |消耗1點MP以打擊出一個砲彈<br>能對命中的敵人造成20點的傷害<br>砲彈移動速度是16<br>砲彈的移動距離是80<br>最左方的手牌永久常駐為普攻牌| |![](https://i.imgur.com/PQpsA2F.png)| * **技能牌組** * 消耗MP以施放,技能牌組能用來提供攻擊、防禦、Buff加成、迷幻敵人等等的效果!目前遊戲中有三種種族**狂戰族**、**輕靈族**、**術靈族**,各種種族有各自完全獨立的技能牌組,有關於各種族的特色,詳情請見下方 ### **種族** 技能部分又下分三種門派 每種門派有各自的技能牌 以及普攻牌 * **狂戰族** 狂暴猛衝一直以來都是狂暴族的最佳寫照!左拿狂酒右舉雙刀,手起刀落! 對於剛入門的玩家來說比較推薦,能夠單打獨鬥也能夠團隊行動 移動速度15 基礎傷害20 * **輕靈族** 輕功在下,輕弓在上,輕靈族本身擁有較高的移動速度與機動性和較高的傷害值,但是其操控難度較高! 移動速度20 基礎傷害20 * **術靈族** 術魂之間,能夠讓敵人陷入無境,讓我方全體昇華,主要用於多體強化或傷害,主要常在團戰中出現 移動速度16 基礎傷害20 #### **狂戰士牌組** | **狂暴** | **地裂** | 猛擒 | | -------- | -------- | -------- | | 能提高自身傷害並減慢附近敵人的移動速度|打出一道地上斷層攻擊敵人,受攻擊玩家會有極短暫的無法移動|飛撲向最近的玩家(無距離限制),並使得他受到大幅傷害並提升我方攻擊,不過移動速度會減慢| | ![](https://i.imgur.com/fTD0c7r.png =100x)|![](https://i.imgur.com/o0f0GDW.png =100x)|![](https://i.imgur.com/RqS7SGM.png =100x)| ### **設置** 面對不同操縱習慣的玩家,遊戲能自訂義你所擅長的操作方式 也能自訂義鍵位 目前牌組施放有兩種方式進行施放 1. QE更換卡牌 Space施放 2. QERF對應四張卡牌,點擊直接施放 你可以根據你的需求進行設定喔 ------------------- ## **遊戲技術** ### **遊戲開源** https://github.com/SR0725/DreeWar.Io ### **命令集** 在遊戲中你能在聊天欄輸入指令來控制遊戲局勢 指令的前綴詞為/ 你必須是管理員才能使用指令 成為管理員的指令是/login dreamcity(這串密碼請勿外流) **常用指令集** * /start * 開始遊戲 * /gamerule gameStartingJoin true/false * 玩家是否可以再遊戲開始後進入遊戲? * /gamerule friendlyFire true/false * 是否開啟同隊傷害? * /data get [id] [index] * 獲取特定玩家資料([index]為空表示獲取全部資料,[id]為@a則代表所有人) * /data set [id] [index] [value] * 設定特定玩家資料([index]不得為空,[id]為@a則代表所有人) * [index]參數如下(*表示該參數為唯讀) * id : 前端辨識用ID 與指令用的[id]無關 如果你不知道你在做什麼,請勿變更 * name : 玩家名稱 * health : 玩家生命 * team : 玩家隊伍 * mp : 玩家魔力值 * speed : 玩家速度 * damage: 玩家傷害 ----唯獨---- * *x : 玩家x軸座標(目前x座標更動是沒有用的) * *y : 玩家y軸座標(目前y座標更動是沒有用的) * *motion_x : 玩家x軸向量(目前x向量更動是沒有用的) * *motion_y : 玩家y軸向量(目前y向量更動是沒有用的) * *flip : 玩家是否看著右方(更動此值無作用) * *animation : 玩家當前顯示的動畫 0表示靜止 1為移動 2為施放技能 * /gameval set [index] [value] * 調整遊戲參數 * [index] * mpBasicRegVal 初始mp回復速度 * bpBasicRegVal 初始bp回復速度 * /gameval get [index] [value] * 調整遊戲參數 * [index] * mpBasicRegVal 初始mp回復速度 * bpBasicRegVal 初始bp回復速度 * /passwordchange [password] * 更改管理員密碼 * /oplist * 查詢管理員名單 ### **程式參數說明** 對於有興趣修改我開發的程式者,你可以研究以下參數來幫助你更好的製作遊戲 遊戲開發上 後端採用NodeJs,使用Socket.Io通訊 前端則是Bootstrap框架 遊戲中以JSON來進行數據傳輸,主要傳輸五大數據 **PlayerData** * 主要紀錄每個人的完整玩家資料(各資料說明) 每個Tick(20ms)伺服端會傳輸一次到客戶端 客戶端會回傳他個人的x y motion_x motion_y flip animation * SocketId(該玩家的SocketID 也是後端辨識用ID,由於指令系統是後端再做處理,所以指令系統指定玩家的[ID]辨識用此SocketId) * id * 前端辨識用ID,主要是前端辨識用(不過後端也是會使用前端ID處理的),如果更動可能會導致該玩家資料作廢 同時使用前端跟後端可能會導致開發者困惑,基本上如果該數據是純後端處理則是使用後端ID,如果是純前端或者資料來於前端便是使用前端ID * name * 玩家名稱 * health * 玩家血量 初始值為100 * team * 玩家隊伍 1為藍隊 2為紅隊 * mp * 魔力值 初始值為10 * bp * 建築點數 初始值為3 * speed * 玩家X軸動量 * damage * 玩家傷害 初始值為20 * x * 玩家X座標 *客戶端計算 伺服端僅作外掛測試 * y * 玩家Y座標 *客戶端計算 伺服端僅作外掛測試 * motion_x * 玩家X軸動量 *客戶端計算 * motion_y * 玩家X軸動量 *客戶端計算 * flip * 玩家圖片是否翻轉(玩家向左邊走時翻轉) *客戶端計算 * animation * 玩家當前動畫 *客戶端計算 **SkillData** * 主要傳輸玩家的**技能物件**也就是會有實際形體的存在,可以進行移動或者傷害 * 每個Tick(20ms)伺服端會傳輸一次到客戶端 * id * 施放者的前端id * name * 施放者的遊戲名稱 * x * 該技能的施放位置x * y * 該技能的施放位置y * motion_x * 該技能的移動向量x * motion_y * 該技能的移動向量y * team * 施放者隊伍 * skill * 技能的類型 * race * 技能的種族 * damage * 技能的傷害 * time * 技能生命(距離施放已經過了多久) * maintime * 技能壽命(施放多久後會被刪除) **EffectData** * 主要傳輸玩家的**效果物件**不會有實際形體,但會有效果的UI顯示,不可以進行移動 施放當下由伺服端傳輸一次 * id * 施放者的前端id * name * 施放者的遊戲名稱 * team * 施放者隊伍 * x * 效果施放位置x * y * 效果施放位置y * effected * 施加隊伍 or 人(如果是1或者2代表針對隊伍 如果是後端ID代表是單名玩家) * distance * 效果有效距離(單位是PX) * type * 效果 * 1傷害加乘 * 2移動速度加乘 * 3立即傷害 * 4立即治療 * level * 強度(如果是0.8則代表該玩家屬性乘上0.8) * time * 效果生命(距離施放已經過了多久) * maintime * 效果壽命(施放多久後會被刪除) **ParticleData** * 主要傳輸玩家的**粒子物件**會有實際形體,不可以進行移動(也就是純粹顯示在遊戲中) 施放當下由伺服端傳輸一次 * particle * 粒子效果類別 * 0是普通攻擊效果 * 1是爆炸效果 * 2是建築破壞粒子效果 * 3地板裂開的效果 * xy是種族x技能y施放粒子(xy數值為11~99) * 101 是建築範圍施展效果(400m) * 101 是建築範圍施展效果(800m) * x * 粒子的X軸 * y * 粒子的Y軸 * time * 粒子生命(距離施放已經過了多久) * maintime * 粒子壽命(施放多久後會被刪除) **BuildingData** * 主要傳輸玩家的**粒子物件**會有實際形體,不可以進行移動(也就是純粹顯示在遊戲中) 建築當下或建築受or建築被破壞各由伺服端傳輸一次 * name * 施放者玩家名稱 * type * 建築類別 1. 蜂之園 2. 磚牆 3. 食蝕獸 4. 花園 5. 工蜂哨 * health * 建築血量 初始值為100 * team * 建築所屬隊伍 1為藍隊 2為紅隊 * x * 建築X座標 * y * 建築Y座標