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

Тема в разделе "Запросы", создана пользователем Никита Боженков, 11 апр 2015.

  1. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    Нужен плагин,чтобы КТ замораживались при нанесение урона Т с ножа на 2-3 сек.
    Так же добавить анимацию,что они заморожены.

    Буду безумно благодарен.
     
  2. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    AlmazON, не работает :(
    в plugins list есть
     
  3. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    AlmazON, что мне нужно сделать? Фриза вообще нет.
     
  4. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    AlmazON, мне код засунуть в .sp и с компилировать его? Если да,то так и сделал - не работае.
     
  5. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    AlmazON, мне под CS:GO надо,это как-то влияет?
     
  6. Primo

    Primo Где мои манеры

    Сообщения:
    1.190
    Симпатии:
    306
    AlmazON, не влияет. По сути, должно работать.
     
  7. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    Primo, сможешь протестить? Или я криворукий...
    AlmazON, извини :(
     
  8. Primo

    Primo Где мои манеры

    Сообщения:
    1.190
    Симпатии:
    306
    Проблема наверное в том, что в CSGO прозрачность в Render не работает (На 192 стоит в коде). Мб из-за этого не красит, и кажется, что не замораживает? :D
     
  9. Primo

    Primo Где мои манеры

    Сообщения:
    1.190
    Симпатии:
    306
    AlmazON, не работает только прозрачность, смена цвета работает.
    SetEntityRenderColor(victim, 0, 128, 255, 255);
     
  10. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.712
    Симпатии:
    451
    [​IMG]
     
  11. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    Кто проверил на CS:GO,прошу отпишитесь!!!!
     
  12. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.712
    Симпатии:
    451
    Создавать таймер на определенное кол-во времени а после
    PHP:
    ServerCommand("sm_unfreeze #%d"GetClientUserId(client));
     
  13. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.003
    Симпатии:
    607
    Так в SM Freeze есть параметр времени)
    sm_freeze EPacker2 3
     
  14. Reiko1231

    Reiko1231 AlexTheRegent

    Сообщения:
    235
    Симпатии:
    568
    \scripting\funcommands\ice.sp
    FreezeClient()
    Код:
    FreezeClient(client, time)
    {
    	if (g_FreezeSerial[client] != 0)
    	{
    		UnfreezeClient(client);
    		return;
    	}
    	SetEntityMoveType(client, MOVETYPE_NONE);
    	SetEntityRenderColor(client, 0, 128, 255, 192);
    
    	if (g_FreezeSound[0])
    	{
    		new Float:vec[3];
    		GetClientEyePosition(client, vec);
    		EmitAmbientSound(g_FreezeSound, vec, client, SNDLEVEL_RAIDSIREN);
    	}
    
    	g_FreezeTime[client] = time;
    	g_FreezeSerial[client] = ++ g_Serial_Gen;
    	CreateTimer(1.0, Timer_Freeze, client | (g_Serial_Gen << 7), DEFAULT_TIMER_FLAGS);
    }
    

    UnfreezeClient()
    Код:
    UnfreezeClient(client)
    {
    	g_FreezeSerial[client] = 0;
    	g_FreezeTime[client] = 0;
    
    	if (IsClientInGame(client))
    	{
    		if (g_FreezeSound[0])
    		{
    			new Float:vec[3];
    			GetClientAbsOrigin(client, vec);
    			vec[2] += 10;	
    			
    			GetClientEyePosition(client, vec);
    			EmitAmbientSound(g_FreezeSound, vec, client, SNDLEVEL_RAIDSIREN);
    		}
    
    		SetEntityMoveType(client, MOVETYPE_WALK);
    		
    		SetEntityRenderColor(client, 255, 255, 255, 255);
    	}
    }
    

    Если убрать всё то, что не интересно для нас, то получим
    FreezeClient()
    Код:
    SetEntityMoveType(client, MOVETYPE_NONE);
    SetEntityRenderColor(client, 0, 128, 255, 192);
    
    UnfreezeClient()
    Код:
    SetEntityMoveType(client, MOVETYPE_WALK);
    SetEntityRenderColor(client, 255, 255, 255, 255);
    Единственное что, если цвет не меняется, я бы еще попробовал добавить
    Код:
    SetEntityRenderMode(client, RENDER_TRANSCOLOR);
     
    EPacker2 нравится это.
  15. Никита Боженков

    Никита Боженков

    Сообщения:
    45
    Симпатии:
    0
    AlmazON, безумно благодарен за старания,жду плагина :)
     
  16. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.003
    Симпатии:
    607
    Ну ты сказал на 2-3 секунды, я так и поставил. Это чтобы не мучаться. А если делать чистый код, без использования других плагинов - мучайся. :):blush2:

    Добавлено через 54 секунды
    Ну это да.. Тогда обрезай дефолтный плагин заморозки)
     
    Последнее редактирование: 13 апр 2015
  17. Саша Шеин

    Саша Шеин

    Сообщения:
    1.254
    Симпатии:
    191
    Может так можно?
    PHP:
    new bool:g_FreezeSerial[MAXPLAYERS+1] = false;

    public 
    OnPluginStart() HookEvent("player_hurt"Event_PlayerHurt); 

    public 
    Event_PlayerHurt(Handle:event,String:name[],bool:dontBroadcast

        
    decl String:weapon[7]; 
        
    GetEventString(event"weapon"weapon7); 
        if(
    strcmp(weapon"knife") == 0
        {
            new 
    attacker=GetClientOfUserId(GetEventInt(event"attacker"));
            if(
    attacker && GetClientTeam(attacker) == 3)
            {
                if(
    GetClientTeam(attacker))
                {
                    if(
    g_FreezeSerial[attacker]){
                        
    SetEntityMoveType(attackerMOVETYPE_NONE);
                        
    SetEntityRenderColor(attacker0128255192);
                        
    CreateTimer(2.0UnFreezeany:attacker);}
                }
            } 
        } 
    }

    public 
    Action:UnFreeze(Handle:timerany:attacker)
    {
        if(
    IsClientConnected(attacker)&&IsClientInGame(attacker))
        {
            
    SetEntityMoveType(attackerMOVETYPE_NONE);
            
    SetEntityRenderColor(attacker0128255135);
            
    g_FreezeSerial[attacker]=true;
        }
    }
     
  18. Саша Шеин

    Саша Шеин

    Сообщения:
    1.254
    Симпатии:
    191
    Ну да зря написал это =)


    Ошибся в начале.

    =))

    Не понял =(
     
  19. Саша Шеин

    Саша Шеин

    Сообщения:
    1.254
    Симпатии:
    191
    AlmazON, так тогда?
    PHP:
    new bool:g_FreezeSerial[MAXPLAYERS+1] = true;

    public 
    OnPluginStart() 
    {
        
    HookEvent("player_hurt"Event_PlayerHurt); 
    }

    public 
    Event_PlayerHurt(Handle:event,String:name[],bool:dontBroadcast

        
    decl String:weapon[7]; 
        
    GetEventString(event"weapon"weapon7); 
        if(
    strcmp(weapon"knife") == 0
        {
            new 
    attacker=GetClientOfUserId(GetEventInt(event"attacker"));
            if(
    attacker && GetClientTeam(attacker) == 2)
            {
                if(
    attacker)
                {
                    if(!
    g_FreezeSerial[attacker])
                    {
                        
    SetEntityMoveType(attackerMOVETYPE_NONE);
                        
    SetEntityRenderColor(attacker0128255192);
                        
    g_FreezeSerial[attacker] = true;
                        
    CreateTimer(2.0UnFreezeany:attacker);
                    }
                }
            } 
        } 
    }

    public 
    Action:UnFreeze(Handle:timerany:attacker)
    {
        if(
    IsClientInGame(attacker))
        {
            
    SetEntityMoveType(attackerMOVETYPE_NONE);
            
    SetEntityRenderColor(attacker0128255135);
            
    g_FreezeSerial[attacker]=false;
        }
    }
     
  20. Саша Шеин

    Саша Шеин

    Сообщения:
    1.254
    Симпатии:
    191
    Не понял =))
    PHP:
    new bool:g_FreezeSerial[MAXPLAYERS+1] = true;

    public 
    OnPluginStart() 
    {
        
    HookEvent("player_hurt"Event_PlayerHurt); 
    }

    public 
    Event_PlayerHurt(Handle:event,String:name[],bool:dontBroadcast

        
    decl String:weapon[7]; 
        
    GetEventString(event"weapon"weapon7); 
        if(
    strcmp(weapon"knife") == 0
        {
            new 
    attacker=GetClientOfUserId(GetEventInt(event"attacker"));
            new 
    victim=GetClientOfUserId(GetEventInt(event,"userid")); 
            if(
    attacker && attacker!=victim && GetClientTeam(attacker) == 2)
            {
                if(!
    g_FreezeSerial[attacker])
                {
                    
    SetEntityMoveType(attackerMOVETYPE_NONE);
                    
    SetEntityRenderColor(attacker0128255192);
                    
    g_FreezeSerial[attacker] = true;
                    
    CreateTimer(2.0UnFreezeany:attacker);
                }
                else
                {
                        
                }
            } 
        } 
    }

    public 
    Action:UnFreeze(Handle:timerany:attacker)
    {
        if(
    IsClientConnected(attacker)&&IsClientInGame(attacker))
        {
            
    SetEntityMoveType(attackerMOVETYPE_NONE);
            
    SetEntityRenderColor(attacker0128255135);
            
    g_FreezeSerial[attacker]=false;
        }
    }

    Добавлено через 1 минуту
    Хм добавить что ли: else g_FreezeSerial[attacker]=false; ?
     
    Последнее редактирование: 13 апр 2015