大天使之劍H5遊戲超詳細圖文架設教程

echeverra發表於2021-11-17

前言

想體驗傳奇遊戲霸服的快樂嗎?想體驗滿級VIP的尊貴嗎?想體驗一刀99999的爽快嗎?各種極品裝備、翅膀、寵物通通給你,就在大天使之劍!

本文講解大天使之劍H5遊戲的架設教程,想研究H5遊戲如何實現,體驗遊戲中秒天秒地秒空氣的一定不要錯過。

封面圖

我搭建的大天使之劍遊戲連結:39.105.134.68:81,電腦和手機上都可完美執行,快來體驗一下吧。

遊戲截圖:

登入介面

滿級vip無限金幣鑽石

炫酷技能

全區第一

GM工具

架設

1.架設條件

大天使之劍架設需要準備:

  1. linux伺服器,推薦centos7/8版本,可以考慮阿里雲騰訊雲等。
  2. 遊戲原始碼,關注我的公眾號 echeverra,傳送“大天使之劍”獲取。

遊戲原始碼中我已去除掉廣告,並修復了GM、關閉遊戲等功能。

2.安裝寶塔

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

寶塔是一個伺服器運維管理軟體,我從最開始的LAMP到PHPstudy再到寶塔,發現寶塔真香!圖形化介面用起來是真的省心。安裝完後,會給出訪問的url、使用者名稱和密碼,記得儲存下來,訪問寶塔介面,如果無法訪問可能是由於伺服器沒有開放8888埠,參考第7條開放埠。

寶塔

3.環境安裝

寶塔安裝完後,我們需要安裝一下游戲的執行環境:

  1. web伺服器:nginx 1.20
  2. 資料庫:mysql 5.6
  3. 程式語言:PHP 5.6、PHP 7.4
  4. 資料庫管理工具:phpMyAdmin 4.9

遊戲建站使用的是PHP 5.6,PHP 7.4是安裝phpMyAdmin的前置條件。

通過寶塔軟體商店進行安裝:

環境安裝

除了通過寶塔安裝的環境,還有需要通過命令安裝的環境。

安裝支援浮點運算的語言bc和庫檔案libnsl:

yum install bc
yum install libnsl

命令裝環境

後續步驟中的執行命令均從終端選單中進入執行,不再截圖展示。

4.上傳原始碼並解壓

拿到遊戲原始碼後,解壓壓縮檔案大天使之劍,會得到angel和sql兩個壓縮檔案,將angel壓縮檔案上傳到伺服器根目錄。

上傳資源

上傳完後,選擇壓縮檔案angel並解壓到根目錄。

解壓遊戲資源

5.檔案許可權

解壓完成後,需要對解壓的目錄/data/www/wwwroot/angel賦予完整777許可權。

許可權處理

許可權處理

或者通過命令授權:

chmod -R 777 /data
chmod -R 777 /www/wwwroot/angel

執行命令可能會提示.user.ini檔案許可權無法更改,跳過即可,不影響架設。

6.匯入資料庫

先通過寶塔修改資料庫root密碼:0987abc123

修改root密碼

建立h5和actor兩個資料庫,h5儲存了使用者相關資料,actor儲存了遊戲相關資料。

建立h5資料庫

建立actor資料庫

密碼不用修改,因為原始碼中使用的是root管理員賬號。

將遊戲原始碼檔案中的壓縮檔案sql解壓,得到兩個sql檔案,上傳並匯入對應資料庫。

上傳資料庫檔案

匯入actor資料庫檔案

匯入h5資料庫檔案

匯入後,使root使用者可以從任何主機連線到mysql伺服器,執行命令:

mysql -uroot -p0987abc123
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '0987abc123' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '0987abc123' WITH GRANT OPTION;
flush privileges;
exit 

7.開放埠

需要開放的埠:

  1. 寶塔:8888
  2. phpmyadmin:888
  3. mysql:3306
  4. 遊戲相關埠:81、5007、6007、7007、9007

伺服器開放埠,以阿里雲開放81埠為例,其他埠按照同樣方式新增,其他伺服器也在安全裡設定。

伺服器開放81埠

寶塔開放埠,同樣以81埠為例:

寶塔開放81埠

如果不開放埠,服務會無法訪問,如果對安全沒什麼要求,可以直接開放1-65535埠。

8.修改IP

原始碼中的IP是我自己虛擬機器的,需要替換成你自己的伺服器IP。

需要修改IP的檔案:

/www/wwwroot/angel/app1.php
/www/wwwroot/angel/login.php
/www/wwwroot/angel/config.php
/www/wwwroot/angel/game.php
/www/wwwroot/angel/login/cqlb/server.php
/www/wwwroot/angel/resource/main.min.js
/www/wwwroot/angel/login_bt.json

舉例修改angel/app1.php檔案,其他檔案修改方式相同。

找到app1.php雙擊開啟編輯模式,按Ctrl+F搜尋39.105.134.68,找到後替換成你的伺服器IP並儲存。

修改IP

除了需要修改檔案的IP,還需修改資料庫h5中表server的IP欄位。

開啟phpmyadmin管理工具:

phpmyadmin

雙擊欄位修改IP,回車儲存:

修改資料庫表IP

9.建立遊戲網站

新增遊戲網站才能訪問H5遊戲,通過網站選單新增站點,域名寫你的IP:81,根目錄為/www/wwwroot/angel/,PHP選擇5.6版本。

建立遊戲網站

10.啟動遊戲

以上都執行完畢,那麼到了激動人心的啟動遊戲啦,啟動命令:

cd /data/
sh start_server.sh

正常啟動後會提示success,檢視監聽埠可看到5007、6007、7007、9007處在監聽中,那麼恭喜你可以開始遊戲啦。

netstat -lntp

啟動遊戲

11.開始遊戲

訪問遊戲連結:IP:81,使用你伺服器的IP。

遊戲登入介面

可以開啟遊戲登入介面,恭喜你已經成功了第一步,然後註冊個賬號登入遊戲,點選開始遊戲,此時會停留在一個介面2-3分鐘時間,如下圖,這是由於一直在載入一個10MB+的檔案,耐心等待即可,第二次開始遊戲會讀取瀏覽器快取資料,無需等待。

開始遊戲等待介面

填寫遊戲名稱,選擇職業,目前有三個職業,劍士、魔法師和弓箭手,遊戲中最後你將擁有三個職業,所以選擇哪個都可以。

選擇角色

最後,進入遊戲介面,恭喜你已經成功完成遊戲架設!

遊戲開始

12.GM工具

遊戲自帶GM工具,也就是Game Master遊戲管理員,可以對遊戲進行充值,傳送裝備,經驗材料等功能,遊戲內建的充值已遮蔽了支付配置。點選左側GM懸浮按鈕,開啟GM介面。賬號填寫登入的賬號,不是遊戲人物名稱,元寶280代表充值月卡,滿級VIP10需充值200000元寶。

GM

郵件收取GM郵件

鑽石

直接滿級VIP,也就是2萬RMB的充值!

滿級VIP

同樣你也可以單獨開啟GM介面進行操作,連結:IP:81/gm
GM介面

啊!無敵是多麼寂寞…

13.關閉遊戲

關閉遊戲執行命令:

cd /data/
sh stop_server.sh

執行後沒有提示,即代表關閉成功。為什麼沒有提示,因為沒有結果就是最好的結果。

後續

1.安全問題

架設中使用的資料庫是root賬戶,密碼0987abc123,這就相當於把資料庫暴漏了,知道IP就可以直接登入運算元據庫了,所以存在著很大的安全問題。

首先我想到的解決辦法就是修改root賬戶的密碼,將原始碼中所有0987abc123替換成自己的密碼,但是遊戲沒有執行成功,研究原始碼發現後臺的核心檔案gameworld_24_5是加密的,會讀取GameWorld.txt檔案中的配置:

--資料庫連線配置
SQL = 
{ 
    Host = "127.0.0.1",
    Port = 3306, 
    DBName = "actor",
    DBUser = "root", 
    DBPass = "jdusVRPm8XI+vYJb5gNZiw=="
}, --0987abc123

後臺使用的資料庫密碼DBPass是0987abc123通過加密演算法得到的,不知道加密方式和加密key無法設定新的密碼,所以修改密碼這種方法是行不通的。

所以只能修改使用者名稱,對應三個資料庫h5、actor、log(後臺會自行建立log資料庫)建立對應的賬戶,密碼全部設定為0987abc123,只要不洩露賬戶名,資料庫還是安全的,而且不會影響到root下的其他資料庫。

對應修改原始碼中的資料庫配置,將root使用者名稱按照實際使用的資料庫修改為對應的賬戶名。如上面GameWorld.txt檔案中修改的是actor資料庫,那麼就將root修改為actor資料庫的賬戶。推薦使用webstorm或vscode IDE可全域性搜尋並替換。

還需要執行架設第6條匯入資料庫中的命令,使三個賬戶可以從任何主機連線到mysql伺服器。

重新匯入檔案,執行遊戲成功,這樣就解決了資料庫的安全問題。

2.修改區名

修改區名需要修改兩處。

修改/data/gameworld/GameWorld.txt檔案

區名

修改資料庫h5中server表name欄位

區名

關閉遊戲,重新啟動遊戲,否則有可能會報“不存在這個伺服器”錯誤。

3.關於原始碼

大天使之劍H5遊戲使用的是ajax和websocket通訊方式傳輸遊戲中的資料,主要使用shell命令、PHP、Lua、JavaScript等程式語言實現,可惜後臺核心檔案dbserver_24_5gameworld_24_5gateway_qiji_24_5loggerserver_24_5都進行了加密處理,沒法進一步研究,但是其他的功能,特別是前臺對遊戲介面渲染的實現還是很有研究價值的。

以上就是大天使之劍所有的圖文架設教程,希望對你有所幫助,如有問題可通過我的部落格echeverra.cn和微信公眾號echeverra聯絡我。

你學“廢”了麼?


文章首發於我的部落格 echeverra.cn/angel,原創文章,轉載請註明出處。

歡迎關注我的微信公眾號 echeverra,一起學習進步!不定時會有資源和福利相送哦!


本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章