Замораживание при попадание

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
AlmazON
1. Почему бы не использоватьглобальный таймер, а то получается, что нельзя "продлить" время заморозки

2. Почему отказался от userid? Если кто-то захочет изменить время, может возникнуть ошибка

3. Если игрок уже мертв?

Оффтоп
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Ох, точно... Да щас скриптер спит, время только на чтение)
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Дело в том, что в ксго нет оружия knife

Добавлено через 16 минут
Нужно вписать knife_default_ct и knife_t вроде как, и еще все не стандартные ножи
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Да.
StrContains(weapon, "knife") != -1
Нет. Все начинаются на knife, кроме одного, так смысл проверять все дальнейшие совпадения, кроме нужного нам начального? Оффтоп
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Когда-то делал похожое, немного изменил попробуй
C-подобный:
#include <sdkhooks>
#pragma semicolon 1

new Handle:timers[MAXPLAYERS+1];


public OnPluginStart()
{
    HookEvent("player_death", Event_player_death);
    HookEvent("round_end", Event_Round_End);
}

public Action:Event_player_death(Handle:event, const String:name[], bool:dontBroadcast)
{
    new iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    if(timers[iClient] != INVALID_HANDLE)
    {
        KillTimer(timers[iClient]);
        timers[iClient] = INVALID_HANDLE;
    }
}

public Action:Event_Round_End(Handle:event, const String:name[], bool:dontBroadcast)
{
    for (new i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i))
        {
            if(timers[i] != INVALID_HANDLE)
            {
                KillTimer(timers[i]);
                timers[i] = INVALID_HANDLE;
            }
        }
    }
}

public OnClientPostAdminCheck(iClient)
{
    timers[iClient] = INVALID_HANDLE;
    SDKHook(iClient, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action:OnTakeDamage(iClient, &iAttaker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
    if(0 < iAttaker <= MaxClients && iClient)
    {
        if(GetClientTeam(iClient) == 3 && GetClientTeam(iAttaker) == 2 && IsValidEntity(weapon))
        {
            new id = GetEntProp(weapon, Prop_Send, "m_OriginalOwnerXuidLow");
            if(id == 42 || id == 59 || id == 500 || id == 505 || id == 506 || id == 507 || id == 508 || id == 509 || id == 515)
            {
                if(timers[iAttaker] != INVALID_HANDLE)
                {
                    KillTimer(timers[iAttaker]);
                    timers[iAttaker] = INVALID_HANDLE;
                }
                timers[iAttaker] = CreateTimer(3.0, proverka, GetClientUserId(iAttaker)); 
                SetEntPropFloat(iClient, Prop_Data, "m_flLaggedMovementValue", 0.1);
                SetEntityRenderColor(iAttaker, 0, 128, 255, 192);
            }
        }
    }
    return Plugin_Continue;
}

public OnClientDisconnect(iClient)
{
    if(timers[iClient] != INVALID_HANDLE)
    {
        KillTimer(timers[iClient]);
        timers[iClient] = INVALID_HANDLE;
    }
}

public Action:proverka(Handle:timer, any:userid)
{
    new iClient = GetClientOfUserId(userid);
    timers[iClient] = INVALID_HANDLE;
    SetEntPropFloat(iClient, Prop_Data, "m_flLaggedMovementValue", 1.0);
    SetEntityRenderColor(iClient, 255, 255, 255, 255);
}
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
AlmazON, Оффтоп
Кт должны заморажуваться если ударят т с ножа ? или если кт ударит терориста с ножа ?

Добавлено через 1 минуту
Оффтоп
Оффтоп
 
Последнее редактирование:
Сообщения
45
Реакции
0
komashchenko, КТ ударяет Т с ножа - замораживается КТ на 2-3 секунды и окрашивается

Добавлено через 4 минуты
AlmazON, пиз...
сорри
Нужен плагин,чтобы КТ замораживались при нанесение урона Т с ножа на 2-3 сек.
 
Последнее редактирование:
Сверху Снизу