configEditProc.cpp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. #include "Win32.h"
  2. #include "Function.h"
  3. #include "SharedValue.h"
  4. #include "ConfigID.h"
  5. HFONT Font();
  6. LRESULT CALLBACK ConfProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam)
  7. {
  8. switch (msg)
  9. {
  10. case WM_CREATE:
  11. {
  12. HFONT hFont = Font();
  13. HWND hLabel_1 = CreateWindow(
  14. L"STATIC", L"服务器名称",
  15. WS_VISIBLE | WS_CHILD,
  16. 20, 20, 100, 30,
  17. hWnd1, NULL,
  18. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  19. );
  20. HWND hServerName = CreateWindow(
  21. L"EDIT", L"不修改",
  22. WS_VISIBLE | WS_CHILD | WS_BORDER | ES_MULTILINE,
  23. 150, 20, 300, 40,
  24. hWnd1, (HMENU)CONF_ServerName,
  25. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  26. );
  27. HWND hLabel_A = CreateWindow(
  28. L"STATIC", L"(1)世界选项:作用于游戏存档",
  29. WS_VISIBLE | WS_CHILD,
  30. 20, 95, 400, 30,
  31. hWnd1, NULL,
  32. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  33. );
  34. HWND hLabel_2 = CreateWindow(
  35. L"STATIC", L"游戏模式",
  36. WS_VISIBLE | WS_CHILD,
  37. 20, 150, 100, 30,
  38. hWnd1, NULL,
  39. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  40. );
  41. HWND hGamemode = CreateWindow(
  42. L"COMBOBOX", NULL,
  43. WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST,
  44. 150, 150, 150, 100,
  45. hWnd1, (HMENU)CONF_GameMode,
  46. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  47. );
  48. SendMessage(hGamemode, CB_ADDSTRING, 0, (LPARAM)L"不修改");
  49. SendMessage(hGamemode, CB_ADDSTRING, 0, (LPARAM)L"冒险");
  50. SendMessage(hGamemode, CB_ADDSTRING, 0, (LPARAM)L"生存");
  51. SendMessage(hGamemode, CB_ADDSTRING, 0, (LPARAM)L"创造");
  52. SendMessage(hGamemode, CB_SETCURSEL, 0, 0);
  53. HWND hForceGM = CreateWindow(
  54. L"BUTTON", L"强制游戏模式",
  55. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  56. 320, 145, 150, 40,
  57. hWnd1, (HMENU)CONF_ForeceGameMode,
  58. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  59. );
  60. HWND hLabel_3 = CreateWindow(
  61. L"STATIC", L"游戏难度",
  62. WS_VISIBLE | WS_CHILD,
  63. 20, 195, 100, 30,
  64. hWnd1, NULL,
  65. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  66. );
  67. HWND hDifficulty = CreateWindow(
  68. L"COMBOBOX", NULL,
  69. WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST,
  70. 150, 195, 150, 100,
  71. hWnd1, (HMENU)CONF_GameDifficuty,
  72. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  73. );
  74. SendMessage(hDifficulty, CB_ADDSTRING, 0, (LPARAM)L"不修改");
  75. SendMessage(hDifficulty, CB_ADDSTRING, 0, (LPARAM)L"和平");
  76. SendMessage(hDifficulty, CB_ADDSTRING, 0, (LPARAM)L"简单");
  77. SendMessage(hDifficulty, CB_ADDSTRING, 0, (LPARAM)L"普通");
  78. SendMessage(hDifficulty, CB_ADDSTRING, 0, (LPARAM)L"困难");
  79. SendMessageW(hDifficulty, CB_SETCURSEL, 0, 0);
  80. HWND hCheat = CreateWindow(
  81. L"BUTTON", L"作弊模式",
  82. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  83. 20, 255, 110, 40,
  84. hWnd1, H_ CONF_Cheat,
  85. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  86. );
  87. HWND hCheat_1 = CreateWindow(
  88. L"BUTTON", L"不修改此项",
  89. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  90. 150, 255, 150, 40,
  91. hWnd1, H_ CONF_Cheat_NOEDIT,
  92. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  93. );
  94. SendMessage(hCheat_1, BM_SETCHECK, BST_CHECKED, 0);
  95. HWND hLabel_4 = CreateWindow(
  96. L"STATIC", L"玩家默认权限等级",
  97. WS_VISIBLE | WS_CHILD,
  98. 20, 320, 170, 30,
  99. hWnd1, NULL,
  100. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  101. );
  102. HWND hPermission = CreateWindow(
  103. L"COMBOBOX", NULL,
  104. WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST,
  105. 210, 320, 150, 100,
  106. hWnd1, (HMENU)CONF_DeflautPermission,
  107. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  108. );
  109. SendMessage(hPermission, CB_ADDSTRING, 0, (LPARAM)L"不修改");
  110. SendMessage(hPermission, CB_ADDSTRING, 0, (LPARAM)L"访客");
  111. SendMessage(hPermission, CB_ADDSTRING, 0, (LPARAM)L"成员");
  112. SendMessage(hPermission, CB_ADDSTRING, 0, (LPARAM)L"操作员");
  113. SendMessage(hPermission, CB_SETCURSEL, 0, 0);
  114. HWND hLabel_B = CreateWindow(
  115. L"STATIC", L"(2)服务端基本选项:作用于服务器自身",
  116. WS_VISIBLE | WS_CHILD,
  117. 20, 390, 400, 30,
  118. hWnd1, NULL,
  119. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  120. );
  121. HWND hLabel_5 = CreateWindow(
  122. L"STATIC", L"指定存档的名称",
  123. WS_VISIBLE | WS_CHILD,
  124. 20, 450, 170, 30,
  125. hWnd1, NULL,
  126. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  127. );
  128. HWND hLevelName = CreateWindow(
  129. L"EDIT", L"不修改",
  130. WS_VISIBLE | WS_CHILD | WS_BORDER | ES_MULTILINE,
  131. 220, 450, 300, 40,
  132. hWnd1, H_ CONF_LevelName,
  133. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  134. );
  135. HWND hLabel_6 = CreateWindow(
  136. L"STATIC", L"新建存档的种子",
  137. WS_VISIBLE | WS_CHILD,
  138. 20, 510, 170, 30,
  139. hWnd1, NULL,
  140. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  141. );
  142. HWND hLevelSeed = CreateWindow(
  143. L"EDIT", L"不修改",
  144. WS_VISIBLE | WS_CHILD | WS_BORDER | ES_MULTILINE,
  145. 220, 510, 300, 40,
  146. hWnd1, (HMENU)CONF_LevelSeed,
  147. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  148. );
  149. HWND hLabel_7 = CreateWindow(
  150. L"STATIC", L"最大玩家数量",
  151. WS_VISIBLE | WS_CHILD,
  152. 20, 570, 170, 30,
  153. hWnd1, NULL,
  154. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  155. );
  156. HWND hMaxPlayer = CreateWindow(
  157. L"EDIT", L"不修改",
  158. WS_VISIBLE | WS_CHILD | WS_BORDER | ES_MULTILINE | ES_NUMBER,
  159. 220, 570, 70, 40,
  160. hWnd1, (HMENU)CONF_MaxPlayer,
  161. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  162. );
  163. HWND hOnlineMode = CreateWindow(
  164. L"BUTTON", L"在线模式",
  165. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  166. 20, 650, 100, 40,
  167. hWnd1, (HMENU)CONF_OnlineMod,
  168. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  169. );
  170. HWND hLAN = CreateWindow(
  171. L"BUTTON", L"局域网可见",
  172. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  173. 170, 650, 130, 40,
  174. hWnd1, (HMENU)CONF_LanVisible,
  175. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  176. );
  177. HWND hWhiteList = CreateWindow(
  178. L"BUTTON", L"打开原生白名单",
  179. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  180. 320, 650, 200, 40,
  181. hWnd1, (HMENU)CONF_Whitelist,
  182. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  183. );
  184. HWND hOnlineMode_1 = CreateWindow(
  185. L"BUTTON", L"不修改上项",
  186. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  187. 20, 700, 130, 40,
  188. hWnd1, (HMENU)CONF_OnlineMod_NOEDIT,
  189. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  190. );
  191. HWND hLAN_1 = CreateWindow(
  192. L"BUTTON", L"不修改上项",
  193. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  194. 170, 700, 130, 40,
  195. hWnd1, (HMENU)CONF_LanVisible_NOEDIT,
  196. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  197. );
  198. HWND hWiteList_1 = CreateWindow(
  199. L"BUTTON", L"不修改上项",
  200. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  201. 320, 700, 130, 40,
  202. hWnd1, (HMENU)CONF_Whitelist_NOEDIT,
  203. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  204. );
  205. SendMessage(hOnlineMode_1, BM_SETCHECK, BST_CHECKED, 0);
  206. SendMessage(hLAN_1, BM_SETCHECK, BST_CHECKED, 0);
  207. SendMessage(hWiteList_1, BM_SETCHECK, BST_CHECKED, 0);
  208. HWND hLabel_C = CreateWindow(
  209. L"STATIC", L"(3)反作弊选项:防止部分作弊方法得逞",
  210. WS_VISIBLE | WS_CHILD,
  211. 20, 770, 400, 30,
  212. hWnd1, NULL,
  213. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  214. );
  215. HWND hFroceTexture = CreateWindow(
  216. L"BUTTON", L"强制材质包",
  217. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  218. 20, 820, 130, 40,
  219. hWnd1, (HMENU)CONF_FroceTexture,
  220. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  221. );
  222. HWND hDIYskin = CreateWindow(
  223. L"BUTTON", L"禁用自定义皮肤",
  224. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  225. 165, 820, 180, 40,
  226. hWnd1, (HMENU)CONF_BanSkin,
  227. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  228. );
  229. HWND hMute = CreateWindow(
  230. L"BUTTON", L"全员禁言",
  231. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  232. 360, 820, 100, 40,
  233. hWnd1, (HMENU)CONF_Mute,
  234. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  235. );
  236. HWND hFroceTexture_1 = CreateWindow(
  237. L"BUTTON", L"不修改上项",
  238. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  239. 20, 870, 130, 40,
  240. hWnd1, (HMENU)CONF_FroceTexture_NOEDIT,
  241. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  242. );
  243. HWND hDIYskin_1 = CreateWindow(
  244. L"BUTTON", L"不修改上项",
  245. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  246. 165, 870, 130, 40,
  247. hWnd1, (HMENU)CONF_BanSkin_NOEDIT,
  248. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  249. );
  250. HWND hMute_1 = CreateWindow(
  251. L"BUTTON", L"不修改上项",
  252. WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
  253. 360, 870, 130, 40,
  254. hWnd1, (HMENU)CONF_Mute_NOEDIT,
  255. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  256. );
  257. SendMessage(hDIYskin_1, BM_SETCHECK, BST_CHECKED, 0);
  258. SendMessage(hMute_1, BM_SETCHECK, BST_CHECKED, 0);
  259. SendMessage(hFroceTexture_1, BM_SETCHECK, BST_CHECKED, 0);
  260. HWND hCompare = CreateWindow(
  261. L"BUTTON", L"服务端校验",
  262. WS_VISIBLE | WS_CHILD | BS_GROUPBOX,
  263. 20, 940, 440, 100,
  264. hWnd1, NULL,
  265. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  266. );
  267. HWND hCompare_1 = CreateWindow(
  268. L"BUTTON", L"不修改",
  269. WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | WS_GROUP,
  270. 40, 980, 90, 40,
  271. hWnd1, (HMENU)CONF_AntiCheat_NOEDIT,
  272. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  273. );
  274. HWND hCompare_2 = CreateWindow(
  275. L"BUTTON", L"关闭",
  276. WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
  277. 150, 980, 80, 40,
  278. hWnd1, (HMENU)CONF_AntiCheat_OFF,
  279. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  280. );
  281. HWND hCompare_3 = CreateWindow(
  282. L"BUTTON", L"启用",
  283. WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
  284. 250, 980, 80, 40,
  285. hWnd1, (HMENU)CONF_AntiCheat_ON,
  286. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  287. );
  288. HWND hCompare_4 = CreateWindow(
  289. L"BUTTON", L"最严格",
  290. WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
  291. 350, 980, 80, 40,
  292. hWnd1, (HMENU)CONF_AntiCheat_STRICT,
  293. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  294. );
  295. SendMessage(hCompare_1, BM_SETCHECK, BST_CHECKED, 0);
  296. HWND hOpenConfig = CreateWindow(
  297. L"BUTTON", L"打开配置文件",
  298. WS_VISIBLE | WS_CHILD ,
  299. 240, 1070, 160, 40,
  300. hWnd1, (HMENU)CONF_OPENCONFIG,
  301. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  302. );
  303. HWND hConfigOK = CreateWindow(
  304. L"BUTTON", L"提交",
  305. WS_VISIBLE | WS_CHILD ,
  306. 410, 1070, 110, 40,
  307. hWnd1, (HMENU)CONF_OK,
  308. (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
  309. );
  310. break;
  311. }
  312. case WM_CLOSE:
  313. {
  314. INT result = MessageBox(hWnd1,
  315. L"是否提交你所更改的内容?\n点击“取消”继续编辑", TITLE,
  316. MB_YESNOCANCEL | MB_ICONWARNING);
  317. if (result == IDYES)
  318. {
  319. DestroyWindow(hWnd1);
  320. }
  321. else if (result == IDNO)
  322. {
  323. DestroyWindow(hWnd1);
  324. }
  325. break;
  326. }
  327. case WM_DESTROY:
  328. hConfig = NULL;
  329. break;
  330. default:
  331. return DefWindowProc(hWnd1, msg, wParam, lParam);
  332. }
  333. }