『壹』 誰能給個傳奇3的單機版的完整服務端加教程高分求
傳奇單機版架設要求如下:
1:電腦一台(不要求配置)
2:傳奇服務端一個(不是盛大客戶端,是版本的也就是伺服器端)
3:dbc2000工具(這個是讀取資料庫的軟體)
准備好這3樣東西之後,按照下面的步驟一步步操作就沒問題。
傳奇單機版架設教程
第一 先安裝dbc2000 默認路徑即可
第二 把下載的傳奇服務端版本解壓到d盤里(直接網路搜索---傳奇服務端即可)。解壓為 D:/mirserver
第三 在控制面版找到BDE ADMINISTRATOR ,單擊打開,點擊上邊的object,其次點new建立資料庫彈出STANDARD,重命名HeroDB,PATH路徑指向 D:/mirserver/mud2/db
第四 打開D:/mirserver裡面的GameCenter.exe伺服器配置程序,進入配置選項,填上游戲服務端所在目錄(如果是D:/mirserver這個就不用去改)、游戲資料庫名稱:HERODB、游戲伺服器名稱:隨便寫上你喜歡的名字即可(建議不管是換什麼服務端全部都改成同一個名字,這樣的話直接用對應的登錄器登陸就可以,不用再在登錄器上添加了)、游戲伺服器IP地址:既然是自己玩的那就是127.0.0.1(如果需要局網也一起玩可設置為192.168.1.X,然後登錄器的IP也和這個一樣),然後一直下一步直,保存完成。
第五 啟動GameCenter.exe看上面的服務是否全部啟動,提示成功的話就可以用SF登錄器進入了(登錄器都可以自動尋找官方mir2的安裝路徑的)
教程到此結束,如果想自己做GM刷元寶、刷裝備等可在M2server的引擎上看,有游戲命令,還不明白的話建議去網上搜索下載傳奇單機版架設視頻教程來看。
『貳』 傳奇 原碼 是什麼東西 有什麼作用 是多少
傳奇的客戶端源代碼有兩個工程,WindHorn和Mir2Ex。
先剖析一下WindHorn工程。
1.CWHApp、CWHWindow和CWHDXGraphicWindow。Window程序窗口的創建。
CWHApp派生CWHWindow,CWHWindow又派生CWHDXGraphicWindow。CWHWindow類
中完成窗口的注冊和創建。CWHDXGraphicWindow調用CWHWindow完成創建窗口功能,然後再調用CreateDXG()來初始化DirectX。
2.CWHDefProcess派生出CloginProcess、CcharacterProcess、CgameProcess三個類。
這三個類是客戶端處理的核心類。
3. 全局變數:
CWHDXGraphicWindow g_xMainWnd; 主窗口類。
CLoginProcess g_xLoginProc; 登錄處理。
CCharacterProcess g_xChrSelProc; 角色選擇處理。
CgameProcess g_xGameProc; 游戲邏輯處理。
4.代碼分析:
1.首先從LoginGate.cpp WinMain分析:
g_xMainWnd定義為CWHDXGraphicWindow調用CWHWindow完成創建窗口功能,然後
調用DirectDrawEnumerateEx枚舉顯示設備,(執行回調函數DXGDriverEnumCallbackEx) 再調用CreateDXG()來初始化DirectX(創建DirectDraw對象, 取得獨占和全屏模式, 設置顯示模式等)。
g_xSound.InitMirSound創建CSound對象。
g_xSpriteInfo.SetInfo();
初始化聲音,載入Socket庫之後,進行CWHDefProcess*指針賦值(事件綁定)。g_bProcState變數反應了當前游戲的狀態(登錄,角色選擇,游戲邏輯處理)。調用Load初始化一些操作(登錄,角色選擇,游戲邏輯處理)。進行消息循環。
case _LOGIN_PROC:
g_xLoginProc.RenderScene(dwDelay);
case _CHAR_SEL_PROC:
g_xChrSelProc.RenderScene(dwDelay);
case _GAME_PROC:
g_xGameProc.RenderScene(dwDelay);
根據g_bProcState變數標志,選擇顯示相應的畫面。
2.接收處理網路消息和接收處理窗口消息。
在不同的狀態下(登錄,角色選擇,游戲邏輯處理),接收到的消息(網路,窗口消息)會分派到不同的函數中處理的。這里是用虛函數處理(調用子類方法,由實際的父類完成相應的處理)。
OnMessageReceive主要處理網路消息。DefMainWndProc則處理窗體消息(按鍵,重繪等),創建窗體類為CWHDXGraphicWindow,回調函數為:
MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) [Page]
if ( m_pxDefProcess )
m_pxDefProcess->DefMainWndProc(hWnd, uMsg, wParam, lParam);
else
return MainWndProcDXG(hWnd, uMsg, wParam, lParam);
m_pxDefProcess->DefMainWndProc調用父類的實際處理。
在WM_PAINT事件里: g_xClientSocket.ConnectToServer連接登陸伺服器。