Неуязвимость при получении урона [2]

Тема в разделе "Запросы", создана пользователем ThreshHNS, 29 май 2015.

  1. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    Добрый день,
    Прошу помочь сделать плагин.
    Суть: давать неуязвимость игрокам от получения урона от врагов (не от падения),получившим урон от ножа (cs:go), и окрашивать в желтый цвет на 3.5 сек тем,кто получил урон.
    Спасибо!

    P.s. создал второй раз,потому-что неправильно описал суть плагина. Извиняюсь
     
    Последнее редактирование: 29 май 2015
  2. trueattack

    trueattack

    Сообщения:
    148
    Симпатии:
    32
    Оффтоп
     
  3. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259

    При нанесение урона игроку, давать неуязвимость и окрашивать в желтый цвет на 2.5 сек.
     
  4. trueattack

    trueattack

    Сообщения:
    148
    Симпатии:
    32
    Оффтоп
     
  5. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    trueattack, Оффтоп
     
  6. trueattack

    trueattack

    Сообщения:
    148
    Симпатии:
    32
    Оффтоп
     
  7. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    trueattack, Оффтоп
     
  8. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    PHP:
    #pragma semicolon 1

    #include <sourcemod>

    new Handle:g_hTimers[MAXPLAYERS+1] = {INVALID_HANDLE, ...};

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

    public 
    Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
    {
        
    decl String:szWeapon[32];
        
    GetEventString(event"weapon"szWeaponsizeof(szWeapon));
        if(!
    StrEqual(szWeapon"knife"))
            return;
        
        new 
    client GetClientOfUserId(GetEventInt(event"userid"));
        if(!
    IsPlayerAlive(client) || g_hTimers[client] != INVALID_HANDLE)
            return;
        
        
    SetEntityRenderMode(clientRENDER_TRANSCOLOR);
        
    SetEntityRenderColor(client25314128255);
        
        
    SetEntProp(clientProp_Data"m_takedamage"01);
        
        
    g_hTimers[client] = CreateTimer(2.5Timer_PostHurtclient);
    }

    public 
    Action:Timer_PostHurt(Handle:timerany:client)
    {
        
    g_hTimers[client] = INVALID_HANDLE;
        
        if(!
    IsClientInGame(client) || !IsPlayerAlive(client))
            return 
    Plugin_Stop;
        
        
    SetEntityRenderMode(clientRENDER_TRANSCOLOR);
        
    SetEntityRenderColor(client255255255255);
        
        
    SetEntProp(clientProp_Data"m_takedamage"21);
        
        return 
    Plugin_Stop;
    }

    Оффтоп
     
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
    gibs, можно обойтись массивом bool [MAXPLAYERS+1] и локальными таймерами.
     
  10. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    Ну так обойдись и выложи свой вариант.
     
  11. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    gibs,
    P.s. сильно туплю,извиняюсь

    Добавлено через 1 минуту
    Подправил опять описание. Извиняйте меня такого...
     
    Последнее редактирование: 29 май 2015
  12. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    ThreshHNS, Оффтоп
     
  13. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    PHP:
    #pragma semicolon 1
    #include <sourcemod>
    #include <sdkhooks>
    public OnClientPutInServer(client)
    {
        
    SDKHook(clientSDKHook_OnTakeDamageOnTakeDamage);
    }
    public 
    Action:OnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype)
    {
        if (
    damagetype & !DMG_FALL)
        {
            
    decl String:szWeapon[64];
            
    GetClientWeapon(attackerszWeaponsizeof(szWeapon));
            if (
    StrContains(szWeapon"knife"false) != -1)
            {
                
    damage 0.0;
                
    SetEntityRenderMode(clientRENDER_TRANSCOLOR);
                
    SetEntityRenderColor(client25314128255);
                
    CreateTimer(3.5Colorinesclient);
                return 
    Plugin_Changed;
            }
        }
        return 
    Plugin_Continue;
    }
    public 
    Action:Colorines(Handle:timerclient)
    {
        if (
    IsClientInGame(client) && IsPlayerAlive(client))
        {
            
    SetEntityRenderMode(clientRENDER_TRANSCOLOR);
            
    SetEntityRenderColor(client255255255255);
        }
        return 
    Plugin_Stop;
    }
     
    ThreshHNS нравится это.
  14. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    DarklSide, завтра проверю - отпишусь!
     
  15. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    DarklSide, один ножик забыл. Ну и новый не учтён. Да и оружие зря отдельно получаешь, если есть, например:
    PHP:
    Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weaponFloat:damageForce[3], Float:damagePosition[3])
    Кстати, так кучу таймеров можно насоздавать и сервер "положить". Да и окраска раньше нужного пропадёт. Оффтоп
    Primo, Оффтоп
     
  16. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    AlmazON, Оффтоп
     
  17. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    AlmazON, Оффтоп
    была дана - почва для размышлений.
     
  18. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    Да там делать, в принципе, нечего) Только с окраской на CS:GO есть проблемы - нет прозрачности, вот и всё отличие.
    Просто у ТС постоянно меняется задача, а тут и без одного корректного описания есть дела.
     
  19. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    Оффтоп
     
  20. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    ТС менял описание несколько раз. И для меня лично является загадкой что может дать количество постов конкретно на этом форуме.