configEditProc.cpp 13 KB

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