Naykon
|
Дата: Суббота, 01.09.2012, 18:59:28 | Сообщение # 1 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Code #include <sourcemod> #include <cstrike> #include <sdktools> #include <sdktools_entoutput> #include <sdktools_functions>
new String:BanID[25]; new String:BanName[65]; new BanUser;
public OnPluginStart() { RegConsoleCmd("menu", menu); }
public Action:menu(client, args) { Menu(client); return Plugin_Handled; }
Menu(client) { new Handle:Menu = CreateMenu(MenuSelect); SetMenuTitle(Menu, "Игроки\n \n"); decl String:SteamID[25]; decl String:UserName[MAX_NAME_LENGTH]; for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i)) { IntToString(GetClientUserId(i), SteamID, sizeof(SteamID)); GetClientName(i, UserName, sizeof(UserName)); AddMenuItem(Menu, SteamID, UserName); } } //AddMenuItem(Menu, "2", "Назад"); SetMenuExitButton(Menu, true); DisplayMenu(Menu, client, 0); }
public MenuSelect(Handle:menu, MenuAction:action, client, i) { if (action == MenuAction_Select) { GetMenuItem(menu, i, BanID, sizeof(BanID), _, BanName, sizeof(BanName)); BanUser = GetClientOfUserId(StringToInt(BanID)); if (BanUser > 0) { GetMenuItem(menu, i, BanID, sizeof(BanID)); PrintToChat(client, "Игрок: %s", BanName); PrintToChat(client, "Игрок: %N", BanUser); } } }
Блин, как получить STEAM_ID выбранного игрока через меню??? PrintToChat(client, "Стим выбранного игрока: %s", STEAM_ID); ?? Ума не приложу, только получается вычислить стим_ид игрока у которого это меню(((Добавлено (01.09.2012, 18:16:12) ---------------------------------------------
Code new target = GetClientOfUserId(StringToInt(userid)); if (target > 0) { decl String:SteamID[25]; GetClientAuthString(target, SteamID, 25);
Разобрался может кому пригодиться как напоминание.Добавлено (01.09.2012, 18:59:28) ---------------------------------------------
Code #include <sourcemod>
public OnPluginStart() { RegConsoleCmd("test", test); }
public Action:test(client, args) { if (client > 0 && args < 1) ShowMyMenu(client); return Plugin_Handled; }
ShowMyMenu(client) { new Handle:menu = CreateMenu(Select_Menu); SetMenuTitle(menu, "Выберите Игрока:\n \n"); decl String:userid[25], String:name[32]; for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i)) { IntToString(GetClientUserId(i), userid, 25); GetClientName(i, name, 32); AddMenuItem(menu, userid, name); } } DisplayMenu(menu, client, 0); }
public Select_Menu(Handle:menu, MenuAction:action, client, option) { if (action == MenuAction_End) { // Если меню стало неактивным, обязательно уничтожьте его. // Исключение: // Меню глобальное и оно еще вам нужно. CloseHandle(menu); return; } if (action != MenuAction_Select) return; decl String:userid[25]; GetMenuItem(menu, option, userid, 25); new target = GetClientOfUserId(StringToInt(userid)); if (target > 0) { new String:SteamID[25]; GetClientAuthString(target, SteamID, 25); PrintToChat(client, "Steam_ID: %s", SteamID); /*/ new Handle:h = CreateKeyValues("Client1"); KvJumpToKey(h, SteamID, true); KvSetString(h, "name", Name); KvRewind(h); KeyValuesToFile(h, "cfg/Client1.txt");/*/ } else PrintToChat(client, "Игрок не найден (вышел с сервера)"); ShowMyMenu(client); }
Получаю STEAM_ID а ник не могу через запись такого вида вообще не работает GetMenuItem(menu, option, userid, sizeof(BanID), _, Name, sizeof(BanName)); ... как теперь получить имя? Нужно чтоб и Стим и Имя написало в чат при выборе игрока.
|
|
| |
Scarface_slv
|
Дата: Воскресенье, 02.09.2012, 08:25:22 | Сообщение # 2 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Code decl String:player_name[65] GetClientName(target, player_name, 65); PrintToChatAll("%N", player_name);
Сообщение отредактировал Scarface_slv - Воскресенье, 02.09.2012, 18:00:43 |
|
| |