nikola31rus
|
Дата: Среда, 01.08.2012, 23:44:26 | Сообщение # 1 |
|
Сообщений: 37
Репутация: 4 [ +/- ]
|
|
Помогите пожалуйста сделать этому админ меню флаг доступа ADMFLAG_CUSTOM3, у меня ничего не выходит. Взял готовый код, хотел сделать аналогичную админку, только чтобы некоторые функции были не доступны. Вот некоторые части из кода, которые относятся к админке. Просто я только начинаю изучать плагинописание) решил начать с этого. Где тут ошибки?
Code RegConsoleCmd("props", props_cmd); RegConsoleCmd("del", props_del_cmd); RegConsoleCmd("padmin", padmin_cmd); RegConsoleCmd("sadmin", sadmin_cmd); RegAdminCmd("props_reload_menu", props_reload_menu, ADMFLAG_ROOT); RegAdminCmd("props_get_points", props_get_points, ADMFLAG_ROOT); RegAdminCmd("props_set_points", props_set_points, ADMFLAG_ROOT);
Code new String:AdminAction[MAXPLAYERS+1][15]; new MyTarget[MAXPLAYERS+1]; new bool:ChatWaitMe[MAXPLAYERS+1];
CreateAdminPanel() { AdminPanel = CreatePanel(); SetPanelTitle(AdminPanel, "Админ меню\n \n"); DrawPanelItem(AdminPanel, "Меню достройки"); DrawPanelItem(AdminPanel, "Удалить предметы игрока"); SetPanelCurrentKey(AdminPanel, 10); DrawPanelItem(AdminPanel, "Выход"); }
public Action:sadmin_cmd(client, args) { if (client > 0 && args < 1) { if (AdminAccess2[client]) { ChatWaitMe[client] = false; SendPanelToClient(AdminPanel, client, Select_AdminPanel, 0); } else PrintToChat(client, "Нет доступа к команде"); } return Plugin_Handled; }
public Select_AdminPanel(Handle:panel, MenuAction:action, client, option) { if (action != MenuAction_Select || option > 4) return;
// Меню достройки if (option == 1) { AdminUseNextPropsMenu[client] = true; ShowNextPropsMenu(client); }
else { strcopy(AdminAction[client], 15, option == 2 ? "del_props"); ShowUsersMenu(client); }
ClientCommand(client, "playgamesound weapons/smokegrenade/grenade_hit1.wav"); }
ShowUsersMenu(client, item = 0) { new Handle:menu = CreateMenu(Select_UsersMenu); SetMenuTitle(menu, "Выберите Игрока:\n \n"); SetMenuExitBackButton(menu, true); decl String:userid[15], String:name[32]; name[0] = '\0'; for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && !IsFakeClient(i)) { if (i != client && AdminAccess[i]) continue; IntToString(GetClientUserId(i), userid, 15); GetClientName(i, name, 32); AddMenuItem(menu, userid, name); } } DisplayMenuAtItem(menu, client, item, 0); }
public Select_UsersMenu(Handle:menu, MenuAction:action, client, option) { if (action == MenuAction_End) CloseHandle(menu); else if (action == MenuAction_Cancel && option == MenuCancel_ExitBack) { SendPanelToClient(AdminPanel, client, Select_AdminPanel, 0); } else if (StrEqual(AdminAction[client], "del_props")) { new props_n = MyPropsNum[target]; if (props_n > 0) { decl String:text[75]; Format(text, 75, "wS_Prop_%d,Kill,,0,-1", target); DispatchKeyValue(client, "OnUser1", text); AcceptEntityInput(client, "FireUser1");
PROPS_NUM -= props_n; MyPropsNum[target] = 0; PrintToChat(client, "\x01Предметы игрока \x04%N \x01удалены (\x04%d\x01)", target, props_n); } else PrintToChat(client, "На карте нет его предметов"); ShowUsersMenu(client, GetMenuSelectionPosition()); } SendPanelToClient(AdminPanel, client, Select_AdminPanel, 0); return Plugin_Handled; } } return Plugin_Continue; }
Вот в этой часте кода, указано какие флаги доступа должны быть у админа чтобы открыть padmin, а как сделать отдельно
Code public OnClientPostAdminCheck(client) { ChatWaitMe[client] = false; AdminAccess[client] = false; MyUserid[client] = GetClientUserId(client); MyGameTime[client] = 0.0; OnGameFrame_enabled = true; MyPoints[client] = 0; MyPropsNum[client] = 0; if (!IsFakeClient(client)) { new flags = GetUserFlagBits(client); if (flags & ADMFLAG_ROOT || flags & ADMFLAG_CUSTOM2) AdminAccess[client] = true; new flags = GetUserFlagBits(client); if (flags & ADMFLAG_ROOT || flags & ADMFLAG_CUSTOM3) AdminAccess2[client] = true; GetClientAuthString(client, SteaM[client], 25); SQL_GetClientPoints(client); } }
Сообщение отредактировал nikola31rus - Четверг, 02.08.2012, 00:38:44 |
|
| |
Scarface_slv
|
Дата: Четверг, 02.08.2012, 13:01:40 | Сообщение # 2 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
кинул бы полный код хоть понятнее было бы как изменить=)
|
|
| |
September^^
|
Дата: Среда, 15.08.2012, 17:27:52 | Сообщение # 3 |
|
Сообщений: 15
Репутация: 0 [ +/- ]
|
|
RegAdminCmd("props", props_cmd, ADMFLAG_CUSTOM3); RegAdminCmd("del", props_del_cmd, ADMFLAG_CUSTOM3); RegAdminCmd("padmin", padmin_cmd, ADMFLAG_CUSTOM3); RegAdminCmd("sadmin", sadmin_cmd, ADMFLAG_CUSTOM3); RegAdminCmd("props_reload_menu", props_reload_menu, ADMFLAG_CUSTOM3); RegAdminCmd("props_get_points", props_get_points, ADMFLAG_CUSTOM3); RegAdminCmd("props_set_points", props_set_points, ADMFLAG_CUSTOM3);
Я так понял ты хотел сделать чтобы эти команды были доступны админам с флагом ADMFLAG_CUSTOM3 ?
|
|
| |
nikola31rus
|
Дата: Воскресенье, 19.08.2012, 22:12:26 | Сообщение # 4 |
|
Сообщений: 37
Репутация: 4 [ +/- ]
|
|
всё, проблема решена, можно закрыть тёму
|
|
| |