Master 6 Napisano 24 Grudnia 2018 (edytowane) Opis Plugin dodaje nową zakładkę w menu admina, która umożliwia przeniesienie gracza do wybranej drużyny. Plugin Spoiler #include <adminmenu> #pragma semicolon 1 #pragma newdecls required #define NAME "Admin Change Team" #define AUTHOR "Master" #define VERSION "1.0" #define URL "https://cswild.pl/" public Plugin myinfo = { name = NAME, author = AUTHOR, version = VERSION, url = URL }; #define TAG " [\x09Drużyny\x01] " TopMenu g_tmAdminMenu; public void OnPluginStart() { TopMenu topmenu; if(LibraryExists("adminmenu") && ((topmenu = GetAdminTopMenu()) != null)) OnAdminMenuReady(topmenu); } public void OnAdminMenuReady(Handle aTopMenu) { TopMenu aTopMenus = TopMenu.FromHandle(aTopMenu); if(aTopMenus == g_tmAdminMenu) return; g_tmAdminMenu = aTopMenus; TopMenuObject CategoryId = g_tmAdminMenu.AddCategory("master_ct", Handle_change_team, "master_ct", ADMFLAG_BAN); if(CategoryId == INVALID_TOPMENUOBJECT) return; g_tmAdminMenu.AddItem("master_ct_item", Handle_change_team_item, CategoryId, "master_ct_item", ADMFLAG_BAN); } public void Handle_change_team(TopMenu topmenu, TopMenuAction action, TopMenuObject topobj_id, int iClient, char[] buffer, int maxlength) { if(action == TopMenuAction_DisplayOption || action == TopMenuAction_DisplayTitle) { Format(buffer, maxlength, "Przenieś Gracza"); } } public void Handle_change_team_item(TopMenu topmenu, TopMenuAction action, TopMenuObject topobj_id, int iClient, char[] buffer, int maxlength) { if(action == TopMenuAction_DisplayOption) { Format(buffer, maxlength, "Wybierz gracza"); } else if(action == TopMenuAction_SelectOption) { BuildMenu(iClient); } } void BuildMenu(int client) { Menu menu = new Menu(Menu_Handler); menu.SetTitle("Wybierz gracza do przeniesienia:"); char sBuffer[128]; for(int i = 1; i <= MaxClients; i++) { if(!IsClientInGame(i)) continue; if(IsClientSourceTV(i)) continue; if(client == i) continue; if(GetUserFlagBits(i) & ADMFLAG_BAN) continue; Format(sBuffer, sizeof(sBuffer), "%N", i); char sTarget[8]; Format(sTarget, sizeof(sTarget), "%d", GetClientUserId(i)); menu.AddItem(sTarget, sBuffer); } if(!menu.ItemCount) { menu.AddItem(NULL_STRING, "Brak dostępnych graczy", ITEMDRAW_DISABLED); } menu.ExitBackButton = true; menu.Display(client, 0); } public int Menu_Handler(Menu menu, MenuAction action, int client, int param2) { switch(action) { case MenuAction_End: { delete menu; } case MenuAction_Cancel: { if(param2 == MenuCancel_ExitBack && g_tmAdminMenu) { g_tmAdminMenu.Display(client, TopMenuPosition_LastCategory); } } case MenuAction_Select: { char sTargetUserID[8]; menu.GetItem(param2, sTargetUserID, sizeof(sTargetUserID)); Menu menuTeam = new Menu(MenuTeam_Handler); menuTeam.SetTitle("Wybierz drużynę docelową:"); menuTeam.AddItem(sTargetUserID, "Obserwatorzy"); menuTeam.AddItem(sTargetUserID, "Terroryści"); menuTeam.AddItem(sTargetUserID, "Anty-Terroryści"); menuTeam.ExitBackButton = true; menuTeam.Display(client, 60); } } } public int MenuTeam_Handler(Menu menu, MenuAction action, int client, int param2) { switch(action) { case MenuAction_End: { delete menu; } case MenuAction_Cancel: { if(param2 == MenuCancel_ExitBack) { BuildMenu(client); } } case MenuAction_Select: { char sTargetUserID[8]; menu.GetItem(param2, sTargetUserID, sizeof(sTargetUserID)); int targetUserID = StringToInt(sTargetUserID); int target = GetClientOfUserId(targetUserID); if(target) { param2++; char sTeam[16]; sTeam = param2 == 1 ? "Obserwatorów" : param2 == 2 ? "Terrorystów" : "Anty-Terrorystów"; int iTeam = GetClientTeam(target); if(iTeam != param2) { ChangeClientTeam(target, param2); PrintToChat(client, "%s Pomyślnie przeniesiono gracza \x0B%N \x01do drużyny \x08%s", TAG, target, sTeam); PrintToChat(target, "%s Zostałeś przeniesiony przez admina \x0B%N \x01do drużyny \x08%s", TAG, client, sTeam); } else { PrintToChat(client, "%s Gracz \x0B%N \x01znajduję się już w drużynie \x08%s", TAG, target, sTeam); } } else { PrintToChat(client, "%s Gracz jest nieosiągalny", TAG); } } } } Master_Admin_Change_Team.spHej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami! Edytowane 24 Grudnia 2018 przez Master Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach