Kết quả 1 đến 5 của 5
-
04-02-14, 03:49 PM #1
Source code - Phân loại máy chủ như VinaGame
Cái này làm cũng lâu rồi, bữa nay dọn lại máy tình cờ thấy, cũng không biết làm gì với nó nữa nên mang lên share chơi . Và do văn chương không được bay bướm nên túm váy lại là xin mạn phép được vào thẳng chủ đề .
Hàng có sẵn (Copy and replace ):
Note: Những đoạn đã được thay đổi hoặc thêm vào đều được ưu tiên tô một màu đỏ chói .
UiSelServer.h
Code:/***************************************************************************************** // ½çÃæ--Ñ¡ÔñÓÎÏ··þÎñÆ÷´°¿Ú // Copyright : Kingsoft 2002 // Author : Wooy(Wu yue) // CreateTime: 2002-8-12 ------------------------------------------------------------------------------------------ *****************************************************************************************/ #pragma once #include "../Elem/WndList.h" #include "../Elem/WndScrollBar.h" #include "../Elem/WndShowAnimate.h" class KUiSelServer : protected KWndShowAnimate { public: static KUiSelServer* OpenWindow(); //´ò¿ª´°¿Ú£¬·µ»ØΨһµÄÒ»¸öÀà¶ÔÏóʵÀý static void CloseWindow(bool bDestroy);//¹Ø±Õ´°¿Ú private: KUiSelServer(); ~KUiSelServer(); void Initialize(); //³õʼ»¯ void LoadScheme(const char* pScheme); //ÔØÈë½çÃæ·½°¸ int WndProc(unsigned int uMsg, unsigned int uParam, int nParam); //´°¿Úº¯Êý void OnLogin(); void OnCancel(); int OnKeyDown(unsigned int uKey); void OnClickButton(KWndButton* pBtn); void GetList(); void PaintWindow(); private: static KUiSelServer* m_pSelf; private: struct KLoginServer* m_pServList; KWndList m_List; KWndScrollBar m_ScrollBar; KWndButton m_Login; KWndButton m_Cancel; char m_szLoginBg[32]; KWndText32 m_RegionName; KWndList m_IpList; bool m_bSelRegion; int m_nRegionIndex; };
Code:/***************************************************************************************** // ½çÃæ--Ñ¡ÔñÓÎÏ··þÎñÆ÷´°¿Ú // Copyright : Kingsoft 2002 // Author : Wooy(Wu yue) // CreateTime: 2002-8-12 *****************************************************************************************/ #include "KWin32.h" #include "KIniFile.h" #include "../Elem/WndMessage.h" #include "../Elem/Wnds.h" #include "../UiShell.h" #include "UiInit.h" #include "UiLoginBg.h" #include "UiConnectInfo.h" #include "UiSelServer.h" #include "../UiSoundSetting.h" #include "../UiBase.h" #include "../../Login/Login.h" #include <crtdbg.h> #define SCHEME_INI_SELSERV "Ñ¡·þÎñÆ÷.ini" #define SERVER_LIST_FILE "\\Settings\\ServerList.ini" KUiSelServer* KUiSelServer::m_pSelf = NULL; //-------------------------------------------------------------------------- // ¹¦ÄÜ£º¹¹Ô캯Êý //-------------------------------------------------------------------------- KUiSelServer::KUiSelServer() { m_pServList = NULL; m_szLoginBg[0] = 0; m_bSelRegion = true; m_nRegionIndex = 0; } KUiSelServer::~KUiSelServer() { m_List.SetContent(NULL, 0, 0, 0); if (m_pServList) { free(m_pServList); m_pServList = NULL; } } //-------------------------------------------------------------------------- // ¹¦ÄÜ£º´ò¿ª´°¿Ú£¬·µ»ØΨһµÄÒ»¸öÀà¶ÔÏóʵÀý //-------------------------------------------------------------------------- KUiSelServer* KUiSelServer::OpenWindow() { if (m_pSelf == NULL) { m_pSelf = new KUiSelServer; if (m_pSelf) m_pSelf->Initialize(); } if (m_pSelf) { UiSoundPlay(UI_SI_POPUP_OUTGAME_WND); KUiLoginBackGround::SetConfig(m_pSelf->m_szLoginBg); m_pSelf->m_bSelRegion = true; m_pSelf->GetList(); m_pSelf->Show(); } return m_pSelf; } //-------------------------------------------------------------------------- // ¹¦ÄÜ£º¹Ø±Õ´°¿Ú //-------------------------------------------------------------------------- void KUiSelServer::CloseWindow(bool bDestroy) { if (m_pSelf) { if (bDestroy) { m_pSelf->Destroy(); m_pSelf = NULL; } else { m_pSelf->Hide(); } } } //-------------------------------------------------------------------------- // ¹¦ÄÜ£º³õʼ»¯ //-------------------------------------------------------------------------- void KUiSelServer::Initialize() { AddChild(&m_List); AddChild(&m_ScrollBar); AddChild(&m_Login); AddChild(&m_Cancel); AddChild(&m_RegionName); AddChild(&m_IpList); m_List.SetScrollbar(&m_ScrollBar); char Scheme[256]; g_UiBase.GetCurSchemePath(Scheme, 256); LoadScheme(Scheme); Wnd_AddWindow(this, WL_TOPMOST); } void KUiSelServer::GetList() { m_List.SetContent(NULL, 0, 0, 0); m_IpList.SetContent(NULL, 0, 0, 0); if (m_pServList) { free(m_pServList); m_pServList = NULL; } int nCount, nSel; if (m_bSelRegion) { m_pServList = g_LoginLogic.GetServerRegionList(nCount, m_nRegionIndex); if (m_pServList) { m_List.SetContent((BYTE*)m_pServList, nCount, sizeof(KLoginServer), 0); m_List.SetCurSel(m_nRegionIndex); } } g_LoginLogic.LoadLoginChoice(); m_pServList = g_LoginLogic.GetServerList(m_nRegionIndex, nCount, nSel); if (m_pServList) { m_IpList.SetContent((BYTE*)m_pServList, nCount, sizeof(KLoginServer), 0); m_IpList.SetCurSel(nSel); } } //-------------------------------------------------------------------------- // ¹¦ÄÜ£ºÔØÈë´°¿ÚµÄ½çÃæ·½°¸ //-------------------------------------------------------------------------- void KUiSelServer::LoadScheme(const char* pScheme) { char Buff[128]; KIniFile Ini; sprintf(Buff, "%s\\%s", pScheme, SCHEME_INI_SELSERV); if (Ini.Load(Buff)) { KWndShowAnimate::Init(&Ini, "Main"); m_List .Init(&Ini, "List"); m_ScrollBar.Init(&Ini, "Scroll"); m_Login .Init(&Ini, "Login"); m_Cancel .Init(&Ini, "Cancel"); m_RegionName.Init(&Ini, "NameBigger"); m_IpList.Init(&Ini, "IpList"); Ini.GetString("Main", "LoginBg", "", m_szLoginBg, sizeof(m_szLoginBg)); } } //-------------------------------------------------------------------------- // ¹¦ÄÜ£º´°¿Úº¯Êý //-------------------------------------------------------------------------- int KUiSelServer::WndProc(unsigned int uMsg, unsigned int uParam, int nParam) { int nRet = 0; switch(uMsg) { case WND_N_BUTTON_CLICK: OnClickButton((KWndButton*)(KWndWindow*)uParam); break; case WND_N_SCORLLBAR_POS_CHANGED: m_List.SetTopItemIndex(nParam); break; case WM_KEYDOWN: nRet = OnKeyDown(uParam); break; case WND_N_LIST_ITEM_D_CLICK: if (nParam >= 0 && uParam == (unsigned int)(KWndWindow*)&m_IpList) OnLogin(); break; default: nRet = KWndShowAnimate::WndProc(uMsg, uParam, nParam); } return nRet; } void KUiSelServer::PaintWindow() { KWndShowAnimate::PaintWindow(); int nCount, nSel; if (m_List.GetCurSel() != m_nRegionIndex) { m_nRegionIndex = m_List.GetCurSel(); if (m_nRegionIndex > 0) { KIniFile File; if (File.Load(SERVER_LIST_FILE)) { char szKey[32], szBuffer[32]; sprintf(szKey, "Region_%d", m_nRegionIndex); File.GetString("List", szKey, "", szBuffer, sizeof(szBuffer)); if (szBuffer) m_RegionName.SetText(szBuffer); } } g_LoginLogic.LoadLoginChoice(); m_pServList = g_LoginLogic.GetServerList(m_nRegionIndex, nCount, nSel); if (m_pServList) { m_IpList.SetContent((BYTE*)m_pServList, nCount, sizeof(KLoginServer), 0); m_IpList.SetCurSel(nSel); } else m_IpList.SetContent(NULL, 0, 0, 0); } } int KUiSelServer::OnKeyDown(unsigned int uKey) { int nRet = 1; KWndWindow* pToActive = NULL; switch (uKey) { case VK_RETURN: if (m_Cancel.IsButtonActive()) OnCancel(); else OnLogin(); break; case VK_ESCAPE: OnCancel(); break; case VK_LEFT: if (m_Login.IsButtonActive() == 0) pToActive = &m_Login; break; case VK_RIGHT: if (m_Cancel.IsButtonActive() == 0) pToActive = &m_Cancel; break; case VK_UP: nRet = m_List.GetCurSel(); if (nRet > 0) m_List.SetCurSel(nRet - 1); else if (nRet < 0) m_List.SetCurSel(0); m_ScrollBar.SetScrollPos(m_List.GetTopItemIndex()); nRet = 1; break; case VK_DOWN: nRet = m_List.GetCurSel(); if (nRet < m_List.GetCount() - 1) m_List.SetCurSel(nRet + 1); else if (nRet < 0) m_List.SetCurSel(0); m_ScrollBar.SetScrollPos(m_List.GetTopItemIndex()); nRet = 1; break; default: nRet = 0; break; } if (pToActive) pToActive->SetCursorAbove(); return nRet; } void KUiSelServer::OnClickButton(KWndButton* pBtn) { if (pBtn == &m_Login) OnLogin(); else if(pBtn == &m_Cancel) OnCancel(); } //-------------------------------------------------------------------------- // ¹¦ÄÜ£ºµÇ½ÓÎÏ·ÊÀ½ç·þÎñÆ÷ //-------------------------------------------------------------------------- void KUiSelServer::OnLogin() { int nSelServer = m_IpList.GetCurSel(); if (m_pServList && nSelServer >= 0) { g_LoginLogic.SetAccountServer(m_pServList[nSelServer]); g_LoginLogic.CreateConnection(m_pServList[nSelServer].Address); KUiConnectInfo::OpenWindow(CI_MI_CONNECTING, LL_S_WAIT_INPUT_ACCOUNT); CloseWindow(false); } } //-------------------------------------------------------------------------- // ¹¦ÄÜ£ºÈ¡Ïû //-------------------------------------------------------------------------- void KUiSelServer::OnCancel() { CloseWindow(true); KUiInit::OpenWindow(false, false); }
Cuối cùng tất nhiên không thể thiếu 500 đồng ảnh đề mô :
Nếu có thiếu xót gì anh chị em cứ bổ sung cho nhau ở bên dưới, tết nhất lười online nên cũng không giúp được gì nhiều .Khách viếng thăm hãy cùng trungviet xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
The Following 12 Users Say Thank You to trungviet For This Useful Post:
assaa (06-02-14), dojladeoji (04-02-14), Edward_Newgate (04-02-14), emyeusss7 (30-05-14), hungvoi94 (04-02-14), jxvietnam (04-02-14), kakashi43 (21-09-15), lzlsky301 (04-02-14), rongdatbg (28-05-14), satthupro95 (10-03-14), thanhtunghk (04-02-14),
z0nkazu04(13-09-19)
-
04-02-14, 04:07 PM #2
- Ngày tham gia
- Nov 2011
- Đang ở
- The Moon
- Bài viết
- 366
- Thanks
- 85
- Thanked 230 Times in 76 Posts
Ðề: Source code - Phân loại máy chủ như VinaGame
- Quá ngon :U. Mở hàng tết cái nào
Khách viếng thăm hãy cùng lzlsky301 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
04-02-14, 04:31 PM #3
- Ngày tham gia
- May 2009
- Đang ở
- Nơi rất xa
- Bài viết
- 2,479
- Thanks
- 572
- Thanked 1,848 Times in 503 Posts
Ðề: Source code - Phân loại máy chủ như VinaGame
Khách viếng thăm hãy cùng jxvietnam xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
04-02-14, 08:52 PM #4
- Ngày tham gia
- Jun 2012
- Đang ở
- Coder
- Bài viết
- 257
- Thanks
- 980
- Thanked 96 Times in 32 Posts
Ðề: Source code - Phân loại máy chủ như VinaGame
Ủa nhớ ko nhầm là trung việt làm chiến quốc thui mà
Bữa nay sang JX lun rùi hảKhách viếng thăm hãy cùng khungboktvn xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
14-02-14, 05:33 PM #5
- Ngày tham gia
- Nov 2011
- Đang ở
- The Moon
- Bài viết
- 366
- Thanks
- 85
- Thanked 230 Times in 76 Posts
Ðề: Source code - Phân loại máy chủ như VinaGame
Khách viếng thăm hãy cùng lzlsky301 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
Các Chủ đề tương tự
-
[KT] [Share Code] Web kiếm thế giao diện Vinagame .Update.
Bởi Mr.QuangHuy trong diễn đàn ReleasesTrả lời: 30Bài viết cuối: 20-08-13, 03:47 PM -
[JX] Source code phân biệt kênh chát
Bởi radise trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)Trả lời: 9Bài viết cuối: 15-05-13, 08:38 PM -
[JX] Cần Giúp Về Source Code
Bởi Win32 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 6Bài viết cuối: 08-02-13, 03:29 PM -
[KT] [Share Code] Web kiếm thế giao diện Vinagame
Bởi Mr.QuangHuy trong diễn đàn ReleasesTrả lời: 3Bài viết cuối: 25-03-12, 12:19 PM -
Xin Code Auto Nạp Thẻ Và Check Thẻ Vinagame
Bởi kieuhanhinfo trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 7Bài viết cuối: 14-03-12, 02:37 AM