這篇文章主要介紹了使用C++製作GC Server過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
最近很多人找我要GC Server的源代碼。我跟他們講環境要求的時候,很多人都不以爲然,結果最後僅僅測試程序就報了幾千個Error。所以,我決定今天講一下如何搭建你自己的GC Server。(目前還沒有一個人成功,請量力而行,如果成功了記得在評論區告訴我~)
步驟
1. 系統配置
本文僅適用於Windows系統,支持Win7及以後的大部分版本,Win10最佳。
2. 環境配置
首先,你需要一個支持C/C++的IDE(強烈推薦Visual Studio,後面的操作會更方便),然後你需要下載一個圖形庫,比如WinAPI。最後你需要將圖形庫安裝到你的IDE的配置裏面,將include和lib都裝到要求的文件夾裏,這就不必多說了,如果有問題請在評論區說明。
3. 編譯測試
注意!在此步驟下如果出現任何系統錯誤,請立即停止操作!推薦在開始前將系統進行備份!
Step 1 - 創建項目
在這一步裏,需要你在你的IDE裏創建一個C/C++的項目,確保創建正常且Hello world可以運行。(我精心幫你準備好了測試用的Hello World代碼^_^)
using namespace std; int () { cout<<"Hello,world!"<<endl; return 0; }
//C #include <stdio.h> int () { printf("Hello,world!n"); return 0; }
Step 2 - 圖形庫測試
你需要include你之前引入的圖形庫的頭文件,然後再設置一下比如這樣:
#include <graphics.h> // 引用圖形庫頭文件 #include <conio.h> int () { initgraph(640, 480); // 創建繪圖窗口,大小爲 640x480 像素 setlinecolor(RGB(255, 0, 0)); // 設置當前線條顏色 setfillcolor(RGB(0, 255, 0)); // 設置當前填充顏色 fillcircle(200, 200, 100); // 畫圓,圓心(200, 200),半徑 100 system("pause"); // 按任意鍵繼續,getch();亦可 closegraph(); // 關閉圖形環境 return 0; }
如果上面的代碼你可以運行成功,那麼恭喜你,你可以進入下面的步驟了~
Step 3 - 按鈕製作
很多人看到圖形庫的功能後都很吃驚,但是也有人問我,GC Server裏面的那些不同顏色的按鈕時怎麼畫出來的。因爲,圖形庫好像沒有自帶畫按鈕的功能啊~
很簡單,如下:
(下方代碼爲GC Server 8.7最後更新的源代碼片段,爲防止數據泄露,我們沒有采用最新版本的代碼,且在原版本的基礎上做了部分處理,不影響代碼的理解)
settextstyle(90, 0, _T("楷體")); setbkcolor(RED); outtextxy(20, 160, _T("歡迎您使用 GC Server!")); setbkcolor(BLUE); settextstyle(38, 0, _T("楷體")); outtextxy(124, 301, _T("快速註冊")); rectangle(120, 300, 280, 340); outtextxy(404, 301, _T("程序信息")); rectangle(400, 300, 560, 340); outtextxy(684, 301, _T("立即登錄")); rectangle(680, 300, 840, 340); MOUSEMSG m; while (true) { m = GetMouseMsg(); if (m.x >= 120 && m.x <= 280 && m.y >= 300 && m.y <= 340) { if (m.uMsg == WM_LBUTTONDOWN) { //此處爲註冊代碼,安全起見被刪除 } else { settextstyle(35, 0, _T("楷體")); outtextxy(130, 302, _T("快速註冊")); } } else if (m.x >= 400 && m.x <= 560 && m.y >= 300 && m.y <= 340) { if (m.uMsg == WM_LBUTTONDOWN) { //此處爲程序信息代碼,安全起見被刪除 } else { settextstyle(35, 0, _T("楷體")); outtextxy(410, 302, _T("程序信息")); } } else if (m.x >= 680 && m.x <= 840 && m.y >= 300 && m.y <= 340) { if (m.uMsg == WM_LBUTTONDOWN) { //此處爲登錄代碼,安全起見被刪除 } else { settextstyle(35, 0, _T("楷體")); outtextxy(690, 302, _T("立即登錄")); } } else { settextstyle(38, 0, _T("楷體")); outtextxy(124, 301, _T("快速註冊")); outtextxy(404, 301, _T("程序信息")); outtextxy(684, 301, _T("立即登錄")); } }
代碼的思路:先把按鈕畫出來,然後再判定鼠標動作。如果鼠標再指定區域內且左鍵單擊,就說明用戶點擊了按鈕。
當然了,你還可以搞些小花樣,比如說我之前做的lock項目(電腦安全鎖)就用到了鼠標手勢代碼:
MOUSEMSG m2; int flag1 = 0, flag2 = 0; settextstyle(20, 0, _T("楷體")); rectangle(600, 500, 650, 530); outtextxy(605, 505, _T("確定")); while (true) { m2 = GetMouseMsg(); if (m2.x >= 600 && m2.x <= 650 && m2.y >= 500 && m2.y <= 530) { settextstyle(25, 0, _T("Consolas")); if (m2.uMsg == WM_MBUTTONDBLCLK) { flag1 = 1; continue; } else if (m2.uMsg == WM_LBUTTONDOWN && flag1 == 1) { flag2 = 1; continue; } else if (m2.uMsg == WM_RBUTTONDOWN && flag2 == 1) { break; } else { settextstyle(22, 0, _T("楷體")); outtextxy(603, 503, _T("確定")); } } else { settextstyle(20, 0, _T("楷體")); outtextxy(605, 505, _T("確定")); } }
上述代碼就是要先雙擊鼠標中鍵的滾輪(向下按),然後再左鍵一次右鍵一次即可。
Step 4 - 添加遊戲
遊戲可以直接在GC Coding發帖,我會回覆的。目前來說,大部分在GC Server目前版本已經開放的遊戲代碼都可以直接找我要。
Step 5 - 設計插件更改模塊
你需要在Github上開一個repo,然後把你想用的插件打包傳上去,用戶想下載的時候,只需要用system調用打開瀏覽器訪問指定網址,然後提示用戶將下載的包放到安裝目錄中,再點擊某個神奇的按鈕後程序就自動開始解析用戶下載的包,然後把文件加到下載目錄裏去。程序再修改一個安裝目錄下的文件,比如把0改成1,然後開始加載這個插件。
一般來說用戶比較喜歡有卸載功能的插件,這個也很簡單,只需要加上一個卸載按鈕,一旦用戶點擊確定後就刪除包,然後把上面說的文件再改回去即可。
還可以再repo里加一個README,在程序里加一個說明,一點就打開README的網址,這也不難。
Step 6 - 加入一部分彩蛋
好吧,其實這一步是選做的不過我認爲一個程序要更有意思就應該加入一些彩蛋。比如GC Server最近促使我添加“姓名登錄”的一個較爲重要的原因就是想藏彩蛋。比如你輸入某些神奇的名字~~ 夠了不泄密了…
Step 7 - 完工
好的,如果你已經按照前面的步驟順利完成了,生成exe文件的時候就到了。不出意外的話(這幾乎是不可能的),你會看到exe文件已經在項目文件夾裏等着你了。當然,如果出現了不能解決的錯誤,也歡迎你來留言哦~
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。