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

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

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » STEAM_ID выбранного игрока
STEAM_ID выбранного игрока
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
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » STEAM_ID выбранного игрока
  • Страница 1 из 1
  • 1
Поиск: