Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Доступ к админскому меню
Доступ к админскому меню
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 [ +/- ]
всё, проблема решена, можно закрыть тёму
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Доступ к админскому меню
  • Страница 1 из 1
  • 1
Поиск: