MiCRoSoFt989
Участник
- Сообщения
- 9
- Реакции
- 0
Во время толчка через TeleportEntity игрок может менять силу и направление полета через клавиши передвижения, как запретить ему это делать?
Последнее редактирование:
Проблему на практике не видел, так что, просто блокировать кнопки:как запретить ему это делать?
new bool:g_bBlockButtons[MAXPLAYERS + 1];
...
{
g_bBlockButtons[client] = true;
TeleportEntity(client, ...);
CreateTimer(0.1, ResetBlock, client);
}
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if (g_bBlockButtons[client])
{
buttons &= ~buttons;
return Plugin_Changed;
}
return Plugin_Continue;
}
public Action:ResetBlock(Handle:timer, any:client)
{
g_bBlockButtons[client] = false;
return Plugin_Stop;
}
Да, даже на 10.0 секунд, не запрещает.Время таймера пробовал увеличить до секунды? ОффтопИли ещё больше поставь, проверив уже на земле после телепорта, что не работают кнопки.
Если использовать return Plugin_Handled, то игрок замораживается на время таймера. Простая заморозка отменяет толчок.Попробуй просто:return Plugin_Handled; ОффтопА может, игрока просто "заморозить"? Правда, отбрасывать, возможно, тоже перестанет.
Как использовать такую заморозку?
SetEntityFlags(client, FL_FROZEN);
AlmazON, это полная заморозка, а как сделать заморозку, чтобы мышкой можно было манипулировать, а клавишами ходьбы нет?C-подобный:SetEntityFlags(client, FL_FROZEN);
Это заморозка, при которой не работает передвижение полностью, толчок при ней не работает.Так это совсем обычная. :cool: ОффтопC-подобный:SetEntityMoveType(client, MOVETYPE_NONE);
Всем известная.
Ну так других типов вроде и нет) Меняй флаги, может подыщешь нужную.Это заморозка
SetEntityMoveType(client, MOVETYPE_NONE);
SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 0.0);
SetEntityMoveType(client, MOVETYPE_WALK);
SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 1.0);
Не пойдёт:SetEntityMoveType(client, MOVETYPE_NONE);
Так что, самое простое - блочить клавиши.толчок при ней не работает