Ошибка FakeClientCommand

alexmy

Участник
Сообщения
284
Реакции
13
Всем привет ребята, подскажите в чем проблема.
C-подобный:
L 03/28/2017 - 22:42:29: SourceMod error session started
L 03/28/2017 - 22:42:29: Info (map "l4d_fallen03_tower") (file "errors_20170328.log")
L 03/28/2017 - 22:42:29: [SM] Native "FakeClientCommand" reported: Client 3 is not connected
L 03/28/2017 - 22:42:29: [SM] Displaying call stack trace for plugin "l4d_tank_killed.smx":
L 03/28/2017 - 22:42:29: [SM]   [0]  Line 149, E:\left4dead\left4dead\addons\sourcemod\scripting\l4d_tank_killed.sp::timer_SpawnTank()
L 03/28/2017 - 22:45:49: Error log file session closed.
сам код
PHP:
public Action timer_SpawnTank(Handle timer)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i)) continue;
        {
            int flags = GetCommandFlags("z_spawn");
            SetCommandFlags("z_spawn", flags & ~FCVAR_CHEAT);
            FakeClientCommand(i, "z_spawn tank auto");
            SetCommandFlags("z_spawn", flags);
            break;
        }
    }
    return Plugin_Stop;
}
 

smoke96

Участник
Сообщения
1,134
Реакции
175
Добавь в условие проверку IsClientConnected(i)
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
@alexmy, зачем у тебя там continue; ? ты всех пропускаешь кто в игре и исполняешь код на тех кого нет. слоты.
PHP:
public Action timer_SpawnTank(Handle timer)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i))
        {
            int flags = GetCommandFlags("z_spawn");
            SetCommandFlags("z_spawn", flags & ~FCVAR_CHEAT);
            FakeClientCommand(i, "z_spawn tank auto");
            SetCommandFlags("z_spawn", flags);
            break;
        }
    }
    return Plugin_Stop;
}
 

alexmy

Участник
Сообщения
284
Реакции
13
@alexmy, зачем у тебя там continue; ? ты всех пропускаешь кто в игре и исполняешь код на тех кого нет. слоты.
PHP:
public Action timer_SpawnTank(Handle timer)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i))
        {
            int flags = GetCommandFlags("z_spawn");
            SetCommandFlags("z_spawn", flags & ~FCVAR_CHEAT);
            FakeClientCommand(i, "z_spawn tank auto");
            SetCommandFlags("z_spawn", flags);
            break;
        }
    }
    return Plugin_Stop;
}
Да ты прав continue; лишнее убрал и все хорошо стало.
--- Добавлено позже ---
Всем привет, ребята подскажите почему я иногда опять получаю похожую ошибку:
L 04/05/2017 - 03:17:22: SourceMod error session started
L 04/05/2017 - 03:17:22: Info (map "l4d_hospital03_sewers") (file "errors_20170405.log")
L 04/05/2017 - 03:17:22: [SM] Native "FakeClientCommand" reported: Client 1 is not connected
L 04/05/2017 - 03:17:22: [SM] Displaying call stack trace for plugin "l4d_test_tank_kill.smx":
L 04/05/2017 - 03:17:22: [SM] [0] Line 44, E:\left4dead\left4dead\addons\sourcemod\scripting\l4d_test_tank_kill.sp::TimerHandleSpawn()
L 04/05/2017 - 03:24:36: Error log file session closed
Код:
PHP:
public Action TimerHandleSpawn(Handle timer)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (g_StopSpawnTank && IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i))  return Plugin_Continue;
        {
            int flags = GetCommandFlags("z_spawn");
            SetCommandFlags("z_spawn", flags & ~FCVAR_CHEAT);
            FakeClientCommand(i, "z_spawn tank auto");
            SetCommandFlags("z_spawn", flags);
            break;
        }
    }
    g_StopSpawnTank = true;
    return Plugin_Stop;
}
 
Последнее редактирование:
Сверху Снизу