Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sourcemod>
- #define MAX_LINES 35
- new String:ConfigFile[100] = "configs/eg-rules.txt";
- new String:ItemOne[10] = "Rules";
- new String:ItemTwo[10] = "JB Rules";
- new String:ItemThree[10] = "DR Rules";
- new g_numLines;
- new g_numLinesOne;
- new g_numLinesTwo;
- new g_numLinesThree;
- new String:g_LinesOne[MAX_LINES+1][50];
- new String:g_LinesTwo[MAX_LINES+1][50];
- new String:g_LinesThree[MAX_LINES+1][50];
- public OnPluginStart() {
- RegConsoleCmd("sm_rules", Command_RulesMenu, "sm_rules");
- LoadConfig();
- }
- //=====[ Menus ]========================================
- public Action:Command_RulesMenu(client, args)
- {
- LoadConfig();
- new Handle:menu = CreateMenu(RulesMenuHandler);
- SetMenuTitle(menu, "Rules Menu:");
- AddMenuItem(menu, "rules", ItemOne);
- AddMenuItem(menu, "rules", ItemTwo);
- AddMenuItem(menu, "rules", ItemThree);
- SetMenuExitButton(menu, true);
- DisplayMenu(menu, client, MENU_TIME_FOREVER);
- return Plugin_Handled;
- }
- public RulesMenuHandler(Handle:menu, MenuAction:action, client, LineNum)
- {
- if(action == MenuAction_Select)
- {
- if(LineNum == 0)
- {
- Menu_One(client, LineNum);
- }
- if(LineNum == 1)
- {
- Menu_Two(client, LineNum);
- }
- if(LineNum == 2)
- {
- Menu_Three(client, LineNum);
- }
- }
- else if(action == MenuAction_End)
- {
- CloseHandle(menu);
- }
- }
- public Menu_One(client, empty)
- {
- new Handle:menu = CreateMenu(Menu_UniHandler);
- SetMenuExitBackButton(menu, true);
- for(new i = 1; i < g_numLinesOne; i++)
- {
- AddMenuItem(menu, "rules", g_LinesOne[i], ITEMDRAW_DISABLED);
- }
- DisplayMenu(menu, client, MENU_TIME_FOREVER);
- }
- public Menu_Two(client, empty)
- {
- new Handle:menu = CreateMenu(Menu_UniHandler);
- SetMenuExitBackButton(menu, true);
- for(new i = 1; i < g_numLinesTwo; i++)
- {
- AddMenuItem(menu, "rules", g_LinesTwo[i], ITEMDRAW_DISABLED);
- }
- DisplayMenu(menu, client, MENU_TIME_FOREVER);
- }
- public Menu_Three(client, empty)
- {
- new Handle:menu = CreateMenu(Menu_UniHandler);
- SetMenuExitBackButton(menu, true);
- for(new i = 1; i < g_numLinesThree; i++)
- {
- AddMenuItem(menu, "rules", g_LinesThree[i], ITEMDRAW_DISABLED);
- }
- DisplayMenu(menu, client, MENU_TIME_FOREVER);
- }
- public Menu_UniHandler(Handle:menu, MenuAction:action, client, param)
- {
- switch (action)
- {
- case MenuAction_Cancel:
- {
- switch (param)
- {
- case MenuCancel_ExitBack:
- {
- Command_RulesMenu(client, param);
- return;
- }
- }
- }
- case MenuAction_End:
- {
- CloseHandle(menu);
- }
- }
- }
- //=====[ FUNCTIONS ]========================================
- public LoadConfig()
- {
- // Store Lines from Textfile to Array
- decl String:filename[100];
- BuildPath(Path_SM, filename, 100, ConfigFile);
- new Handle:hFile = OpenFile(filename, "r");
- if(hFile == INVALID_HANDLE)
- {
- SetFailState("addons/sourcemod/%s not found",ConfigFile);
- return;
- }
- g_numLines = 1;
- g_numLinesThree = 1;
- g_numLinesTwo = 1;
- g_numLinesOne = 1;
- new WhatNumber = 0;
- decl String:line[250];
- while(ReadFileLine(hFile, line, sizeof(line)) && g_numLines < MAX_LINES+1)
- {
- if(!(line[0] == '/' && line[1] == '/'))
- {
- if(WhatNumber == 1)
- {
- if(StrContains(line, "[TWO]", false) == -1)
- {
- g_LinesOne[g_numLinesOne][0] = 0;
- Format(g_LinesOne[g_numLinesOne], sizeof(g_LinesOne[]), line);
- if(strcmp(g_LinesOne[g_numLinesOne], ""))
- {
- g_numLines++;
- g_numLinesOne++;
- }
- }
- if(WhatNumber == 2)
- {
- if(StrContains(line, "[THREE]", false) == -1)
- {
- g_LinesTwo[g_numLinesTwo][0] = 0;
- Format(g_LinesTwo[g_numLinesTwo], sizeof(g_LinesTwo[]), line);
- if(strcmp(g_LinesTwo[g_numLinesTwo], ""))
- {
- g_numLines++;
- g_numLinesTwo++;
- }
- }
- }
- if(WhatNumber == 3)
- {
- g_LinesTwo[g_numLinesTwo][0] = 0;
- Format(g_LinesTwo[g_numLinesTwo], sizeof(g_LinesTwo[]), line);
- if(strcmp(g_LinesTwo[g_numLinesTwo], ""))
- {
- g_numLines++;
- g_numLinesTwo++;
- }
- }
- if(WhatNumber == 4)
- {
- g_LinesThree[g_numLinesThree][0] = 0;
- Format(g_LinesThree[g_numLinesThree], sizeof(g_LinesThree[]), line);
- if(strcmp(g_LinesThree[g_numLinesThree], ""))
- {
- g_numLines++;
- g_numLinesThree++;
- }
- }
- if(StrContains(line, "[ONE]", false) != -1)
- {
- WhatNumber = 1;
- }
- if(StrContains(line, "[TWO]", false) != -1)
- {
- WhatNumber = 2;
- }
- if(StrContains(line, "[THREE]", false) != -1)
- {
- WhatNumber = 3;
- }
- }
- }
- CloseHandle(hFile);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement