Плагин вывода данных игроков в консоль клиента (дота2)

Тема в разделе "Запросы", создана пользователем warlock, 24 дек 2015.

  1. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    Здравствуйте. Имеется локальный сервер доты 2, тк с интернетом у нас в городе беда - играют у меня. В связи с этим ищу следующие плагины:
    Плагин, который ставит рандомный пароль в начале игры (когда уже все зашли и стоят на фонтане), и выводит его в консоль клиента.
    Так же ищу плагин, который выводит информацию о играющих игроках (их ник, айпи и стим_ид)., дабы было проще банить, за нарушение правил. Сейчас имеется плагин, который выводит эту информацию в чат, но это не очень удобно (из консоли проще скопировать, чат в доте не копируется).
    Есть предложения?
     
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    Он приватный. Оффтоп
    Найди любой, что нравится в чате и далее замени PrintToChat на PrintToConsole, PrintToChatAll на цикл с PrintToConsole.
     
  3. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    Пробовал заменить на принттукоесоль-не писало в консоль. Можешь в лс чиркануть, где его купить?
    Про вывод игроков в консоль тоже интересует
     
  4. pracc

    pracc

    Сообщения:
    480
    Симпатии:
    128
    А разве в твоём городе где беда с интернетом много кто играет в dota2 и имеет смысл кого-то банить?
    Я думаю, что в таком городе с плохим интернетом в dota2 играют 2-3 игрока и то тех не стоит банить, а беречь как синица око.
     
  5. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    То, что вы думаете-оставьте пои себе. Тут не об этом.
    AlmazON - нет, нужно именно в консоль клиента. В сервере и так можно посмотреть данные игрока по логам, ну или HLSW) нужно непосредственно игроку в консоль.
     
  6. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    #pragma semicolon 1

    #include <sourcemod>
    #include <geoip>

    #define VERSION "1.0"

    public Plugin:myinfo =
    {
    name = "Connect Player",
    author = "Beelzebub",
    description = "Connect player to server",
    version = VERSION,
    };

    new Handle:wS_Timer[MAXPLAYERS+1];

    public OnClientPutInServer(client)
    {
    // Сохраняем Handle таймера
    wS_Timer[client] = CreateTimer(15.0, wS_Hello, client);
    }

    // Если игрок покидает сервер, не увидев приветствие, то убиваем таймер.

    public OnClientDisconnect(client)
    {
    if (wS_Timer[client] != INVALID_HANDLE)
    {
    KillTimer(wS_Timer[client]);
    wS_Timer[client] = INVALID_HANDLE;
    }
    }

    public Action:wS_Hello(Handle:timer, any:client)
    {
    // Приветствуем через чат
    if (!IsFakeClient(client))
    {
    decl String:steamid[32],String:clientname[24];
    decl String:country[45];
    decl String:ip[64];

    GetClientName(client, clientname, sizeof(clientname));
    GetClientIP(client, ip, sizeof(ip));
    GeoipCountry(ip, country, sizeof(country));
    GetClientAuthString(client,steamid,sizeof(steamid));

    PrintToChatAll("%s Подключился %s %s", clientname, ip, steamid);
    }
    // Сбрасываем Handle таймера на INVALID_HANDLE, чтобы знать, что активного таймера НЕТ.
    wS_Timer[client] = INVALID_HANDLE;
    }
    Вот. С PrintToChat - работает. PrintToConsole/PrintToServer-нет.
     
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    Заменить на:
    PHP:
    for (new 1<= MaxClients; ++i)
    {
        if (
    IsClientInGame(i)) PrintToConsole(i"%s Подключился %s %s"clientnameipsteamid);
    }
     
  8. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    Не компилится.
    #pragma semicolon 1

    #include
    #include

    #define VERSION "1.0"

    public Plugin:myinfo =
    {
    name = "Connect Player",
    author = "Beelzebub",
    description = "Connect player to server",
    version = VERSION,
    };

    new Handle:wS_Timer[MAXPLAYERS+1];

    public OnClientPutInServer(client)
    {
    // Сохраняем Handle таймера
    wS_Timer[client] = CreateTimer(15.0, wS_Hello, client);
    }

    // Если игрок покидает сервер, не увидев приветствие, то убиваем таймер.

    public OnClientDisconnect(client)
    {
    if (wS_Timer[client] != INVALID_HANDLE)
    {
    KillTimer(wS_Timer[client]);
    wS_Timer[client] = INVALID_HANDLE;
    }
    }

    public Action:wS_Hello(Handle:timer, any:client)
    {
    // Приветствуем через чат
    if (!IsFakeClient(client))
    {
    decl String:steamid[32],String:clientname[24];
    decl String:country[45];
    decl String:ip[64];

    GetClientName(client, clientname, sizeof(clientname));
    GetClientIP(client, ip, sizeof(ip));
    GeoipCountry(ip, country, sizeof(country));
    GetClientAuthString(client,steamid,sizeof(steamid));

    for (new i = 1; i <= MaxClients; ++i)
    {
    if (IsClientInGame(i)) PrintToConsole(i, "%s Подключился %s %s", clientname, ip, steamid);
    }
    // Сбрасываем Handle таймера на INVALID_HANDLE, чтобы знать, что активного таймера НЕТ.
    wS_Timer[client] = INVALID_HANDLE;
    }
     
  9. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    Так может взять наконец не какой-то дефектный код, а нормальный? Не компилится как раз выше, что не меняли по моему совету.
    Кстати, команда status в консоли клиента разве не работает? Там же есть все IP и SteamID.
     
  10. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    В dota2 команда status со стороны клиента не работает) максимум ping, но там только ник.

    Добавлено через 3 минуты
    З.ы у меня мой плагин (без вашего совета) компилится)
     
    Последнее редактирование: 5 янв 2016
  11. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    В доте 2, не показывает стим айди.