AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Snippets and Tutorials (https://forums.alliedmods.net/forumdisplay.php?f=112)
-   -   [TF2] Detecting minicrits (https://forums.alliedmods.net/showthread.php?t=276613)

Chdata 12-24-2015 09:55

[TF2] Detecting minicrits
 
Because there are specific situations in which it will happen, it's easy to detect. This isn't a finished stock, nor is the one for critbuffed.

PHP Code:

stock bool:TF2_WillMinicrit(iAtkeriVictim = -1iDmgType DMG_GENERICiWeapon = -1// DMG_GENERIC is also known as 0
{
    if (
iDmgType DMG_CRIT || TF2_IsPlayerCritBuffed(iAtker))
    {
        return 
false;
    }

    if (
TF2_IsPlayerMiniCritBuffed(iAtker))
    {
        return 
true;
    }

    if (
iVictim != -1)
    {
        if (
TF2_IsPlayerMiniCritDebuffed(iVictim))
        {
            return 
true;
        }
        
        
/*if (iWeapon != -1)
        {
            switch (GetWeaponIndex(iWeapon))
            {
                case 127, 415: // Direct Hit, Reserve Shooter | If you have TF2Attributes, you can just use HasAttribute for "mod mini-crit airborne"
                {
                    if (TF2_IsPlayerAirborne(iVictim)) // 114 | mod mini-crit airborne
                    {
                        return true;
                    }
                }
            }
        }*/
    
}

    return 
false;
}

stock bool:TF2_IsPlayerAirborne(iClient)
{
    if (!(
GetEntityFlags(iClient) & FL_ONGROUND))
    {
        return 
TF2_IsPlayerInAnyOneOfConditions(iClient, {TFCond:99TFCond_BlastJumpingTFCond:99}, 3); // the second 99 should be the new airblast condition
    
}
    return 
false;
}

stock bool:TF2_IsPlayerCritBuffed(iClient// TODO: Compare with Slender version
{
    return 
TF2_IsPlayerInAnyOneOfConditions(iClient,
        {
TFCond_KritzkriegedTFCond_HalloweenCritCandyTFCond_CritCanteen,
         
TFCond_CritDemoChargeTFCond_CritOnFirstBloodTFCond_CritOnWin,
         
TFCond_CritOnFlagCaptureTFCond_CritOnKillTFCond_CritMmmph}, 9
    
);
}

stock bool:TF2_IsPlayerMiniCritBuffed(iClient// TFCond_CritHype
{
    return 
TF2_IsPlayerInAnyOneOfConditions(iClient, {TFCond_CritColaTFCond_Buffed}, 2);
}

stock bool:TF2_IsPlayerMiniCritDebuffed(iClient)
{
    return 
TF2_IsPlayerInAnyOneOfConditions(iClient, {TFCond_MarkedForDeathTFCond_MarkedForDeathSilentTFCond_Jarated}, 3);
}

stock GetWeaponIndex(iWeapon)
{
    return (
iWeapon MaxClients && IsValidEntity(iWeapon)) ? GetEntProp(iWeaponProp_Send"m_iItemDefinitionIndex"):-1;
}

public const 
TFCondValue_Invaild = -1;

stock bool:TF2_IsPlayerInAnyOneOfConditions(iClientiCond[], iCount)
{
    for (new 
0iCounti++)
    {
        if (
iCond[i] <= TFCondValue_Invaild)
        {
            break;
        }

        if (
TF2_IsPlayerInCondition(iClientTFCond:iCond[i]))
        {
            return 
true;
        }
    }
    return 
false;




All times are GMT -4. The time now is 18:33.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.