Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.90 KB | None | 0 0
  1. #include <sourcemod>
  2.  
  3. #define MAX_LINES 35
  4.  
  5. new String:ConfigFile[100] = "configs/eg-rules.txt";
  6.  
  7. new String:ItemOne[10] = "Rules";
  8. new String:ItemTwo[10] = "JB Rules";
  9. new String:ItemThree[10] = "DR Rules";
  10.  
  11. new g_numLines;
  12. new g_numLinesOne;
  13. new g_numLinesTwo;
  14. new g_numLinesThree;
  15.  
  16. new String:g_LinesOne[MAX_LINES+1][50];
  17. new String:g_LinesTwo[MAX_LINES+1][50];
  18. new String:g_LinesThree[MAX_LINES+1][50];
  19.  
  20.  
  21.  
  22. public OnPluginStart() {
  23.  
  24. RegConsoleCmd("sm_rules", Command_RulesMenu, "sm_rules");
  25.  
  26. LoadConfig();
  27. }
  28.  
  29. //=====[ Menus ]========================================
  30.  
  31. public Action:Command_RulesMenu(client, args)
  32. {
  33.  
  34. LoadConfig();
  35.  
  36. new Handle:menu = CreateMenu(RulesMenuHandler);
  37.  
  38. SetMenuTitle(menu, "Rules Menu:");
  39.  
  40. AddMenuItem(menu, "rules", ItemOne);
  41.  
  42. AddMenuItem(menu, "rules", ItemTwo);
  43.  
  44. AddMenuItem(menu, "rules", ItemThree);
  45.  
  46. SetMenuExitButton(menu, true);
  47.  
  48. DisplayMenu(menu, client, MENU_TIME_FOREVER);
  49.  
  50. return Plugin_Handled;
  51. }
  52.  
  53. public RulesMenuHandler(Handle:menu, MenuAction:action, client, LineNum)
  54. {
  55.  
  56. if(action == MenuAction_Select)
  57. {
  58. if(LineNum == 0)
  59. {
  60. Menu_One(client, LineNum);
  61. }
  62. if(LineNum == 1)
  63. {
  64. Menu_Two(client, LineNum);
  65. }
  66. if(LineNum == 2)
  67. {
  68. Menu_Three(client, LineNum);
  69. }
  70.  
  71. }
  72. else if(action == MenuAction_End)
  73. {
  74.  
  75. CloseHandle(menu);
  76. }
  77. }
  78.  
  79.  
  80. public Menu_One(client, empty)
  81. {
  82. new Handle:menu = CreateMenu(Menu_UniHandler);
  83. SetMenuExitBackButton(menu, true);
  84.  
  85. for(new i = 1; i < g_numLinesOne; i++)
  86. {
  87. AddMenuItem(menu, "rules", g_LinesOne[i], ITEMDRAW_DISABLED);
  88. }
  89.  
  90. DisplayMenu(menu, client, MENU_TIME_FOREVER);
  91. }
  92.  
  93.  
  94. public Menu_Two(client, empty)
  95. {
  96. new Handle:menu = CreateMenu(Menu_UniHandler);
  97. SetMenuExitBackButton(menu, true);
  98.  
  99. for(new i = 1; i < g_numLinesTwo; i++)
  100. {
  101. AddMenuItem(menu, "rules", g_LinesTwo[i], ITEMDRAW_DISABLED);
  102. }
  103.  
  104. DisplayMenu(menu, client, MENU_TIME_FOREVER);
  105. }
  106.  
  107.  
  108. public Menu_Three(client, empty)
  109. {
  110. new Handle:menu = CreateMenu(Menu_UniHandler);
  111. SetMenuExitBackButton(menu, true);
  112.  
  113. for(new i = 1; i < g_numLinesThree; i++)
  114. {
  115. AddMenuItem(menu, "rules", g_LinesThree[i], ITEMDRAW_DISABLED);
  116. }
  117.  
  118. DisplayMenu(menu, client, MENU_TIME_FOREVER);
  119. }
  120.  
  121. public Menu_UniHandler(Handle:menu, MenuAction:action, client, param)
  122. {
  123. switch (action)
  124. {
  125. case MenuAction_Cancel:
  126. {
  127. switch (param)
  128. {
  129. case MenuCancel_ExitBack:
  130. {
  131. Command_RulesMenu(client, param);
  132. return;
  133. }
  134. }
  135. }
  136. case MenuAction_End:
  137. {
  138. CloseHandle(menu);
  139. }
  140. }
  141. }
  142.  
  143. //=====[ FUNCTIONS ]========================================
  144.  
  145. public LoadConfig()
  146. {
  147. // Store Lines from Textfile to Array
  148. decl String:filename[100];
  149.  
  150. BuildPath(Path_SM, filename, 100, ConfigFile);
  151.  
  152. new Handle:hFile = OpenFile(filename, "r");
  153.  
  154. if(hFile == INVALID_HANDLE)
  155. {
  156. SetFailState("addons/sourcemod/%s not found",ConfigFile);
  157. return;
  158. }
  159.  
  160. g_numLines = 1;
  161. g_numLinesThree = 1;
  162. g_numLinesTwo = 1;
  163. g_numLinesOne = 1;
  164. new WhatNumber = 0;
  165. decl String:line[250];
  166.  
  167. while(ReadFileLine(hFile, line, sizeof(line)) && g_numLines < MAX_LINES+1)
  168. {
  169. if(!(line[0] == '/' && line[1] == '/'))
  170. {
  171. if(WhatNumber == 1)
  172. {
  173. if(StrContains(line, "[TWO]", false) == -1)
  174. {
  175. g_LinesOne[g_numLinesOne][0] = 0;
  176.  
  177. Format(g_LinesOne[g_numLinesOne], sizeof(g_LinesOne[]), line);
  178.  
  179. if(strcmp(g_LinesOne[g_numLinesOne], ""))
  180. {
  181. g_numLines++;
  182. g_numLinesOne++;
  183. }
  184. }
  185.  
  186. if(WhatNumber == 2)
  187. {
  188. if(StrContains(line, "[THREE]", false) == -1)
  189. {
  190. g_LinesTwo[g_numLinesTwo][0] = 0;
  191.  
  192. Format(g_LinesTwo[g_numLinesTwo], sizeof(g_LinesTwo[]), line);
  193.  
  194. if(strcmp(g_LinesTwo[g_numLinesTwo], ""))
  195. {
  196. g_numLines++;
  197. g_numLinesTwo++;
  198. }
  199. }
  200. }
  201.  
  202. if(WhatNumber == 3)
  203. {
  204. g_LinesTwo[g_numLinesTwo][0] = 0;
  205.  
  206. Format(g_LinesTwo[g_numLinesTwo], sizeof(g_LinesTwo[]), line);
  207.  
  208. if(strcmp(g_LinesTwo[g_numLinesTwo], ""))
  209. {
  210. g_numLines++;
  211. g_numLinesTwo++;
  212. }
  213. }
  214.  
  215. if(WhatNumber == 4)
  216. {
  217. g_LinesThree[g_numLinesThree][0] = 0;
  218.  
  219. Format(g_LinesThree[g_numLinesThree], sizeof(g_LinesThree[]), line);
  220.  
  221. if(strcmp(g_LinesThree[g_numLinesThree], ""))
  222. {
  223. g_numLines++;
  224. g_numLinesThree++;
  225. }
  226. }
  227.  
  228. if(StrContains(line, "[ONE]", false) != -1)
  229. {
  230.  
  231. WhatNumber = 1;
  232. }
  233.  
  234. if(StrContains(line, "[TWO]", false) != -1)
  235. {
  236.  
  237. WhatNumber = 2;
  238. }
  239.  
  240. if(StrContains(line, "[THREE]", false) != -1)
  241. {
  242.  
  243. WhatNumber = 3;
  244. }
  245. }
  246. }
  247.  
  248. CloseHandle(hFile);
  249. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement