ЗАМЕЧЕНО ЧТО ЕСЛИ В НАЗВАНИИ ЕСТЬ ПРОБЕЛЫ ТО ОНА МОЖЕТ НЕ ВОСПРОИЗВОДИТСЯ ТАК ЧТО ЛУЧШЕ ЗАМЕНЯТЬ ИХ НА _
new maxClients = GetMaxClients();
for (new i = 1; i <= maxClients; i++)
Распознать или отфильтровать бота можно так
if (IsFakeClient(idx))
вместо
if(!StrContains(UserSteamId, "BOT", false))
public OnClientPutInServer(client)
{
if (!IsFakeClient(client))
{
for (new i = 1; i <= MaxClients; i++)
{
ClientCommand(i,"echo \"ИГРОКИ/STEAMID:\"");
ClientCommand(i,"echo \" \"");
for (new idx = 1; idx <= MaxClients; idx++)
{
if (!IsClientInGame(idx))
{
continue;
}
new String:UserAllInfo[128];
decl String:UserName[65];
decl String:UserSteamId[32];
GetClientName(idx, UserName, sizeof(UserName));
GetClientAuthString(idx, UserSteamId, sizeof(UserSteamId));
if(!IsFakeClient(i))
{
continue;
}
Format(UserAllInfo, sizeof(UserAllInfo),"%s --> %s", UserName, UserSteamId);
ClientCommand(i,"echo \"%s\"", UserAllInfo);
}
ClientCommand(i,"echo \" \"");
ClientCommand(i,"echo \"**************************************************\"");
}
}
}
public OnClientDisconnect(client)
{
if (!IsFakeClient(client))
{
for (new i = 1; i <= MaxClients; i++)
{
ClientCommand(i,"echo \"ИГРОКИ/STEAMID:\"");
ClientCommand(i,"echo \" \"");
for (new idx = 1; idx <= MaxClients; idx++)
{
if (!IsClientInGame(idx))
{
continue;
}
new String:UserAllInfo[128];
decl String:UserName[65];
decl String:UserSteamId[32];
GetClientName(idx, UserName, sizeof(UserName));
GetClientAuthString(idx, UserSteamId, sizeof(UserSteamId));
if(!IsFakeClient(i))
{
continue;
}
Format(UserAllInfo, sizeof(UserAllInfo),"%s --> %s", UserName, UserSteamId);
ClientCommand(i,"echo \"%s\"", UserAllInfo);
}
ClientCommand(i,"echo \" \"");
ClientCommand(i,"echo \"**************************************************\"");
}
}
}
Мб уже соберете в кучу исходник :)можно сделать не только в начале записи демки показ статуса, но при подключении и отключении игроков.
блин даже незнаю :) пиши по подробнее я админ один и сервере,и он у меня не на хостинге а на своём компе поэтому проверить несмогу.у меня в папку не пускает, в чём дело ? и почему доступно только root админам... я вот хочу что б коадминм тож было доступно
не пробывалv34 пойдет?
я использую demoui для удобства :)нет проблем с запуском, просто название демки надо будет писать в ковычках!
Например: playdemo "test 2.dem"
:D у меня проблемы с этим я вечно путаю этих клиентов, юзер ид, и индексы, можно попробыватьзачем получать макс. игроков, если SM уже сделал это - MaxClients
лучше убери new maxClients = GetMaxClients();
и поставь вместо for (new i = 1; i <= maxClients; i++)
на for (new i = 1; i <= MaxClients; i++)
можно :) думал уже, а если сервер на который заходят и выходят вечно много людей не слишком будет? можно просто по таймеру настройку добавить чтобы спустя какоето время выводилась инфа! но можно и такможно сделать не только в начале записи демки показ статуса, но при подключении и отключении игроков.
при рестарте чего? :) и пример надоЕще обратил внимание на баг, если создаешь отличную от той, что по умолчанию (DEMO_MANAGER_DEMOS) директорию, то она по любому создается при рестарте. Мб подправите!
он имеет ввиду, при каждом старте сервера или плагина создаёт эту папку даже если сделал на другую!при рестарте чего? и пример надо
При запуске сервера или его рестарте он принудительно создает эту папку DEMO_MANAGER_DEMOS, хотя я указал в cvars другое место для сохранения демо. При смене карты такое не происходит, все работает нормально!при рестарте чего? и пример надоЕще обратил внимание на баг, если создаешь отличную от той, что по умолчанию (DEMO_MANAGER_DEMOS) директорию, то она по любому создается при рестарте. Мб подправите!
можно сделать не только в начале записи демки показ статуса, но при подключении и отключении игроков.
это я тестировал на ботах потому что когда тестил я был один на сервере. сделал временно, чтобы уж всё проверить. да вообщем то разницы не много можно переделатьРаспознать или отфильтровать бота можно так
if (IsFakeClient(idx))
вместо
if(!StrContains(UserSteamId, "BOT", false))
понятно. щас попробую добавить проверку директории при старте плагина. и при старте карты)При запуске сервера или его рестарте он принудительно создает эту папку DEMO_MANAGER_DEMOS, хотя я указал в cvars другое место для сохранения демо. При смене карты такое не происходит, все работает нормально!
Скомпилил, все норм вроде.а нет ступил. ошибка тут:
public OnConfigsExecuted()
{
/*if (!DirExists(g_DemosDirectory))
{
CreateDirectory(g_DemosDirectory, true);
PrintToServer("[SourceTvDemoManager] Creating Directory --> %s ", g_DemosDirectory); }*/
Нужно закоментировать строки как выше! или удалить)
ну это без проблем. выводить полный список? или только тех кто подключается/отключается?можно сделать не только в начале записи демки показ статуса, но при подключении и отключении игроков.
Корректнее наверно было так, вывод тех кто играл в момент/на протяжении записи демо.ну это без проблем. выводить полный список? или только тех кто подключается/отключается?