Категории в админку добавить.
| |
_nS_
|
Дата: Суббота, 28.05.2016, 23:49:11 | Сообщение # 1 |
|
Сообщений: 18
Репутация: 0 [ +/- ]
|
|
Возможно я такой "зелёный" в SP или чего-то не понимаю.
Код public OnAdminMenuReady(Handle aTopMenu) { TopMenu topmenu = TopMenu.FromHandle(aTopMenu);
/* Block us from being called twice */ if (topmenu == hTopMenu) { return; } /* Save the Handle */ hTopMenu = topmenu; /* Find the "Player Commands" category */ TopMenuObject cmd_commands = hTopMenu.FindCategory("cmd_commands");
if (cmd_commands == INVALID_TOPMENUOBJECT) { cmd_commands = AddToTopMenu(topmenu, "cmd_commands", TopMenuObject_Category, CategoryHandler, INVALID_TOPMENUOBJECT); } hTopMenu.AddItem("sm_warden_remove", AdminMenu_WardenRemove, cmd_commands, "sm_warden_remove", ADMFLAG_GENERIC); }
public CategoryHandler(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength) { if (action == TopMenuAction_DisplayTitle) { Format(buffer, maxlength, "Управление КМД"); } else if (action == TopMenuAction_DisplayOption) { Format(buffer, maxlength, "Управление КМД"); } }
public AdminMenu_WardenRemove(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, client, String:buffer[], maxlength) { if (action == TopMenuAction_DisplayOption) { Format(buffer, maxlength, "Удалить КМД"); } else if (action == TopMenuAction_SelectOption) { if(Warden == -1) { CPrintToChat(client, "\x07FF0000 [Инфо] \x01 ~ \x0700FF00 КМД \x07FFFFE0 и так нет, ты че?"); } else { for(new i = 1; i <= MaxClients; ++i) { if (IsClientInGame(i) && !IsFakeClient(i) && i == Warden) { RemoveTheWarden(i); CPrintToChat(client, "КМД удален!"); return; } } } hTopMenu.Display(client, TopMenuPosition_LastCategory); } }
Как в этой категории добавить еще 1 функцию?Через какую строку можно добавить функцию и ее описание "не ломая" код. Нужно чтобы было WardenSet или SetTheWarden не знаю точно. Типо Добавить КМД,Кмд добавлен и т.д
|
|
| |
TEIN
|
Дата: Воскресенье, 29.05.2016, 08:37:46 | Сообщение # 2 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
http://world-source.ru/forum/100-2667-1 http://world-source.ru/forum/100-2299-1
|
|
| |
_nS_
|
Дата: Воскресенье, 29.05.2016, 21:49:33 | Сообщение # 3 |
|
Сообщений: 18
Репутация: 0 [ +/- ]
|
|
Цитата http://world-source.ru/forum/100-2667-1 Читал уже,но всё равно не понял как просто добавить функцию в категорию =(
|
|
| |
Jon4ik
|
Дата: Понедельник, 30.05.2016, 18:58:35 | Сообщение # 4 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
_nS_, Другие плагины с этой функцией посмотри. Я тоже мучился с этим, но потом дошло как делать надо.
Сообщение отредактировал Jon4ik - Понедельник, 30.05.2016, 18:59:03 |
|
| |
_nS_
|
Дата: Понедельник, 30.05.2016, 19:57:50 | Сообщение # 5 |
|
Сообщений: 18
Репутация: 0 [ +/- ]
|
|
Код public OnAdminMenuReady(Handle:topmenu) { if (topmenu == hTopMenu) { return; } hTopMenu = topmenu; new TopMenuObject:server_commands = FindTopMenuCategory (hTopMenu, ADMINMENU_SERVERCOMMANDS); AddToTopMenu(hTopMenu, "BOTS", TopMenuObject_Item, Bots_Item, server_commands, "sm_bots", ADMFLAG_CONFIG); }
public Bots_Item(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength) { if (action == TopMenuAction_DisplayOption) { Format(buffer, maxlength, "%T", "BOTS" , param); } else if (action == TopMenuAction_SelectOption) { BotsMenu_show(param, 1); } } Взял к примеру BotsManager,вот категория ботов
Код public OnAdminMenuReady(Handle aTopMenu) { TopMenu topmenu = TopMenu.FromHandle(aTopMenu);
/* Block us from being called twice */ if (topmenu == hTopMenu) { return; } /* Save the Handle */ hTopMenu = topmenu; /* Find the "Player Commands" category */ TopMenuObject cmd_commands = hTopMenu.FindCategory("cmd_commands");
if (cmd_commands == INVALID_TOPMENUOBJECT) { cmd_commands = AddToTopMenu(topmenu, "cmd_commands", TopMenuObject_Category, CategoryHandler, INVALID_TOPMENUOBJECT); } hTopMenu.AddItem("sm_warden_remove", AdminMenu_WardenRemove, cmd_commands, "sm_warden_remove", ADMFLAG_GENERIC); }
public CategoryHandler(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength) { if (action == TopMenuAction_DisplayTitle) { Format(buffer, maxlength, "Управление КМД"); } else if (action == TopMenuAction_DisplayOption) { Format(buffer, maxlength, "Управление КМД"); } }
public AdminMenu_WardenRemove(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, client, String:buffer[], maxlength) { if (action == TopMenuAction_DisplayOption) { Format(buffer, maxlength, "Удалить КМД"); } else if (action == TopMenuAction_SelectOption) { if(Warden == -1) { CPrintToChat(client, "\x07FF0000 [Инфо] \x01 ~ \x0700FF00 КМД \x07FFFFE0 и так нет, ты че?"); } else { for(new i = 1; i <= MaxClients; ++i) { if (IsClientInGame(i) && !IsFakeClient(i) && i == Warden) { RemoveTheWarden(i); CPrintToChat(client, "КМД удален!"); return; } } } hTopMenu.Display(client, TopMenuPosition_LastCategory); } }
Вот мой плагин с категорией. Как правильно просто добавить функцию в эту категорию хз =(
|
|
| |
Jon4ik
|
Дата: Вторник, 31.05.2016, 12:40:17 | Сообщение # 6 |
|
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
_nS_, Бери плагины где по мимо категории создаются подкатегории.
Я бы объяснил как сделать, но из меня объяснятор не очень
|
|
| |
|