使用C++制作GC Server過程詳解
最近很多人找我要GC Server的源代碼。我跟他們講環(huán)境要求的時(shí)候,很多人都不以為然,結(jié)果最后僅僅測試程序就報(bào)了幾千個(gè)Error。所以,我決定今天講一下如何搭建你自己的GC Server。(目前還沒有一個(gè)人成功,請量力而行,如果成功了記得在評論區(qū)告訴我~)
步驟
1. 系統(tǒng)配置
本文僅適用于Windows系統(tǒng),支持Win7及以后的大部分版本,Win10最佳。
2. 環(huán)境配置
首先,你需要一個(gè)支持C/C++的IDE(強(qiáng)烈推薦Visual Studio,后面的操作會更方便),然后你需要下載一個(gè)圖形庫,比如WinAPI。最后你需要將圖形庫安裝到你的IDE的配置里面,將include和lib都裝到要求的文件夾里,這就不必多說了,如果有問題請?jiān)谠u論區(qū)說明。
3. 編譯測試
注意!在此步驟下如果出現(xiàn)任何系統(tǒng)錯(cuò)誤,請立即停止操作!推薦在開始前將系統(tǒng)進(jìn)行備份!
Step 1 - 創(chuàng)建項(xiàng)目
在這一步里,需要你在你的IDE里創(chuàng)建一個(gè)C/C++的項(xiàng)目,確保創(chuàng)建正常且Hello world可以運(yùn)行。(我精心幫你準(zhǔn)備好了測試用的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你之前引入的圖形庫的頭文件,然后再設(shè)置一下比如這樣:
#include <graphics.h> // 引用圖形庫頭文件 #include <conio.h> int () { initgraph(640, 480); // 創(chuàng)建繪圖窗口,大小為 640x480 像素 setlinecolor(RGB(255, 0, 0)); // 設(shè)置當(dāng)前線條顏色 setfillcolor(RGB(0, 255, 0)); // 設(shè)置當(dāng)前填充顏色 fillcircle(200, 200, 100); // 畫圓,圓心(200, 200),半徑 100 system("pause"); // 按任意鍵繼續(xù),getch();亦可 closegraph(); // 關(guān)閉圖形環(huán)境 return 0; }
如果上面的代碼你可以運(yùn)行成功,那么恭喜你,你可以進(jìn)入下面的步驟了~
Step 3 - 按鈕制作
很多人看到圖形庫的功能后都很吃驚,但是也有人問我,GC Server里面的那些不同顏色的按鈕時(shí)怎么畫出來的。因?yàn)?,圖形庫好像沒有自帶畫按鈕的功能啊~
很簡單,如下:
(下方代碼為GC Server 8.7最后更新的源代碼片段,為防止數(shù)據(jù)泄露,我們沒有采用最新版本的代碼,且在原版本的基礎(chǔ)上做了部分處理,不影響代碼的理解)
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("立即登錄")); } }
代碼的思路:先把按鈕畫出來,然后再判定鼠標(biāo)動作。如果鼠標(biāo)再指定區(qū)域內(nèi)且左鍵單擊,就說明用戶點(diǎn)擊了按鈕。
當(dāng)然了,你還可以搞些小花樣,比如說我之前做的lock項(xiàng)目(電腦安全鎖)就用到了鼠標(biāo)手勢代碼:
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("確定")); } }
上述代碼就是要先雙擊鼠標(biāo)中鍵的滾輪(向下按),然后再左鍵一次右鍵一次即可。
Step 4 - 添加游戲
游戲可以直接在GC Coding發(fā)帖,我會回復(fù)的。目前來說,大部分在GC Server目前版本已經(jīng)開放的游戲代碼都可以直接找我要。
Step 5 - 設(shè)計(jì)插件更改模塊
你需要在Github上開一個(gè)repo,然后把你想用的插件打包傳上去,用戶想下載的時(shí)候,只需要用system調(diào)用打開瀏覽器訪問指定網(wǎng)址,然后提示用戶將下載的包放到安裝目錄中,再點(diǎn)擊某個(gè)神奇的按鈕后程序就自動開始解析用戶下載的包,然后把文件加到下載目錄里去。程序再修改一個(gè)安裝目錄下的文件,比如把0改成1,然后開始加載這個(gè)插件。
一般來說用戶比較喜歡有卸載功能的插件,這個(gè)也很簡單,只需要加上一個(gè)卸載按鈕,一旦用戶點(diǎn)擊確定后就刪除包,然后把上面說的文件再改回去即可。
還可以再repo里加一個(gè)README,在程序里加一個(gè)說明,一點(diǎn)就打開README的網(wǎng)址,這也不難。
Step 6 - 加入一部分彩蛋
好吧,其實(shí)這一步是選做的不過我認(rèn)為一個(gè)程序要更有意思就應(yīng)該加入一些彩蛋。比如GC Server最近促使我添加“姓名登錄”的一個(gè)較為重要的原因就是想藏彩蛋。比如你輸入某些神奇的名字~~ 夠了不泄密了…
Step 7 - 完工
好的,如果你已經(jīng)按照前面的步驟順利完成了,生成exe文件的時(shí)候就到了。不出意外的話(這幾乎是不可能的),你會看到exe文件已經(jīng)在項(xiàng)目文件夾里等著你了。當(dāng)然,如果出現(xiàn)了不能解決的錯(cuò)誤,也歡迎你來留言哦~
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:C++利用函數(shù)動態(tài)創(chuàng)建二維數(shù)組
欄 目:C語言
下一篇:C++生成格式化的標(biāo)準(zhǔn)字符串實(shí)例代碼
本文標(biāo)題:使用C++制作GC Server過程詳解
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/202.html
您可能感興趣的文章
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言沒有round函數(shù) round c語言
- 01-10使用OpenGL實(shí)現(xiàn)3D立體顯示的程序代碼
- 01-10深入理解C++中常見的關(guān)鍵字含義
- 01-10使用C++實(shí)現(xiàn)全排列算法的方法詳解
- 01-10深入Main函數(shù)中的參數(shù)argc,argv的使用詳解
- 01-10c++中inline的用法分析
- 01-10用C++實(shí)現(xiàn)DBSCAN聚類算法
- 01-10全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?