Создание чат-команд Cs:Go

Caftozz

Участник
Сообщения
84
Реакции
1
compile.exe просто на рабочий стол можно? или его на сервер закидывать?
 

Caftozz

Участник
Сообщения
84
Реакции
1
у меня команды не работает, пишу в консоль sm_slow, и ничего не происходит
ошибок никаких нет
Сообщения автоматически склеены:

почему когда я пишу в консоли кс го всё работает, а когда в консоли сервера - нет
 
Последнее редактирование:

Caftozz

Участник
Сообщения
84
Реакции
1
Юзерайди какого игрока ты ожидаешь увидеть вводя команду в консоль сервера?
а почему тогда не работает
Сообщения автоматически склеены:

C-подобный:
public void OnPluginStart()
{
    RegConsoleCmd("sm_slow", Cmd_Slow);
}

public Action Cmd_Slow(int client, int args)
{
    if(client && IsClientInGame(client) && IsPlayerAlive(client))
        ServerCommand("sm_speed #%i 0.8", GetClientUserId(client));

    return Plugin_Handled;
}

я этот код скомпилировал, но не работает
Сообщения автоматически склеены:

Юзерайди какого игрока ты ожидаешь увидеть вводя команду в консоль сервера?
я в консоль ввожу sm_speed #3 0.8 (я ввожу свой id) , но не работает
 
Последнее редактирование:

Caftozz

Участник
Сообщения
84
Реакции
1
а есть на сервере какой-то плагин с командой sm_speed?
advadmin
Сообщения автоматически склеены:

C-подобный:
public OnPluginStart()
{
RegAdminCmd("sm_speed",            CMD_Speed,            ADMFLAG_ROOT,        "Set the speed multipiler of the targets");
}



public Action: CMD_Speed(client, args)
{
    if(!IsClientValid(client) || !IsClientInGame(client))
    {
        return Plugin_Handled;
    }
   
    if(args != 2)
    {
        ReplyToCommand(client, "%t", "CMD_Speed_Usage");
        return Plugin_Handled;
    }
   
    new String: target_name[MAX_TARGET_LENGTH],
        String: buffer[64],
        target_list[MAXPLAYERS],
        bool: tn_is_ml,
        target_count;
   
    GetCmdArg(1, buffer, sizeof(buffer));
    if((target_count = ProcessTargetString(buffer, client, target_list, MAXPLAYERS, COMMAND_FILTER_ALIVE, target_name, sizeof(target_name), tn_is_ml)) <= 0)
    {
        ReplyToTargetError(client, target_count);
        return Plugin_Handled;
    }
   
    GetCmdArg(2, buffer, sizeof(buffer));
    new Float: value = StringToFloat(buffer);
    if((value < 0.0) || (value > 500.0))
    {
        ReplyToCommand(client, "%t", "CMD_Speed_Usage");
        return Plugin_Handled;
    }
   
    for(new i = 0; i < target_count; i++)
    {
        SetEntPropFloat(target_list[i], Prop_Data, "m_flLaggedMovementValue", value);
    }
   
    if(tn_is_ml)
    {
        ShowActivity2(client, CMD_PREFIX, "%t", "CMD_Speed", target_name, buffer);
        LogActionEx(client, "%t", "CMD_Speed", target_name, buffer);
    }
    else
    {
        ShowActivity2(client, CMD_PREFIX, "%t", "CMD_Speed", "_s", target_name, buffer);
        LogActionEx(client, "%t", "CMD_Speed", "_s", target_name, buffer);
    }
    return Plugin_Handled;
}

я нашел исходник этой команды(надеюсь это оно)

Можно как-то сделать команду на slow?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@Caftozz, там стоит проверка и от имени сервера эту команду не вызвать, как и от имени игрока не имеющего админку

Проще так сделать:
C-подобный:
public void OnPluginStart()
{
    RegConsoleCmd("sm_slow", Cmd_Slow);
}

public Action Cmd_Slow(int client, int args)
{
    if(client && IsClientInGame(client) && IsPlayerAlive(client))
        SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 0.8);

    return Plugin_Handled;
}
 

Caftozz

Участник
Сообщения
84
Реакции
1
сейчас проверю
Сообщения автоматически склеены:

все работает
 
Последнее редактирование:

Temlik

Участник
Сообщения
668
Реакции
174
я в консоль ввожу sm_speed #3 0.8 (я ввожу свой id) , но не работает
Нужно было просто написать команду sm_slow, и игроку, который бы это написал, выдалась бы скорость. В плагине не поддерживалась выдача скорости по тому userid, по которому вы захотите. К тому же, зачем писать это в консоль сервера? Чтобы серверу выдать скорость?
 
Сверху Снизу